Statistics
| Branch: | Revision:

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
};