Annotation of truecrypt/boot/windows/bootdefs.h, revision 1.1.1.8

1.1       root        1: /*
1.1.1.6   root        2:  Copyright (c) 2008-2009 TrueCrypt Foundation. All rights reserved.
1.1       root        3: 
1.1.1.8 ! root        4:  Governed by the TrueCrypt License 2.8 the full text of which is contained
1.1       root        5:  in the file License.txt included in TrueCrypt binary and source code
                      6:  distribution packages.
                      7: */
                      8: 
1.1.1.3   root        9: #ifndef TC_HEADER_Boot_BootDefs
                     10: #define TC_HEADER_Boot_BootDefs
                     11: 
1.1.1.2   root       12: // Total memory required (CODE + DATA + BSS + STACK + 0x100) in KBytes - determined from linker map.
                     13: #define TC__BOOT_MEMORY_REQUIRED       42
1.1       root       14: 
1.1.1.3   root       15: #ifdef TC_WINDOWS_BOOT_SINGLE_CIPHER_MODE
                     16: #      undef TC__BOOT_MEMORY_REQUIRED
                     17: 
                     18: #      ifdef TC_WINDOWS_BOOT_AES
1.1.1.4   root       19: #              ifdef TC_WINDOWS_BOOT_RESCUE_DISK_MODE
1.1.1.5   root       20: #                      define TC__BOOT_MEMORY_REQUIRED 29
1.1.1.4   root       21: #              else
                     22: #                      define TC__BOOT_MEMORY_REQUIRED 27
                     23: #              endif
1.1.1.3   root       24: #      elif defined (TC_WINDOWS_BOOT_SERPENT)
                     25: #              define TC__BOOT_MEMORY_REQUIRED         32
                     26: #      elif defined (TC_WINDOWS_BOOT_TWOFISH)
                     27: #              define TC__BOOT_MEMORY_REQUIRED         40
                     28: #      endif
                     29: 
1.1.1.5   root       30: #if 0
                     31: #      undef TC__BOOT_MEMORY_REQUIRED
                     32: #      define TC__BOOT_MEMORY_REQUIRED 60
                     33: #endif
                     34: 
1.1.1.3   root       35: #endif
                     36: 
1.1       root       37: // Modifying this value can introduce incompatibility with previous versions
1.1.1.6   root       38: #define TC__BOOT_LOADER_SEGMENT                        TC_HEX (9000)   // Memory reserved in the segment 8000 is always destroyed by Vista with no SP
                     39: 
                     40: #if TC__BOOT_MEMORY_REQUIRED <= 32
                     41: #      define TC__BOOT_LOADER_SEGMENT_LOW      (TC__BOOT_LOADER_SEGMENT - 32 * 1024 / 16)      
                     42: #else
                     43: #      define TC__BOOT_LOADER_SEGMENT_LOW      (TC__BOOT_LOADER_SEGMENT - 64 * 1024 / 16)      
                     44: #endif
                     45: 
                     46: #define TC__COM_EXECUTABLE_OFFSET              TC_HEX (100)
1.1       root       47: 
1.1.1.6   root       48: #define TC__BOOT_LOADER_LOWMEM_SEGMENT TC_HEX (2000)
                     49: #define TC__BOOT_LOADER_BUFFER_SEGMENT TC_HEX (4000)
                     50: #define TC__BOOT_LOADER_ALT_SEGMENT            TC_HEX (6000)
1.1       root       51: 
1.1.1.3   root       52: #define TC__BOOT_LOADER_STACK_TOP (TC_BOOT_MEMORY_REQUIRED * TC_UNSIGNED (1024) - 4)
                     53: 
                     54: #define TC__LB_SIZE 512
1.1       root       55: #define TC__BOOT_LOADER_AREA_SECTOR_COUNT 63
                     56: 
1.1.1.5   root       57: #define TC__BOOT_SECTOR_VERSION_OFFSET 430
1.1.1.3   root       58: #define TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET 432
                     59: #define TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET 434
1.1.1.5   root       60: #define TC__BOOT_SECTOR_USER_CONFIG_OFFSET 438
1.1.1.4   root       61: #define TC__BOOT_SECTOR_CONFIG_OFFSET 439      // The last byte that is reserved for the boot loader
1.1       root       62: 
1.1.1.5   root       63: #define TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH 24
                     64: #define TC__BOOT_SECTOR_USER_MESSAGE_OFFSET (TC__BOOT_SECTOR_VERSION_OFFSET - TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH)
                     65: 
1.1.1.6   root       66: #define TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE 4
1.1.1.5   root       67: #define TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET (TC__BOOT_SECTOR_USER_MESSAGE_OFFSET - TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE)
                     68: 
1.1.1.3   root       69: #define TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR 2
                     70: #define TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT 4
                     71: #define TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE 32768
                     72: #define TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET (TC_COM_EXECUTABLE_OFFSET + 3072)
                     73: 
                     74: #define TC__BOOT_LOADER_START_SECTOR (TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR + TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT)
                     75: #define TC__MAX_BOOT_LOADER_SECTOR_COUNT (TC_BOOT_LOADER_AREA_SECTOR_COUNT - TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT - 2)
                     76: #define TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE ((TC_BOOT_LOADER_AREA_SECTOR_COUNT - 2) * TC_LB_SIZE)
                     77: 
                     78: #define TC__BOOT_LOADER_BACKUP_SECTOR_COUNT 30
                     79: 
                     80: #define TC__GZIP_HEADER_SIZE 10
                     81: 
1.1.1.4   root       82: #define TC__BOOT_CFG_FLAG_AREA_SIZE    1       // In bytes
                     83: 
                     84: // If you add more flags, revise TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root       85: #define TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE              TC_HEX (02)
                     86: #define TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER               TC_HEX (04)
                     87: #define TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER  TC_HEX (20)
                     88: 
1.1.1.4   root       89: #define TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE             (TC_HEX (40) + TC_HEX (80))
                     90: 
1.1.1.5   root       91: // Modifying the following values can introduce incompatibility with previous versions
                     92: #define TC__BOOT_USER_CFG_FLAG_SILENT_MODE                             TC_HEX (01)
                     93: #define TC__BOOT_USER_CFG_FLAG_DISABLE_ESC                             TC_HEX (02)
                     94: 
1.1.1.4   root       95: // The following items are treated as a 2-bit value (apply TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE to obtain the value)
                     96: #define TC__HIDDEN_OS_CREATION_PHASE_NONE              0
                     97: #define TC__HIDDEN_OS_CREATION_PHASE_CLONING   TC_HEX (40)             // The boot loader is to copy the content of the system partition to the hidden volume
1.1.1.5   root       98: #define TC__HIDDEN_OS_CREATION_PHASE_WIPING            TC_HEX (80)             // The boot loader has successfully copied the content of the system partition to the hidden volume. The original OS is to be wiped now.
                     99: #define TC__HIDDEN_OS_CREATION_PHASE_WIPED             (TC_HEX (40) + TC_HEX (80))     // The original OS has been wiped. The user is required to install a new OS (decoy OS) on the system partition now.
1.1.1.4   root      100: 
1.1.1.3   root      101: 
1.1       root      102: #ifdef TC_ASM_PREPROCESS
                    103: 
                    104: #define TC_HEX(N) 0##N##h
1.1.1.3   root      105: #define TC_UNSIGNED(N) N
1.1       root      106: 
                    107: TC_BOOT_MEMORY_REQUIRED = TC__BOOT_MEMORY_REQUIRED
                    108: TC_BOOT_LOADER_SEGMENT = TC__BOOT_LOADER_SEGMENT
1.1.1.6   root      109: TC_BOOT_LOADER_SEGMENT_LOW = TC__BOOT_LOADER_SEGMENT_LOW
1.1.1.3   root      110: TC_COM_EXECUTABLE_OFFSET = TC__COM_EXECUTABLE_OFFSET
1.1       root      111: TC_BOOT_LOADER_LOWMEM_SEGMENT = TC__BOOT_LOADER_LOWMEM_SEGMENT
1.1.1.3   root      112: TC_BOOT_LOADER_BUFFER_SEGMENT = TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.5   root      113: TC_BOOT_LOADER_ALT_SEGMENT = TC__BOOT_LOADER_ALT_SEGMENT
1.1.1.3   root      114: TC_BOOT_LOADER_STACK_TOP = TC__BOOT_LOADER_STACK_TOP
                    115: TC_LB_SIZE = TC__LB_SIZE
1.1       root      116: TC_BOOT_LOADER_AREA_SECTOR_COUNT = TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.3   root      117: TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET = TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
                    118: TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET = TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
1.1       root      119: TC_BOOT_SECTOR_CONFIG_OFFSET = TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.5   root      120: TC_BOOT_SECTOR_USER_CONFIG_OFFSET = TC__BOOT_SECTOR_USER_CONFIG_OFFSET
1.1.1.3   root      121: TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR = TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
                    122: TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT = TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
                    123: TC_BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE = TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE
                    124: TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET = TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET
                    125: TC_BOOT_LOADER_START_SECTOR = TC__BOOT_LOADER_START_SECTOR
                    126: TC_MAX_BOOT_LOADER_SECTOR_COUNT = TC__MAX_BOOT_LOADER_SECTOR_COUNT
                    127: TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE = TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
                    128: TC_BOOT_LOADER_BACKUP_SECTOR_COUNT = TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
                    129: TC_GZIP_HEADER_SIZE = TC__GZIP_HEADER_SIZE
1.1.1.4   root      130: TC_BOOT_CFG_FLAG_AREA_SIZE = TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root      131: TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE = TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
                    132: TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER = TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
                    133: TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER = TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1.1.4   root      134: TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE = TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE
1.1.1.5   root      135: TC_BOOT_USER_CFG_FLAG_SILENT_MODE = TC__BOOT_USER_CFG_FLAG_SILENT_MODE
1.1.1.4   root      136: TC_HIDDEN_OS_CREATION_PHASE_NONE = TC__HIDDEN_OS_CREATION_PHASE_NONE
                    137: TC_HIDDEN_OS_CREATION_PHASE_CLONING = TC__HIDDEN_OS_CREATION_PHASE_CLONING
1.1.1.5   root      138: TC_HIDDEN_OS_CREATION_PHASE_WIPING = TC__HIDDEN_OS_CREATION_PHASE_WIPING
                    139: TC_HIDDEN_OS_CREATION_PHASE_WIPED = TC__HIDDEN_OS_CREATION_PHASE_WIPED
1.1       root      140: 
1.1.1.4   root      141: #else // TC_ASM_PREPROCESS
1.1       root      142: 
                    143: #define TC_HEX(N) 0x##N
1.1.1.3   root      144: #define TC_UNSIGNED(N) N##U
1.1       root      145: 
                    146: #define TC_BOOT_MEMORY_REQUIRED TC__BOOT_MEMORY_REQUIRED
                    147: #define TC_BOOT_LOADER_SEGMENT TC__BOOT_LOADER_SEGMENT
1.1.1.3   root      148: #define TC_COM_EXECUTABLE_OFFSET TC__COM_EXECUTABLE_OFFSET
1.1       root      149: #define TC_BOOT_LOADER_LOWMEM_SEGMENT TC__BOOT_LOADER_LOWMEM_SEGMENT
                    150: #define TC_BOOT_LOADER_BUFFER_SEGMENT TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.5   root      151: #define TC_BOOT_LOADER_ALT_SEGMENT TC__BOOT_LOADER_ALT_SEGMENT
1.1.1.3   root      152: #define TC_BOOT_LOADER_STACK_TOP (TC__BOOT_LOADER_STACK_TOP)
1.1       root      153: #define TC_BOOT_LOADER_AREA_SECTOR_COUNT TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.5   root      154: #define TC_BOOT_SECTOR_USER_MESSAGE_OFFSET TC__BOOT_SECTOR_USER_MESSAGE_OFFSET
                    155: #define TC_BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE
                    156: #define TC_BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET
                    157: #define TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH
                    158: #define TC_BOOT_SECTOR_VERSION_OFFSET TC__BOOT_SECTOR_VERSION_OFFSET
1.1.1.3   root      159: #define TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
                    160: #define TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
                    161: #define TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
                    162: #define TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
1.1       root      163: #define TC_BOOT_SECTOR_CONFIG_OFFSET TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.5   root      164: #define TC_BOOT_SECTOR_USER_CONFIG_OFFSET TC__BOOT_SECTOR_USER_CONFIG_OFFSET
1.1.1.3   root      165: #define TC_BOOT_LOADER_START_SECTOR TC__BOOT_LOADER_START_SECTOR
                    166: #define TC_LB_SIZE TC__LB_SIZE
                    167: #define TC_MAX_BOOT_LOADER_SECTOR_COUNT TC__MAX_BOOT_LOADER_SECTOR_COUNT
                    168: #define TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
                    169: #define TC_BOOT_LOADER_BACKUP_SECTOR_COUNT TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
                    170: #define TC_GZIP_HEADER_SIZE TC__GZIP_HEADER_SIZE
1.1.1.4   root      171: #define TC_BOOT_CFG_FLAG_AREA_SIZE TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root      172: #define TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
                    173: #define TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
                    174: #define TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1.1.4   root      175: #define TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE
1.1.1.5   root      176: #define TC_BOOT_USER_CFG_FLAG_SILENT_MODE TC__BOOT_USER_CFG_FLAG_SILENT_MODE
                    177: #define TC_BOOT_USER_CFG_FLAG_DISABLE_ESC TC__BOOT_USER_CFG_FLAG_DISABLE_ESC
1.1.1.4   root      178: #define TC_HIDDEN_OS_CREATION_PHASE_NONE TC__HIDDEN_OS_CREATION_PHASE_NONE
                    179: #define TC_HIDDEN_OS_CREATION_PHASE_CLONING TC__HIDDEN_OS_CREATION_PHASE_CLONING
1.1.1.5   root      180: #define TC_HIDDEN_OS_CREATION_PHASE_WIPING TC__HIDDEN_OS_CREATION_PHASE_WIPING
                    181: #define TC_HIDDEN_OS_CREATION_PHASE_WIPED TC__HIDDEN_OS_CREATION_PHASE_WIPED
1.1       root      182: 
1.1.1.4   root      183: #endif // TC_ASM_PREPROCESS
1.1.1.3   root      184: 
                    185: #endif // TC_HEADER_Boot_BootDefs

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.