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

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)

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 63 of file features.h.

Referenced by dhcp_create_request().

◆ __dhcp_feature

#define __dhcp_feature   __table_entry ( DHCP_FEATURES, 01 )

Declare a feature code for DHCP.

Definition at line 66 of file features.h.

◆ DHCP_FEATURE

#define DHCP_FEATURE ( feature_opt,
... )
Value:
_DHCP_FEATURE ( OBJECT, feature_opt, __VA_ARGS__ )
#define _DHCP_FEATURE(_name, feature_opt,...)
Definition features.h:71

Construct a DHCP feature table entry.

Definition at line 69 of file features.h.

69#define DHCP_FEATURE( feature_opt, ... ) \
70 _DHCP_FEATURE ( OBJECT, feature_opt, __VA_ARGS__ )

◆ _DHCP_FEATURE

#define _DHCP_FEATURE ( _name,
feature_opt,
... )
Value:
__DHCP_FEATURE ( _name, feature_opt, __VA_ARGS__ )
#define __DHCP_FEATURE(_name, feature_opt,...)
Definition features.h:73

Definition at line 71 of file features.h.

71#define _DHCP_FEATURE( _name, feature_opt, ... ) \
72 __DHCP_FEATURE ( _name, feature_opt, __VA_ARGS__ )

◆ __DHCP_FEATURE

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

Definition at line 73 of file features.h.

73#define __DHCP_FEATURE( _name, feature_opt, ... ) \
74 uint8_t __dhcp_feature_ ## _name [] __dhcp_feature = { \
75 feature_opt, DHCP_OPTION ( __VA_ARGS__ ) \
76 };

◆ FEATURES

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

Named feature table.

Definition at line 85 of file features.h.

Referenced by ipxe().

◆ __feature_name

#define __feature_name ( category)
Value:
__table_entry ( FEATURES, category )
#define FEATURES
Named feature table.
Definition features.h:85
#define __table_entry(table, idx)
Declare a linker table entry.
Definition tables.h:239

Declare a named feature.

Definition at line 88 of file features.h.

◆ FEATURE_NAME

#define FEATURE_NAME ( category,
text )
Value:
_FEATURE_NAME ( category, OBJECT, text )
#define _FEATURE_NAME(category, _name, text)
Definition features.h:93

Construct a named feature.

Definition at line 91 of file features.h.

91#define FEATURE_NAME( category, text ) \
92 _FEATURE_NAME ( category, OBJECT, text )

◆ _FEATURE_NAME

#define _FEATURE_NAME ( category,
_name,
text )
Value:
__FEATURE_NAME ( category, _name, text )
#define __FEATURE_NAME(category, _name, text)
Definition features.h:95

Definition at line 93 of file features.h.

93#define _FEATURE_NAME( category, _name, text ) \
94 __FEATURE_NAME ( category, _name, text )

◆ __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:88
A named feature.
Definition features.h:79

Definition at line 95 of file features.h.

95#define __FEATURE_NAME( category, _name, text ) \
96 struct feature __feature_ ## _name __feature_name ( category ) = { \
97 .name = text, \
98 };

◆ FEATURE

#define FEATURE ( category,
text,
feature_opt,
version )
Value:
FEATURE_NAME ( category, text ); \
DHCP_FEATURE ( feature_opt, version );
u32 version
Driver version.
Definition ath9k_hw.c:1985
#define FEATURE_NAME(category, text)
Construct a named feature.
Definition features.h:91

Declare a feature.

Definition at line 101 of file features.h.

101#define FEATURE( category, text, feature_opt, version ) \
102 FEATURE_NAME ( category, text ); \
103 DHCP_FEATURE ( feature_opt, version );

◆ FEATURE_VERSION

#define FEATURE_VERSION ( ...)
Value:
#define DHCP_EB_VERSION
iPXE version number
Definition dhcp.h:530
#define DHCP_ENCAPSULATED(encap_opt)
Extract encapsulated option tag from encapsulated tag value.
Definition dhcp.h:46
#define DHCP_FEATURE(feature_opt,...)
Construct a DHCP feature table entry.
Definition features.h:69

Declare the version number feature.

Definition at line 106 of file features.h.

106#define FEATURE_VERSION( ... ) \
107 DHCP_FEATURE ( DHCP_ENCAPSULATED ( DHCP_EB_VERSION ), __VA_ARGS__ )

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )