#define ADDR_LEN 6
#define I82586NULL 0xFFFF
-#define toff(t,p,f) (unsigned short)((void *)(&((t *)((void *)0 + (p)))->f) - (void *)0)
+#define toff(t, p, f) (unsigned short)((void *)(&((t *)((void *)0 + (p)))->f) - (void *)0)
/*
* System Configuration Pointer (SCP).
*/
typedef struct scp_t scp_t;
-struct scp_t
-{
+struct scp_t {
unsigned short scp_sysbus; /* 82586 bus width: */
#define SCP_SY_16BBUS (0x0 << 0) /* 16 bits */
#define SCP_SY_8BBUS (0x1 << 0) /* 8 bits. */
* Intermediate System Configuration Pointer (ISCP).
*/
typedef struct iscp_t iscp_t;
-struct iscp_t
-{
+struct iscp_t {
unsigned short iscp_busy; /* set by CPU before first CA, */
/* cleared by 82586 after read. */
unsigned short iscp_offset; /* offset of SCB */
* then issues a Channel Attention (CA) to alert the 82586.
*/
typedef struct scb_t scb_t;
-struct scb_t
-{
+struct scb_t {
unsigned short scb_status; /* Status of 82586 */
#define SCB_ST_INT (0xF << 12) /* Some of: */
#define SCB_ST_CX (0x1 << 15) /* Cmd completed */
unsigned short scb_ovrnerrs; /* Frames lost due to slow bus */
};
-#define scboff(p,f) toff(scb_t, p, f)
+#define scboff(p, f) toff(scb_t, p, f)
/*
* The eight Action Commands.
*/
typedef enum acmd_e acmd_e;
-enum acmd_e
-{
+enum acmd_e {
acmd_nop = 0, /* Do nothing */
acmd_ia_setup = 1, /* Load an (ethernet) address into the */
/* 82586 */
* Generic Action Command header.
*/
typedef struct ach_t ach_t;
-struct ach_t
-{
+struct ach_t {
unsigned short ac_status; /* Command status: */
#define AC_SFLD_C (0x1 << 15) /* Command completed */
#define AC_SFLD_B (0x1 << 14) /* Busy executing */
unsigned short ac_link; /* Next Action Command */
};
-#define acoff(p,f) toff(ach_t, p, f)
+#define acoff(p, f) toff(ach_t, p, f)
/*
* The Nop Action Command.
*/
typedef struct ac_nop_t ac_nop_t;
-struct ac_nop_t
-{
+struct ac_nop_t {
ach_t nop_h;
};
* The IA-Setup Action Command.
*/
typedef struct ac_ias_t ac_ias_t;
-struct ac_ias_t
-{
+struct ac_ias_t {
ach_t ias_h;
unsigned char ias_addr[ADDR_LEN]; /* The (ethernet) address */
};
* The Configure Action Command.
*/
typedef struct ac_cfg_t ac_cfg_t;
-struct ac_cfg_t
-{
+struct ac_cfg_t {
ach_t cfg_h;
unsigned char cfg_byte_cnt; /* Size foll data: 4-12 */
#define AC_CFG_BYTE_CNT(v) (((v) & 0xF) << 0)
* The MC-Setup Action Command.
*/
typedef struct ac_mcs_t ac_mcs_t;
-struct ac_mcs_t
-{
+struct ac_mcs_t {
ach_t mcs_h;
unsigned short mcs_cnt; /* No. of bytes of MC addresses */
#if 0
* The Transmit Action Command.
*/
typedef struct ac_tx_t ac_tx_t;
-struct ac_tx_t
-{
+struct ac_tx_t {
ach_t tx_h;
unsigned short tx_tbd_offset; /* Address of list of buffers. */
#if 0
* The Time Domain Reflectometer Action Command.
*/
typedef struct ac_tdr_t ac_tdr_t;
-struct ac_tdr_t
-{
+struct ac_tdr_t {
ach_t tdr_h;
unsigned short tdr_result; /* Result. */
#define AC_TDR_LNK_OK (0x1 << 15) /* No link problem */
* The Dump Action Command.
*/
typedef struct ac_dmp_t ac_dmp_t;
-struct ac_dmp_t
-{
+struct ac_dmp_t {
ach_t dmp_h;
unsigned short dmp_offset; /* Result. */
};
* The Diagnose Action Command.
*/
typedef struct ac_dgn_t ac_dgn_t;
-struct ac_dgn_t
-{
+struct ac_dgn_t {
ach_t dgn_h;
};
* Transmit Buffer Descriptor (TBD).
*/
typedef struct tbd_t tbd_t;
-struct tbd_t
-{
+struct tbd_t {
unsigned short tbd_status; /* Written by the CPU */
#define TBD_STATUS_EOF (0x1 << 15) /* This TBD is the */
/* last for this frame */
* Receive Buffer Descriptor (RBD).
*/
typedef struct rbd_t rbd_t;
-struct rbd_t
-{
+struct rbd_t {
unsigned short rbd_status; /* Written by the 82586 */
#define RBD_STATUS_EOF (0x1 << 15) /* This RBD is the */
/* last for this frame */
/* buffer can hold */
};
-#define rbdoff(p,f) toff(rbd_t, p, f)
+#define rbdoff(p, f) toff(rbd_t, p, f)
/*
* Frame Descriptor (FD).
*/
typedef struct fd_t fd_t;
-struct fd_t
-{
+struct fd_t {
unsigned short fd_status; /* Written by the 82586 */
#define FD_STATUS_C (0x1 << 15) /* Completed storing frame */
#define FD_STATUS_B (0x1 << 14) /* FD was consumed by RU */
/* Written by 82586 */
};
-#define fdoff(p,f) toff(fd_t, p, f)
+#define fdoff(p, f) toff(fd_t, p, f)
/*
* This software may only be used and distributed