]> git.lizzy.rs Git - plan9front.git/blob - sys/include/bootexec.h
stdio: fix warnings, make code more standard
[plan9front.git] / sys / include / bootexec.h
1 #pragma pack on
2
3 struct coffsect
4 {
5         char    name[8];
6         ulong   phys;
7         ulong   virt;
8         ulong   size;
9         ulong   fptr;
10         ulong   fptrreloc;
11         ulong   fptrlineno;
12         ulong   nrelocnlineno;
13         ulong   flags;
14 };
15
16 /*
17  * proprietary exec headers, needed to bootstrap various machines
18  */
19 struct mipsexec
20 {
21         short   mmagic;         /* (0x160) mips magic number */
22         short   nscns;          /* (unused) number of sections */
23         long    timdat;         /* (unused) time & date stamp */
24         long    symptr;         /* offset to symbol table */
25         long    nsyms;          /* size of symbol table */
26         short   opthdr;         /* (0x38) sizeof(optional hdr) */
27         short   pcszs;          /* flags */
28         short   amagic;         /* see above */
29         short   vstamp;         /* version stamp */
30         long    tsize;          /* text size in bytes */
31         long    dsize;          /* initialized data */
32         long    bsize;          /* uninitialized data */
33         long    mentry;         /* entry pt.                            */
34         long    text_start;     /* base of text used for this file      */
35         long    data_start;     /* base of data used for this file      */
36         long    bss_start;      /* base of bss used for this file       */
37         long    gprmask;        /* general purpose register mask        */
38 union{
39         long    cprmask[4];     /* co-processor register masks          */
40         long    pcsize;
41 };
42         long    gp_value;       /* the gp value used for this object    */
43 };
44
45 struct mips4kexec
46 {
47         struct mipsexec h;
48         struct coffsect itexts;
49         struct coffsect idatas;
50         struct coffsect ibsss;
51 };
52
53 struct sparcexec
54 {
55         short   sjunk;          /* dynamic bit and version number */
56         short   smagic;         /* 0407 */
57         ulong   stext;
58         ulong   sdata;
59         ulong   sbss;
60         ulong   ssyms;
61         ulong   sentry;
62         ulong   strsize;
63         ulong   sdrsize;
64 };
65
66 struct nextexec
67 {
68         struct  nexthdr{
69                 ulong   nmagic;
70                 ulong   ncputype;
71                 ulong   ncpusubtype;
72                 ulong   nfiletype;
73                 ulong   ncmds;
74                 ulong   nsizeofcmds;
75                 ulong   nflags;
76         };
77
78         struct nextcmd{
79                 ulong   cmd;
80                 ulong   cmdsize;
81                 uchar   segname[16];
82                 ulong   vmaddr;
83                 ulong   vmsize;
84                 ulong   fileoff;
85                 ulong   filesize;
86                 ulong   maxprot;
87                 ulong   initprot;
88                 ulong   nsects;
89                 ulong   flags;
90         }textc;
91         struct nextsect{
92                 char    sectname[16];
93                 char    segname[16];
94                 ulong   addr;
95                 ulong   size;
96                 ulong   offset;
97                 ulong   align;
98                 ulong   reloff;
99                 ulong   nreloc;
100                 ulong   flags;
101                 ulong   reserved1;
102                 ulong   reserved2;
103         }texts;
104         struct nextcmd  datac;
105         struct nextsect datas;
106         struct nextsect bsss;
107         struct nextsym{
108                 ulong   cmd;
109                 ulong   cmdsize;
110                 ulong   symoff;
111                 ulong   nsyms;
112                 ulong   spoff;
113                 ulong   pcoff;
114         }symc;
115 };
116
117 struct i386exec
118 {
119         struct  i386coff{
120                 ulong   isectmagic;
121                 ulong   itime;
122                 ulong   isyms;
123                 ulong   insyms;
124                 ulong   iflags;
125         };
126         struct  i386hdr{
127                 ulong   imagic;
128                 ulong   itextsize;
129                 ulong   idatasize;
130                 ulong   ibsssize;
131                 ulong   ientry;
132                 ulong   itextstart;
133                 ulong   idatastart;
134         };
135         struct coffsect itexts;
136         struct coffsect idatas;
137         struct coffsect ibsss;
138         struct coffsect icomments;
139 };
140
141 #pragma pack off