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

1.1       root        1: /*
                      2:  Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
                      3: 
1.1.1.5 ! root        4:  Governed by the TrueCrypt License 2.6 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: // Windows Vista boot loader uses memory up to 8000:FFFF, disregarding the BIOS memory map and the amount
1.1.1.3   root       38: // of available memory at 40:0013. Therefore, the code has to be loaded at or above 9000:0000.
1.1       root       39: 
                     40: // Modifying this value can introduce incompatibility with previous versions
1.1.1.3   root       41: #define TC__BOOT_LOADER_SEGMENT TC_HEX (9000)
                     42: #define TC__COM_EXECUTABLE_OFFSET TC_HEX (100)
1.1       root       43: 
1.1.1.3   root       44: #define TC__BOOT_LOADER_LOWMEM_SEGMENT TC_HEX (2000)
                     45: #define TC__BOOT_LOADER_BUFFER_SEGMENT TC_HEX (5000)
1.1.1.5 ! root       46: #define TC__BOOT_LOADER_ALT_SEGMENT TC_HEX (7000)
1.1       root       47: 
1.1.1.3   root       48: #define TC__BOOT_LOADER_STACK_TOP (TC_BOOT_MEMORY_REQUIRED * TC_UNSIGNED (1024) - 4)
                     49: 
                     50: #define TC__LB_SIZE 512
1.1       root       51: #define TC__BOOT_LOADER_AREA_SECTOR_COUNT 63
                     52: 
1.1.1.5 ! root       53: #define TC__BOOT_SECTOR_VERSION_OFFSET 430
1.1.1.3   root       54: #define TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET 432
                     55: #define TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET 434
1.1.1.5 ! root       56: #define TC__BOOT_SECTOR_USER_CONFIG_OFFSET 438
1.1.1.4   root       57: #define TC__BOOT_SECTOR_CONFIG_OFFSET 439      // The last byte that is reserved for the boot loader
1.1       root       58: 
1.1.1.5 ! root       59: #define TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH 24
        !            60: #define TC__BOOT_SECTOR_USER_MESSAGE_OFFSET (TC__BOOT_SECTOR_VERSION_OFFSET - TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH)
        !            61: 
        !            62: #define TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE 2
        !            63: #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)
        !            64: 
1.1.1.3   root       65: #define TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR 2
                     66: #define TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT 4
                     67: #define TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE 32768
                     68: #define TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET (TC_COM_EXECUTABLE_OFFSET + 3072)
                     69: 
                     70: #define TC__BOOT_LOADER_START_SECTOR (TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR + TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT)
                     71: #define TC__MAX_BOOT_LOADER_SECTOR_COUNT (TC_BOOT_LOADER_AREA_SECTOR_COUNT - TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT - 2)
                     72: #define TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE ((TC_BOOT_LOADER_AREA_SECTOR_COUNT - 2) * TC_LB_SIZE)
                     73: 
                     74: #define TC__BOOT_LOADER_BACKUP_SECTOR_COUNT 30
                     75: 
                     76: #define TC__GZIP_HEADER_SIZE 10
                     77: 
1.1.1.4   root       78: #define TC__BOOT_CFG_FLAG_AREA_SIZE    1       // In bytes
                     79: 
                     80: // If you add more flags, revise TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root       81: #define TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE              TC_HEX (02)
                     82: #define TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER               TC_HEX (04)
                     83: #define TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER  TC_HEX (20)
                     84: 
1.1.1.4   root       85: #define TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE             (TC_HEX (40) + TC_HEX (80))
                     86: 
1.1.1.5 ! root       87: // Modifying the following values can introduce incompatibility with previous versions
        !            88: #define TC__BOOT_USER_CFG_FLAG_SILENT_MODE                             TC_HEX (01)
        !            89: #define TC__BOOT_USER_CFG_FLAG_DISABLE_ESC                             TC_HEX (02)
        !            90: 
1.1.1.4   root       91: // The following items are treated as a 2-bit value (apply TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE to obtain the value)
                     92: #define TC__HIDDEN_OS_CREATION_PHASE_NONE              0
                     93: #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       94: #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.
        !            95: #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       96: 
1.1.1.3   root       97: 
1.1       root       98: #ifdef TC_ASM_PREPROCESS
                     99: 
                    100: #define TC_HEX(N) 0##N##h
1.1.1.3   root      101: #define TC_UNSIGNED(N) N
1.1       root      102: 
                    103: TC_BOOT_MEMORY_REQUIRED = TC__BOOT_MEMORY_REQUIRED
                    104: TC_BOOT_LOADER_SEGMENT = TC__BOOT_LOADER_SEGMENT
1.1.1.3   root      105: TC_COM_EXECUTABLE_OFFSET = TC__COM_EXECUTABLE_OFFSET
1.1       root      106: TC_BOOT_LOADER_LOWMEM_SEGMENT = TC__BOOT_LOADER_LOWMEM_SEGMENT
1.1.1.3   root      107: TC_BOOT_LOADER_BUFFER_SEGMENT = TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.5 ! root      108: TC_BOOT_LOADER_ALT_SEGMENT = TC__BOOT_LOADER_ALT_SEGMENT
1.1.1.3   root      109: TC_BOOT_LOADER_STACK_TOP = TC__BOOT_LOADER_STACK_TOP
                    110: TC_LB_SIZE = TC__LB_SIZE
1.1       root      111: TC_BOOT_LOADER_AREA_SECTOR_COUNT = TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.3   root      112: TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET = TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
                    113: TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET = TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
1.1       root      114: TC_BOOT_SECTOR_CONFIG_OFFSET = TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.5 ! root      115: TC_BOOT_SECTOR_USER_CONFIG_OFFSET = TC__BOOT_SECTOR_USER_CONFIG_OFFSET
1.1.1.3   root      116: TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR = TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
                    117: TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT = TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
                    118: TC_BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE = TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE
                    119: TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET = TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET
                    120: TC_BOOT_LOADER_START_SECTOR = TC__BOOT_LOADER_START_SECTOR
                    121: TC_MAX_BOOT_LOADER_SECTOR_COUNT = TC__MAX_BOOT_LOADER_SECTOR_COUNT
                    122: TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE = TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
                    123: TC_BOOT_LOADER_BACKUP_SECTOR_COUNT = TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
                    124: TC_GZIP_HEADER_SIZE = TC__GZIP_HEADER_SIZE
1.1.1.4   root      125: TC_BOOT_CFG_FLAG_AREA_SIZE = TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root      126: TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE = TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
                    127: TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER = TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
                    128: TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER = TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1.1.4   root      129: TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE = TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE
1.1.1.5 ! root      130: TC_BOOT_USER_CFG_FLAG_SILENT_MODE = TC__BOOT_USER_CFG_FLAG_SILENT_MODE
1.1.1.4   root      131: TC_HIDDEN_OS_CREATION_PHASE_NONE = TC__HIDDEN_OS_CREATION_PHASE_NONE
                    132: TC_HIDDEN_OS_CREATION_PHASE_CLONING = TC__HIDDEN_OS_CREATION_PHASE_CLONING
1.1.1.5 ! root      133: TC_HIDDEN_OS_CREATION_PHASE_WIPING = TC__HIDDEN_OS_CREATION_PHASE_WIPING
        !           134: TC_HIDDEN_OS_CREATION_PHASE_WIPED = TC__HIDDEN_OS_CREATION_PHASE_WIPED
1.1       root      135: 
1.1.1.4   root      136: #else // TC_ASM_PREPROCESS
1.1       root      137: 
                    138: #define TC_HEX(N) 0x##N
1.1.1.3   root      139: #define TC_UNSIGNED(N) N##U
1.1       root      140: 
                    141: #define TC_BOOT_MEMORY_REQUIRED TC__BOOT_MEMORY_REQUIRED
                    142: #define TC_BOOT_LOADER_SEGMENT TC__BOOT_LOADER_SEGMENT
1.1.1.3   root      143: #define TC_COM_EXECUTABLE_OFFSET TC__COM_EXECUTABLE_OFFSET
1.1       root      144: #define TC_BOOT_LOADER_LOWMEM_SEGMENT TC__BOOT_LOADER_LOWMEM_SEGMENT
                    145: #define TC_BOOT_LOADER_BUFFER_SEGMENT TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.5 ! root      146: #define TC_BOOT_LOADER_ALT_SEGMENT TC__BOOT_LOADER_ALT_SEGMENT
1.1.1.3   root      147: #define TC_BOOT_LOADER_STACK_TOP (TC__BOOT_LOADER_STACK_TOP)
1.1       root      148: #define TC_BOOT_LOADER_AREA_SECTOR_COUNT TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.5 ! root      149: #define TC_BOOT_SECTOR_USER_MESSAGE_OFFSET TC__BOOT_SECTOR_USER_MESSAGE_OFFSET
        !           150: #define TC_BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_SIZE
        !           151: #define TC_BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET TC__BOOT_SECTOR_OUTER_VOLUME_BAK_HEADER_CRC_OFFSET
        !           152: #define TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH TC__BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH
        !           153: #define TC_BOOT_SECTOR_VERSION_OFFSET TC__BOOT_SECTOR_VERSION_OFFSET
1.1.1.3   root      154: #define TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
                    155: #define TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
                    156: #define TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
                    157: #define TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
1.1       root      158: #define TC_BOOT_SECTOR_CONFIG_OFFSET TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.5 ! root      159: #define TC_BOOT_SECTOR_USER_CONFIG_OFFSET TC__BOOT_SECTOR_USER_CONFIG_OFFSET
1.1.1.3   root      160: #define TC_BOOT_LOADER_START_SECTOR TC__BOOT_LOADER_START_SECTOR
                    161: #define TC_LB_SIZE TC__LB_SIZE
                    162: #define TC_MAX_BOOT_LOADER_SECTOR_COUNT TC__MAX_BOOT_LOADER_SECTOR_COUNT
                    163: #define TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
                    164: #define TC_BOOT_LOADER_BACKUP_SECTOR_COUNT TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
                    165: #define TC_GZIP_HEADER_SIZE TC__GZIP_HEADER_SIZE
1.1.1.4   root      166: #define TC_BOOT_CFG_FLAG_AREA_SIZE TC__BOOT_CFG_FLAG_AREA_SIZE
1.1.1.3   root      167: #define TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
                    168: #define TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
                    169: #define TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1.1.4   root      170: #define TC_BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE TC__BOOT_CFG_MASK_HIDDEN_OS_CREATION_PHASE
1.1.1.5 ! root      171: #define TC_BOOT_USER_CFG_FLAG_SILENT_MODE TC__BOOT_USER_CFG_FLAG_SILENT_MODE
        !           172: #define TC_BOOT_USER_CFG_FLAG_DISABLE_ESC TC__BOOT_USER_CFG_FLAG_DISABLE_ESC
1.1.1.4   root      173: #define TC_HIDDEN_OS_CREATION_PHASE_NONE TC__HIDDEN_OS_CREATION_PHASE_NONE
                    174: #define TC_HIDDEN_OS_CREATION_PHASE_CLONING TC__HIDDEN_OS_CREATION_PHASE_CLONING
1.1.1.5 ! root      175: #define TC_HIDDEN_OS_CREATION_PHASE_WIPING TC__HIDDEN_OS_CREATION_PHASE_WIPING
        !           176: #define TC_HIDDEN_OS_CREATION_PHASE_WIPED TC__HIDDEN_OS_CREATION_PHASE_WIPED
1.1       root      177: 
1.1.1.4   root      178: #endif // TC_ASM_PREPROCESS
1.1.1.3   root      179: 
                    180: #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.