iPXE
Data Structures | Defines | 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...

Defines

#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,...)   _DHCP_FEATURE ( OBJECT, feature_opt, __VA_ARGS__ )
 Construct a DHCP feature table entry.
#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.
#define __feature_name(category)   __table_entry ( FEATURES, category )
 Declare a named feature.
#define FEATURE_NAME(category, text)   _FEATURE_NAME ( category, OBJECT, text )
 Construct a named feature.
#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.
#define FEATURE_VERSION(...)   DHCP_FEATURE ( DHCP_ENCAPSULATED ( DHCP_EB_VERSION ), __VA_ARGS__ )
 Declare the version number feature.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)

Detailed Description

Feature list.

Definition in file features.h.


Define Documentation

#define DHCP_FEATURES   __table ( uint8_t, "dhcp_features" )

DHCP feature table.

Definition at line 62 of file features.h.

Referenced by dhcp_create_request().

Declare a feature code for DHCP.

Definition at line 65 of file features.h.

#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.

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

Definition at line 70 of file features.h.

#define __DHCP_FEATURE (   _name,
  feature_opt,
  ... 
)
Value:
uint8_t __dhcp_feature_ ## _name [] __dhcp_feature = {              \
                feature_opt, DHCP_OPTION ( __VA_ARGS__ )                    \
        };

Definition at line 72 of file features.h.

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

Named feature table.

Definition at line 84 of file features.h.

Referenced by ipxe().

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

Declare a named feature.

Definition at line 87 of file features.h.

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

Construct a named feature.

Definition at line 90 of file features.h.

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

Definition at line 92 of file features.h.

#define __FEATURE_NAME (   category,
  _name,
  text 
)
Value:
struct feature __feature_ ## _name __feature_name ( category ) = {  \
                .name = text,                                               \
        };

Definition at line 94 of file features.h.

#define FEATURE (   category,
  text,
  feature_opt,
  version 
)
Value:
FEATURE_NAME ( category, text );                                    \
        DHCP_FEATURE ( feature_opt, version );

Declare a feature.

Definition at line 100 of file features.h.

#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 ( GPL2_OR_LATER_OR_UBDL  )