iPXE
Data Structures | Macros | Functions
features.h File Reference

Feature list. More...

#include <stdint.h>
#include <ipxe/tables.h>
#include <ipxe/dhcp.h>

Go to the source code of this file.

Data Structures

struct  feature
 A named feature. More...
 

Macros

#define FEATURE_PROTOCOL   01
 Network protocols. More...
 
#define FEATURE_IMAGE   02
 Image formats. More...
 
#define FEATURE_MISC   03
 Miscellaneous. More...
 
#define DHCP_EB_FEATURE_PXE_EXT   0x10
 PXE API extensions. More...
 
#define DHCP_EB_FEATURE_ISCSI   0x11
 iSCSI protocol More...
 
#define DHCP_EB_FEATURE_AOE   0x12
 AoE protocol. More...
 
#define DHCP_EB_FEATURE_HTTP   0x13
 HTTP protocol. More...
 
#define DHCP_EB_FEATURE_HTTPS   0x14
 HTTPS protocol. More...
 
#define DHCP_EB_FEATURE_TFTP   0x15
 TFTP protocol. More...
 
#define DHCP_EB_FEATURE_FTP   0x16
 FTP protocol. More...
 
#define DHCP_EB_FEATURE_DNS   0x17
 DNS protocol. More...
 
#define DHCP_EB_FEATURE_BZIMAGE   0x18
 bzImage format More...
 
#define DHCP_EB_FEATURE_MULTIBOOT   0x19
 Multiboot format. More...
 
#define DHCP_EB_FEATURE_SLAM   0x1a
 SLAM protocol. More...
 
#define DHCP_EB_FEATURE_SRP   0x1b
 SRP protocol. More...
 
#define DHCP_EB_FEATURE_NBI   0x20
 NBI format. More...
 
#define DHCP_EB_FEATURE_PXE   0x21
 PXE format. More...
 
#define DHCP_EB_FEATURE_ELF   0x22
 ELF format. More...
 
#define DHCP_EB_FEATURE_COMBOOT   0x23
 COMBOOT format. More...
 
#define DHCP_EB_FEATURE_EFI   0x24
 EFI format. More...
 
#define DHCP_EB_FEATURE_FCOE   0x25
 FCoE protocol. More...
 
#define DHCP_EB_FEATURE_VLAN   0x26
 VLAN support. More...
 
#define DHCP_EB_FEATURE_MENU   0x27
 Menu support. More...
 
#define DHCP_EB_FEATURE_SDI   0x28
 SDI image support. More...
 
#define DHCP_EB_FEATURE_NFS   0x29
 NFS protocol. More...
 
#define DHCP_FEATURES   __table ( uint8_t, "dhcp_features" )
 DHCP feature table. More...
 
#define __dhcp_feature   __table_entry ( DHCP_FEATURES, 01 )
 Declare a feature code for DHCP. More...
 
#define DHCP_FEATURE(feature_opt, ...)   _DHCP_FEATURE ( OBJECT, feature_opt, __VA_ARGS__ )
 Construct a DHCP feature table entry. More...
 
#define _DHCP_FEATURE(_name, feature_opt, ...)   __DHCP_FEATURE ( _name, feature_opt, __VA_ARGS__ )
 
#define __DHCP_FEATURE(_name, feature_opt, ...)
 
#define FEATURES   __table ( struct feature, "features" )
 Named feature table. More...
 
#define __feature_name(category)   __table_entry ( FEATURES, category )
 Declare a named feature. More...
 
#define FEATURE_NAME(category, text)   _FEATURE_NAME ( category, OBJECT, text )
 Construct a named feature. More...
 
#define _FEATURE_NAME(category, _name, text)   __FEATURE_NAME ( category, _name, text )
 
#define __FEATURE_NAME(category, _name, text)
 
#define FEATURE(category, text, feature_opt, version)
 Declare a feature. More...
 
#define FEATURE_VERSION(...)   DHCP_FEATURE ( DHCP_ENCAPSULATED ( DHCP_EB_VERSION ), __VA_ARGS__ )
 Declare the version number feature. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 

Detailed Description

Feature list.

Definition in file features.h.

Macro Definition Documentation

◆ DHCP_FEATURES

#define DHCP_FEATURES   __table ( uint8_t, "dhcp_features" )

DHCP feature table.

Definition at line 62 of file features.h.

◆ __dhcp_feature

#define __dhcp_feature   __table_entry ( DHCP_FEATURES, 01 )

Declare a feature code for DHCP.

Definition at line 65 of file features.h.

◆ DHCP_FEATURE

#define DHCP_FEATURE (   feature_opt,
  ... 
)    _DHCP_FEATURE ( OBJECT, feature_opt, __VA_ARGS__ )

Construct a DHCP feature table entry.

Definition at line 68 of file features.h.

◆ _DHCP_FEATURE

#define _DHCP_FEATURE (   _name,
  feature_opt,
  ... 
)    __DHCP_FEATURE ( _name, feature_opt, __VA_ARGS__ )

Definition at line 70 of file features.h.

◆ __DHCP_FEATURE

#define __DHCP_FEATURE (   _name,
  feature_opt,
  ... 
)
Value:
uint8_t __dhcp_feature_ ## _name [] __dhcp_feature = { \
feature_opt, DHCP_OPTION ( __VA_ARGS__ ) \
};
#define __dhcp_feature
Declare a feature code for DHCP.
Definition: features.h:65
unsigned char uint8_t
Definition: stdint.h:10
#define DHCP_OPTION(...)
Construct a DHCP option from a list of bytes.
Definition: dhcp.h:529

Definition at line 72 of file features.h.

◆ FEATURES

#define FEATURES   __table ( struct feature, "features" )

Named feature table.

Definition at line 84 of file features.h.

◆ __feature_name

#define __feature_name (   category)    __table_entry ( FEATURES, category )

Declare a named feature.

Definition at line 87 of file features.h.

◆ FEATURE_NAME

#define FEATURE_NAME (   category,
  text 
)    _FEATURE_NAME ( category, OBJECT, text )

Construct a named feature.

Definition at line 90 of file features.h.

◆ _FEATURE_NAME

#define _FEATURE_NAME (   category,
  _name,
  text 
)    __FEATURE_NAME ( category, _name, text )

Definition at line 92 of file features.h.

◆ __FEATURE_NAME

#define __FEATURE_NAME (   category,
  _name,
  text 
)
Value:
struct feature __feature_ ## _name __feature_name ( category ) = { \
.name = text, \
};
#define __feature_name(category)
Declare a named feature.
Definition: features.h:87
A named feature.
Definition: features.h:78

Definition at line 94 of file features.h.

◆ FEATURE

#define FEATURE (   category,
  text,
  feature_opt,
  version 
)
Value:
FEATURE_NAME ( category, text ); \
DHCP_FEATURE ( feature_opt, version );
#define FEATURE_NAME(category, text)
Construct a named feature.
Definition: features.h:90
u32 version
Version number.
Definition: ath9k_hw.c:1983

Declare a feature.

Definition at line 100 of file features.h.

◆ FEATURE_VERSION

#define FEATURE_VERSION (   ...)    DHCP_FEATURE ( DHCP_ENCAPSULATED ( DHCP_EB_VERSION ), __VA_ARGS__ )

Declare the version number feature.

Definition at line 105 of file features.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )