iPXE
etherfabric.h File Reference

Etherfabric bitfield access. More...

Go to the source code of this file.

Data Structures

union  efab_dword
 A doubleword (i.e. More...
union  efab_qword
 A quadword (i.e. More...
union  efab_oword
 An octword (eight-word, i.e. More...

Macros

#define EFAB_BITFIELD_H
#define EFAB_DUMMY_FIELD_LBN   0
 Dummy field low bit number.
#define EFAB_DUMMY_FIELD_WIDTH   0
 Dummy field width.
#define EFAB_DWORD_0_LBN   0
 Dword 0 low bit number.
#define EFAB_DWORD_0_WIDTH   32
 Dword 0 width.
#define EFAB_DWORD_1_LBN   32
 Dword 1 low bit number.
#define EFAB_DWORD_1_WIDTH   32
 Dword 1 width.
#define EFAB_DWORD_2_LBN   64
 Dword 2 low bit number.
#define EFAB_DWORD_2_WIDTH   32
 Dword 2 width.
#define EFAB_DWORD_3_LBN   96
 Dword 3 low bit number.
#define EFAB_DWORD_3_WIDTH   32
 Dword 3 width.
#define EFAB_VAL(field, attribute)
 Specified attribute (e.g.
#define EFAB_LOW_BIT(field)
 Low bit number of the specified field.
#define EFAB_WIDTH(field)
 Bit width of the specified field.
#define EFAB_HIGH_BIT(field)
 High bit number of the specified field.
#define EFAB_MASK64(field)
 Mask equal in width to the specified field.
#define EFAB_MASK32(field)
 Mask equal in width to the specified field.
#define EFAB_DWORD_FMT   "%08x"
 Format string for printing an efab_dword_t.
#define EFAB_QWORD_FMT   "%08x:%08x"
 Format string for printing an efab_qword_t.
#define EFAB_OWORD_FMT   "%08x:%08x:%08x:%08x"
 Format string for printing an efab_oword_t.
#define EFAB_DWORD_VAL(dword)
 printk parameters for printing an efab_dword_t
#define EFAB_QWORD_VAL(qword)
 printk parameters for printing an efab_qword_t
#define EFAB_OWORD_VAL(oword)
 printk parameters for printing an efab_oword_t
#define EFAB_EXTRACT_NATIVE(native_element, min, max, low, high)
 Extract bit field portion [low,high) from the native-endian element which contains bits [min,max).
#define EFAB_EXTRACT64(element, min, max, low, high)
 Extract bit field portion [low,high) from the 64-bit little-endian element which contains bits [min,max)
#define EFAB_EXTRACT32(element, min, max, low, high)
 Extract bit field portion [low,high) from the 32-bit little-endian element which contains bits [min,max)
#define EFAB_EXTRACT_OWORD64(oword, low, high)
#define EFAB_EXTRACT_QWORD64(qword, low, high)
#define EFAB_EXTRACT_OWORD32(oword, low, high)
#define EFAB_EXTRACT_QWORD32(qword, low, high)
#define EFAB_EXTRACT_DWORD(dword, low, high)
#define EFAB_OWORD_FIELD64(oword, field)
#define EFAB_QWORD_FIELD64(qword, field)
#define EFAB_OWORD_FIELD32(oword, field)
#define EFAB_QWORD_FIELD32(qword, field)
#define EFAB_DWORD_FIELD(dword, field)
#define EFAB_OWORD_IS_ZERO64(oword)
#define EFAB_QWORD_IS_ZERO64(qword)
#define EFAB_OWORD_IS_ZERO32(oword)
#define EFAB_QWORD_IS_ZERO32(qword)
#define EFAB_DWORD_IS_ZERO(dword)
#define EFAB_OWORD_IS_ALL_ONES64(oword)
#define EFAB_QWORD_IS_ALL_ONES64(qword)
#define EFAB_OWORD_IS_ALL_ONES32(oword)
#define EFAB_QWORD_IS_ALL_ONES32(qword)
#define EFAB_DWORD_IS_ALL_ONES(dword)
#define EFAB_OWORD_FIELD   EFAB_OWORD_FIELD32
#define EFAB_QWORD_FIELD   EFAB_QWORD_FIELD32
#define EFAB_OWORD_IS_ZERO   EFAB_OWORD_IS_ZERO32
#define EFAB_QWORD_IS_ZERO   EFAB_QWORD_IS_ZERO32
#define EFAB_OWORD_IS_ALL_ONES   EFAB_OWORD_IS_ALL_ONES32
#define EFAB_QWORD_IS_ALL_ONES   EFAB_QWORD_IS_ALL_ONES32
#define EFAB_INSERT_NATIVE64(min, max, low, high, value)
 Construct bit field portion.
#define EFAB_INSERT_NATIVE32(min, max, low, high, value)
#define EFAB_INSERT_NATIVE(min, max, low, high, value)
#define EFAB_INSERT_FIELD_NATIVE(min, max, field, value)
 Construct bit field portion.
#define EFAB_INSERT_FIELDS_NATIVE(min, max, field1, value1, field2, value2, field3, value3, field4, value4, field5, value5, field6, value6, field7, value7, field8, value8, field9, value9, field10, value10)
 Construct bit field.
#define EFAB_INSERT_FIELDS64(...)
#define EFAB_INSERT_FIELDS32(...)
#define EFAB_POPULATE_OWORD64(oword, ...)
#define EFAB_POPULATE_QWORD64(qword, ...)
#define EFAB_POPULATE_OWORD32(oword, ...)
#define EFAB_POPULATE_QWORD32(qword, ...)
#define EFAB_POPULATE_DWORD(dword, ...)
#define EFAB_POPULATE_OWORD   EFAB_POPULATE_OWORD32
#define EFAB_POPULATE_QWORD   EFAB_POPULATE_QWORD32
#define EFAB_POPULATE_OWORD_10   EFAB_POPULATE_OWORD
#define EFAB_POPULATE_OWORD_9(oword, ...)
#define EFAB_POPULATE_OWORD_8(oword, ...)
#define EFAB_POPULATE_OWORD_7(oword, ...)
#define EFAB_POPULATE_OWORD_6(oword, ...)
#define EFAB_POPULATE_OWORD_5(oword, ...)
#define EFAB_POPULATE_OWORD_4(oword, ...)
#define EFAB_POPULATE_OWORD_3(oword, ...)
#define EFAB_POPULATE_OWORD_2(oword, ...)
#define EFAB_POPULATE_OWORD_1(oword, ...)
#define EFAB_ZERO_OWORD(oword)
#define EFAB_SET_OWORD(oword)
#define EFAB_POPULATE_QWORD_10   EFAB_POPULATE_QWORD
#define EFAB_POPULATE_QWORD_9(qword, ...)
#define EFAB_POPULATE_QWORD_8(qword, ...)
#define EFAB_POPULATE_QWORD_7(qword, ...)
#define EFAB_POPULATE_QWORD_6(qword, ...)
#define EFAB_POPULATE_QWORD_5(qword, ...)
#define EFAB_POPULATE_QWORD_4(qword, ...)
#define EFAB_POPULATE_QWORD_3(qword, ...)
#define EFAB_POPULATE_QWORD_2(qword, ...)
#define EFAB_POPULATE_QWORD_1(qword, ...)
#define EFAB_ZERO_QWORD(qword)
#define EFAB_SET_QWORD(qword)
#define EFAB_POPULATE_DWORD_10   EFAB_POPULATE_DWORD
#define EFAB_POPULATE_DWORD_9(dword, ...)
#define EFAB_POPULATE_DWORD_8(dword, ...)
#define EFAB_POPULATE_DWORD_7(dword, ...)
#define EFAB_POPULATE_DWORD_6(dword, ...)
#define EFAB_POPULATE_DWORD_5(dword, ...)
#define EFAB_POPULATE_DWORD_4(dword, ...)
#define EFAB_POPULATE_DWORD_3(dword, ...)
#define EFAB_POPULATE_DWORD_2(dword, ...)
#define EFAB_POPULATE_DWORD_1(dword, ...)
#define EFAB_ZERO_DWORD(dword)
#define EFAB_SET_DWORD(dword)
#define EFAB_INSERT_FIELD64(...)
#define EFAB_INSERT_FIELD32(...)
#define EFAB_INPLACE_MASK64(min, max, field)
#define EFAB_INPLACE_MASK32(min, max, field)
#define EFAB_SET_OWORD_FIELD64(oword, field, value)
#define EFAB_SET_QWORD_FIELD64(qword, field, value)
#define EFAB_SET_OWORD_FIELD32(oword, field, value)
#define EFAB_SET_QWORD_FIELD32(qword, field, value)
#define EFAB_SET_DWORD_FIELD(dword, field, value)
#define EFAB_SET_OWORD_FIELD   EFAB_SET_OWORD_FIELD32
#define EFAB_SET_QWORD_FIELD   EFAB_SET_QWORD_FIELD32
#define DMA_ADDR_T_WIDTH   ( 8 * sizeof ( dma_addr_t ) )
#define EFAB_DMA_TYPE_WIDTH(width)
#define EFAB_DMA_MAX_MASK
#define EFAB_DMA_MASK(mask)

Typedefs

typedef union efab_dword efab_dword_t
 A doubleword (i.e.
typedef union efab_qword efab_qword_t
 A quadword (i.e.
typedef union efab_oword efab_oword_t
 An octword (eight-word, i.e.

Functions

 FILE_LICENCE (GPL_ANY)

Detailed Description

Etherfabric bitfield access.

Etherfabric NICs make extensive use of bitfields up to 128 bits wide. Since there is no native 128-bit datatype on most systems, and since 64-bit datatypes are inefficient on 32-bit systems and vice versa, we wrap accesses in a way that uses the most efficient datatype.

The NICs are PCI devices and therefore little-endian. Since most of the quantities that we deal with are DMAed to/from host memory, we define our datatypes (efab_oword_t, efab_qword_t and efab_dword_t) to be little-endian.

In the less common case of using PIO for individual register writes, we construct the little-endian datatype in host memory and then use non-swapping equivalents of writel/writeq, rather than constructing a native-endian datatype and relying on the implicit byte-swapping done by writel/writeq. (We use a similar strategy for register reads.)

Definition in file etherfabric.h.

Macro Definition Documentation

◆ EFAB_BITFIELD_H

#define EFAB_BITFIELD_H

Definition at line 23 of file etherfabric.h.

◆ EFAB_DUMMY_FIELD_LBN

#define EFAB_DUMMY_FIELD_LBN   0

Dummy field low bit number.

Definition at line 49 of file etherfabric.h.

◆ EFAB_DUMMY_FIELD_WIDTH

#define EFAB_DUMMY_FIELD_WIDTH   0

Dummy field width.

Definition at line 51 of file etherfabric.h.

◆ EFAB_DWORD_0_LBN

#define EFAB_DWORD_0_LBN   0

Dword 0 low bit number.

Definition at line 53 of file etherfabric.h.

◆ EFAB_DWORD_0_WIDTH

#define EFAB_DWORD_0_WIDTH   32

Dword 0 width.

Definition at line 55 of file etherfabric.h.

◆ EFAB_DWORD_1_LBN

#define EFAB_DWORD_1_LBN   32

Dword 1 low bit number.

Definition at line 57 of file etherfabric.h.

◆ EFAB_DWORD_1_WIDTH

#define EFAB_DWORD_1_WIDTH   32

Dword 1 width.

Definition at line 59 of file etherfabric.h.

◆ EFAB_DWORD_2_LBN

#define EFAB_DWORD_2_LBN   64

Dword 2 low bit number.

Definition at line 61 of file etherfabric.h.

◆ EFAB_DWORD_2_WIDTH

#define EFAB_DWORD_2_WIDTH   32

Dword 2 width.

Definition at line 63 of file etherfabric.h.

◆ EFAB_DWORD_3_LBN

#define EFAB_DWORD_3_LBN   96

Dword 3 low bit number.

Definition at line 65 of file etherfabric.h.

◆ EFAB_DWORD_3_WIDTH

#define EFAB_DWORD_3_WIDTH   32

Dword 3 width.

Definition at line 67 of file etherfabric.h.

◆ EFAB_VAL

#define EFAB_VAL ( field,
attribute )
Value:
field ## _ ## attribute

Specified attribute (e.g.

LBN) of the specified field

Definition at line 70 of file etherfabric.h.

◆ EFAB_LOW_BIT

#define EFAB_LOW_BIT ( field)
Value:
EFAB_VAL ( field, LBN )
#define EFAB_VAL(field, attribute)
Specified attribute (e.g.
Definition etherfabric.h:70

Low bit number of the specified field.

Definition at line 72 of file etherfabric.h.

◆ EFAB_WIDTH

#define EFAB_WIDTH ( field)
Value:
EFAB_VAL ( field, WIDTH )

Bit width of the specified field.

Definition at line 74 of file etherfabric.h.

◆ EFAB_HIGH_BIT

#define EFAB_HIGH_BIT ( field)
Value:
( EFAB_LOW_BIT(field) + EFAB_WIDTH(field) - 1 )
#define EFAB_WIDTH(field)
Bit width of the specified field.
Definition etherfabric.h:74
#define EFAB_LOW_BIT(field)
Low bit number of the specified field.
Definition etherfabric.h:72

High bit number of the specified field.

Definition at line 76 of file etherfabric.h.

◆ EFAB_MASK64

#define EFAB_MASK64 ( field)
Value:
( EFAB_WIDTH(field) == 64 ? ~( ( uint64_t ) 0 ) : \
( ( ( ( ( uint64_t ) 1 ) << EFAB_WIDTH(field) ) ) - 1 ) )
unsigned long long uint64_t
Definition stdint.h:13

Mask equal in width to the specified field.

For example, a field with width 5 would have a mask of 0x1f.

The maximum width mask that can be generated is 64 bits.

Definition at line 83 of file etherfabric.h.

83#define EFAB_MASK64( field ) \
84 ( EFAB_WIDTH(field) == 64 ? ~( ( uint64_t ) 0 ) : \
85 ( ( ( ( ( uint64_t ) 1 ) << EFAB_WIDTH(field) ) ) - 1 ) )

◆ EFAB_MASK32

#define EFAB_MASK32 ( field)
Value:
( EFAB_WIDTH(field) == 32 ? ~( ( uint32_t ) 0 ) : \
( ( ( ( ( uint32_t ) 1 ) << EFAB_WIDTH(field) ) ) - 1 ) )
unsigned int uint32_t
Definition stdint.h:12

Mask equal in width to the specified field.

For example, a field with width 5 would have a mask of 0x1f.

The maximum width mask that can be generated is 32 bits. Use EFAB_MASK64 for higher width fields.

Definition at line 94 of file etherfabric.h.

94#define EFAB_MASK32( field ) \
95 ( EFAB_WIDTH(field) == 32 ? ~( ( uint32_t ) 0 ) : \
96 ( ( ( ( ( uint32_t ) 1 ) << EFAB_WIDTH(field) ) ) - 1 ) )

◆ EFAB_DWORD_FMT

#define EFAB_DWORD_FMT   "%08x"

Format string for printing an efab_dword_t.

Definition at line 130 of file etherfabric.h.

Referenced by falcon_gmii_wait(), falcon_readl(), falcon_writel(), and falcon_xgmii_status().

◆ EFAB_QWORD_FMT

#define EFAB_QWORD_FMT   "%08x:%08x"

Format string for printing an efab_qword_t.

Definition at line 133 of file etherfabric.h.

Referenced by efab_poll(), falcon_read_sram(), and falcon_write_sram().

◆ EFAB_OWORD_FMT

#define EFAB_OWORD_FMT   "%08x:%08x:%08x:%08x"

Format string for printing an efab_oword_t.

Definition at line 136 of file etherfabric.h.

Referenced by falcon_read(), and falcon_write().

◆ EFAB_DWORD_VAL

#define EFAB_DWORD_VAL ( dword)
Value:
( ( unsigned int ) le32_to_cpu ( (dword).u32[0] ) )
#define le32_to_cpu(value)
Definition byteswap.h:114
unsigned long int dword
Definition smc9000.h:40
#define u32
Definition vga.h:21

printk parameters for printing an efab_dword_t

Definition at line 139 of file etherfabric.h.

139#define EFAB_DWORD_VAL(dword) \
140 ( ( unsigned int ) le32_to_cpu ( (dword).u32[0] ) )

Referenced by falcon_gmii_wait(), falcon_readl(), falcon_writel(), and falcon_xgmii_status().

◆ EFAB_QWORD_VAL

#define EFAB_QWORD_VAL ( qword)
Value:
( ( unsigned int ) le32_to_cpu ( (qword).u32[1] ) ), \
( ( unsigned int ) le32_to_cpu ( (qword).u32[0] ) )

printk parameters for printing an efab_qword_t

Definition at line 143 of file etherfabric.h.

143#define EFAB_QWORD_VAL(qword) \
144 ( ( unsigned int ) le32_to_cpu ( (qword).u32[1] ) ), \
145 ( ( unsigned int ) le32_to_cpu ( (qword).u32[0] ) )

Referenced by efab_poll(), falcon_read_sram(), and falcon_write_sram().

◆ EFAB_OWORD_VAL

#define EFAB_OWORD_VAL ( oword)
Value:
( ( unsigned int ) le32_to_cpu ( (oword).u32[3] ) ), \
( ( unsigned int ) le32_to_cpu ( (oword).u32[2] ) ), \
( ( unsigned int ) le32_to_cpu ( (oword).u32[1] ) ), \
( ( unsigned int ) le32_to_cpu ( (oword).u32[0] ) )

printk parameters for printing an efab_oword_t

Definition at line 148 of file etherfabric.h.

148#define EFAB_OWORD_VAL(oword) \
149 ( ( unsigned int ) le32_to_cpu ( (oword).u32[3] ) ), \
150 ( ( unsigned int ) le32_to_cpu ( (oword).u32[2] ) ), \
151 ( ( unsigned int ) le32_to_cpu ( (oword).u32[1] ) ), \
152 ( ( unsigned int ) le32_to_cpu ( (oword).u32[0] ) )

Referenced by falcon_read(), and falcon_write().

◆ EFAB_EXTRACT_NATIVE

#define EFAB_EXTRACT_NATIVE ( native_element,
min,
max,
low,
high )
Value:
( ( ( low > max ) || ( high < min ) ) ? 0 : \
( ( low > min ) ? \
( (native_element) >> ( low - min ) ) : \
( (native_element) << ( min - low ) ) ) )
#define min(x, y)
Definition ath.h:36
#define max(x, y)
Definition ath.h:41
uint32_t high
High 32 bits of address.
Definition myson.h:1
uint32_t low
Low 16 bits of address.
Definition myson.h:0

Extract bit field portion [low,high) from the native-endian element which contains bits [min,max).

For example, suppose "element" represents the high 32 bits of a 64-bit value, and we wish to extract the bits belonging to the bit field occupying bits 28-45 of this 64-bit value.

Then EFAB_EXTRACT ( element, 32, 63, 28, 45 ) would give

( element ) << 4

The result will contain the relevant bits filled in in the range [0,high-low), with garbage in bits [high-low+1,...).

Definition at line 169 of file etherfabric.h.

169#define EFAB_EXTRACT_NATIVE( native_element, min ,max ,low ,high ) \
170 ( ( ( low > max ) || ( high < min ) ) ? 0 : \
171 ( ( low > min ) ? \
172 ( (native_element) >> ( low - min ) ) : \
173 ( (native_element) << ( min - low ) ) ) )

◆ EFAB_EXTRACT64

#define EFAB_EXTRACT64 ( element,
min,
max,
low,
high )
Value:
#define EFAB_EXTRACT_NATIVE(native_element, min,max,low,high)
Extract bit field portion [low,high) from the native-endian element which contains bits [min,...
#define le64_to_cpu(value)
Definition byteswap.h:115
value element[index]
Definition bigint.h:398

Extract bit field portion [low,high) from the 64-bit little-endian element which contains bits [min,max)

Definition at line 179 of file etherfabric.h.

179#define EFAB_EXTRACT64( element, min, max, low, high ) \
180 EFAB_EXTRACT_NATIVE ( le64_to_cpu(element), min, max, low, high )

◆ EFAB_EXTRACT32

#define EFAB_EXTRACT32 ( element,
min,
max,
low,
high )
Value:

Extract bit field portion [low,high) from the 32-bit little-endian element which contains bits [min,max)

Definition at line 186 of file etherfabric.h.

186#define EFAB_EXTRACT32( element, min, max, low, high ) \
187 EFAB_EXTRACT_NATIVE ( le32_to_cpu(element), min, max, low, high )

◆ EFAB_EXTRACT_OWORD64

#define EFAB_EXTRACT_OWORD64 ( oword,
low,
high )
Value:
( EFAB_EXTRACT64 ( (oword).u64[0], 0, 63, low, high ) | \
EFAB_EXTRACT64 ( (oword).u64[1], 64, 127, low, high ) )
#define EFAB_EXTRACT64(element, min, max, low, high)
Extract bit field portion [low,high) from the 64-bit little-endian element which contains bits [min,...
uint64_t u64
Definition stdint.h:26

Definition at line 189 of file etherfabric.h.

189#define EFAB_EXTRACT_OWORD64( oword, low, high ) \
190 ( EFAB_EXTRACT64 ( (oword).u64[0], 0, 63, low, high ) | \
191 EFAB_EXTRACT64 ( (oword).u64[1], 64, 127, low, high ) )

◆ EFAB_EXTRACT_QWORD64

#define EFAB_EXTRACT_QWORD64 ( qword,
low,
high )
Value:
( EFAB_EXTRACT64 ( (qword).u64[0], 0, 63, low, high ) )

Definition at line 193 of file etherfabric.h.

193#define EFAB_EXTRACT_QWORD64( qword, low, high ) \
194 ( EFAB_EXTRACT64 ( (qword).u64[0], 0, 63, low, high ) )

◆ EFAB_EXTRACT_OWORD32

#define EFAB_EXTRACT_OWORD32 ( oword,
low,
high )
Value:
( EFAB_EXTRACT32 ( (oword).u32[0], 0, 31, low, high ) | \
EFAB_EXTRACT32 ( (oword).u32[1], 32, 63, low, high ) | \
EFAB_EXTRACT32 ( (oword).u32[2], 64, 95, low, high ) | \
EFAB_EXTRACT32 ( (oword).u32[3], 96, 127, low, high ) )
#define EFAB_EXTRACT32(element, min, max, low, high)
Extract bit field portion [low,high) from the 32-bit little-endian element which contains bits [min,...

Definition at line 196 of file etherfabric.h.

196#define EFAB_EXTRACT_OWORD32( oword, low, high ) \
197 ( EFAB_EXTRACT32 ( (oword).u32[0], 0, 31, low, high ) | \
198 EFAB_EXTRACT32 ( (oword).u32[1], 32, 63, low, high ) | \
199 EFAB_EXTRACT32 ( (oword).u32[2], 64, 95, low, high ) | \
200 EFAB_EXTRACT32 ( (oword).u32[3], 96, 127, low, high ) )

◆ EFAB_EXTRACT_QWORD32

#define EFAB_EXTRACT_QWORD32 ( qword,
low,
high )
Value:
( EFAB_EXTRACT32 ( (qword).u32[0], 0, 31, low, high ) | \
EFAB_EXTRACT32 ( (qword).u32[1], 32, 63, low, high ) )

Definition at line 202 of file etherfabric.h.

202#define EFAB_EXTRACT_QWORD32( qword, low, high ) \
203 ( EFAB_EXTRACT32 ( (qword).u32[0], 0, 31, low, high ) | \
204 EFAB_EXTRACT32 ( (qword).u32[1], 32, 63, low, high ) )

◆ EFAB_EXTRACT_DWORD

#define EFAB_EXTRACT_DWORD ( dword,
low,
high )
Value:
( EFAB_EXTRACT32 ( (dword).u32[0], 0, 31, low, high ) )

Definition at line 206 of file etherfabric.h.

206#define EFAB_EXTRACT_DWORD( dword, low, high ) \
207 ( EFAB_EXTRACT32 ( (dword).u32[0], 0, 31, low, high ) )

◆ EFAB_OWORD_FIELD64

#define EFAB_OWORD_FIELD64 ( oword,
field )
Value:
( EFAB_EXTRACT_OWORD64 ( oword, EFAB_LOW_BIT ( field ), \
EFAB_HIGH_BIT ( field ) ) & \
EFAB_MASK64 ( field ) )
#define EFAB_EXTRACT_OWORD64(oword, low, high)
#define EFAB_HIGH_BIT(field)
High bit number of the specified field.
Definition etherfabric.h:76

Definition at line 209 of file etherfabric.h.

209#define EFAB_OWORD_FIELD64( oword, field ) \
210 ( EFAB_EXTRACT_OWORD64 ( oword, EFAB_LOW_BIT ( field ), \
211 EFAB_HIGH_BIT ( field ) ) & \
212 EFAB_MASK64 ( field ) )

◆ EFAB_QWORD_FIELD64

#define EFAB_QWORD_FIELD64 ( qword,
field )
Value:
( EFAB_EXTRACT_QWORD64 ( qword, EFAB_LOW_BIT ( field ), \
EFAB_HIGH_BIT ( field ) ) & \
EFAB_MASK64 ( field ) )
#define EFAB_EXTRACT_QWORD64(qword, low, high)

