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

1.1       root        1: /*
1.1.1.9   root        2:  Copyright (c) 2008-2009 TrueCrypt Developers Association. All rights reserved.
1.1       root        3: 
1.1.1.10  root        4:  Governed by the TrueCrypt License 3.0 the full text of which is contained in
1.1.1.9   root        5:  the file License.txt included in TrueCrypt binary and source code distribution
                      6:  packages.
1.1       root        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.10  root       20: #                      define TC__BOOT_MEMORY_REQUIRED 30
1.1.1.4   root       21: #              else
1.1.1.10  root       22: #                      define TC__BOOT_MEMORY_REQUIRED 28
1.1.1.4   root       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.11! root       38: #define TC__BOOT_LOADER_SEGMENT                        TC_HEX (9000)   // Some buggy BIOS routines fail if CS bits 0-10 are not zero
1.1.1.6   root       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)
1.1.1.10  root       87: #define TC__BOOT_CFG_FLAG_RESCUE_DISABLE_HW_ENCRYPTION TC_HEX (10)
1.1.1.3   root       88: #define TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER  TC_HEX (20)
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)
1.1.1.10  root       94: #define TC__BOOT_USER_CFG_FLAG_DISABLE_HW_ENCRYPTION   TC_HEX (04)
1.1.1.5   root       95: 
1.1.1.4   root       96: // The following items are treated as a 2-bit value (apply TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE to obtain the value)
                     97: #define TC__HIDDEN_OS_CREATION_PHASE_NONE              0
                     98: #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       99: #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.
                    100: #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      101: 
1.1.1.3   root      102: 
1.1       root      103: #ifdef TC_ASM_PREPROCESS
                    104: 
                    105: #define TC_HEX(N) 0##N##h
1.1.1.3   root      106: #define TC_UNSIGNED(N) N
1.1       root      107: 
                    108: TC_BOOT_MEMORY_REQUIRED = TC__BOOT_MEMORY_REQUIRED
                    109: TC_BOOT_LOADER_SEGMENT = TC__BOOT_LOADER_SEGMENT
1.1.1.6   root      110: TC_BOOT_LOADER_SEGMENT_LOW = TC__BOOT_LOADER_SEGMENT_LOW
1.1.1.3   root      111: TC_COM_EXECUTABLE_OFFSET = TC__COM_EXECUTABLE_OFFSET
1.1       root      112: TC_BOOT_LOADER_LOWMEM_SEGMENT = TC__BOOT_LOADER_LOWMEM_SEGMENT
1.1.1.3   root      113: TC_BOOT_LOADER_BUFFER_SEGMENT = TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.5   root      114: TC_BOOT_LOADER_ALT_SEGMENT = TC__BOOT_LOADER_ALT_SEGMENT
1.1.1.3   root      115: TC_BOOT_LOADER_STACK_TOP = TC__BOOT_LOADER_STACK_TOP
                    116: TC_LB_SIZE = TC__LB_SIZE
1.1       root      117: TC_BOOT_LOADER_AREA_SECTOR_COUNT = TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.3   root      118: TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET = TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
                    119: TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET = TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
1.1       root      120: TC_BOOT_SECTOR_CONFIG_OFFSET = TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.5   root      121: TC_BOOT_SECTOR_USER_CONFIG_OFFSET = TC__BOOT_SECTOR_USER_CONFIG_OFFSET
1.1.1.3   root      122: TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR = TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
                    123: TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT = TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
                    124: TC_BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE = TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE
                    125: TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET = TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET
                    126: TC_BOOT_LOADER_START_SECTOR = TC__BOOT_LOADER_START_SECTOR
                    127: TC_MAX_BOOT_LOADER_SECTOR_COUNT = TC__MAX_BOOT_LOADER_SECTOR_COUNT
                    128: TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE = TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
                    129: TC_BOOT_LOADER_BACKUP_SECTOR_COUNT = TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
                    130: TC_GZIP_HEADER_SIZE = TC__GZIP_HEADER_SIZE
1.1.1.4   root      131: TC_BOOT_CFG_FLAG_AREA_SIZE = TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root      132: TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE = TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
                    133: TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER = TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
                    134: TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER = TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1.1.4   root      135: TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE = TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE
1.1.1.5   root      136: TC_BOOT_USER_CFG_FLAG_SILENT_MODE = TC__BOOT_USER_CFG_FLAG_SILENT_MODE
1.1.1.4   root      137: TC_HIDDEN_OS_CREATION_PHASE_NONE = TC__HIDDEN_OS_CREATION_PHASE_NONE
                    138: TC_HIDDEN_OS_CREATION_PHASE_CLONING = TC__HIDDEN_OS_CREATION_PHASE_CLONING
1.1.1.5   root      139: TC_HIDDEN_OS_CREATION_PHASE_WIPING = TC__HIDDEN_OS_CREATION_PHASE_WIPING
                    140: TC_HIDDEN_OS_CREATION_PHASE_WIPED = TC__HIDDEN_OS_CREATION_PHASE_WIPED
1.1       root      141: 
1.1.1.4   root      142: #else // TC_ASM_PREPROCESS
1.1       root      143: 
                    144: #define TC_HEX(N) 0x##N
1.1.1.3   root      145: #define TC_UNSIGNED(N) N##U
1.1       root      146: 
                    147: #define TC_BOOT_MEMORY_REQUIRED TC__BOOT_MEMORY_REQUIRED
                    148: #define TC_BOOT_LOADER_SEGMENT TC__BOOT_LOADER_SEGMENT
1.1.1.3   root      149: #define TC_COM_EXECUTABLE_OFFSET TC__COM_EXECUTABLE_OFFSET
1.1       root      150: #define TC_BOOT_LOADER_LOWMEM_SEGMENT TC__BOOT_LOADER_LOWMEM_SEGMENT
                    151: #define TC_BOOT_LOADER_BUFFER_SEGMENT TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.5   root      152: #define TC_BOOT_LOADER_ALT_SEGMENT TC__BOOT_LOADER_ALT_SEGMENT
1.1.1.3   root      153: #define TC_BOOT_LOADER_STACK_TOP (TC__BOOT_LOADER_STACK_TOP)
1.1       root      154: #define TC_BOOT_LOADER_AREA_SECTOR_COUNT TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.5   root      155: #define TC_BOOT_SECTOR_USER_MESSAGE_OFFSET TC__BOOT_SECTOR_USER_MESSAGE_OFFSET
                    156: #define TC_BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE
                    157: #define TC_BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET
                    158: #define TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH
                    159: #define TC_BOOT_SECTOR_VERSION_OFFSET TC__BOOT_SECTOR_VERSION_OFFSET
1.1.1.3   root      160: #define TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
                    161: #define TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
                    162: #define TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
                    163: #define TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
1.1       root      164: #define TC_BOOT_SECTOR_CONFIG_OFFSET TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.5   root      165: #define TC_BOOT_SECTOR_USER_CONFIG_OFFSET TC__BOOT_SECTOR_USER_CONFIG_OFFSET
1.1.1.3   root      166: #define TC_BOOT_LOADER_START_SECTOR TC__BOOT_LOADER_START_SECTOR
                    167: #define TC_LB_SIZE TC__LB_SIZE
                    168: #define TC_MAX_BOOT_LOADER_SECTOR_COUNT TC__MAX_BOOT_LOADER_SECTOR_COUNT
                    169: #define TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
                    170: #define TC_BOOT_LOADER_BACKUP_SECTOR_COUNT TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
                    171: #define TC_GZIP_HEADER_SIZE TC__GZIP_HEADER_SIZE
1.1.1.4   root      172: #define TC_BOOT_CFG_FLAG_AREA_SIZE TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root      173: #define TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
                    174: #define TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
                    175: #define TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1.1.10  root      176: #define TC_BOOT_CFG_FLAG_RESCUE_DISABLE_HW_ENCRYPTION TC__BOOT_CFG_FLAG_RESCUE_DISABLE_HW_ENCRYPTION
1.1.1.4   root      177: #define TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE
1.1.1.5   root      178: #define TC_BOOT_USER_CFG_FLAG_SILENT_MODE TC__BOOT_USER_CFG_FLAG_SILENT_MODE
                    179: #define TC_BOOT_USER_CFG_FLAG_DISABLE_ESC TC__BOOT_USER_CFG_FLAG_DISABLE_ESC
1.1.1.10  root      180: #define TC_BOOT_USER_CFG_FLAG_DISABLE_HW_ENCRYPTION TC__BOOT_USER_CFG_FLAG_DISABLE_HW_ENCRYPTION
1.1.1.4   root      181: #define TC_HIDDEN_OS_CREATION_PHASE_NONE TC__HIDDEN_OS_CREATION_PHASE_NONE
                    182: #define TC_HIDDEN_OS_CREATION_PHASE_CLONING TC__HIDDEN_OS_CREATION_PHASE_CLONING
1.1.1.5   root      183: #define TC_HIDDEN_OS_CREATION_PHASE_WIPING TC__HIDDEN_OS_CREATION_PHASE_WIPING
                    184: #define TC_HIDDEN_OS_CREATION_PHASE_WIPED TC__HIDDEN_OS_CREATION_PHASE_WIPED
1.1       root      185: 
1.1.1.4   root      186: #endif // TC_ASM_PREPROCESS
1.1.1.3   root      187: 
                    188: #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.