iPXE
acpimac.h File Reference

ACPI MAC address. More...

Go to the source code of this file.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
int acpi_mac (uint8_t *hw_addr)
 Extract MAC address from DSDT/SSDT.

Detailed Description

ACPI MAC address.

Definition in file acpimac.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ acpi_mac()

int acpi_mac ( uint8_t * hw_addr)
extern

Extract MAC address from DSDT/SSDT.

Parameters
hw_addrMAC address to fill in
Return values
rcReturn status code

Definition at line 235 of file acpimac.c.

235 {
236 int rc;
237
238 /* Look for an "AMAC" address */
239 if ( ( rc = acpi_extract ( AMAC_SIGNATURE, hw_addr,
240 acpimac_extract_auxmac ) ) == 0 )
241 return 0;
242
243 /* Look for a "MACA" address */
244 if ( ( rc = acpi_extract ( MACA_SIGNATURE, hw_addr,
245 acpimac_extract_auxmac ) ) == 0 )
246 return 0;
247
248 /* Look for a "RTMA" address */
249 if ( ( rc = acpi_extract ( RTMA_SIGNATURE, hw_addr,
250 acpimac_extract_rtxmac ) ) == 0 )
251 return 0;
252
253 return -ENOENT;
254}
int acpi_extract(uint32_t signature, void *data, int(*extract)(const struct acpi_header *zsdt, size_t len, size_t offset, void *data))
Extract value from DSDT/SSDT.
Definition acpi.c:228
#define RTMA_SIGNATURE
RTMA signature.
Definition acpimac.c:52
#define AMAC_SIGNATURE
AMAC signature.
Definition acpimac.c:46
static int acpimac_extract_auxmac(const struct acpi_header *zsdt, size_t len, size_t offset, void *data)
Extract "_AUXMAC_" MAC address from DSDT/SSDT.
Definition acpimac.c:208
static int acpimac_extract_rtxmac(const struct acpi_header *zsdt, size_t len, size_t offset, void *data)
Extract "_RTXMAC_" MAC address from DSDT/SSDT.
Definition acpimac.c:223
#define MACA_SIGNATURE
MACA signature.
Definition acpimac.c:49
struct arbelprm_rc_send_wqe rc
Definition arbel.h:3
#define ENOENT
No such file or directory.
Definition errno.h:515

References acpi_extract(), acpimac_extract_auxmac(), acpimac_extract_rtxmac(), AMAC_SIGNATURE, ENOENT, MACA_SIGNATURE, rc, and RTMA_SIGNATURE.

Referenced by ecm_fetch_mac(), sysmac_fetch(), and typeof().