]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/port/aoe.h
pc kernel: fix wrong simd exception mask (fixes go bootstrap)
[plan9front.git] / sys / src / 9 / port / aoe.h
1 enum {
2         ACata,
3         ACconfig,
4         ACmask,
5         ACres,
6 };
7
8 enum {
9         AQCread,
10         AQCtest,
11         AQCprefix,
12         AQCset,
13         AQCfset,
14 };
15
16 enum {
17         AEunk,
18         AEcmd,                          /* bad command */
19         AEarg,                          /* bad argument */
20         AEoff,                          /* device offline */
21         AEcfg,                          /* config string already set */
22         AEver,                          /* unsupported version */
23         AEres,                          /* target reserved */
24 };
25
26 enum {
27         /* mask commands */
28         Mread           = 0,
29         Medit,
30
31         /* mask directives */
32         MDnop           = 0,
33         MDadd,
34         MDdel,
35
36         /* mask errors */
37         MEunk           = 1,
38         MEbad,
39         MEfull,
40
41         /* reserve / release */
42         Rrread          = 0,
43         Rrset,
44         Rrforce,
45 };
46
47 enum {
48         Aoetype         = 0x88a2,
49         Aoesectsz       = 512,
50         Aoemaxcfg       = 1024,
51
52         Aoehsz          = 24,
53         Aoeatasz        = 12,
54         Aoecfgsz                = 8,
55         Aoerrsz         = 2,
56         Aoemsz          = 4,
57         Aoemdsz = 8,
58
59         Aoever          = 1,
60
61         AFerr           = 1<<2,
62         AFrsp           = 1<<3,
63
64         AAFwrite        = 1,
65         AAFext          = 1<<6,
66 };
67
68 typedef struct  Aoehdr  Aoehdr;
69 typedef struct  Aoeata  Aoeata;
70 typedef struct  Aoecfg  Aoecfg;
71 typedef struct  Aoemd   Aoemd;
72 typedef struct  Aoem    Aoem;
73 typedef struct  Aoerr   Aoerr;
74
75 struct Aoehdr {
76         uchar   dst[Eaddrlen];
77         uchar   src[Eaddrlen];
78         uchar   type[2];
79         uchar   verflag;
80         uchar   error;
81         uchar   major[2];
82         uchar   minor;
83         uchar   cmd;
84         uchar   tag[4];
85 };
86
87 struct Aoeata {
88         uchar   aflag;
89         uchar   errfeat;
90         uchar   scnt;
91         uchar   cmdstat;
92         uchar   lba[6];
93         uchar   res[2];
94 };
95
96 struct Aoecfg {
97         uchar   bufcnt[2];
98         uchar   fwver[2];
99         uchar   scnt;
100         uchar   verccmd;
101         uchar   cslen[2];
102 };
103
104 struct Aoemd {
105         uchar   dres;
106         uchar   dcmd;
107         uchar   ea[Eaddrlen];
108 };
109
110 struct Aoem {
111         uchar   mres;
112         uchar   mcmd;
113         uchar   merr;
114         uchar   mcnt;
115 };
116
117 typedef struct Aoerr {
118         uchar   rcmd;
119         uchar   nea;
120         uchar   ea0[];
121 };
122
123 extern char Echange[];
124 extern char Enotup[];