Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / fs / grubfs / vstafs.h
1 /*
2  *  GRUB  --  GRand Unified Bootloader
3  *  Copyright (C) 2001   Free Software Foundation, Inc.
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
18  *  MA 02110-1301, USA.
19  */
20
21
22 #ifndef VSTAFS_H
23 #define VSTAFS_H        1
24
25
26 #define LINE                    16
27 #define BLOCK_SIZE              512
28 #define VSTAFS_START_DATA       320
29
30 struct bootrecord
31 {
32   unsigned char flag;
33   unsigned char s_sector;
34   unsigned char s_head;
35   unsigned char s_cylinder;
36   unsigned char p_type;
37   unsigned char e_sector;
38   unsigned char e_head;
39   unsigned char e_cylinder;
40   unsigned long start_lba;
41   unsigned long nr_sector_lba;
42 };
43
44 struct alloc
45 {
46   unsigned long a_start;
47   unsigned long a_len;
48 };
49
50 struct first_sector
51 {
52   unsigned long fs_magic;
53   unsigned long fs_size;
54   unsigned long fs_extsize;
55   unsigned long fs_free;
56   struct  alloc fs_freesecs[0];
57 };
58
59 struct prot
60 {
61   unsigned char len;
62   unsigned char pdefault;
63   unsigned char id[7];
64   unsigned char bits[7];
65 };
66
67 struct fs_file
68 {
69   unsigned long prev;
70   unsigned long rev;
71   unsigned long len;
72   unsigned short type;
73   unsigned short nlink;
74   struct prot pprot;
75   unsigned int owner;
76   unsigned int extents;
77   struct alloc blocks[32];
78   long fs_ctime, fs_mtime; /* it is not lon but time_t */
79   char pad[16];
80   char data[0];
81 };
82
83 struct dir_entry
84 {
85   char name[28];
86   unsigned long start;
87 };
88
89 #endif /* ! VSTAFS_H */