|
|
1.1 root 1: /*
2: Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
3:
4: Governed by the TrueCrypt License 2.4 the full text of which is contained
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
! 19: # define TC__BOOT_MEMORY_REQUIRED 27
! 20: # elif defined (TC_WINDOWS_BOOT_SERPENT)
! 21: # define TC__BOOT_MEMORY_REQUIRED 32
! 22: # elif defined (TC_WINDOWS_BOOT_TWOFISH)
! 23: # define TC__BOOT_MEMORY_REQUIRED 40
! 24: # endif
! 25:
! 26: #endif
! 27:
1.1 root 28: // Windows Vista boot loader uses memory up to 8000:FFFF, disregarding the BIOS memory map and the amount
1.1.1.3 ! root 29: // of available memory at 40:0013. Therefore, the code has to be loaded at or above 9000:0000.
1.1 root 30:
31: // Modifying this value can introduce incompatibility with previous versions
1.1.1.3 ! root 32: #define TC__BOOT_LOADER_SEGMENT TC_HEX (9000)
! 33: #define TC__COM_EXECUTABLE_OFFSET TC_HEX (100)
1.1 root 34:
1.1.1.3 ! root 35: #define TC__BOOT_LOADER_LOWMEM_SEGMENT TC_HEX (2000)
! 36: #define TC__BOOT_LOADER_BUFFER_SEGMENT TC_HEX (5000)
1.1 root 37:
1.1.1.3 ! root 38: #define TC__BOOT_LOADER_STACK_TOP (TC_BOOT_MEMORY_REQUIRED * TC_UNSIGNED (1024) - 4)
! 39:
! 40: #define TC__LB_SIZE 512
1.1 root 41: #define TC__BOOT_LOADER_AREA_SECTOR_COUNT 63
42:
1.1.1.3 ! root 43: #define TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET 432
! 44: #define TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET 434
1.1 root 45: #define TC__BOOT_SECTOR_CONFIG_OFFSET 439 // Last byte reserved for boot loader
46:
1.1.1.3 ! root 47: #define TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR 2
! 48: #define TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT 4
! 49: #define TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE 32768
! 50: #define TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET (TC_COM_EXECUTABLE_OFFSET + 3072)
! 51:
! 52: #define TC__BOOT_LOADER_START_SECTOR (TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR + TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT)
! 53: #define TC__MAX_BOOT_LOADER_SECTOR_COUNT (TC_BOOT_LOADER_AREA_SECTOR_COUNT - TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT - 2)
! 54: #define TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE ((TC_BOOT_LOADER_AREA_SECTOR_COUNT - 2) * TC_LB_SIZE)
! 55:
! 56: #define TC__BOOT_LOADER_BACKUP_SECTOR_COUNT 30
! 57:
! 58: #define TC__GZIP_HEADER_SIZE 10
! 59:
! 60: #define TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE TC_HEX (02)
! 61: #define TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER TC_HEX (04)
! 62: #define TC__BOOT_CFG_FLAG_RESCUE_DISK TC_HEX (10)
! 63: #define TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER TC_HEX (20)
! 64:
! 65:
1.1 root 66: #ifdef TC_ASM_PREPROCESS
67:
68: #define TC_HEX(N) 0##N##h
1.1.1.3 ! root 69: #define TC_UNSIGNED(N) N
1.1 root 70:
71: TC_BOOT_MEMORY_REQUIRED = TC__BOOT_MEMORY_REQUIRED
72: TC_BOOT_LOADER_SEGMENT = TC__BOOT_LOADER_SEGMENT
1.1.1.3 ! root 73: TC_COM_EXECUTABLE_OFFSET = TC__COM_EXECUTABLE_OFFSET
1.1 root 74: TC_BOOT_LOADER_LOWMEM_SEGMENT = TC__BOOT_LOADER_LOWMEM_SEGMENT
1.1.1.3 ! root 75: TC_BOOT_LOADER_BUFFER_SEGMENT = TC__BOOT_LOADER_BUFFER_SEGMENT
! 76: TC_BOOT_LOADER_STACK_TOP = TC__BOOT_LOADER_STACK_TOP
! 77: TC_LB_SIZE = TC__LB_SIZE
1.1 root 78: TC_BOOT_LOADER_AREA_SECTOR_COUNT = TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.3 ! root 79: TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET = TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
! 80: TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET = TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
1.1 root 81: TC_BOOT_SECTOR_CONFIG_OFFSET = TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.3 ! root 82: TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR = TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
! 83: TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT = TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
! 84: TC_BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE = TC__BOOT_LOADER_DECOMPRESSOR_MEMORY_SIZE
! 85: TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET = TC__BOOT_LOADER_COMPRESSED_BUFFER_OFFSET
! 86: TC_BOOT_LOADER_START_SECTOR = TC__BOOT_LOADER_START_SECTOR
! 87: TC_MAX_BOOT_LOADER_SECTOR_COUNT = TC__MAX_BOOT_LOADER_SECTOR_COUNT
! 88: TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE = TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
! 89: TC_BOOT_LOADER_BACKUP_SECTOR_COUNT = TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
! 90: TC_GZIP_HEADER_SIZE = TC__GZIP_HEADER_SIZE
! 91: TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE = TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
! 92: TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER = TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
! 93: TC_BOOT_CFG_FLAG_RESCUE_DISK = TC__BOOT_CFG_FLAG_RESCUE_DISK
! 94: TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER = TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1 root 95:
96: #else
97:
98: #define TC_HEX(N) 0x##N
1.1.1.3 ! root 99: #define TC_UNSIGNED(N) N##U
1.1 root 100:
101: #define TC_BOOT_MEMORY_REQUIRED TC__BOOT_MEMORY_REQUIRED
102: #define TC_BOOT_LOADER_SEGMENT TC__BOOT_LOADER_SEGMENT
1.1.1.3 ! root 103: #define TC_COM_EXECUTABLE_OFFSET TC__COM_EXECUTABLE_OFFSET
1.1 root 104: #define TC_BOOT_LOADER_LOWMEM_SEGMENT TC__BOOT_LOADER_LOWMEM_SEGMENT
105: #define TC_BOOT_LOADER_BUFFER_SEGMENT TC__BOOT_LOADER_BUFFER_SEGMENT
1.1.1.3 ! root 106: #define TC_BOOT_LOADER_STACK_TOP (TC__BOOT_LOADER_STACK_TOP)
1.1 root 107: #define TC_BOOT_LOADER_AREA_SECTOR_COUNT TC__BOOT_LOADER_AREA_SECTOR_COUNT
1.1.1.3 ! root 108: #define TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET TC__BOOT_SECTOR_LOADER_LENGTH_OFFSET
! 109: #define TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET TC__BOOT_SECTOR_LOADER_CHECKSUM_OFFSET
! 110: #define TC_BOOT_LOADER_DECOMPRESSOR_START_SECTOR TC__BOOT_LOADER_DECOMPRESSOR_START_SECTOR
! 111: #define TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT TC__BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT
1.1 root 112: #define TC_BOOT_SECTOR_CONFIG_OFFSET TC__BOOT_SECTOR_CONFIG_OFFSET
1.1.1.3 ! root 113: #define TC_BOOT_LOADER_START_SECTOR TC__BOOT_LOADER_START_SECTOR
! 114: #define TC_LB_SIZE TC__LB_SIZE
! 115: #define TC_MAX_BOOT_LOADER_SECTOR_COUNT TC__MAX_BOOT_LOADER_SECTOR_COUNT
! 116: #define TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE TC__MAX_BOOT_LOADER_DECOMPRESSED_SIZE
! 117: #define TC_BOOT_LOADER_BACKUP_SECTOR_COUNT TC__BOOT_LOADER_BACKUP_SECTOR_COUNT
! 118: #define TC_GZIP_HEADER_SIZE TC__GZIP_HEADER_SIZE
! 119: #define TC_BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE TC__BOOT_CFG_FLAG_BACKUP_LOADER_AVAILABLE
! 120: #define TC_BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER TC__BOOT_CFG_FLAG_WINDOWS_VISTA_OR_LATER
! 121: #define TC_BOOT_CFG_FLAG_RESCUE_DISK TC__BOOT_CFG_FLAG_RESCUE_DISK
! 122: #define TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER TC__BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER
1.1 root 123:
124: #endif
1.1.1.3 ! root 125:
! 126: #endif // TC_HEADER_Boot_BootDefs
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.