Name Date Size #Lines LOC

..--

README.illumosH A D16-Jan-20262.1 KiB5236

THIRDPARTYLICENSEH A D16-Apr-20161 KiB2719

THIRDPARTYLICENSE.descripH A D16-Apr-201613 21

ixgbe_82598.cH A D16-Jan-202640.9 KiB1,442870

ixgbe_82598.hH A D16-Jan-20262.7 KiB5519

ixgbe_82599.cH A D16-Jan-202678.4 KiB2,6651,607

ixgbe_82599.hH A D16-Jan-20263.3 KiB6630

ixgbe_api.cH A D16-Jan-202652.4 KiB1,813793

ixgbe_api.hH A D16-Jan-202611.2 KiB233187

ixgbe_common.cH A D16-Jan-2026160.5 KiB5,8793,433

ixgbe_common.hH A D16-Jan-20269.7 KiB208154

ixgbe_dcb.cH A D16-Jan-202621.4 KiB740465

ixgbe_dcb.hH A D16-Jan-20266.3 KiB17695

ixgbe_dcb_82598.cH A D16-Jan-202610.9 KiB366177

ixgbe_dcb_82598.hH A D16-Jan-20264.1 KiB10141

ixgbe_dcb_82599.cH A D16-Jan-202617.7 KiB612294

ixgbe_dcb_82599.hH A D16-Jan-20265.7 KiB15571

ixgbe_e610.cH A D16-Jan-2026155.7 KiB5,5342,968

ixgbe_e610.hH A D16-Jan-202610.5 KiB225164

ixgbe_mbx.cH A D16-Jan-202631.8 KiB1,211618

ixgbe_mbx.hH A D16-Jan-20268.7 KiB206113

ixgbe_phy.cH A D16-Jan-202673.4 KiB2,7191,722

ixgbe_phy.hH A D16-Jan-20269.1 KiB221164

ixgbe_type.hH A D16-Jan-2026178.7 KiB4,6123,820

ixgbe_type_e610.hH A D16-Jan-202677.5 KiB2,2791,716

ixgbe_vf.cH A D16-Jan-202623 KiB819445

ixgbe_vf.hH A D16-Jan-20265.5 KiB14699

ixgbe_x540.cH A D16-Jan-202630.9 KiB1,071592

ixgbe_x540.hH A D16-Jan-20263.2 KiB6928

ixgbe_x550.cH A D16-Jan-2026127.8 KiB4,6362,909

ixgbe_x550.hH A D16-Jan-20266 KiB12184

README.illumos

1This directory contains the 'common code' to the ixgbe driver. This code
2comes from FreeBSD. The code is generally taken from a corresponding
3point in FreeBSD after new hardware support is used from the
4`sys/dev/ixgbe` directory. The last commit used was
51e8c28712aafc9a3339e8a832767a70c08168bdc.
6
7The following are the modifications that we have made to this code:
8
9### IXGBE_REMOVED macro
10
11The IXGBE_REMOVED macro normally taks a pointer to the hardware address.
12However, that does not allow us to go through and actually do a useful
13check. Instead we modify all users of this macro to pass the struct
14ixgbe_hw of the ixgbe_t. Importantly, we also remove the current
15definition of IXGBE_REMOVED in ixbe_common.h and instead use the
16definition in ixgbe_osdep.h.
17
18
19### ixgbe_vf.c includes
20
21Historically ixgbe_vf.c which is part of the common code only included
22the files from the common code i.e. ixgbe_api.h, ixgbe_type.h, and
23ixgbe_vf.h. This was changed upstream to refer to the FreeBSD-specific
24overall ixgbe header file. We have reverted this.
25
26
27### ixgbe_e610.c misleading indentation
28
29There are a few function pointer assignments in ixgbe_init_ops_E610()
30that cause a smatch misleading indentation error since they are indented
31with a number of spaces and not tabs like the rest of the block.
32
33
34### ixgbe dynamic memory allocation
35
36ixgbe core code added a notion of dynamic memory allocation in the form
37of malloc, calloc, and free. Since we don't have that as a core kernel
38allocation primitive and a carefully designed and safe memory tagging
39implementation requires some fair amount of work, the simplest thing is
40to pass the actual size to free as these are all local in the functions
41in question.
42
43
44#### ixgbe_lock structure
45
46The E610 logic introduced a generic notion of an ixgbe lock. We want to
47be able to pass the interrupt priority to this function so we modify the
48initialization of this to also pass the ixgbe_hw structure so we can get
49to that. In theory this should all be safely below lock level, but as
50awe can't guarantee firmware isn't called from an interrupt, we want to
51be safe.
52