iPXE
efi_null.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2020 Michael Brown <mbrown@fensystems.co.uk>.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301, USA.
18 *
19 * You can also choose to distribute this program under the terms of
20 * the Unmodified Binary Distribution Licence (as given in the file
21 * COPYING.UBDL), provided that you have satisfied its requirements.
22 */
23
24FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
25FILE_SECBOOT ( PERMITTED );
26
27#include <string.h>
28#include <ipxe/efi/efi.h>
29#include <ipxe/efi/efi_null.h>
30
31/** @file
32 *
33 * EFI null interfaces
34 *
35 */
36
37/******************************************************************************
38 *
39 * Simple Network Protocol
40 *
41 ******************************************************************************
42 */
43
44static EFI_STATUS EFIAPI
48
49static EFI_STATUS EFIAPI
53
54static EFI_STATUS EFIAPI
56 UINTN extra_rx_bufsize __unused,
57 UINTN extra_tx_bufsize __unused ) {
58 return EFI_UNSUPPORTED;
59}
60
61static EFI_STATUS EFIAPI
66
67static EFI_STATUS EFIAPI
71
72static EFI_STATUS EFIAPI
81
82static EFI_STATUS EFIAPI
88
89static EFI_STATUS EFIAPI
95
96static EFI_STATUS EFIAPI
103
104static EFI_STATUS EFIAPI
110
111static EFI_STATUS EFIAPI
116
117static EFI_STATUS EFIAPI
125
126static EFI_STATUS EFIAPI
134
137 .Start = efi_null_snp_start,
138 .Stop = efi_null_snp_stop,
139 .Initialize = efi_null_snp_initialize,
140 .Reset = efi_null_snp_reset,
141 .Shutdown = efi_null_snp_shutdown,
142 .ReceiveFilters = efi_null_snp_receive_filters,
143 .StationAddress = efi_null_snp_station_address,
144 .Statistics = efi_null_snp_statistics,
145 .MCastIpToMac = efi_null_snp_mcast_ip_to_mac,
146 .NvData = efi_null_snp_nvdata,
147 .GetStatus = efi_null_snp_get_status,
148 .Transmit = efi_null_snp_transmit,
149 .Receive = efi_null_snp_receive,
150};
151
152/**
153 * Nullify SNP interface
154 *
155 * @v snp SNP interface
156 */
158
159 memcpy ( snp, &efi_null_snp,
160 offsetof ( typeof ( *snp ), WaitForPacket ) );
162}
163
164/******************************************************************************
165 *
166 * Network Interface Identification protocol
167 *
168 ******************************************************************************
169 */
170
172 PXE_CDB *cdb = ( ( void * ) ( intptr_t ) cdb_phys );
173
176}
177
178static PXE_SW_UNDI efi_null_undi __attribute__ (( aligned ( 16 ) )) = {
179 .Signature = PXE_ROMID_SIGNATURE,
180 .Len = sizeof ( efi_null_undi ),
182 .MajorVer = PXE_ROMID_MAJORVER,
183 .MinorVer = PXE_ROMID_MINORVER,
184 .Implementation = PXE_ROMID_IMP_SW_VIRT_ADDR,
185};
186
187/**
188 * Nullify NII interface
189 *
190 * @v nii NII interface
191 */
196
197/******************************************************************************
198 *
199 * VLAN configuration protocol
200 *
201 ******************************************************************************
202 */
203
204static EFI_STATUS EFIAPI
209
210static EFI_STATUS EFIAPI
216
217static EFI_STATUS EFIAPI
222
228
229/**
230 * Nullify VLAN configuration interface
231 *
232 * @v vcfg VLAN configuration protocol
233 */
235
236 memcpy ( vcfg, &efi_null_vlan, sizeof ( *vcfg ) );
237}
238
239/******************************************************************************
240 *
241 * Component name protocol
242 *
243 ******************************************************************************
244 */
245
246static EFI_STATUS EFIAPI
248 CHAR8 *language __unused,
249 CHAR16 **driver_name __unused ) {
250 return EFI_UNSUPPORTED;
251}
252
253static EFI_STATUS EFIAPI
261
263 .GetDriverName = efi_null_get_driver_name,
264 .GetControllerName = efi_null_get_controller_name,
265 .SupportedLanguages = "",
266};
267
268/**
269 * Nullify Component Name Protocol interface
270 *
271 * @v name2 Component name protocol
272 */
274
275 memcpy ( name2, &efi_null_name2, sizeof ( *name2 ) );
276}
277
278/******************************************************************************
279 *
280 * Load file protocol
281 *
282 ******************************************************************************
283 */
284
285static EFI_STATUS EFIAPI
292
293/**
294 * Nullify Load File Protocol interface
295 *
296 * @v load_file Load file protocol
297 */
299 load_file->LoadFile = efi_null_load_file;
300}
301
302/******************************************************************************
303 *
304 * HII configuration access protocol
305 *
306 ******************************************************************************
307 */
308
309static EFI_STATUS EFIAPI
316
317static EFI_STATUS EFIAPI
323
324static EFI_STATUS EFIAPI
332
334 .ExtractConfig = efi_null_hii_extract,
335 .RouteConfig = efi_null_hii_route,
336 .Callback = efi_null_hii_callback,
337};
338
339/**
340 * Nullify HII configuration access protocol
341 *
342 * @v hii HII configuration access protocol
343 */
345
346 memcpy ( hii, &efi_null_hii, sizeof ( *hii ) );
347}
348
349/******************************************************************************
350 *
351 * Block I/O protocol
352 *
353 ******************************************************************************
354 */
355
356static EFI_STATUS EFIAPI
361
362static EFI_STATUS EFIAPI
368
369static EFI_STATUS EFIAPI
375
376static EFI_STATUS EFIAPI
380
382
385 .Media = &efi_null_block_media,
386 .Reset = efi_null_block_reset,
387 .ReadBlocks = efi_null_block_read,
388 .WriteBlocks = efi_null_block_write,
389 .FlushBlocks = efi_null_block_flush,
390};
391
392/**
393 * Nullify block I/O protocol
394 *
395 * @v block Block I/O protocol
396 */
398
399 memcpy ( block, &efi_null_block, sizeof ( *block ) );
400}
401
402/******************************************************************************
403 *
404 * PXE base code protocol
405 *
406 ******************************************************************************
407 */
408
409static EFI_STATUS EFIAPI
414
415static EFI_STATUS EFIAPI
419
420static EFI_STATUS EFIAPI
425
426static EFI_STATUS EFIAPI
433
434static EFI_STATUS EFIAPI
444
445static EFI_STATUS EFIAPI
457
458static EFI_STATUS EFIAPI
469
470static EFI_STATUS EFIAPI
475
476static EFI_STATUS EFIAPI
482
483static EFI_STATUS EFIAPI
485 BOOLEAN *autoarp __unused,
486 BOOLEAN *sendguid __unused, UINT8 *ttl __unused,
487 UINT8 *tos __unused,
488 BOOLEAN *callback __unused ) {
489 return EFI_UNSUPPORTED;
490}
491
492static EFI_STATUS EFIAPI
498
499static EFI_STATUS EFIAPI
501 BOOLEAN *dhcpdisc_ok __unused,
502 BOOLEAN *dhcpack_ok __unused,
503 BOOLEAN *proxyoffer_ok __unused,
504 BOOLEAN *pxebsdisc_ok __unused,
505 BOOLEAN *pxebsack_ok __unused,
506 BOOLEAN *pxebsbis_ok __unused,
513 return EFI_UNSUPPORTED;
514}
515
518 .Start = efi_null_pxe_start,
519 .Stop = efi_null_pxe_stop,
520 .Dhcp = efi_null_pxe_dhcp,
521 .Discover = efi_null_pxe_discover,
522 .Mtftp = efi_null_pxe_mtftp,
523 .UdpWrite = efi_null_pxe_udp_write,
524 .UdpRead = efi_null_pxe_udp_read,
525 .SetIpFilter = efi_null_pxe_set_ip_filter,
526 .Arp = efi_null_pxe_arp,
527 .SetParameters = efi_null_pxe_set_parameters,
528 .SetStationIp = efi_null_pxe_set_station_ip,
529 .SetPackets = efi_null_pxe_set_packets,
530};
531
532/**
533 * Nullify PXE base code protocol
534 *
535 * @v pxe PXE base code protocol
536 */
538
539 memcpy ( pxe, &efi_null_pxe, offsetof ( typeof ( *pxe ), Mode ) );
540 pxe->Mode->Started = FALSE;
541}
542
543/******************************************************************************
544 *
545 * Apple Net Boot protocol
546 *
547 ******************************************************************************
548 */
549
550static EFI_STATUS EFIAPI
555
556static EFI_STATUS EFIAPI
561
563 .GetDhcpResponse = efi_null_apple_dhcp,
564 .GetBsdpResponse = efi_null_apple_bsdp,
565};
566
567/**
568 * Nullify Apple Net Boot protocol
569 *
570 * @v apple Apple Net Boot protocol
571 */
573
574 memcpy ( apple, &efi_null_apple, sizeof ( *apple ) );
575}
576
577/******************************************************************************
578 *
579 * USB I/O Protocol
580 *
581 ******************************************************************************
582 */
583
584static EFI_STATUS EFIAPI
592
593static EFI_STATUS EFIAPI
600
601static EFI_STATUS EFIAPI
610
611static EFI_STATUS EFIAPI
622
623static EFI_STATUS EFIAPI
630
631static EFI_STATUS EFIAPI
641
642static EFI_STATUS EFIAPI
648
649static EFI_STATUS EFIAPI
655
656static EFI_STATUS EFIAPI
662
663static EFI_STATUS EFIAPI
670
671static EFI_STATUS EFIAPI
678
679static EFI_STATUS EFIAPI
685
686static EFI_STATUS EFIAPI
690
692 .UsbControlTransfer = efi_null_usb_control_transfer,
693 .UsbBulkTransfer = efi_null_usb_bulk_transfer,
694 .UsbAsyncInterruptTransfer = efi_null_usb_async_interrupt_transfer,
695 .UsbSyncInterruptTransfer = efi_null_usb_sync_interrupt_transfer,
696 .UsbIsochronousTransfer = efi_null_usb_isochronous_transfer,
697 .UsbAsyncIsochronousTransfer = efi_null_usb_async_isochronous_transfer,
698 .UsbGetDeviceDescriptor = efi_null_usb_get_device_descriptor,
699 .UsbGetConfigDescriptor = efi_null_usb_get_config_descriptor,
700 .UsbGetInterfaceDescriptor = efi_null_usb_get_interface_descriptor,
701 .UsbGetEndpointDescriptor = efi_null_usb_get_endpoint_descriptor,
702 .UsbGetStringDescriptor = efi_null_usb_get_string_descriptor,
703 .UsbGetSupportedLanguages = efi_null_usb_get_supported_languages,
704 .UsbPortReset = efi_null_usb_port_reset,
705};
706
707/**
708 * Nullify USB I/O protocol
709 *
710 * @v usbio USB I/O protocol
711 */
713
714 memcpy ( usbio, &efi_null_usbio, sizeof ( *usbio ) );
715}
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
unsigned short CHAR16
2-byte Character.
#define EFIAPI
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
struct _EFI_APPLE_NET_BOOT_PROTOCOL EFI_APPLE_NET_BOOT_PROTOCOL
#define VOID
Undeclared type.
Definition Base.h:272
#define EFI_BLOCK_IO_INTERFACE_REVISION
Revision defined in EFI1.1.
Definition BlockIo.h:212
struct _EFI_BLOCK_IO_PROTOCOL EFI_BLOCK_IO_PROTOCOL
Definition BlockIo.h:23
struct golan_inbox_hdr hdr
Message header.
Definition CIB_PRM.h:0
struct _EFI_COMPONENT_NAME2_PROTOCOL EFI_COMPONENT_NAME2_PROTOCOL
UINTN EFI_BROWSER_ACTION_REQUEST
UINTN EFI_BROWSER_ACTION
struct _EFI_HII_CONFIG_ACCESS_PROTOCOL EFI_HII_CONFIG_ACCESS_PROTOCOL
struct _EFI_LOAD_FILE_PROTOCOL EFI_LOAD_FILE_PROTOCOL
Definition LoadFile.h:31
struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL
Forward reference for pure ANSI compatability.
struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE_PROTOCOL
Definition PxeBaseCode.h:30
EFI_PXE_BASE_CODE_TFTP_OPCODE
TFTP opcode definitions.
#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION
UINT16 EFI_PXE_BASE_CODE_UDP_PORT
#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION
@ EfiSimpleNetworkStopped
struct _EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK_PROTOCOL
#define EFI_UNSUPPORTED
Enumeration of EFI_STATUS.
UINT64 EFI_LBA
Logical block address.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
CHAR16 * EFI_STRING
#define PXE_ROMID_MAJORVER
UNDI command interface revision.
Definition UefiPxe.h:847
#define PXE_STATFLAGS_COMMAND_FAILED
Definition UefiPxe.h:418
struct s_pxe_sw_undi PXE_SW_UNDI
struct s_pxe_cdb PXE_CDB
#define PXE_ROMID_REV
!PXE structure format revision
Definition UefiPxe.h:840
#define PXE_ROMID_SIGNATURE
Signature of !PXE structure.
Definition UefiPxe.h:835
#define PXE_ROMID_MINORVER
Definition UefiPxe.h:848
#define PXE_ROMID_IMP_SW_VIRT_ADDR
Definition UefiPxe.h:854
#define PXE_STATCODE_UNSUPPORTED
Definition UefiPxe.h:618
USB_DEVICE_DESCRIPTOR EFI_USB_DEVICE_DESCRIPTOR
Definition UsbIo.h:39
EFI_USB_DATA_DIRECTION
USB data transfer direction.
Definition UsbIo.h:47
struct _EFI_USB_IO_PROTOCOL EFI_USB_IO_PROTOCOL
Definition UsbIo.h:29
USB_CONFIG_DESCRIPTOR EFI_USB_CONFIG_DESCRIPTOR
Definition UsbIo.h:40
USB_INTERFACE_DESCRIPTOR EFI_USB_INTERFACE_DESCRIPTOR
Definition UsbIo.h:41
USB_DEVICE_REQUEST EFI_USB_DEVICE_REQUEST
Definition UsbIo.h:38
EFI_STATUS(EFIAPI * EFI_ASYNC_USB_TRANSFER_CALLBACK)(IN VOID *Data, IN UINTN DataLength, IN VOID *Context, IN UINT32 Status)
Async USB transfer callback routine.
Definition UsbIo.h:83
USB_ENDPOINT_DESCRIPTOR EFI_USB_ENDPOINT_DESCRIPTOR
Definition UsbIo.h:42
struct _EFI_VLAN_CONFIG_PROTOCOL EFI_VLAN_CONFIG_PROTOCOL
Definition VlanConfig.h:23
typeof(acpi_finder=acpi_find)
ACPI table finder.
Definition acpi.c:48
u32 info
Definition ar9003_mac.h:0
pseudo_bit_t value[0x00020]
Definition arbel.h:2
unsigned long intptr_t
Definition stdint.h:21
long index
Definition bigint.h:65
uint16_t offset
Offset to command line.
Definition bzimage.h:3
int overwrite(const WINDOW *, WINDOW *)
void timeout(int)
ring len
Length.
Definition dwmac.h:226
uint64_t tag
Identity tag.
Definition edd.h:1
static EFI_STATUS EFIAPI efi_null_block_write(EFI_BLOCK_IO_PROTOCOL *block __unused, UINT32 media __unused, EFI_LBA lba __unused, UINTN len __unused, VOID *data __unused)
Definition efi_null.c:370
static EFI_STATUS EFIAPI efi_null_pxe_start(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN use_ipv6 __unused)
Definition efi_null.c:410
void efi_nullify_usbio(EFI_USB_IO_PROTOCOL *usbio)
Nullify USB I/O protocol.
Definition efi_null.c:712
static EFI_SIMPLE_NETWORK_PROTOCOL efi_null_snp
Definition efi_null.c:135
static EFI_STATUS EFIAPI efi_null_hii_extract(const EFI_HII_CONFIG_ACCESS_PROTOCOL *hii __unused, EFI_STRING request __unused, EFI_STRING *progress __unused, EFI_STRING *results __unused)
Definition efi_null.c:310
static PXE_SW_UNDI efi_null_undi
Definition efi_null.c:178
static EFI_COMPONENT_NAME2_PROTOCOL efi_null_name2
Definition efi_null.c:262
void efi_nullify_snp(EFI_SIMPLE_NETWORK_PROTOCOL *snp)
Nullify SNP interface.
Definition efi_null.c:157
static EFI_STATUS EFIAPI efi_null_snp_shutdown(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition efi_null.c:68
static EFI_STATUS EFIAPI efi_null_block_flush(EFI_BLOCK_IO_PROTOCOL *block __unused)
Definition efi_null.c:377
static EFI_VLAN_CONFIG_PROTOCOL efi_null_vlan
Definition efi_null.c:223
static EFI_STATUS EFIAPI efi_null_pxe_stop(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused)
Definition efi_null.c:416
static EFI_STATUS EFIAPI efi_null_snp_get_status(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, UINT32 *interrupts __unused, VOID **txbuf __unused)
Definition efi_null.c:112
static EFI_USB_IO_PROTOCOL efi_null_usbio
Definition efi_null.c:691
static EFI_STATUS EFIAPI efi_null_snp_mcast_ip_to_mac(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, BOOLEAN ipv6 __unused, EFI_IP_ADDRESS *ip __unused, EFI_MAC_ADDRESS *mac __unused)
Definition efi_null.c:97
void efi_nullify_nii(EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *nii)
Nullify NII interface.
Definition efi_null.c:192
static EFI_STATUS EFIAPI efi_null_block_reset(EFI_BLOCK_IO_PROTOCOL *block __unused, BOOLEAN verify __unused)
Definition efi_null.c:357
void efi_nullify_load_file(EFI_LOAD_FILE_PROTOCOL *load_file)
Nullify Load File Protocol interface.
Definition efi_null.c:298
static EFI_STATUS EFIAPI efi_null_vlan_remove(EFI_VLAN_CONFIG_PROTOCOL *vcfg __unused, UINT16 tag __unused)
Definition efi_null.c:218
static EFI_STATUS EFIAPI efi_null_usb_control_transfer(EFI_USB_IO_PROTOCOL *usbio __unused, EFI_USB_DEVICE_REQUEST *packet __unused, EFI_USB_DATA_DIRECTION direction __unused, UINT32 timeout __unused, VOID *data __unused, UINTN len __unused, UINT32 *status __unused)
Definition efi_null.c:585
static EFIAPI VOID efi_null_undi_issue(UINT64 cdb_phys)
Definition efi_null.c:171
static EFI_STATUS EFIAPI efi_null_snp_transmit(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, UINTN ll_header_len __unused, UINTN len __unused, VOID *data __unused, EFI_MAC_ADDRESS *ll_src __unused, EFI_MAC_ADDRESS *ll_dest __unused, UINT16 *net_proto __unused)
Definition efi_null.c:118
static EFI_STATUS EFIAPI efi_null_pxe_set_packets(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN *dhcpdisc_ok __unused, BOOLEAN *dhcpack_ok __unused, BOOLEAN *proxyoffer_ok __unused, BOOLEAN *pxebsdisc_ok __unused, BOOLEAN *pxebsack_ok __unused, BOOLEAN *pxebsbis_ok __unused, EFI_PXE_BASE_CODE_PACKET *dhcpdisc __unused, EFI_PXE_BASE_CODE_PACKET *dhcpack __unused, EFI_PXE_BASE_CODE_PACKET *proxyoffer __unused, EFI_PXE_BASE_CODE_PACKET *pxebsdisc __unused, EFI_PXE_BASE_CODE_PACKET *pxebsack __unused, EFI_PXE_BASE_CODE_PACKET *pxebsbis __unused)
Definition efi_null.c:500
static EFI_APPLE_NET_BOOT_PROTOCOL efi_null_apple
Definition efi_null.c:562
void efi_nullify_pxe(EFI_PXE_BASE_CODE_PROTOCOL *pxe)
Nullify PXE base code protocol.
Definition efi_null.c:537
static EFI_STATUS EFIAPI efi_null_pxe_set_ip_filter(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, EFI_PXE_BASE_CODE_IP_FILTER *filter __unused)
Definition efi_null.c:471
static EFI_STATUS EFIAPI efi_null_pxe_discover(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, UINT16 type __unused, UINT16 *layer __unused, BOOLEAN bis __unused, EFI_PXE_BASE_CODE_DISCOVER_INFO *info __unused)
Definition efi_null.c:427
void efi_nullify_vlan(EFI_VLAN_CONFIG_PROTOCOL *vcfg)
Nullify VLAN configuration interface.
Definition efi_null.c:234
static EFI_STATUS EFIAPI efi_null_snp_receive_filters(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, UINT32 enable __unused, UINT32 disable __unused, BOOLEAN mcast_reset __unused, UINTN mcast_count __unused, EFI_MAC_ADDRESS *mcast __unused)
Definition efi_null.c:73
static EFI_STATUS EFIAPI efi_null_usb_port_reset(EFI_USB_IO_PROTOCOL *usbio __unused)
Definition efi_null.c:687
static EFI_STATUS EFIAPI efi_null_pxe_udp_read(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, UINT16 flags __unused, EFI_IP_ADDRESS *dest_ip __unused, EFI_PXE_BASE_CODE_UDP_PORT *dest_port __unused, EFI_IP_ADDRESS *src_ip __unused, EFI_PXE_BASE_CODE_UDP_PORT *src_port __unused, UINTN *hdr_len __unused, VOID *hdr __unused, UINTN *len __unused, VOID *data __unused)
Definition efi_null.c:459
static EFI_STATUS EFIAPI efi_null_load_file(EFI_LOAD_FILE_PROTOCOL *load_file __unused, EFI_DEVICE_PATH_PROTOCOL *path __unused, BOOLEAN booting __unused, UINTN *len __unused, VOID *data __unused)
Definition efi_null.c:286
static EFI_STATUS EFIAPI efi_null_pxe_mtftp(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, EFI_PXE_BASE_CODE_TFTP_OPCODE opcode __unused, VOID *data __unused, BOOLEAN overwrite __unused, UINT64 *len __unused, UINTN *blksize __unused, EFI_IP_ADDRESS *ip __unused, UINT8 *filename __unused, EFI_PXE_BASE_CODE_MTFTP_INFO *info __unused, BOOLEAN callback __unused)
Definition efi_null.c:435
static EFI_STATUS EFIAPI efi_null_usb_isochronous_transfer(EFI_USB_IO_PROTOCOL *usbio __unused, UINT8 endpoint __unused, VOID *data __unused, UINTN len __unused, UINT32 *status __unused)
Definition efi_null.c:624
static EFI_STATUS EFIAPI efi_null_get_controller_name(EFI_COMPONENT_NAME2_PROTOCOL *name2 __unused, EFI_HANDLE device __unused, EFI_HANDLE child __unused, CHAR8 *language __unused, CHAR16 **controller_name __unused)
Definition efi_null.c:254
static EFI_STATUS EFIAPI efi_null_hii_route(const EFI_HII_CONFIG_ACCESS_PROTOCOL *hii __unused, EFI_STRING config __unused, EFI_STRING *progress __unused)
Definition efi_null.c:318
static EFI_STATUS EFIAPI efi_null_hii_callback(const EFI_HII_CONFIG_ACCESS_PROTOCOL *hii __unused, EFI_BROWSER_ACTION action __unused, EFI_QUESTION_ID question_id __unused, UINT8 type __unused, EFI_IFR_TYPE_VALUE *value __unused, EFI_BROWSER_ACTION_REQUEST *action_request __unused)
Definition efi_null.c:325
static EFI_STATUS EFIAPI efi_null_usb_get_config_descriptor(EFI_USB_IO_PROTOCOL *usbio __unused, EFI_USB_CONFIG_DESCRIPTOR *efidesc __unused)
Definition efi_null.c:650
static EFI_STATUS EFIAPI efi_null_snp_start(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition efi_null.c:45
void efi_nullify_name2(EFI_COMPONENT_NAME2_PROTOCOL *name2)
Nullify Component Name Protocol interface.
Definition efi_null.c:273
static EFI_STATUS EFIAPI efi_null_usb_get_endpoint_descriptor(EFI_USB_IO_PROTOCOL *usbio __unused, UINT8 index __unused, EFI_USB_ENDPOINT_DESCRIPTOR *efidesc __unused)
Definition efi_null.c:664
static EFI_STATUS EFIAPI efi_null_usb_bulk_transfer(EFI_USB_IO_PROTOCOL *usbio __unused, UINT8 endpoint __unused, VOID *data __unused, UINTN *len __unused, UINTN timeout __unused, UINT32 *status __unused)
Definition efi_null.c:594
void efi_nullify_block(EFI_BLOCK_IO_PROTOCOL *block)
Nullify block I/O protocol.
Definition efi_null.c:397
static EFI_STATUS EFIAPI efi_null_pxe_udp_write(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, UINT16 flags __unused, EFI_IP_ADDRESS *dest_ip __unused, EFI_PXE_BASE_CODE_UDP_PORT *dest_port __unused, EFI_IP_ADDRESS *gateway __unused, EFI_IP_ADDRESS *src_ip __unused, EFI_PXE_BASE_CODE_UDP_PORT *src_port __unused, UINTN *hdr_len __unused, VOID *hdr __unused, UINTN *len __unused, VOID *data __unused)
Definition efi_null.c:446
static EFI_STATUS EFIAPI efi_null_usb_async_interrupt_transfer(EFI_USB_IO_PROTOCOL *usbio __unused, UINT8 endpoint __unused, BOOLEAN start __unused, UINTN interval __unused, UINTN len __unused, EFI_ASYNC_USB_TRANSFER_CALLBACK callback __unused, VOID *context __unused)
Definition efi_null.c:612
static EFI_STATUS EFIAPI efi_null_pxe_arp(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, EFI_IP_ADDRESS *ip __unused, EFI_MAC_ADDRESS *mac __unused)
Definition efi_null.c:477
static EFI_STATUS EFIAPI efi_null_snp_nvdata(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, BOOLEAN read __unused, UINTN offset __unused, UINTN len __unused, VOID *data __unused)
Definition efi_null.c:105
static EFI_STATUS EFIAPI efi_null_snp_reset(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, BOOLEAN ext_verify __unused)
Definition efi_null.c:62
static EFI_STATUS EFIAPI efi_null_snp_stop(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition efi_null.c:50
static EFI_STATUS EFIAPI efi_null_usb_get_interface_descriptor(EFI_USB_IO_PROTOCOL *usbio __unused, EFI_USB_INTERFACE_DESCRIPTOR *efidesc __unused)
Definition efi_null.c:657
static EFI_BLOCK_IO_MEDIA efi_null_block_media
Definition efi_null.c:381
static EFI_STATUS EFIAPI efi_null_usb_get_supported_languages(EFI_USB_IO_PROTOCOL *usbio __unused, UINT16 **languages __unused, UINT16 *len __unused)
Definition efi_null.c:680
static EFI_STATUS EFIAPI efi_null_usb_get_device_descriptor(EFI_USB_IO_PROTOCOL *usbio __unused, EFI_USB_DEVICE_DESCRIPTOR *efidesc __unused)
Definition efi_null.c:643
static EFI_STATUS EFIAPI efi_null_vlan_set(EFI_VLAN_CONFIG_PROTOCOL *vcfg __unused, UINT16 tag __unused, UINT8 priority __unused)
Definition efi_null.c:205
static EFI_STATUS EFIAPI efi_null_usb_get_string_descriptor(EFI_USB_IO_PROTOCOL *usbio __unused, UINT16 language __unused, UINT8 index __unused, CHAR16 **string __unused)
Definition efi_null.c:672
static EFI_STATUS EFIAPI efi_null_usb_async_isochronous_transfer(EFI_USB_IO_PROTOCOL *usbio __unused, UINT8 endpoint __unused, VOID *data __unused, UINTN len __unused, EFI_ASYNC_USB_TRANSFER_CALLBACK callback __unused, VOID *context __unused)
Definition efi_null.c:632
static EFI_HII_CONFIG_ACCESS_PROTOCOL efi_null_hii
Definition efi_null.c:333
static EFI_STATUS EFIAPI efi_null_apple_dhcp(EFI_APPLE_NET_BOOT_PROTOCOL *apple __unused, UINTN *len __unused, VOID *data __unused)
Definition efi_null.c:551
static EFI_STATUS EFIAPI efi_null_apple_bsdp(EFI_APPLE_NET_BOOT_PROTOCOL *apple __unused, UINTN *len __unused, VOID *data __unused)
Definition efi_null.c:557
static EFI_STATUS EFIAPI efi_null_block_read(EFI_BLOCK_IO_PROTOCOL *block __unused, UINT32 media __unused, EFI_LBA lba __unused, UINTN len __unused, VOID *data __unused)
Definition efi_null.c:363
static EFI_STATUS EFIAPI efi_null_snp_initialize(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, UINTN extra_rx_bufsize __unused, UINTN extra_tx_bufsize __unused)
Definition efi_null.c:55
static EFI_STATUS EFIAPI efi_null_snp_station_address(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, BOOLEAN reset __unused, EFI_MAC_ADDRESS *new __unused)
Definition efi_null.c:83
static EFI_STATUS EFIAPI efi_null_snp_statistics(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, BOOLEAN reset __unused, UINTN *stats_len __unused, EFI_NETWORK_STATISTICS *stats __unused)
Definition efi_null.c:90
static EFI_STATUS EFIAPI efi_null_usb_sync_interrupt_transfer(EFI_USB_IO_PROTOCOL *usbio __unused, UINT8 endpoint __unused, VOID *data __unused, UINTN *len __unused, UINTN timeout __unused, UINT32 *status __unused)
Definition efi_null.c:602
static EFI_BLOCK_IO_PROTOCOL efi_null_block
Definition efi_null.c:383
static EFI_STATUS EFIAPI efi_null_pxe_set_parameters(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN *autoarp __unused, BOOLEAN *sendguid __unused, UINT8 *ttl __unused, UINT8 *tos __unused, BOOLEAN *callback __unused)
Definition efi_null.c:484
static EFI_STATUS EFIAPI efi_null_get_driver_name(EFI_COMPONENT_NAME2_PROTOCOL *name2 __unused, CHAR8 *language __unused, CHAR16 **driver_name __unused)
Definition efi_null.c:247
static EFI_STATUS EFIAPI efi_null_snp_receive(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, UINTN *ll_header_len __unused, UINTN *len __unused, VOID *data __unused, EFI_MAC_ADDRESS *ll_src __unused, EFI_MAC_ADDRESS *ll_dest __unused, UINT16 *net_proto __unused)
Definition efi_null.c:127
static EFI_STATUS EFIAPI efi_null_pxe_set_station_ip(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, EFI_IP_ADDRESS *ip __unused, EFI_IP_ADDRESS *netmask __unused)
Definition efi_null.c:493
void efi_nullify_apple(EFI_APPLE_NET_BOOT_PROTOCOL *apple)
Nullify Apple Net Boot protocol.
Definition efi_null.c:572
static EFI_STATUS EFIAPI efi_null_pxe_dhcp(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN sort __unused)
Definition efi_null.c:421
void efi_nullify_hii(EFI_HII_CONFIG_ACCESS_PROTOCOL *hii)
Nullify HII configuration access protocol.
Definition efi_null.c:344
static EFI_STATUS EFIAPI efi_null_vlan_find(EFI_VLAN_CONFIG_PROTOCOL *vcfg __unused, UINT16 *filter __unused, UINT16 *count __unused, EFI_VLAN_FIND_DATA **entries __unused)
Definition efi_null.c:211
static EFI_PXE_BASE_CODE_PROTOCOL efi_null_pxe
Definition efi_null.c:516
EFI null interfaces.
uint8_t direction
Direction.
Definition ena.h:3
uint32_t type
Operating system type.
Definition ena.h:1
uint8_t data[48]
Additional event data.
Definition ena.h:11
uint8_t flags
Flags.
Definition ena.h:7
uint8_t status
Status.
Definition ena.h:5
uint8_t mac[ETH_ALEN]
MAC address.
Definition ena.h:13
uint8_t opcode
Opcode.
Definition ena.h:5
#define __unused
Declare a variable or data structure as unused.
Definition compiler.h:573
uint32_t start
Starting offset.
Definition netvsc.h:1
static unsigned int count
Number of entries.
Definition dwmac.h:220
uint64_t lba
Starting block number.
Definition int13.h:11
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
u8 request[0]
List of IEs requested.
Definition ieee80211.h:2
#define __attribute__(x)
Definition compiler.h:10
EFI API.
#define EFI_HANDLE
Definition efi.h:53
String functions.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
uint8_t block[3][8]
DES-encrypted blocks.
Definition mschapv2.h:1
struct option_descriptor read[1]
Definition nvo_cmd.c:116
uint32_t blksize
Cipher block size.
Definition pccrr.h:1
IP4_t dest_ip
Destination IP address.
Definition pxe_api.h:2
IP4_t src_ip
IP address of this station.
Definition pxe_api.h:1
UINT8_t Rev
PCI revision.
Definition pxe_api.h:5
UINT8_t filter
Receive packet filter.
Definition pxe_api.h:11
IP4_t ip
Destination IP address.
Definition pxe_api.h:1
UDP_PORT_t src_port
Source UDP port.
Definition pxe_api.h:3
#define offsetof(type, field)
Get offset of a field within a structure.
Definition stddef.h:25
uint16_t priority
Priotity.
Definition stp.h:1
Block IO read only mode data and updated only via members of BlockIO.
Definition BlockIo.h:131
This protocol can be used on any device handle to obtain generic path/location information concerning...
Definition DevicePath.h:46
32-byte buffer containing a network Media Access Control address.
Simple Network Protocol data structures.
Discover() information override structure.
IP Receive Filter structure.
Definition PxeBaseCode.h:78
UINT32 State
Reports the current state of the network interface.
EFI_VLAN_FIND_DATA.
Definition VlanConfig.h:28
EFI_LOAD_FILE LoadFile
Definition LoadFile.h:80
UINT64 Id
The address of the first byte of the identifying structure for this network interface.
EFI_PXE_BASE_CODE_MODE * Mode
The pointer to the EFI_PXE_BASE_CODE_MODE data for this device.
EFI_SIMPLE_NETWORK_MODE * Mode
Pointer to the EFI_SIMPLE_NETWORK_MODE data for the device.
A hardware device.
Definition device.h:77
PXE_STATCODE StatCode
Definition UefiPxe.h:883
PXE_STATFLAGS StatFlags
Definition UefiPxe.h:884
static char media[]
Definition sundance.c:85
#define FALSE
Definition tlan.h:45
16-byte buffer aligned on a 4-byte boundary.
Packet structure.