Skip to content

Commit 9cf2f9d

Browse files
committed
[dhcp] Add symbolic definitions for DHCP client architecture values
Signed-off-by: Michael Brown <mcb30@ipxe.org>
1 parent 66cbae7 commit 9cf2f9d

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

src/arch/i386/include/efi/ipxe/dhcp_arch.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
3333
'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '6', ':', \
3434
'U', 'N', 'D', 'I', ':', '0', '0', '3', '0', '1', '0' )
3535

36-
#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 6 )
36+
#define DHCP_ARCH_CLIENT_ARCHITECTURE \
37+
DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_IA32 )
3738

3839
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 3, 10 /* v3.10 */ )
3940

src/arch/i386/include/pcbios/ipxe/dhcp_arch.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
3333
'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '0', ':', \
3434
'U', 'N', 'D', 'I', ':', '0', '0', '2', '0', '0', '1' )
3535

36-
#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 0 )
36+
#define DHCP_ARCH_CLIENT_ARCHITECTURE \
37+
DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_X86 )
3738

3839
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 2, 1 /* v2.1 */ )
3940

src/arch/x86_64/include/efi/ipxe/dhcp_arch.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ FILE_LICENCE ( GPL2_OR_LATER );
3030

3131
#define DHCP_ARCH_VENDOR_CLASS_ID \
3232
DHCP_STRING ( 'P', 'X', 'E', 'C', 'l', 'i', 'e', 'n', 't', ':', \
33-
'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '7', ':', \
33+
'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '9', ':', \
3434
'U', 'N', 'D', 'I', ':', '0', '0', '3', '0', '1', '0' )
3535

36-
#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 7 )
36+
#define DHCP_ARCH_CLIENT_ARCHITECTURE \
37+
DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_X86_64 )
3738

3839
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 3, 10 /* v3.10 */ )
3940

src/include/ipxe/dhcp.h

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,39 @@ struct dhcp_client_id {
240240
/** Client system architecture */
241241
#define DHCP_CLIENT_ARCHITECTURE 93
242242

243+
/** DHCP client architecture */
244+
struct dhcp_client_architecture {
245+
uint16_t arch;
246+
} __attribute__ (( packed ));
247+
248+
/** DHCP client architecture values
249+
*
250+
* These are defined by the PXE specification and redefined by
251+
* RFC4578.
252+
*/
253+
enum dhcp_client_architecture_values {
254+
/** Intel x86 PC */
255+
DHCP_CLIENT_ARCHITECTURE_X86 = 0x0000,
256+
/** NEC/PC98 */
257+
DHCP_CLIENT_ARCHITECTURE_PC98 = 0x0001,
258+
/** EFI Itanium */
259+
DHCP_CLIENT_ARCHITECTURE_IA64 = 0x0002,
260+
/** DEC Alpha */
261+
DHCP_CLIENT_ARCHITECTURE_ALPHA = 0x0003,
262+
/** Arc x86 */
263+
DHCP_CLIENT_ARCHITECTURE_ARCX86 = 0x0004,
264+
/** Intel Lean Client */
265+
DHCP_CLIENT_ARCHITECTURE_LC = 0x0005,
266+
/** EFI IA32 */
267+
DHCP_CLIENT_ARCHITECTURE_IA32 = 0x0006,
268+
/** EFI BC */
269+
DHCP_CLIENT_ARCHITECTURE_EFI = 0x0007,
270+
/** EFI Xscale */
271+
DHCP_CLIENT_ARCHITECTURE_XSCALE = 0x0008,
272+
/** EFI x86-64 */
273+
DHCP_CLIENT_ARCHITECTURE_X86_64 = 0x0009,
274+
};
275+
243276
/** Client network device interface */
244277
#define DHCP_CLIENT_NDI 94
245278

0 commit comments

Comments
 (0)