root / vmdk.h @ dc5d0b3d
History | View | Annotate | Download (1.8 kB)
1 | 47cea614 | bellard | /*
|
---|---|---|---|
2 | 47cea614 | bellard | Copyright (C) Matthew Chapman 2003
|
3 | 47cea614 | bellard | |
4 | 47cea614 | bellard | This program is free software; you can redistribute it and/or modify
|
5 | 47cea614 | bellard | it under the terms of the GNU General Public License as published by
|
6 | 47cea614 | bellard | the Free Software Foundation; either version 2 of the License, or
|
7 | 47cea614 | bellard | (at your option) any later version.
|
8 | 47cea614 | bellard | |
9 | 47cea614 | bellard | This program is distributed in the hope that it will be useful,
|
10 | 47cea614 | bellard | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11 | 47cea614 | bellard | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12 | 47cea614 | bellard | GNU General Public License for more details.
|
13 | 47cea614 | bellard | |
14 | 47cea614 | bellard | You should have received a copy of the GNU General Public License
|
15 | 47cea614 | bellard | along with this program; if not, write to the Free Software
|
16 | 47cea614 | bellard | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
17 | 47cea614 | bellard | */
|
18 | 47cea614 | bellard | |
19 | 47cea614 | bellard | #define SECTOR_BITS 9 |
20 | 47cea614 | bellard | #define SECTOR_SIZE (1 << SECTOR_BITS) |
21 | 47cea614 | bellard | #define SECTOR_MASK (SECTOR_SIZE - 1) |
22 | 47cea614 | bellard | |
23 | 47cea614 | bellard | #define L1_BITS (SECTOR_BITS - 3) |
24 | 47cea614 | bellard | #define L1_SIZE (1 << L1_BITS) |
25 | 47cea614 | bellard | #define L1_MASK (L1_SIZE - 1) |
26 | 47cea614 | bellard | |
27 | 47cea614 | bellard | #define L2_BITS SECTOR_BITS
|
28 | 47cea614 | bellard | #define L2_SIZE (1 << L2_BITS) |
29 | 47cea614 | bellard | #define L2_MASK (L2_SIZE - 1) |
30 | 47cea614 | bellard | |
31 | 47cea614 | bellard | #define MIN(x,y) (((x) < (y)) ? (x) : (y))
|
32 | 47cea614 | bellard | |
33 | 47cea614 | bellard | struct cowdisk_header
|
34 | 47cea614 | bellard | { |
35 | 47cea614 | bellard | uint32_t version; |
36 | 47cea614 | bellard | uint32_t flags; |
37 | 47cea614 | bellard | uint32_t disk_sectors; |
38 | 47cea614 | bellard | uint32_t granularity; |
39 | 05efe46e | bellard | uint32_t l1dir_offset; |
40 | 47cea614 | bellard | uint32_t l1dir_size; |
41 | 47cea614 | bellard | uint32_t file_sectors; |
42 | 47cea614 | bellard | uint32_t cylinders; |
43 | 47cea614 | bellard | uint32_t heads; |
44 | 47cea614 | bellard | uint32_t sectors_per_track; |
45 | 47cea614 | bellard | }; |
46 | 47cea614 | bellard | |
47 | 47cea614 | bellard | struct cowdisk_header2
|
48 | 47cea614 | bellard | { |
49 | 47cea614 | bellard | uint32_t parent_ts; |
50 | 47cea614 | bellard | uint32_t timestamp; |
51 | 47cea614 | bellard | }; |
52 | 05efe46e | bellard | |
53 | 05efe46e | bellard | /* based on vdk 3.1 10-11-2003 by Ken Kato */
|
54 | 05efe46e | bellard | |
55 | 05efe46e | bellard | struct vmdisk_header
|
56 | 05efe46e | bellard | { |
57 | 05efe46e | bellard | uint32_t version; |
58 | 05efe46e | bellard | uint32_t flags; |
59 | 05efe46e | bellard | |
60 | 05efe46e | bellard | int64_t capacity; |
61 | 05efe46e | bellard | int64_t granularity; |
62 | 05efe46e | bellard | int64_t desc_offset; |
63 | 05efe46e | bellard | int64_t desc_size; |
64 | 05efe46e | bellard | int32_t num_gtes_per_gte; |
65 | 05efe46e | bellard | int64_t rgd_offset; |
66 | 05efe46e | bellard | int64_t gd_offset; |
67 | 05efe46e | bellard | int64_t grain_offset; |
68 | 05efe46e | bellard | |
69 | 05efe46e | bellard | char filler[1]; |
70 | 05efe46e | bellard | |
71 | 05efe46e | bellard | char check_bytes[4]; |
72 | 05efe46e | bellard | }; |