118 lines
1.4 KiB
C
118 lines
1.4 KiB
C
enum {
|
|
ACata,
|
|
ACconfig,
|
|
ACmask,
|
|
ACres,
|
|
};
|
|
|
|
enum {
|
|
AQCread,
|
|
AQCtest,
|
|
AQCprefix,
|
|
AQCset,
|
|
AQCfset,
|
|
};
|
|
|
|
enum {
|
|
AEunk,
|
|
AEcmd, /* bad command */
|
|
AEarg, /* bad argument */
|
|
AEoff, /* device offline */
|
|
AEcfg, /* config string already set */
|
|
AEver, /* unsupported version */
|
|
AEres, /* target reserved */
|
|
};
|
|
|
|
enum {
|
|
/* mask commands */
|
|
Mread = 0,
|
|
Medit,
|
|
|
|
/* mask directives */
|
|
MDnop = 0,
|
|
MDadd,
|
|
MDdel,
|
|
|
|
/* mask errors */
|
|
MEunk = 1,
|
|
MEbad,
|
|
MEfull,
|
|
|
|
/* reserve / release */
|
|
Rrread = 0,
|
|
Rrset,
|
|
Rrforce,
|
|
};
|
|
|
|
enum {
|
|
Aoetype = 0x88a2,
|
|
Aoesectsz = 512,
|
|
Aoemaxcfg = 1024,
|
|
|
|
Aoehsz = 24,
|
|
Aoeatasz = 12,
|
|
Aoecfgsz = 8,
|
|
Aoerrsz = 2,
|
|
Aoemsz = 4,
|
|
Aoemdsz = 8,
|
|
|
|
Aoever = 1,
|
|
|
|
AFerr = 1<<2,
|
|
AFrsp = 1<<3,
|
|
|
|
AAFwrite = 1,
|
|
AAFext = 1<<6,
|
|
};
|
|
|
|
typedef struct {
|
|
uchar dst[Eaddrlen];
|
|
uchar src[Eaddrlen];
|
|
uchar type[2];
|
|
uchar verflag;
|
|
uchar error;
|
|
uchar major[2];
|
|
uchar minor;
|
|
uchar cmd;
|
|
uchar tag[4];
|
|
} Aoehdr;
|
|
|
|
typedef struct {
|
|
uchar aflag;
|
|
uchar errfeat;
|
|
uchar scnt;
|
|
uchar cmdstat;
|
|
uchar lba[6];
|
|
uchar res[2];
|
|
} Aoeata;
|
|
|
|
typedef struct {
|
|
uchar bufcnt[2];
|
|
uchar fwver[2];
|
|
uchar scnt;
|
|
uchar verccmd;
|
|
uchar cslen[2];
|
|
} Aoecfg;
|
|
|
|
typedef struct {
|
|
uchar dres;
|
|
uchar dcmd;
|
|
uchar ea[Eaddrlen];
|
|
} Aoemd;
|
|
|
|
typedef struct {
|
|
uchar mres;
|
|
uchar mcmd;
|
|
uchar merr;
|
|
uchar mcnt;
|
|
} Aoem;
|
|
|
|
typedef struct {
|
|
uchar rcmd;
|
|
uchar nea;
|
|
uchar ea0[];
|
|
} Aoerr;
|
|
|
|
extern char Echange[];
|
|
extern char Enotup[];
|