Definition at line 214 of file etherfabric.h.

214#define EFAB_QWORD_FIELD64( qword, field ) \
215 ( EFAB_EXTRACT_QWORD64 ( qword, EFAB_LOW_BIT ( field ), \
216 EFAB_HIGH_BIT ( field ) ) & \
217 EFAB_MASK64 ( field ) )

◆ EFAB_OWORD_FIELD32

#define EFAB_OWORD_FIELD32 ( oword,
field )
Value:
( EFAB_EXTRACT_OWORD32 ( oword, EFAB_LOW_BIT ( field ), \
EFAB_HIGH_BIT ( field ) ) & \
EFAB_MASK32 ( field ) )
#define EFAB_EXTRACT_OWORD32(oword, low, high)

Definition at line 219 of file etherfabric.h.

219#define EFAB_OWORD_FIELD32( oword, field ) \
220 ( EFAB_EXTRACT_OWORD32 ( oword, EFAB_LOW_BIT ( field ), \
221 EFAB_HIGH_BIT ( field ) ) & \
222 EFAB_MASK32 ( field ) )

◆ EFAB_QWORD_FIELD32

#define EFAB_QWORD_FIELD32 ( qword,
field )
Value:
( EFAB_EXTRACT_QWORD32 ( qword, EFAB_LOW_BIT ( field ), \
EFAB_HIGH_BIT ( field ) ) & \
EFAB_MASK32 ( field ) )
#define EFAB_EXTRACT_QWORD32(qword, low, high)

