Merge little and big endian case.
This commit is contained in:
parent
e15ccd7613
commit
14df48f995
@ -40,6 +40,7 @@
|
||||
#define DEV_DEF 0
|
||||
#define DEV_DV 2
|
||||
|
||||
#if 0
|
||||
struct dv_data{
|
||||
u_int32_t n_write;
|
||||
u_int32_t a_write;
|
||||
@ -60,6 +61,7 @@ struct dv_data_req_t {
|
||||
unsigned long len;
|
||||
unsigned long off;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct fw_isochreq {
|
||||
unsigned char ch:6,
|
||||
@ -74,7 +76,7 @@ struct fw_isobufreq {
|
||||
} tx, rx;
|
||||
};
|
||||
|
||||
struct fw_addr{
|
||||
struct fw_addr {
|
||||
unsigned long hi;
|
||||
unsigned long lo;
|
||||
};
|
||||
@ -84,7 +86,7 @@ struct fw_asybindreq {
|
||||
unsigned long len;
|
||||
};
|
||||
|
||||
struct fw_reg_req_t{
|
||||
struct fw_reg_req_t {
|
||||
unsigned long addr;
|
||||
unsigned long data;
|
||||
};
|
||||
@ -125,12 +127,15 @@ struct fw_reg_req_t{
|
||||
|
||||
#define FWP_TL_VALID (1 << 7)
|
||||
|
||||
struct fw_isohdr{
|
||||
struct fw_isohdr {
|
||||
u_int32_t hdr[1];
|
||||
};
|
||||
struct fw_asyhdr{
|
||||
|
||||
struct fw_asyhdr {
|
||||
u_int32_t hdr[4];
|
||||
};
|
||||
|
||||
#if 0
|
||||
#define FWPHYSIDSUBS(SID) (((SID) >> 23) & 1)
|
||||
#define FWPHYSIDNODE(SID) (((SID) >> 24) & 0x3f)
|
||||
#define FWPHYSIDLINK(SID) (((SID) >> 22) & 1)
|
||||
@ -153,296 +158,159 @@ struct fw_asyhdr{
|
||||
#define FWPHYSIDPF(SID) (((SID) >> 6) & 0x3)
|
||||
#define FWPHYSIDPG(SID) (((SID) >> 4) & 0x3)
|
||||
#define FWPHYSIDPH(SID) (((SID) >> 2) & 0x3)
|
||||
struct fw_pkt{
|
||||
#if BYTE_ORDER == LITTLE_ENDIAN
|
||||
union{
|
||||
u_int32_t ld[0];
|
||||
struct {
|
||||
u_int32_t :28,
|
||||
tcode:4;
|
||||
}common;
|
||||
struct {
|
||||
u_int16_t len;
|
||||
u_int8_t chtag;
|
||||
u_int8_t sy:4,
|
||||
tcode:4;
|
||||
u_int32_t payload[0];
|
||||
}stream;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
}hdr;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
}rreqq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t res1:4,
|
||||
rtcode:4,
|
||||
res2:8;
|
||||
u_int32_t res3;
|
||||
}wres;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode:16;
|
||||
}rreqb;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi:16;
|
||||
u_int32_t dest_lo;
|
||||
u_int32_t data;
|
||||
}wreqq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int32_t data;
|
||||
}cyc;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t res1:4,
|
||||
rtcode:4,
|
||||
res2:8;
|
||||
u_int32_t res3;
|
||||
u_int32_t data;
|
||||
}rresq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
u_int32_t payload[0];
|
||||
}wreqb;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
#define FW_LREQ_MSKSWAP 1
|
||||
#define FW_LREQ_CMPSWAP 2
|
||||
#define FW_LREQ_FTADD 3
|
||||
#define FW_LREQ_LTADD 4
|
||||
#define FW_LREQ_BDADD 5
|
||||
#define FW_LREQ_WRADD 6
|
||||
u_int32_t payload[0];
|
||||
}lreq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t res1:4,
|
||||
rtcode:4,
|
||||
res2:8;
|
||||
u_int32_t res3;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
u_int32_t payload[0];
|
||||
}rresb;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t res1:4,
|
||||
rtcode:4,
|
||||
res2:8;
|
||||
u_int32_t res3;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
u_int32_t payload[0];
|
||||
}lres;
|
||||
}mode;
|
||||
#else
|
||||
union{
|
||||
u_int32_t ld[0];
|
||||
struct {
|
||||
u_int32_t :4,
|
||||
tcode:4,
|
||||
:24;
|
||||
}common;
|
||||
struct {
|
||||
u_int8_t sy:4,
|
||||
tcode:4;
|
||||
u_int8_t chtag;
|
||||
u_int16_t len;
|
||||
u_int32_t payload[0];
|
||||
}stream;
|
||||
struct {
|
||||
u_int32_t pri:4,
|
||||
tcode:4,
|
||||
tlrt:8,
|
||||
dst:16;
|
||||
u_int32_t :16,
|
||||
src:16;
|
||||
}hdr;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t dest_hi;
|
||||
u_int16_t src;
|
||||
u_int32_t dest_lo;
|
||||
}rreqq;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t res1:12,
|
||||
rtcode:4;
|
||||
u_int16_t src;
|
||||
u_int32_t res3;
|
||||
}wres;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t dest_hi;
|
||||
u_int16_t src;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t extcode:16;
|
||||
u_int16_t len;
|
||||
}rreqb;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t dest_hi:16;
|
||||
u_int16_t src;
|
||||
u_int32_t dest_lo;
|
||||
u_int32_t data;
|
||||
}wreqq;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t dest_hi;
|
||||
u_int16_t src;
|
||||
u_int32_t dest_lo;
|
||||
u_int32_t data;
|
||||
}cyc;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t res1:12,
|
||||
rtcode:4;
|
||||
u_int16_t src;
|
||||
u_int32_t res3;
|
||||
u_int32_t data;
|
||||
}rresq;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t dest_hi;
|
||||
u_int16_t src;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t extcode;
|
||||
u_int16_t len;
|
||||
u_int32_t payload[0];
|
||||
}wreqb;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t dest_hi;
|
||||
u_int16_t src;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t extcode;
|
||||
u_int16_t len;
|
||||
#define FW_LREQ_MSKSWAP 1
|
||||
#define FW_LREQ_CMPSWAP 2
|
||||
#define FW_LREQ_FTADD 3
|
||||
#define FW_LREQ_LTADD 4
|
||||
#define FW_LREQ_BDADD 5
|
||||
#define FW_LREQ_WRADD 6
|
||||
u_int32_t payload[0];
|
||||
}lreq;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t res1:12,
|
||||
rtcode:4;
|
||||
u_int16_t src;
|
||||
u_int32_t res3;
|
||||
u_int16_t extcode;
|
||||
u_int16_t len;
|
||||
u_int32_t payload[0];
|
||||
}rresb;
|
||||
struct {
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int8_t tlrt;
|
||||
u_int16_t dst;
|
||||
u_int16_t res1:12,
|
||||
rtcode:4;
|
||||
u_int16_t src;
|
||||
u_int32_t res3;
|
||||
u_int16_t extcode;
|
||||
u_int16_t len;
|
||||
u_int32_t payload[0];
|
||||
}lres;
|
||||
}mode;
|
||||
#endif
|
||||
|
||||
struct fw_pkt {
|
||||
union {
|
||||
u_int32_t ld[0];
|
||||
struct {
|
||||
u_int16_t :16;
|
||||
u_int8_t :8;
|
||||
u_int8_t :4,
|
||||
tcode:4;
|
||||
} common;
|
||||
struct {
|
||||
u_int16_t len;
|
||||
u_int8_t chtag;
|
||||
u_int8_t sy:4,
|
||||
tcode:4;
|
||||
u_int32_t payload[0];
|
||||
} stream;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
} hdr;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
} rreqq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int8_t :4,
|
||||
rtcode:4;
|
||||
u_int8_t :8;
|
||||
u_int32_t :32;
|
||||
} wres;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode:16;
|
||||
} rreqb;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int32_t data;
|
||||
} wreqq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int32_t data;
|
||||
} cyc;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int8_t :4,
|
||||
rtcode:4;
|
||||
u_int8_t :8;
|
||||
u_int32_t :32;
|
||||
u_int32_t data;
|
||||
} rresq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
u_int32_t payload[0];
|
||||
} wreqb;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int16_t dest_hi;
|
||||
u_int32_t dest_lo;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
#define FW_LREQ_MSKSWAP 1
|
||||
#define FW_LREQ_CMPSWAP 2
|
||||
#define FW_LREQ_FTADD 3
|
||||
#define FW_LREQ_LTADD 4
|
||||
#define FW_LREQ_BDADD 5
|
||||
#define FW_LREQ_WRADD 6
|
||||
u_int32_t payload[0];
|
||||
} lreq;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int8_t :4,
|
||||
rtcode:4;
|
||||
u_int8_t :8;
|
||||
u_int32_t :32;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
u_int32_t payload[0];
|
||||
} rresb;
|
||||
struct {
|
||||
u_int16_t dst;
|
||||
u_int8_t tlrt;
|
||||
u_int8_t pri:4,
|
||||
tcode:4;
|
||||
u_int16_t src;
|
||||
u_int8_t :4,
|
||||
rtcode:4;
|
||||
u_int8_t :8;
|
||||
u_int32_t :32;
|
||||
u_int16_t len;
|
||||
u_int16_t extcode;
|
||||
u_int32_t payload[0];
|
||||
} lres;
|
||||
} mode;
|
||||
};
|
||||
|
||||
struct fw_eui64 {
|
||||
u_int32_t hi, lo;
|
||||
};
|
||||
|
||||
struct fw_asyreq {
|
||||
struct fw_asyreq_t{
|
||||
unsigned char sped;
|
||||
@ -459,16 +327,19 @@ struct fw_asyreq {
|
||||
struct fw_pkt pkt;
|
||||
u_int32_t data[512];
|
||||
};
|
||||
|
||||
struct fw_devlstreq {
|
||||
int n;
|
||||
struct fw_eui64 eui[64];
|
||||
u_int16_t dst[64];
|
||||
u_int16_t status[64];
|
||||
};
|
||||
|
||||
#define FW_SELF_ID_PORT_CONNECTED_TO_CHILD 3
|
||||
#define FW_SELF_ID_PORT_CONNECTED_TO_PARENT 2
|
||||
#define FW_SELF_ID_PORT_NOT_CONNECTED 1
|
||||
#define FW_SELF_ID_PORT_NOT_EXISTS 0
|
||||
#if 0
|
||||
union fw_self_id {
|
||||
struct {
|
||||
u_int32_t more_packets:1,
|
||||
@ -504,6 +375,45 @@ union fw_self_id {
|
||||
id:2;
|
||||
} p1;
|
||||
};
|
||||
#else
|
||||
union fw_self_id {
|
||||
struct {
|
||||
u_int8_t more_packets:1,
|
||||
initiated_reset:1,
|
||||
port2:2,
|
||||
port1:2,
|
||||
port0:2;
|
||||
u_int8_t power_class:3,
|
||||
contender:1,
|
||||
phy_delay:2,
|
||||
phy_speed:2;
|
||||
u_int8_t gap_count:6,
|
||||
link_active:1,
|
||||
sequel:1;
|
||||
u_int8_t phy_id:6,
|
||||
id:2;
|
||||
} p0;
|
||||
struct {
|
||||
u_int8_t more_packets:1,
|
||||
reserved1:1,
|
||||
porth:2,
|
||||
portg:2,
|
||||
portf:2;
|
||||
u_int8_t porte:2,
|
||||
portd:2,
|
||||
portc:2,
|
||||
portb:2;
|
||||
u_int8_t porta:2,
|
||||
reserved2:2,
|
||||
sequence_num:3,
|
||||
sequel:1;
|
||||
u_int8_t phy_id:6,
|
||||
id:2;
|
||||
} p1;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
struct fw_topology_map {
|
||||
u_int32_t crc:16,
|
||||
crc_len:16;
|
||||
@ -512,21 +422,25 @@ struct fw_topology_map {
|
||||
node_count:16;
|
||||
union fw_self_id self_id[4*64];
|
||||
};
|
||||
|
||||
struct fw_speed_map {
|
||||
u_int32_t crc:16,
|
||||
crc_len:16;
|
||||
u_int32_t generation;
|
||||
u_int8_t speed[64][64];
|
||||
};
|
||||
|
||||
struct fw_map_buf {
|
||||
int len;
|
||||
void *ptr;
|
||||
};
|
||||
|
||||
struct fw_crom_buf {
|
||||
struct fw_eui64 eui;
|
||||
int len;
|
||||
void *ptr;
|
||||
};
|
||||
|
||||
#define FWSTMAXCHUNK 16
|
||||
/*
|
||||
* FireWire specific system requests.
|
||||
|
@ -169,7 +169,6 @@ struct sbp_ocb {
|
||||
#define SBP_RESOURCE_SHORTAGE 0x10
|
||||
|
||||
struct sbp_login_res{
|
||||
#if FW_ENDIANSWAP == 0 && BYTE_ORDER == LITTLE_ENDIAN
|
||||
u_int16_t len;
|
||||
u_int16_t id;
|
||||
u_int16_t res0;
|
||||
@ -177,18 +176,8 @@ struct sbp_login_res{
|
||||
u_int32_t cmd_lo;
|
||||
u_int16_t res1;
|
||||
u_int16_t recon_hold;
|
||||
#else
|
||||
u_int16_t id;
|
||||
u_int16_t len;
|
||||
u_int16_t cmd_hi;
|
||||
u_int16_t res0;
|
||||
u_int32_t cmd_lo;
|
||||
u_int16_t recon_hold;
|
||||
u_int16_t res1;
|
||||
#endif
|
||||
};
|
||||
struct sbp_status{
|
||||
#if FW_ENDIANSWAP == 0 && BYTE_ORDER == LITTLE_ENDIAN
|
||||
u_int8_t len:3,
|
||||
dead:1,
|
||||
resp:2,
|
||||
@ -197,21 +186,10 @@ struct sbp_status{
|
||||
u_int16_t orb_hi;
|
||||
u_int32_t orb_lo;
|
||||
u_int32_t data[6];
|
||||
#else
|
||||
u_int16_t orb_hi;
|
||||
u_int8_t status:8;
|
||||
u_int8_t len:3,
|
||||
dead:1,
|
||||
resp:2,
|
||||
src:2;
|
||||
u_int32_t orb_lo;
|
||||
u_int32_t data[6];
|
||||
#endif
|
||||
};
|
||||
struct sbp_cmd_status{
|
||||
#define SBP_SFMT_CURR 0
|
||||
#define SBP_SFMT_DEFER 1
|
||||
#if FW_ENDIANSWAP == 0 && BYTE_ORDER == LITTLE_ENDIAN
|
||||
u_int8_t status:6,
|
||||
sfmt:2;
|
||||
u_int8_t s_key:4,
|
||||
@ -226,22 +204,6 @@ struct sbp_cmd_status{
|
||||
u_int32_t fru:8,
|
||||
s_keydep:24;
|
||||
u_int32_t vend[2];
|
||||
#else
|
||||
u_int8_t s_qlfr;
|
||||
u_int8_t s_code;
|
||||
u_int8_t s_key:4,
|
||||
ill_len:1,
|
||||
eom:1,
|
||||
mark:1,
|
||||
valid:1;
|
||||
u_int8_t status:6,
|
||||
sfmt:2;
|
||||
u_int32_t info;
|
||||
u_int32_t cdb;
|
||||
u_int32_t s_keydep:24,
|
||||
fru:8;
|
||||
u_int32_t vend[2];
|
||||
#endif
|
||||
};
|
||||
|
||||
struct sbp_dev{
|
||||
|
Loading…
x
Reference in New Issue
Block a user