/* * ATA-over-Ethernet */ enum { ACata, ACconfig, }; enum { AQCread, AQCtest, AQCprefix, AQCset, AQCfset, }; enum { AEcmd = 1, AEarg, AEdev, AEcfg, AEver, }; enum { Aoetype = 0x88a2, Aoever = 1, AFerr = 1<<2, AFrsp = 1<<3, AAFwrite= 1, AAFext = 1<<6, }; enum { Crd = 0x20, Crdext = 0x24, Cwr = 0x30, Cwrext = 0x34, Cid = 0xec, }; 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 { Aoehdr; uchar aflag; uchar errfeat; uchar scnt; uchar cmdstat; uchar lba[6]; uchar res[2]; } Aoeata; typedef struct { Aoehdr; uchar bufcnt[2]; uchar fwver[2]; uchar scnt; uchar verccmd; uchar cslen[2]; } Aoeqc; extern char Echange[]; extern char Enotup[];