Definition at line 224 of file etherfabric.h.

224#define EFAB_QWORD_FIELD32( qword, field ) \
225 ( EFAB_EXTRACT_QWORD32 ( qword, EFAB_LOW_BIT ( field ), \
226 EFAB_HIGH_BIT ( field ) ) & \
227 EFAB_MASK32 ( field ) )

◆ EFAB_DWORD_FIELD

#define EFAB_DWORD_FIELD ( dword,
field )
Value:
EFAB_HIGH_BIT ( field ) ) & \
EFAB_MASK32 ( field ) )
#define EFAB_EXTRACT_DWORD(dword, low, high)

Definition at line 229 of file etherfabric.h.

229#define EFAB_DWORD_FIELD( dword, field ) \
230 ( EFAB_EXTRACT_DWORD ( dword, EFAB_LOW_BIT ( field ), \
231 EFAB_HIGH_BIT ( field ) ) & \
232 EFAB_MASK32 ( field ) )

Referenced by falcon_gmac_writel(), falcon_gmii_wait(), falcon_reset_xaui(), falcon_reset_xmac(), falcon_xaui_link_ok(), falcon_xgmii_status(), falcon_xmac_writel(), and mdio_clause45_check_mmds().

◆ EFAB_OWORD_IS_ZERO64

