iPXE
Functions
acpimac.h File Reference

ACPI MAC address. More...

Go to the source code of this file.

Functions

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

Detailed Description

ACPI MAC address.

Definition in file acpimac.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )

◆ acpi_mac()

int acpi_mac ( uint8_t hw_addr)

Extract MAC address from DSDT/SSDT.

Parameters
hw_addrMAC address to fill in
Return values
rcReturn status code

Definition at line 233 of file acpimac.c.

233  {
234  int rc;
235 
236  /* Look for an "AMAC" address */
237  if ( ( rc = acpi_extract ( AMAC_SIGNATURE, hw_addr,
238  acpimac_extract_auxmac ) ) == 0 )
239  return 0;
240 
241  /* Look for a "MACA" address */
242  if ( ( rc = acpi_extract ( MACA_SIGNATURE, hw_addr,
243  acpimac_extract_auxmac ) ) == 0 )
244  return 0;
245 
246  /* Look for a "RTMA" address */
247  if ( ( rc = acpi_extract ( RTMA_SIGNATURE, hw_addr,
248  acpimac_extract_rtxmac ) ) == 0 )
249  return 0;
250 
251  return -ENOENT;
252 }
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
#define MACA_SIGNATURE
MACA signature.
Definition: acpimac.c:48
#define AMAC_SIGNATURE
AMAC signature.
Definition: acpimac.c:45
#define ENOENT
No such file or directory.
Definition: errno.h:514
static int acpimac_extract_auxmac(userptr_t zsdt, size_t len, size_t offset, void *data)
Extract "_AUXMAC_" MAC address from DSDT/SSDT.
Definition: acpimac.c:206
int acpi_extract(uint32_t signature, void *data, int(*extract)(userptr_t zsdt, size_t len, size_t offset, void *data))
Extract value from DSDT/SSDT.
Definition: acpi.c:240
#define RTMA_SIGNATURE
RTMA signature.
Definition: acpimac.c:51
static int acpimac_extract_rtxmac(userptr_t zsdt, size_t len, size_t offset, void *data)
Extract "_RTXMAC_" MAC address from DSDT/SSDT.
Definition: acpimac.c:221

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().