root / vmdk.h @ 023fe10d
History | View | Annotate | Download (1.4 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 | char magic[4]; /* COWD */ |
36 | 47cea614 | bellard | uint32_t version; |
37 | 47cea614 | bellard | uint32_t flags; |
38 | 47cea614 | bellard | uint32_t disk_sectors; |
39 | 47cea614 | bellard | uint32_t granularity; |
40 | 47cea614 | bellard | uint32_t l1dir_sector; |
41 | 47cea614 | bellard | uint32_t l1dir_size; |
42 | 47cea614 | bellard | uint32_t file_sectors; |
43 | 47cea614 | bellard | uint32_t cylinders; |
44 | 47cea614 | bellard | uint32_t heads; |
45 | 47cea614 | bellard | uint32_t sectors_per_track; |
46 | 47cea614 | bellard | }; |
47 | 47cea614 | bellard | |
48 | 47cea614 | bellard | struct cowdisk_header2
|
49 | 47cea614 | bellard | { |
50 | 47cea614 | bellard | uint32_t parent_ts; |
51 | 47cea614 | bellard | uint32_t timestamp; |
52 | 47cea614 | bellard | }; |