#define EFAB_OWORD_IS_ZERO64 ( oword)
Value:
( ! ( (oword).u64[0] || (oword).u64[1] ) )

Definition at line 234 of file etherfabric.h.

234#define EFAB_OWORD_IS_ZERO64( oword ) \
235 ( ! ( (oword).u64[0] || (oword).u64[1] ) )

◆ EFAB_QWORD_IS_ZERO64

#define EFAB_QWORD_IS_ZERO64 ( qword)
Value:
( ! ( (qword).u64[0] ) )

Definition at line 237 of file etherfabric.h.

237#define EFAB_QWORD_IS_ZERO64( qword ) \
238 ( ! ( (qword).u64[0] ) )

◆ EFAB_OWORD_IS_ZERO32

#define EFAB_OWORD_IS_ZERO32 ( oword)
Value:
( ! ( (oword).u32[0] || (oword).u32[1] || \
(oword).u32[2] || (oword).u32[3] ) )

Definition at line 240 of file etherfabric.h.

240#define EFAB_OWORD_IS_ZERO32( oword ) \
241 ( ! ( (oword).u32[0] || (oword).u32[1] || \
242 (oword).u32[2] || (oword).u32[3] ) )

◆ EFAB_QWORD_IS_ZERO32

#define EFAB_QWORD_IS_ZERO32 ( qword)
Value:
( ! ( (qword).u32[0] || (qword).u32[1] ) )

Definition at line 244 of file etherfabric.h.

244#define EFAB_QWORD_IS_ZERO32( qword ) \
245 ( ! ( (qword).u32[0] || (qword).u32[1] ) )

◆ EFAB_DWORD_IS_ZERO

#define EFAB_DWORD_IS_ZERO ( dword)
Value:
( ! ( (dword).u32[0] ) )

Definition at line 247 of file etherfabric.h.

247#define EFAB_DWORD_IS_ZERO( dword ) \
248 ( ! ( (dword).u32[0] ) )

◆ EFAB_OWORD_IS_ALL_ONES64

#define EFAB_OWORD_IS_ALL_ONES64 ( oword)
Value:
( ( (oword).u64[0] & (oword).u64[1] ) == ~( ( uint64_t ) 0 ) )

Definition at line 250 of file etherfabric.h.

250#define EFAB_OWORD_IS_ALL_ONES64( oword ) \
251 ( ( (oword).u64[0] & (oword).u64[1] ) == ~( ( uint64_t ) 0 ) )

◆ EFAB_QWORD_IS_ALL_ONES64

#define EFAB_QWORD_IS_ALL_ONES64 ( qword)
Value:
( (qword).u64[0] == ~( ( uint64_t ) 0 ) )

Definition at line 253 of file etherfabric.h.

253#define EFAB_QWORD_IS_ALL_ONES64( qword ) \
254 ( (qword).u64[0] == ~( ( uint64_t ) 0 ) )

◆ EFAB_OWORD_IS_ALL_ONES32

#define EFAB_OWORD_IS_ALL_ONES32 ( oword)
Value:
( ( (oword).u32[0] & (oword).u32[1] & \
(oword).u32[2] & (oword).u32[3] ) == ~( ( uint32_t ) 0 ) )

Definition at line 256 of file etherfabric.h.

256#define EFAB_OWORD_IS_ALL_ONES32( oword ) \
257 ( ( (oword).u32[0] & (oword).u32[1] & \
258 (oword).u32[2] & (oword).u32[3] ) == ~( ( uint32_t ) 0 ) )

◆ EFAB_QWORD_IS_ALL_ONES32

#define EFAB_QWORD_IS_ALL_ONES32 ( qword)
Value:
( ( (qword).u32[0] & (qword).u32[1] ) == ~( ( uint32_t ) 0 ) )

Definition at line 260 of file etherfabric.h.

260#define EFAB_QWORD_IS_ALL_ONES32( qword ) \
261 ( ( (qword).u32[0] & (qword).u32[1] ) == ~( ( uint32_t ) 0 ) )

◆ EFAB_DWORD_IS_ALL_ONES

#define EFAB_DWORD_IS_ALL_ONES ( dword)
Value:
( (dword).u32[0] == ~( ( uint32_t ) 0 ) )

Definition at line 263 of file etherfabric.h.

263#define EFAB_DWORD_IS_ALL_ONES( dword ) \
264 ( (dword).u32[0] == ~( ( uint32_t ) 0 ) )

Referenced by falcon_event_present().

◆ EFAB_OWORD_FIELD

◆ EFAB_QWORD_FIELD

#define EFAB_QWORD_FIELD   EFAB_QWORD_FIELD32

Definition at line 275 of file etherfabric.h.

Referenced by falcon_handle_event().

◆ EFAB_OWORD_IS_ZERO

#define EFAB_OWORD_IS_ZERO   EFAB_OWORD_IS_ZERO32

Definition at line 276 of file etherfabric.h.

◆ EFAB_QWORD_IS_ZERO

#define EFAB_QWORD_IS_ZERO   EFAB_QWORD_IS_ZERO32

Definition at line 277 of file etherfabric.h.

◆ EFAB_OWORD_IS_ALL_ONES

#define EFAB_OWORD_IS_ALL_ONES   EFAB_OWORD_IS_ALL_ONES32

Definition at line 278 of file etherfabric.h.

◆ EFAB_QWORD_IS_ALL_ONES

#define EFAB_QWORD_IS_ALL_ONES   EFAB_QWORD_IS_ALL_ONES32

Definition at line 279 of file etherfabric.h.

◆ EFAB_INSERT_NATIVE64

