#![allow(dead_code)]
pub mod rdes0 {
pub const EXT_STATUS: u32 = 1 << 0;
pub const CRC_ERR: u32 = 1 << 1;
pub const DRIBBLE_ERR: u32 = 1 << 2;
pub const RX_ERR: u32 = 1 << 3;
pub const RX_WATCHDOG: u32 = 1 << 4;
pub const FRAME_TYPE: u32 = 1 << 5;
pub const LATE_COLLISION: u32 = 1 << 6;
pub const TIMESTAMP_AVAIL: u32 = 1 << 7;
pub const LAST_DESC: u32 = 1 << 8;
pub const FIRST_DESC: u32 = 1 << 9;
pub const VLAN_TAG: u32 = 1 << 10;
pub const OVERFLOW_ERR: u32 = 1 << 11;
pub const LENGTH_ERR: u32 = 1 << 12;
pub const SA_FILTER_FAIL: u32 = 1 << 13;
pub const DESC_ERR: u32 = 1 << 14;
pub const ERR_SUMMARY: u32 = 1 << 15;
pub const FRAME_LEN_SHIFT: u32 = 16;
pub const FRAME_LEN_MASK: u32 = 0x3FFF << 16;
pub const DA_FILTER_FAIL: u32 = 1 << 30;
pub const OWN: u32 = 1 << 31;
pub const ALL_ERRORS: u32 = CRC_ERR
| DRIBBLE_ERR
| RX_ERR
| RX_WATCHDOG
| LATE_COLLISION
| OVERFLOW_ERR
| LENGTH_ERR
| DESC_ERR;
}
pub mod rdes1 {
pub const BUFFER1_SIZE_MASK: u32 = 0x1FFF;
pub const BUFFER1_SIZE_SHIFT: u32 = 0;
pub const SECOND_ADDR_CHAINED: u32 = 1 << 14;
pub const RX_END_OF_RING: u32 = 1 << 15;
pub const BUFFER2_SIZE_MASK: u32 = 0x1FFF << 16;
pub const BUFFER2_SIZE_SHIFT: u32 = 16;
pub const DISABLE_IRQ: u32 = 1 << 31;
}
pub mod rdes4 {
pub const IP_PAYLOAD_TYPE_SHIFT: u32 = 0;
pub const IP_PAYLOAD_TYPE_MASK: u32 = 0x7;
pub const IP_HEADER_ERR: u32 = 1 << 3;
pub const IP_PAYLOAD_ERR: u32 = 1 << 4;
pub const IP_CHECKSUM_BYPASS: u32 = 1 << 5;
pub const IPV4_PKT: u32 = 1 << 6;
pub const IPV6_PKT: u32 = 1 << 7;
pub const PTP_MSG_TYPE_SHIFT: u32 = 8;
pub const PTP_MSG_TYPE_MASK: u32 = 0xF << 8;
pub const PTP_FRAME_TYPE: u32 = 1 << 12;
pub const PTP_VERSION: u32 = 1 << 13;
pub const TIMESTAMP_DROPPED: u32 = 1 << 14;
pub const AV_TAGGED: u32 = 1 << 16;
pub const AV_CTRL_DATA: u32 = 1 << 17;
pub const L3_FILTER_MATCH: u32 = 1 << 24;
pub const L4_FILTER_MATCH: u32 = 1 << 25;
pub const L3_L4_FILTER_NUM_SHIFT: u32 = 26;
pub const L3_L4_FILTER_NUM_MASK: u32 = 0x3 << 26;
}
pub mod tdes0 {
pub const DEFERRED: u32 = 1 << 0;
pub const UNDERFLOW_ERR: u32 = 1 << 1;
pub const EXCESSIVE_DEFERRAL: u32 = 1 << 2;
pub const COLLISION_COUNT_SHIFT: u32 = 3;
pub const COLLISION_COUNT_MASK: u32 = 0xF << 3;
pub const VLAN_FRAME: u32 = 1 << 7;
pub const EXCESSIVE_COLLISION: u32 = 1 << 8;
pub const LATE_COLLISION: u32 = 1 << 9;
pub const NO_CARRIER: u32 = 1 << 10;
pub const LOSS_OF_CARRIER: u32 = 1 << 11;
pub const IP_PAYLOAD_ERR: u32 = 1 << 12;
pub const FRAME_FLUSHED: u32 = 1 << 13;
pub const JABBER_TIMEOUT: u32 = 1 << 14;
pub const ERR_SUMMARY: u32 = 1 << 15;
pub const IP_HEADER_ERR: u32 = 1 << 16;
pub const TX_TIMESTAMP_STATUS: u32 = 1 << 17;
pub const VLAN_INSERT_CTRL_SHIFT: u32 = 18;
pub const VLAN_INSERT_CTRL_MASK: u32 = 0x3 << 18;
pub const SECOND_ADDR_CHAINED: u32 = 1 << 20;
pub const TX_END_OF_RING: u32 = 1 << 21;
pub const CHECKSUM_INSERT_SHIFT: u32 = 22;
pub const CHECKSUM_INSERT_MASK: u32 = 0x3 << 22;
pub const CRC_REPLACE: u32 = 1 << 24;
pub const TX_TIMESTAMP_EN: u32 = 1 << 25;
pub const DISABLE_PAD: u32 = 1 << 26;
pub const DISABLE_CRC: u32 = 1 << 27;
pub const FIRST_SEGMENT: u32 = 1 << 28;
pub const LAST_SEGMENT: u32 = 1 << 29;
pub const INTERRUPT_ON_COMPLETE: u32 = 1 << 30;
pub const OWN: u32 = 1 << 31;
pub const ALL_ERRORS: u32 = UNDERFLOW_ERR
| EXCESSIVE_DEFERRAL
| EXCESSIVE_COLLISION
| LATE_COLLISION
| NO_CARRIER
| LOSS_OF_CARRIER
| IP_PAYLOAD_ERR
| JABBER_TIMEOUT
| IP_HEADER_ERR;
pub const FS_CTRL_FLAGS: u32 =
VLAN_INSERT_CTRL_MASK | TX_TIMESTAMP_EN | DISABLE_PAD | DISABLE_CRC;
pub const LS_CTRL_FLAGS: u32 = CHECKSUM_INSERT_MASK | CRC_REPLACE | INTERRUPT_ON_COMPLETE;
}
pub mod tdes1 {
pub const BUFFER1_SIZE_MASK: u32 = 0x1FFF;
pub const BUFFER1_SIZE_SHIFT: u32 = 0;
pub const BUFFER2_SIZE_MASK: u32 = 0x1FFF << 16;
pub const BUFFER2_SIZE_SHIFT: u32 = 16;
pub const SA_INSERT_CTRL_SHIFT: u32 = 29;
pub const SA_INSERT_CTRL_MASK: u32 = 0x7 << 29;
}
pub mod checksum_mode {
pub const DISABLED: u32 = 0;
pub const IP_ONLY: u32 = 1;
pub const IP_AND_PAYLOAD: u32 = 2;
pub const FULL: u32 = 3;
}