features.h File Reference

Feature list. More...

#include <stdint.h>
#include <gpxe/tables.h>
#include <gpxe/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_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)


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

Referenced by dhcp_create_request().

#define __dhcp_feature   __table_entry ( DHCP_FEATURES, 01 )

Declare a feature code for DHCP.

Definition at line 60 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 63 of file features.h.

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

Definition at line 65 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 67 of file features.h.

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

Named feature table.

Definition at line 79 of file features.h.

Referenced by main().

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

Declare a named feature.

Definition at line 82 of file features.h.

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

Construct a named feature.

Definition at line 85 of file features.h.

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

Definition at line 87 of file features.h.

#define __FEATURE_NAME ( category,
_name,
text   ) 

Value:

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

Definition at line 89 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 95 of file features.h.

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

Declare the version number feature.

Definition at line 100 of file features.h.


Function Documentation

FILE_LICENCE ( GPL2_OR_LATER   ) 


Generated on Tue Apr 6 20:01:50 2010 for gPXE by  doxygen 1.5.7.1