#define EFAB_INSERT_NATIVE64 ( min,
max,
low,
high,
value )
Value:
( ( ( low > max ) || ( high < min ) ) ? 0 : \
( ( low > min ) ? \
( ( ( uint64_t ) (value) ) << ( low - min ) ) : \
( ( ( uint64_t ) (value) ) >> ( min - low ) ) ) )
pseudo_bit_t value[0x00020]
Definition arbel.h:2

Construct bit field portion.

Creates the portion of the bit field [low,high) that lies within the range [min,max).

Definition at line 288 of file etherfabric.h.

288#define EFAB_INSERT_NATIVE64( min, max, low, high, value ) \
289 ( ( ( low > max ) || ( high < min ) ) ? 0 : \
290 ( ( low > min ) ? \
291 ( ( ( uint64_t ) (value) ) << ( low - min ) ) : \
292 ( ( ( uint64_t ) (value) ) >> ( min - low ) ) ) )

◆ EFAB_INSERT_NATIVE32

#define EFAB_INSERT_NATIVE32 ( min,
max,
low,
high,
value )
Value:
( ( ( low > max ) || ( high < min ) ) ? 0 : \
( ( low > min ) ? \
( ( ( uint32_t ) (value) ) << ( low - min ) ) : \
( ( ( uint32_t ) (value) ) >> ( min - low ) ) ) )

Definition at line 294 of file etherfabric.h.

294#define EFAB_INSERT_NATIVE32( min, max, low, high, value ) \
295 ( ( ( low > max ) || ( high < min ) ) ? 0 : \
296 ( ( low > min ) ? \
297 ( ( ( uint32_t ) (value) ) << ( low - min ) ) : \
298 ( ( ( uint32_t ) (value) ) >> ( min - low ) ) ) )

◆ EFAB_INSERT_NATIVE

#define EFAB_INSERT_NATIVE ( min,
max,
low,
high,
value )
Value:
( ( ( ( max - min ) >= 32 ) || \
( ( high - low ) >= 32 ) ) \
#define EFAB_INSERT_NATIVE32(min, max, low, high, value)
#define EFAB_INSERT_NATIVE64(min, max, low, high, value)
Construct bit field portion.

Definition at line 300 of file etherfabric.h.

300#define EFAB_INSERT_NATIVE( min, max, low, high, value ) \
301 ( ( ( ( max - min ) >= 32 ) || \
302 ( ( high - low ) >= 32 ) ) \
303 ? EFAB_INSERT_NATIVE64 ( min, max, low, high, value ) \
304 : EFAB_INSERT_NATIVE32 ( min, max, low, high, value ) )

◆ EFAB_INSERT_FIELD_NATIVE

#define EFAB_INSERT_FIELD_NATIVE ( min,
max,
field,
value )
Value:
EFAB_HIGH_BIT ( field ), value )
#define EFAB_INSERT_NATIVE(min, max, low, high, value)

Construct bit field portion.

Creates the portion of the named bit field that lies within the range [min,max).

Definition at line 312 of file etherfabric.h.

312#define EFAB_INSERT_FIELD_NATIVE( min, max, field, value ) \
313 EFAB_INSERT_NATIVE ( min, max, EFAB_LOW_BIT ( field ), \
314 EFAB_HIGH_BIT ( field ), value )

◆ EFAB_INSERT_FIELDS_NATIVE

#define EFAB_INSERT_FIELDS_NATIVE ( min,
max,
field1,
value1,
field2,
value2,
field3,
value3,
field4,
value4,
field5,
value5,
field6,
value6,
field7,
value7,
field8,
value8,
field9,
value9,
field10,
value10 )
Value:
( EFAB_INSERT_FIELD_NATIVE ( min, max, field1, value1 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field2, value2 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field3, value3 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field4, value4 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field5, value5 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field6, value6 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field7, value7 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field8, value8 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field9, value9 ) | \
EFAB_INSERT_FIELD_NATIVE ( min, max, field10, value10 ) )
#define EFAB_INSERT_FIELD_NATIVE(min, max, field, value)
Construct bit field portion.

Construct bit field.

Creates the portion of the named bit fields that lie within the range [min,max).

Definition at line 322 of file etherfabric.h.

◆ EFAB_INSERT_FIELDS64

#define EFAB_INSERT_FIELDS64 ( ...)
Value:
#define EFAB_INSERT_FIELDS_NATIVE(min, max, field1, value1, field2, value2, field3, value3, field4, value4, field5, value5, field6, value6, field7, value7, field8, value8, field9, value9, field10, value10)
Construct bit field.
#define cpu_to_le64(value)
Definition byteswap.h:109

Definition at line 344 of file etherfabric.h.

344#define EFAB_INSERT_FIELDS64( ... ) \
345 cpu_to_le64 ( EFAB_INSERT_FIELDS_NATIVE ( __VA_ARGS__ ) )

◆ EFAB_INSERT_FIELDS32

#define EFAB_INSERT_FIELDS32 ( ...)
Value:
#define cpu_to_le32(value)
Definition byteswap.h:108

Definition at line 347 of file etherfabric.h.

347#define EFAB_INSERT_FIELDS32( ... ) \
348 cpu_to_le32 ( EFAB_INSERT_FIELDS_NATIVE ( __VA_ARGS__ ) )

◆ EFAB_POPULATE_OWORD64

#define EFAB_POPULATE_OWORD64 ( oword,
... )
Value:
do { \
(oword).u64[0] = EFAB_INSERT_FIELDS64 ( 0, 63, __VA_ARGS__ );\
(oword).u64[1] = EFAB_INSERT_FIELDS64 ( 64, 127, __VA_ARGS__ );\
} while ( 0 )
#define EFAB_INSERT_FIELDS64(...)

Definition at line 350 of file etherfabric.h.

350#define EFAB_POPULATE_OWORD64( oword, ... ) do { \
351 (oword).u64[0] = EFAB_INSERT_FIELDS64 ( 0, 63, __VA_ARGS__ );\
352 (oword).u64[1] = EFAB_INSERT_FIELDS64 ( 64, 127, __VA_ARGS__ );\
353 } while ( 0 )

◆ EFAB_POPULATE_QWORD64

#define EFAB_POPULATE_QWORD64 ( qword,
... )
Value:
do { \
(qword).u64[0] = EFAB_INSERT_FIELDS64 ( 0, 63, __VA_ARGS__ );\
} while ( 0 )

Definition at line 355 of file etherfabric.h.

355#define EFAB_POPULATE_QWORD64( qword, ... ) do { \
356 (qword).u64[0] = EFAB_INSERT_FIELDS64 ( 0, 63, __VA_ARGS__ );\
357 } while ( 0 )

◆ EFAB_POPULATE_OWORD32

#define EFAB_POPULATE_OWORD32 ( oword,
... )
Value:
do { \
(oword).u32[0] = EFAB_INSERT_FIELDS32 ( 0, 31, __VA_ARGS__ );\
(oword).u32[1] = EFAB_INSERT_FIELDS32 ( 32, 63, __VA_ARGS__ );\
(oword).u32[2] = EFAB_INSERT_FIELDS32 ( 64, 95, __VA_ARGS__ );\
(oword).u32[3] = EFAB_INSERT_FIELDS32 ( 96, 127, __VA_ARGS__ );\
} while ( 0 )
#define EFAB_INSERT_FIELDS32(...)

Definition at line 359 of file etherfabric.h.

359#define EFAB_POPULATE_OWORD32( oword, ... ) do { \
360 (oword).u32[0] = EFAB_INSERT_FIELDS32 ( 0, 31, __VA_ARGS__ );\
361 (oword).u32[1] = EFAB_INSERT_FIELDS32 ( 32, 63, __VA_ARGS__ );\
362 (oword).u32[2] = EFAB_INSERT_FIELDS32 ( 64, 95, __VA_ARGS__ );\
363 (oword).u32[3] = EFAB_INSERT_FIELDS32 ( 96, 127, __VA_ARGS__ );\
364 } while ( 0 )

◆ EFAB_POPULATE_QWORD32

#define EFAB_POPULATE_QWORD32 ( qword,
... )
Value:
do { \
(qword).u32[0] = EFAB_INSERT_FIELDS32 ( 0, 31, __VA_ARGS__ );\
(qword).u32[1] = EFAB_INSERT_FIELDS32 ( 32, 63, __VA_ARGS__ );\
} while ( 0 )

Definition at line 366 of file etherfabric.h.

366#define EFAB_POPULATE_QWORD32( qword, ... ) do { \
367 (qword).u32[0] = EFAB_INSERT_FIELDS32 ( 0, 31, __VA_ARGS__ );\
368 (qword).u32[1] = EFAB_INSERT_FIELDS32 ( 32, 63, __VA_ARGS__ );\
369 } while ( 0 )

◆ EFAB_POPULATE_DWORD

#define EFAB_POPULATE_DWORD ( dword,
... )
Value:
do { \
(dword).u32[0] = EFAB_INSERT_FIELDS32 ( 0, 31, __VA_ARGS__ );\
} while ( 0 )

Definition at line 371 of file etherfabric.h.

371#define EFAB_POPULATE_DWORD( dword, ... ) do { \
372 (dword).u32[0] = EFAB_INSERT_FIELDS32 ( 0, 31, __VA_ARGS__ );\
373 } while ( 0 )

◆ EFAB_POPULATE_OWORD

#define EFAB_POPULATE_OWORD   EFAB_POPULATE_OWORD32

Definition at line 379 of file etherfabric.h.

◆ EFAB_POPULATE_QWORD

#define EFAB_POPULATE_QWORD   EFAB_POPULATE_QWORD32

Definition at line 380 of file etherfabric.h.

◆ EFAB_POPULATE_OWORD_10

#define EFAB_POPULATE_OWORD_10   EFAB_POPULATE_OWORD

Definition at line 384 of file etherfabric.h.

◆ EFAB_POPULATE_OWORD_9

#define EFAB_POPULATE_OWORD_9 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_10 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_10

Definition at line 385 of file etherfabric.h.

385#define EFAB_POPULATE_OWORD_9( oword, ... ) \
386 EFAB_POPULATE_OWORD_10 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_OWORD_8

#define EFAB_POPULATE_OWORD_8 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_9 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_9(oword,...)

Definition at line 387 of file etherfabric.h.

387#define EFAB_POPULATE_OWORD_8( oword, ... ) \
388 EFAB_POPULATE_OWORD_9 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_init_resources().

◆ EFAB_POPULATE_OWORD_7

#define EFAB_POPULATE_OWORD_7 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_8 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_8(oword,...)

Definition at line 389 of file etherfabric.h.

389#define EFAB_POPULATE_OWORD_7( oword, ... ) \
390 EFAB_POPULATE_OWORD_8 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_spi_rw().

◆ EFAB_POPULATE_OWORD_6

#define EFAB_POPULATE_OWORD_6 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_7 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_7(oword,...)

Definition at line 391 of file etherfabric.h.

391#define EFAB_POPULATE_OWORD_6( oword, ... ) \
392 EFAB_POPULATE_OWORD_7 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_reset().

◆ EFAB_POPULATE_OWORD_5

#define EFAB_POPULATE_OWORD_5 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_6 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_6(oword,...)

Definition at line 393 of file etherfabric.h.

393#define EFAB_POPULATE_OWORD_5( oword, ... ) \
394 EFAB_POPULATE_OWORD_6 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_reconfigure_mac_wrapper(), and falcon_setup_nic().

◆ EFAB_POPULATE_OWORD_4

#define EFAB_POPULATE_OWORD_4 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_5 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_5(oword,...)

Definition at line 395 of file etherfabric.h.

395#define EFAB_POPULATE_OWORD_4( oword, ... ) \
396 EFAB_POPULATE_OWORD_5 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by clear_b0_fpga_memories().

◆ EFAB_POPULATE_OWORD_3

#define EFAB_POPULATE_OWORD_3 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_4 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_4(oword,...)

Definition at line 397 of file etherfabric.h.

397#define EFAB_POPULATE_OWORD_3( oword, ... ) \
398 EFAB_POPULATE_OWORD_4 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_init_resources().

◆ EFAB_POPULATE_OWORD_2

#define EFAB_POPULATE_OWORD_2 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_3 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_3(oword,...)

Definition at line 399 of file etherfabric.h.

399#define EFAB_POPULATE_OWORD_2( oword, ... ) \
400 EFAB_POPULATE_OWORD_3 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_fini_resources(), falcon_init_sram(), falcon_interrupts(), falcon_mdio_read(), and falcon_mdio_write().

◆ EFAB_POPULATE_OWORD_1

#define EFAB_POPULATE_OWORD_1 ( oword,
... )
Value:
EFAB_POPULATE_OWORD_2 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_OWORD_2(oword,...)

Definition at line 401 of file etherfabric.h.

401#define EFAB_POPULATE_OWORD_1( oword, ... ) \
402 EFAB_POPULATE_OWORD_2 ( oword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_gmac_writel(), falcon_init_resources(), falcon_mdio_read(), falcon_mdio_write(), falcon_setup_nic(), falcon_spi_rw(), and falcon_xmac_writel().

◆ EFAB_ZERO_OWORD

#define EFAB_ZERO_OWORD ( oword)
Value:
EFAB_POPULATE_OWORD_1 ( oword, EFAB_DUMMY_FIELD, 0 )
#define EFAB_POPULATE_OWORD_1(oword,...)

Definition at line 403 of file etherfabric.h.

403#define EFAB_ZERO_OWORD( oword ) \
404 EFAB_POPULATE_OWORD_1 ( oword, EFAB_DUMMY_FIELD, 0 )

Referenced by clear_b0_fpga_memories(), and falcon_fini_resources().

◆ EFAB_SET_OWORD

#define EFAB_SET_OWORD ( oword)
Value:
EFAB_DWORD_0, 0xffffffff, \
EFAB_DWORD_1, 0xffffffff, \
EFAB_DWORD_2, 0xffffffff, \
EFAB_DWORD_3, 0xffffffff )

Definition at line 405 of file etherfabric.h.

405#define EFAB_SET_OWORD( oword ) \
406 EFAB_POPULATE_OWORD_4 ( oword, \
407 EFAB_DWORD_0, 0xffffffff, \
408 EFAB_DWORD_1, 0xffffffff, \
409 EFAB_DWORD_2, 0xffffffff, \
410 EFAB_DWORD_3, 0xffffffff )

◆ EFAB_POPULATE_QWORD_10

#define EFAB_POPULATE_QWORD_10   EFAB_POPULATE_QWORD

Definition at line 413 of file etherfabric.h.

◆ EFAB_POPULATE_QWORD_9

#define EFAB_POPULATE_QWORD_9 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_10 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_10

Definition at line 414 of file etherfabric.h.

414#define EFAB_POPULATE_QWORD_9( qword, ... ) \
415 EFAB_POPULATE_QWORD_10 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_QWORD_8

#define EFAB_POPULATE_QWORD_8 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_9 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_9(qword,...)

Definition at line 416 of file etherfabric.h.

416#define EFAB_POPULATE_QWORD_8( qword, ... ) \
417 EFAB_POPULATE_QWORD_9 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_QWORD_7

#define EFAB_POPULATE_QWORD_7 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_8 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_8(qword,...)

Definition at line 418 of file etherfabric.h.

418#define EFAB_POPULATE_QWORD_7( qword, ... ) \
419 EFAB_POPULATE_QWORD_8 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_QWORD_6

#define EFAB_POPULATE_QWORD_6 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_7 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_7(qword,...)

Definition at line 420 of file etherfabric.h.

420#define EFAB_POPULATE_QWORD_6( qword, ... ) \
421 EFAB_POPULATE_QWORD_7 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_QWORD_5

#define EFAB_POPULATE_QWORD_5 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_6 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_6(qword,...)

Definition at line 422 of file etherfabric.h.

422#define EFAB_POPULATE_QWORD_5( qword, ... ) \
423 EFAB_POPULATE_QWORD_6 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_QWORD_4

#define EFAB_POPULATE_QWORD_4 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_5 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_5(qword,...)

Definition at line 424 of file etherfabric.h.

424#define EFAB_POPULATE_QWORD_4( qword, ... ) \
425 EFAB_POPULATE_QWORD_5 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_QWORD_3

#define EFAB_POPULATE_QWORD_3 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_4 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_4(qword,...)

Definition at line 426 of file etherfabric.h.

426#define EFAB_POPULATE_QWORD_3( qword, ... ) \
427 EFAB_POPULATE_QWORD_4 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_alloc_special_buffer().

◆ EFAB_POPULATE_QWORD_2

#define EFAB_POPULATE_QWORD_2 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_3 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_3(qword,...)

Definition at line 428 of file etherfabric.h.

428#define EFAB_POPULATE_QWORD_2( qword, ... ) \
429 EFAB_POPULATE_QWORD_3 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_build_rx_desc(), and falcon_build_tx_desc().

◆ EFAB_POPULATE_QWORD_1

#define EFAB_POPULATE_QWORD_1 ( qword,
... )
Value:
EFAB_POPULATE_QWORD_2 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_QWORD_2(qword,...)

Definition at line 430 of file etherfabric.h.

430#define EFAB_POPULATE_QWORD_1( qword, ... ) \
431 EFAB_POPULATE_QWORD_2 ( qword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_ZERO_QWORD

#define EFAB_ZERO_QWORD ( qword)
Value:
EFAB_POPULATE_QWORD_1 ( qword, EFAB_DUMMY_FIELD, 0 )
#define EFAB_POPULATE_QWORD_1(qword,...)

Definition at line 432 of file etherfabric.h.

432#define EFAB_ZERO_QWORD( qword ) \
433 EFAB_POPULATE_QWORD_1 ( qword, EFAB_DUMMY_FIELD, 0 )

◆ EFAB_SET_QWORD

#define EFAB_SET_QWORD ( qword)
Value:
EFAB_DWORD_0, 0xffffffff, \
EFAB_DWORD_1, 0xffffffff )

Definition at line 434 of file etherfabric.h.

434#define EFAB_SET_QWORD( qword ) \
435 EFAB_POPULATE_QWORD_2 ( qword, \
436 EFAB_DWORD_0, 0xffffffff, \
437 EFAB_DWORD_1, 0xffffffff )

Referenced by efab_poll().

◆ EFAB_POPULATE_DWORD_10

#define EFAB_POPULATE_DWORD_10   EFAB_POPULATE_DWORD

Definition at line 440 of file etherfabric.h.

◆ EFAB_POPULATE_DWORD_9

#define EFAB_POPULATE_DWORD_9 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_10 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_10

Definition at line 441 of file etherfabric.h.

441#define EFAB_POPULATE_DWORD_9( dword, ... ) \
442 EFAB_POPULATE_DWORD_10 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

◆ EFAB_POPULATE_DWORD_8

#define EFAB_POPULATE_DWORD_8 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_9 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_9(dword,...)

Definition at line 443 of file etherfabric.h.

443#define EFAB_POPULATE_DWORD_8( dword, ... ) \
444 EFAB_POPULATE_DWORD_9 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_setup_xaui().

◆ EFAB_POPULATE_DWORD_7

#define EFAB_POPULATE_DWORD_7 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_8 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_8(dword,...)

Definition at line 445 of file etherfabric.h.

445#define EFAB_POPULATE_DWORD_7( dword, ... ) \
446 EFAB_POPULATE_DWORD_8 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by sfe4001_init().

◆ EFAB_POPULATE_DWORD_6

#define EFAB_POPULATE_DWORD_6 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_7 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_7(dword,...)

Definition at line 447 of file etherfabric.h.

447#define EFAB_POPULATE_DWORD_6( dword, ... ) \
448 EFAB_POPULATE_DWORD_7 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_reconfigure_xmac().

◆ EFAB_POPULATE_DWORD_5

#define EFAB_POPULATE_DWORD_5 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_6 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_6(dword,...)

Definition at line 449 of file etherfabric.h.

449#define EFAB_POPULATE_DWORD_5( dword, ... ) \
450 EFAB_POPULATE_DWORD_6 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by mentormac_init().

◆ EFAB_POPULATE_DWORD_4

#define EFAB_POPULATE_DWORD_4 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_5 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_5(dword,...)

Definition at line 451 of file etherfabric.h.

451#define EFAB_POPULATE_DWORD_4( dword, ... ) \
452 EFAB_POPULATE_DWORD_5 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_reconfigure_xmac(), and mentormac_init().

◆ EFAB_POPULATE_DWORD_3

#define EFAB_POPULATE_DWORD_3 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_4 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_4(dword,...)

Definition at line 453 of file etherfabric.h.

453#define EFAB_POPULATE_DWORD_3( dword, ... ) \
454 EFAB_POPULATE_DWORD_4 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_reconfigure_xmac().

◆ EFAB_POPULATE_DWORD_2

#define EFAB_POPULATE_DWORD_2 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_3 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_3(dword,...)

Definition at line 455 of file etherfabric.h.

455#define EFAB_POPULATE_DWORD_2( dword, ... ) \
456 EFAB_POPULATE_DWORD_3 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_mask_status_intr(), falcon_reconfigure_xmac(), falcon_setup_nic(), and mentormac_init().

◆ EFAB_POPULATE_DWORD_1

#define EFAB_POPULATE_DWORD_1 ( dword,
... )
Value:
EFAB_POPULATE_DWORD_2 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )
#define EFAB_POPULATE_DWORD_2(dword,...)

Definition at line 457 of file etherfabric.h.

457#define EFAB_POPULATE_DWORD_1( dword, ... ) \
458 EFAB_POPULATE_DWORD_2 ( dword, EFAB_DUMMY_FIELD, 0, __VA_ARGS__ )

Referenced by falcon_eventq_read_ack(), falcon_gmac_readl(), falcon_notify_rx_desc(), falcon_notify_tx_desc(), falcon_reconfigure_xmac(), falcon_reset_xaui(), falcon_reset_xmac(), falcon_xmac_readl(), mentormac_init(), and mentormac_reset().

◆ EFAB_ZERO_DWORD

#define EFAB_ZERO_DWORD ( dword)
Value:
EFAB_POPULATE_DWORD_1 ( dword, EFAB_DUMMY_FIELD, 0 )
#define EFAB_POPULATE_DWORD_1(dword,...)

Definition at line 459 of file etherfabric.h.

459#define EFAB_ZERO_DWORD( dword ) \
460 EFAB_POPULATE_DWORD_1 ( dword, EFAB_DUMMY_FIELD, 0 )

Referenced by falcon_clear_interrupts().

◆ EFAB_SET_DWORD

#define EFAB_SET_DWORD ( dword)
Value:
EFAB_POPULATE_DWORD_1 ( dword, EFAB_DWORD_0, 0xffffffff )

Definition at line 461 of file etherfabric.h.

461#define EFAB_SET_DWORD( dword ) \
462 EFAB_POPULATE_DWORD_1 ( dword, EFAB_DWORD_0, 0xffffffff )

◆ EFAB_INSERT_FIELD64

#define EFAB_INSERT_FIELD64 ( ...)
Value:

Definition at line 470 of file etherfabric.h.

470#define EFAB_INSERT_FIELD64( ... ) \
471 cpu_to_le64 ( EFAB_INSERT_FIELD_NATIVE ( __VA_ARGS__ ) )

◆ EFAB_INSERT_FIELD32

#define EFAB_INSERT_FIELD32 ( ...)
Value:

Definition at line 473 of file etherfabric.h.

473#define EFAB_INSERT_FIELD32( ... ) \
474 cpu_to_le32 ( EFAB_INSERT_FIELD_NATIVE ( __VA_ARGS__ ) )

◆ EFAB_INPLACE_MASK64

#define EFAB_INPLACE_MASK64 ( min,
max,
field )
Value:
EFAB_INSERT_FIELD64 ( min, max, field, EFAB_MASK64 ( field ) )
#define EFAB_MASK64(field)
Mask equal in width to the specified field.
Definition etherfabric.h:83
#define EFAB_INSERT_FIELD64(...)

Definition at line 476 of file etherfabric.h.

476#define EFAB_INPLACE_MASK64( min, max, field ) \
477 EFAB_INSERT_FIELD64 ( min, max, field, EFAB_MASK64 ( field ) )

◆ EFAB_INPLACE_MASK32

#define EFAB_INPLACE_MASK32 ( min,
max,
field )
Value:
EFAB_INSERT_FIELD32 ( min, max, field, EFAB_MASK32 ( field ) )
#define EFAB_INSERT_FIELD32(...)
#define EFAB_MASK32(field)
Mask equal in width to the specified field.
Definition etherfabric.h:94

Definition at line 479 of file etherfabric.h.

479#define EFAB_INPLACE_MASK32( min, max, field ) \
480 EFAB_INSERT_FIELD32 ( min, max, field, EFAB_MASK32 ( field ) )

◆ EFAB_SET_OWORD_FIELD64

#define EFAB_SET_OWORD_FIELD64 ( oword,
field,
value )
Value:
do { \
(oword).u64[0] = ( ( (oword).u64[0] \
& ~EFAB_INPLACE_MASK64 ( 0, 63, field ) ) \
| EFAB_INSERT_FIELD64 ( 0, 63, field, value ) ); \
(oword).u64[1] = ( ( (oword).u64[1] \
& ~EFAB_INPLACE_MASK64 ( 64, 127, field ) ) \
| EFAB_INSERT_FIELD64 ( 64, 127, field, value ) ); \
} while ( 0 )
#define EFAB_INPLACE_MASK64(min, max, field)

Definition at line 482 of file etherfabric.h.

482#define EFAB_SET_OWORD_FIELD64( oword, field, value ) do { \
483 (oword).u64[0] = ( ( (oword).u64[0] \
484 & ~EFAB_INPLACE_MASK64 ( 0, 63, field ) ) \
485 | EFAB_INSERT_FIELD64 ( 0, 63, field, value ) ); \
486 (oword).u64[1] = ( ( (oword).u64[1] \
487 & ~EFAB_INPLACE_MASK64 ( 64, 127, field ) ) \
488 | EFAB_INSERT_FIELD64 ( 64, 127, field, value ) ); \
489 } while ( 0 )

◆ EFAB_SET_QWORD_FIELD64

#define EFAB_SET_QWORD_FIELD64 ( qword,
field,
value )
Value:
do { \
(qword).u64[0] = ( ( (qword).u64[0] \
& ~EFAB_INPLACE_MASK64 ( 0, 63, field ) ) \
| EFAB_INSERT_FIELD64 ( 0, 63, field, value ) ); \
} while ( 0 )

Definition at line 491 of file etherfabric.h.

491#define EFAB_SET_QWORD_FIELD64( qword, field, value ) do { \
492 (qword).u64[0] = ( ( (qword).u64[0] \
493 & ~EFAB_INPLACE_MASK64 ( 0, 63, field ) ) \
494 | EFAB_INSERT_FIELD64 ( 0, 63, field, value ) ); \
495 } while ( 0 )

◆ EFAB_SET_OWORD_FIELD32

#define EFAB_SET_OWORD_FIELD32 ( oword,
field,
value )
Value:
do { \
(oword).u32[0] = ( ( (oword).u32[0] \
& ~EFAB_INPLACE_MASK32 ( 0, 31, field ) ) \
| EFAB_INSERT_FIELD32 ( 0, 31, field, value ) ); \
(oword).u32[1] = ( ( (oword).u32[1] \
& ~EFAB_INPLACE_MASK32 ( 32, 63, field ) ) \
| EFAB_INSERT_FIELD32 ( 32, 63, field, value ) ); \
(oword).u32[2] = ( ( (oword).u32[2] \
& ~EFAB_INPLACE_MASK32 ( 64, 95, field ) ) \
| EFAB_INSERT_FIELD32 ( 64, 95, field, value ) ); \
(oword).u32[3] = ( ( (oword).u32[3] \
& ~EFAB_INPLACE_MASK32 ( 96, 127, field ) ) \
| EFAB_INSERT_FIELD32 ( 96, 127, field, value ) ); \
} while ( 0 )
#define EFAB_INPLACE_MASK32(min, max, field)

Definition at line 497 of file etherfabric.h.

497#define EFAB_SET_OWORD_FIELD32( oword, field, value ) do { \
498 (oword).u32[0] = ( ( (oword).u32[0] \
499 & ~EFAB_INPLACE_MASK32 ( 0, 31, field ) ) \
500 | EFAB_INSERT_FIELD32 ( 0, 31, field, value ) ); \
501 (oword).u32[1] = ( ( (oword).u32[1] \
502 & ~EFAB_INPLACE_MASK32 ( 32, 63, field ) ) \
503 | EFAB_INSERT_FIELD32 ( 32, 63, field, value ) ); \
504 (oword).u32[2] = ( ( (oword).u32[2] \
505 & ~EFAB_INPLACE_MASK32 ( 64, 95, field ) ) \
506 | EFAB_INSERT_FIELD32 ( 64, 95, field, value ) ); \
507 (oword).u32[3] = ( ( (oword).u32[3] \
508 & ~EFAB_INPLACE_MASK32 ( 96, 127, field ) ) \
509 | EFAB_INSERT_FIELD32 ( 96, 127, field, value ) ); \
510 } while ( 0 )

◆ EFAB_SET_QWORD_FIELD32

#define EFAB_SET_QWORD_FIELD32 ( qword,
field,
value )
Value:
do { \
(qword).u32[0] = ( ( (qword).u32[0] \
& ~EFAB_INPLACE_MASK32 ( 0, 31, field ) ) \
| EFAB_INSERT_FIELD32 ( 0, 31, field, value ) ); \
(qword).u32[1] = ( ( (qword).u32[1] \
& ~EFAB_INPLACE_MASK32 ( 32, 63, field ) ) \
| EFAB_INSERT_FIELD32 ( 32, 63, field, value ) ); \
} while ( 0 )

Definition at line 512 of file etherfabric.h.

512#define EFAB_SET_QWORD_FIELD32( qword, field, value ) do { \
513 (qword).u32[0] = ( ( (qword).u32[0] \
514 & ~EFAB_INPLACE_MASK32 ( 0, 31, field ) ) \
515 | EFAB_INSERT_FIELD32 ( 0, 31, field, value ) ); \
516 (qword).u32[1] = ( ( (qword).u32[1] \
517 & ~EFAB_INPLACE_MASK32 ( 32, 63, field ) ) \
518 | EFAB_INSERT_FIELD32 ( 32, 63, field, value ) ); \
519 } while ( 0 )

◆ EFAB_SET_DWORD_FIELD

#define EFAB_SET_DWORD_FIELD ( dword,
field,
value )
Value:
do { \
(dword).u32[0] = ( ( (dword).u32[0] \
& ~EFAB_INPLACE_MASK32 ( 0, 31, field ) ) \
| EFAB_INSERT_FIELD32 ( 0, 31, field, value ) ); \
} while ( 0 )

Definition at line 521 of file etherfabric.h.

521#define EFAB_SET_DWORD_FIELD( dword, field, value ) do { \
522 (dword).u32[0] = ( ( (dword).u32[0] \
523 & ~EFAB_INPLACE_MASK32 ( 0, 31, field ) ) \
524 | EFAB_INSERT_FIELD32 ( 0, 31, field, value ) ); \
525 } while ( 0 )

Referenced by falcon_setup_xaui(), falcon_xaui_link_ok(), and mentormac_init().

◆ EFAB_SET_OWORD_FIELD

#define EFAB_SET_OWORD_FIELD   EFAB_SET_OWORD_FIELD32

Definition at line 531 of file etherfabric.h.

Referenced by falcon_i2c_bit_write(), falcon_init_sram(), and falcon_setup_nic().

◆ EFAB_SET_QWORD_FIELD

#define EFAB_SET_QWORD_FIELD   EFAB_SET_QWORD_FIELD32

Definition at line 532 of file etherfabric.h.

◆ DMA_ADDR_T_WIDTH

#define DMA_ADDR_T_WIDTH   ( 8 * sizeof ( dma_addr_t ) )

Definition at line 538 of file etherfabric.h.

◆ EFAB_DMA_TYPE_WIDTH

#define EFAB_DMA_TYPE_WIDTH ( width)
Value:
( ( (width) < DMA_ADDR_T_WIDTH ) ? (width) : DMA_ADDR_T_WIDTH )
#define DMA_ADDR_T_WIDTH

Definition at line 539 of file etherfabric.h.

539#define EFAB_DMA_TYPE_WIDTH( width ) \
540 ( ( (width) < DMA_ADDR_T_WIDTH ) ? (width) : DMA_ADDR_T_WIDTH )

◆ EFAB_DMA_MAX_MASK

#define EFAB_DMA_MAX_MASK
Value:
( ( DMA_ADDR_T_WIDTH == 64 ) ? \
~( ( uint64_t ) 0 ) : ~( ( uint32_t ) 0 ) )

Definition at line 541 of file etherfabric.h.

541#define EFAB_DMA_MAX_MASK ( ( DMA_ADDR_T_WIDTH == 64 ) ? \
542 ~( ( uint64_t ) 0 ) : ~( ( uint32_t ) 0 ) )

◆ EFAB_DMA_MASK

#define EFAB_DMA_MASK ( mask)
Value:
( (mask) & EFAB_DMA_MAX_MASK )
#define EFAB_DMA_MAX_MASK

Definition at line 543 of file etherfabric.h.

Typedef Documentation

◆ efab_dword_t

typedef union efab_dword efab_dword_t

A doubleword (i.e.

4 byte) datatype

This datatype is defined to be little-endian.

◆ efab_qword_t

typedef union efab_qword efab_qword_t

A quadword (i.e.

8 byte) datatype

This datatype is defined to be little-endian.

◆ efab_oword_t

typedef union efab_oword efab_oword_t

An octword (eight-word, i.e.

16 byte) datatype

This datatype is defined to be little-endian.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL_ANY )