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 
24 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
25 
26 #include <string.h>
27 #include <ipxe/efi/efi.h>
28 #include <ipxe/efi/efi_null.h>
29 
30 /** @file
31  *
32  * EFI null interfaces
33  *
34  */
35 
36 /******************************************************************************
37  *
38  * Simple Network Protocol
39  *
40  ******************************************************************************
41  */
42 
43 static EFI_STATUS EFIAPI
45  return EFI_UNSUPPORTED;
46 }
47 
48 static EFI_STATUS EFIAPI
50  return EFI_UNSUPPORTED;
51 }
52 
53 static EFI_STATUS EFIAPI
55  UINTN extra_rx_bufsize __unused,
56  UINTN extra_tx_bufsize __unused ) {
57  return EFI_UNSUPPORTED;
58 }
59 
60 static EFI_STATUS EFIAPI
62  BOOLEAN ext_verify __unused ) {
63  return EFI_UNSUPPORTED;
64 }
65 
66 static EFI_STATUS EFIAPI
68  return EFI_UNSUPPORTED;
69 }
70 
71 static EFI_STATUS EFIAPI
73  UINT32 enable __unused,
74  UINT32 disable __unused,
75  BOOLEAN mcast_reset __unused,
76  UINTN mcast_count __unused,
77  EFI_MAC_ADDRESS *mcast __unused ) {
78  return EFI_UNSUPPORTED;
79 }
80 
81 static EFI_STATUS EFIAPI
83  BOOLEAN reset __unused,
84  EFI_MAC_ADDRESS *new __unused ) {
85  return EFI_UNSUPPORTED;
86 }
87 
88 static EFI_STATUS EFIAPI
90  BOOLEAN reset __unused, UINTN *stats_len __unused,
92  return EFI_UNSUPPORTED;
93 }
94 
95 static EFI_STATUS EFIAPI
97  BOOLEAN ipv6 __unused,
100  return EFI_UNSUPPORTED;
101 }
102 
103 static EFI_STATUS EFIAPI
107  return EFI_UNSUPPORTED;
108 }
109 
110 static EFI_STATUS EFIAPI
112  UINT32 *interrupts __unused, VOID **txbuf __unused ) {
113  return EFI_UNSUPPORTED;
114 }
115 
116 static EFI_STATUS EFIAPI
118  UINTN ll_header_len __unused, UINTN len __unused,
120  EFI_MAC_ADDRESS *ll_dest __unused,
121  UINT16 *net_proto __unused ) {
122  return EFI_UNSUPPORTED;
123 }
124 
125 static EFI_STATUS EFIAPI
127  UINTN *ll_header_len __unused, UINTN *len __unused,
129  EFI_MAC_ADDRESS *ll_dest __unused,
130  UINT16 *net_proto __unused ) {
131  return EFI_UNSUPPORTED;
132 }
133 
136  .Start = efi_null_snp_start,
137  .Stop = efi_null_snp_stop,
138  .Initialize = efi_null_snp_initialize,
139  .Reset = efi_null_snp_reset,
140  .Shutdown = efi_null_snp_shutdown,
141  .ReceiveFilters = efi_null_snp_receive_filters,
142  .StationAddress = efi_null_snp_station_address,
143  .Statistics = efi_null_snp_statistics,
144  .MCastIpToMac = efi_null_snp_mcast_ip_to_mac,
145  .NvData = efi_null_snp_nvdata,
146  .GetStatus = efi_null_snp_get_status,
147  .Transmit = efi_null_snp_transmit,
148  .Receive = efi_null_snp_receive,
149 };
150 
151 /**
152  * Nullify SNP interface
153  *
154  * @v snp SNP interface
155  */
157 
158  memcpy ( snp, &efi_null_snp,
159  offsetof ( typeof ( *snp ), WaitForPacket ) );
161 }
162 
163 /******************************************************************************
164  *
165  * Network Interface Identification protocol
166  *
167  ******************************************************************************
168  */
169 
170 static EFIAPI VOID efi_null_undi_issue ( UINT64 cdb_phys ) {
171  PXE_CDB *cdb = ( ( void * ) ( intptr_t ) cdb_phys );
172 
175 }
176 
177 static PXE_SW_UNDI efi_null_undi __attribute__ (( aligned ( 16 ) )) = {
178  .Signature = PXE_ROMID_SIGNATURE,
179  .Len = sizeof ( efi_null_undi ),
180  .Rev = PXE_ROMID_REV,
181  .MajorVer = PXE_ROMID_MAJORVER,
182  .MinorVer = PXE_ROMID_MINORVER,
183  .Implementation = PXE_ROMID_IMP_SW_VIRT_ADDR,
184 };
185 
186 /**
187  * Nullify NII interface
188  *
189  * @v nii NII interface
190  */
193  nii->Id = ( ( intptr_t ) &efi_null_undi );
194 }
195 
196 /******************************************************************************
197  *
198  * VLAN configuration protocol
199  *
200  ******************************************************************************
201  */
202 
203 static EFI_STATUS EFIAPI
206  return EFI_UNSUPPORTED;
207 }
208 
209 static EFI_STATUS EFIAPI
212  EFI_VLAN_FIND_DATA **entries __unused ) {
213  return EFI_UNSUPPORTED;
214 }
215 
216 static EFI_STATUS EFIAPI
218  UINT16 tag __unused ) {
219  return EFI_UNSUPPORTED;
220 }
221 
224  .Find = efi_null_vlan_find,
225  .Remove = efi_null_vlan_remove,
226 };
227 
228 /**
229  * Nullify VLAN configuration interface
230  *
231  * @v vcfg VLAN configuration protocol
232  */
234 
235  memcpy ( vcfg, &efi_null_vlan, sizeof ( *vcfg ) );
236 }
237 
238 /******************************************************************************
239  *
240  * Component name protocol
241  *
242  ******************************************************************************
243  */
244 
245 static EFI_STATUS EFIAPI
247  CHAR8 *language __unused,
248  CHAR16 **driver_name __unused ) {
249  return EFI_UNSUPPORTED;
250 }
251 
252 static EFI_STATUS EFIAPI
255  EFI_HANDLE child __unused,
256  CHAR8 *language __unused,
257  CHAR16 **controller_name __unused ) {
258  return EFI_UNSUPPORTED;
259 }
260 
263  .GetControllerName = efi_null_get_controller_name,
264  .SupportedLanguages = "",
265 };
266 
267 /**
268  * Nullify Component Name Protocol interface
269  *
270  * @v name2 Component name protocol
271  */
273 
274  memcpy ( name2, &efi_null_name2, sizeof ( *name2 ) );
275 }
276 
277 /******************************************************************************
278  *
279  * Load file protocol
280  *
281  ******************************************************************************
282  */
283 
284 static EFI_STATUS EFIAPI
287  BOOLEAN booting __unused, UINTN *len __unused,
288  VOID *data __unused ) {
289  return EFI_UNSUPPORTED;
290 }
291 
292 /**
293  * Nullify Load File Protocol interface
294  *
295  * @v load_file Load file protocol
296  */
298  load_file->LoadFile = efi_null_load_file;
299 }
300 
301 /******************************************************************************
302  *
303  * HII configuration access protocol
304  *
305  ******************************************************************************
306  */
307 
308 static EFI_STATUS EFIAPI
311  EFI_STRING *progress __unused,
312  EFI_STRING *results __unused ) {
313  return EFI_UNSUPPORTED;
314 }
315 
316 static EFI_STATUS EFIAPI
318  EFI_STRING config __unused,
319  EFI_STRING *progress __unused ) {
320  return EFI_UNSUPPORTED;
321 }
322 
323 static EFI_STATUS EFIAPI
326  EFI_QUESTION_ID question_id __unused,
328  EFI_BROWSER_ACTION_REQUEST *action_request __unused ) {
329  return EFI_UNSUPPORTED;
330 }
331 
334  .RouteConfig = efi_null_hii_route,
335  .Callback = efi_null_hii_callback,
336 };
337 
338 /**
339  * Nullify HII configuration access protocol
340  *
341  * @v hii HII configuration access protocol
342  */
344 
345  memcpy ( hii, &efi_null_hii, sizeof ( *hii ) );
346 }
347 
348 /******************************************************************************
349  *
350  * Block I/O protocol
351  *
352  ******************************************************************************
353  */
354 
355 static EFI_STATUS EFIAPI
357  BOOLEAN verify __unused ) {
358  return EFI_UNSUPPORTED;
359 }
360 
361 static EFI_STATUS EFIAPI
365  return EFI_UNSUPPORTED;
366 }
367 
368 static EFI_STATUS EFIAPI
372  return EFI_UNSUPPORTED;
373 }
374 
375 static EFI_STATUS EFIAPI
377  return EFI_UNSUPPORTED;
378 }
379 
381 
384  .Media = &efi_null_block_media,
385  .Reset = efi_null_block_reset,
386  .ReadBlocks = efi_null_block_read,
387  .WriteBlocks = efi_null_block_write,
388  .FlushBlocks = efi_null_block_flush,
389 };
390 
391 /**
392  * Nullify block I/O protocol
393  *
394  * @v block Block I/O protocol
395  */
397 
398  memcpy ( block, &efi_null_block, sizeof ( *block ) );
399 }
400 
401 /******************************************************************************
402  *
403  * PXE base code protocol
404  *
405  ******************************************************************************
406  */
407 
408 static EFI_STATUS EFIAPI
410  BOOLEAN use_ipv6 __unused ) {
411  return EFI_UNSUPPORTED;
412 }
413 
414 static EFI_STATUS EFIAPI
416  return EFI_UNSUPPORTED;
417 }
418 
419 static EFI_STATUS EFIAPI
421  BOOLEAN sort __unused ) {
422  return EFI_UNSUPPORTED;
423 }
424 
425 static EFI_STATUS EFIAPI
428  BOOLEAN bis __unused,
430  return EFI_UNSUPPORTED;
431 }
432 
433 static EFI_STATUS EFIAPI
440  BOOLEAN callback __unused ) {
441  return EFI_UNSUPPORTED;
442 }
443 
444 static EFI_STATUS EFIAPI
449  EFI_IP_ADDRESS *gateway __unused,
452  UINTN *hdr_len __unused, VOID *hdr __unused,
454  return EFI_UNSUPPORTED;
455 }
456 
457 static EFI_STATUS EFIAPI
464  UINTN *hdr_len __unused, VOID *hdr __unused,
466  return EFI_UNSUPPORTED;
467 }
468 
469 static EFI_STATUS EFIAPI
472  return EFI_UNSUPPORTED;
473 }
474 
475 static EFI_STATUS EFIAPI
479  return EFI_UNSUPPORTED;
480 }
481 
482 static EFI_STATUS EFIAPI
484  BOOLEAN *autoarp __unused,
485  BOOLEAN *sendguid __unused, UINT8 *ttl __unused,
486  UINT8 *tos __unused,
487  BOOLEAN *callback __unused ) {
488  return EFI_UNSUPPORTED;
489 }
490 
491 static EFI_STATUS EFIAPI
494  EFI_IP_ADDRESS *netmask __unused ) {
495  return EFI_UNSUPPORTED;
496 }
497 
498 static EFI_STATUS EFIAPI
500  BOOLEAN *dhcpdisc_ok __unused,
501  BOOLEAN *dhcpack_ok __unused,
502  BOOLEAN *proxyoffer_ok __unused,
503  BOOLEAN *pxebsdisc_ok __unused,
504  BOOLEAN *pxebsack_ok __unused,
505  BOOLEAN *pxebsbis_ok __unused,
511  EFI_PXE_BASE_CODE_PACKET *pxebsbis __unused ) {
512  return EFI_UNSUPPORTED;
513 }
514 
517  .Start = efi_null_pxe_start,
518  .Stop = efi_null_pxe_stop,
519  .Dhcp = efi_null_pxe_dhcp,
520  .Discover = efi_null_pxe_discover,
521  .Mtftp = efi_null_pxe_mtftp,
522  .UdpWrite = efi_null_pxe_udp_write,
523  .UdpRead = efi_null_pxe_udp_read,
524  .SetIpFilter = efi_null_pxe_set_ip_filter,
525  .Arp = efi_null_pxe_arp,
526  .SetParameters = efi_null_pxe_set_parameters,
527  .SetStationIp = efi_null_pxe_set_station_ip,
528  .SetPackets = efi_null_pxe_set_packets,
529 };
530 
531 /**
532  * Nullify PXE base code protocol
533  *
534  * @v pxe PXE base code protocol
535  */
537 
538  memcpy ( pxe, &efi_null_pxe, offsetof ( typeof ( *pxe ), Mode ) );
539  pxe->Mode->Started = FALSE;
540 }
541 
542 /******************************************************************************
543  *
544  * Apple Net Boot protocol
545  *
546  ******************************************************************************
547  */
548 
549 static EFI_STATUS EFIAPI
552  return EFI_UNSUPPORTED;
553 }
554 
555 static EFI_STATUS EFIAPI
558  return EFI_UNSUPPORTED;
559 }
560 
563  .GetBsdpResponse = efi_null_apple_bsdp,
564 };
565 
566 /**
567  * Nullify Apple Net Boot protocol
568  *
569  * @v apple Apple Net Boot protocol
570  */
572 
573  memcpy ( apple, &efi_null_apple, sizeof ( *apple ) );
574 }
575 
576 /******************************************************************************
577  *
578  * USB I/O Protocol
579  *
580  ******************************************************************************
581  */
582 
583 static EFI_STATUS EFIAPI
589  return EFI_UNSUPPORTED;
590 }
591 
592 static EFI_STATUS EFIAPI
594  UINT8 endpoint __unused, VOID *data __unused,
596  UINT32 *status __unused ) {
597  return EFI_UNSUPPORTED;
598 }
599 
600 static EFI_STATUS EFIAPI
602  UINT8 endpoint __unused,
603  VOID *data __unused,
604  UINTN *len __unused,
606  UINT32 *status __unused ) {
607  return EFI_UNSUPPORTED;
608 }
609 
610 static EFI_STATUS EFIAPI
612  UINT8 endpoint __unused,
614  UINTN interval __unused,
617  callback __unused,
618  VOID *context __unused ) {
619  return EFI_UNSUPPORTED;
620 }
621 
622 static EFI_STATUS EFIAPI
624  UINT8 endpoint __unused,
626  UINT32 *status __unused ) {
627  return EFI_UNSUPPORTED;
628 }
629 
630 static EFI_STATUS EFIAPI
632  UINT8 endpoint __unused,
633  VOID *data __unused,
636  callback __unused,
637  VOID *context __unused ) {
638  return EFI_UNSUPPORTED;
639 }
640 
641 static EFI_STATUS EFIAPI
644  *efidesc __unused ) {
645  return EFI_UNSUPPORTED;
646 }
647 
648 static EFI_STATUS EFIAPI
651  *efidesc __unused ) {
652  return EFI_UNSUPPORTED;
653 }
654 
655 static EFI_STATUS EFIAPI
658  *efidesc __unused ) {
659  return EFI_UNSUPPORTED;
660 }
661 
662 static EFI_STATUS EFIAPI
666  *efidesc __unused ) {
667  return EFI_UNSUPPORTED;
668 }
669 
670 static EFI_STATUS EFIAPI
672  UINT16 language __unused,
674  CHAR16 **string __unused ) {
675  return EFI_UNSUPPORTED;
676 }
677 
678 static EFI_STATUS EFIAPI
680  UINT16 **languages __unused,
681  UINT16 *len __unused ) {
682  return EFI_UNSUPPORTED;
683 }
684 
685 static EFI_STATUS EFIAPI
687  return EFI_UNSUPPORTED;
688 }
689 
692  .UsbBulkTransfer = efi_null_usb_bulk_transfer,
693  .UsbAsyncInterruptTransfer = efi_null_usb_async_interrupt_transfer,
694  .UsbSyncInterruptTransfer = efi_null_usb_sync_interrupt_transfer,
695  .UsbIsochronousTransfer = efi_null_usb_isochronous_transfer,
696  .UsbAsyncIsochronousTransfer = efi_null_usb_async_isochronous_transfer,
697  .UsbGetDeviceDescriptor = efi_null_usb_get_device_descriptor,
698  .UsbGetConfigDescriptor = efi_null_usb_get_config_descriptor,
699  .UsbGetInterfaceDescriptor = efi_null_usb_get_interface_descriptor,
700  .UsbGetEndpointDescriptor = efi_null_usb_get_endpoint_descriptor,
701  .UsbGetStringDescriptor = efi_null_usb_get_string_descriptor,
702  .UsbGetSupportedLanguages = efi_null_usb_get_supported_languages,
703  .UsbPortReset = efi_null_usb_port_reset,
704 };
705 
706 /**
707  * Nullify USB I/O protocol
708  *
709  * @v usbio USB I/O protocol
710  */
712 
713  memcpy ( usbio, &efi_null_usbio, sizeof ( *usbio ) );
714 }
#define __attribute__(x)
Definition: compiler.h:10
struct option_descriptor read[1]
Definition: nvo_cmd.c:115
#define EFI_UNSUPPORTED
Enumeration of EFI_STATUS.
Definition: UefiBaseType.h:117
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:72
The EFI_SIMPLE_NETWORK_PROTOCOL protocol is used to initialize access to a network adapter.
PXE_STATCODE StatCode
Definition: UefiPxe.h:882
u32 info
Definition: ar9003_mac.h:67
GET_DHCP_RESPONSE GetDhcpResponse
Definition: AppleNetBoot.h:42
#define PXE_ROMID_MAJORVER
UNDI command interface revision.
Definition: UefiPxe.h:846
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:476
This protocol is used to retrieve user readable names of drivers and controllers managed by UEFI Driv...
static EFI_STATUS EFIAPI efi_null_pxe_dhcp(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN sort __unused)
Definition: efi_null.c:420
static EFIAPI VOID efi_null_undi_issue(UINT64 cdb_phys)
Definition: efi_null.c:170
uint32_t lba
Start address.
Definition: scsi.h:23
#define PXE_ROMID_SIGNATURE
Signature of !PXE structure.
Definition: UefiPxe.h:834
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:656
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:483
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:550
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:556
uint8_t opcode
Opcode.
Definition: ena.h:16
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:663
UINT8_t filter
Receive packet filter.
Definition: pxe_api.h:68
struct golan_inbox_hdr hdr
Message header.
Definition: CIB_PRM.h:28
static EFI_STATUS EFIAPI efi_null_snp_shutdown(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition: efi_null.c:67
An optional protocol that is used to describe details about the software layer that is used to produc...
32-byte buffer containing a network Media Access Control address.
Definition: UefiBaseType.h:97
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:671
unsigned char BOOLEAN
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:623
static EFI_STATUS EFIAPI efi_null_usb_port_reset(EFI_USB_IO_PROTOCOL *usbio __unused)
Definition: efi_null.c:686
static EFI_STATUS EFIAPI efi_null_block_reset(EFI_BLOCK_IO_PROTOCOL *block __unused, BOOLEAN verify __unused)
Definition: efi_null.c:356
static EFI_STATUS EFIAPI efi_null_pxe_start(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN use_ipv6 __unused)
Definition: efi_null.c:409
#define PXE_STATFLAGS_COMMAND_FAILED
Definition: UefiPxe.h:417
This protocol provides control over block devices.
Definition: BlockIo.h:216
Standard Interface Descriptor USB 2.0 spec, Section 9.6.5.
Definition: Usb.h:140
unsigned int UINT32
Definition: ProcessorBind.h:98
uint32_t blksize
Block size for this segment.
Definition: pccrc.h:24
EFI_HII_ACCESS_EXTRACT_CONFIG ExtractConfig
The EFI_USB_IO_PROTOCOL provides four basic transfers types described in the USB 1....
Definition: UsbIo.h:478
unsigned short CHAR16
static EFI_APPLE_NET_BOOT_PROTOCOL efi_null_apple
Definition: efi_null.c:561
uint8_t direction
Direction.
Definition: ena.h:14
UINT32 State
Reports the current state of the network interface.
This protocol can be used on any device handle to obtain generic path/location information concerning...
Definition: DevicePath.h:45
#define offsetof(type, field)
Get offset of a field within a structure.
Definition: stddef.h:24
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:584
uint8_t mac[ETH_ALEN]
MAC address.
Definition: ena.h:24
static EFI_SIMPLE_NETWORK_PROTOCOL efi_null_snp
Definition: efi_null.c:134
EFI_USB_DATA_DIRECTION
USB data transfer direction.
Definition: UsbIo.h:46
unsigned long intptr_t
Definition: stdint.h:21
CHAR16 * EFI_STRING
IP4_t src_ip
IP address of this station.
Definition: pxe_api.h:58
unsigned char UINT8
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:104
static EFI_STATUS EFIAPI efi_null_snp_stop(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition: efi_null.c:49
UINTN EFI_BROWSER_ACTION_REQUEST
Definition: FormBrowser2.h:49
UINT64 Id
The address of the first byte of the identifying structure for this network interface.
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:210
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:369
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:324
This protocol provides a callable interface between the HII and drivers.
EFI_SIMPLE_NETWORK_MODE * Mode
Pointer to the EFI_SIMPLE_NETWORK_MODE data for the device.
uint32_t start
Starting offset.
Definition: netvsc.h:12
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:601
uint8_t status
Status.
Definition: ena.h:16
EFI_VLAN_CONFIG_SET Set
Definition: VlanConfig.h:129
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:499
static EFI_PXE_BASE_CODE_PROTOCOL efi_null_pxe
Definition: efi_null.c:515
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:317
A hardware device.
Definition: device.h:73
void * memcpy(void *dest, const void *src, size_t len) __nonnull
static EFI_USB_IO_PROTOCOL efi_null_usbio
Definition: efi_null.c:690
#define EFI_BLOCK_IO_INTERFACE_REVISION
Revision defined in EFI1.1.
Definition: BlockIo.h:211
#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION
Definition: PxeBaseCode.h:893
#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION
Format of Setup Data for USB Device Requests USB 2.0 spec, Section 9.3.
Definition: Usb.h:92
The EFI_LOAD_FILE_PROTOCOL is a simple protocol used to obtain files from arbitrary devices.
Definition: LoadFile.h:78
UINT8_t Rev
PCI revision.
Definition: pxe_api.h:62
MTFTP information.
Definition: PxeBaseCode.h:211
static PXE_SW_UNDI efi_null_undi
Definition: efi_null.c:177
void efi_nullify_usbio(EFI_USB_IO_PROTOCOL *usbio)
Nullify USB I/O protocol.
Definition: efi_null.c:711
16-byte buffer aligned on a 4-byte boundary.
Definition: UefiBaseType.h:105
UINT64 EFI_LBA
Logical block address.
Definition: UefiBaseType.h:47
UDP_PORT_t src_port
Source UDP port.
Definition: pxe_api.h:60
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:285
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:649
EFI_COMPONENT_NAME2_GET_DRIVER_NAME GetDriverName
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:470
void efi_nullify_pxe(EFI_PXE_BASE_CODE_PROTOCOL *pxe)
Nullify PXE base code protocol.
Definition: efi_null.c:536
static userptr_t size_t offset
Offset of the first segment within the content.
Definition: deflate.h:259
UINT16 EFI_PXE_BASE_CODE_UDP_PORT
Definition: PxeBaseCode.h:109
#define PXE_ROMID_MINORVER
Definition: UefiPxe.h:847
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
#define PXE_ROMID_IMP_SW_VIRT_ADDR
Definition: UefiPxe.h:853
EFI null interfaces.
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
unsigned short UINT16
static EFI_HII_CONFIG_ACCESS_PROTOCOL efi_null_hii
Definition: efi_null.c:332
static EFI_VLAN_CONFIG_PROTOCOL efi_null_vlan
Definition: efi_null.c:222
#define EFIAPI
UINT64 Revision
The revision of the EFI_PXE_BASE_CODE_PROTOCOL.
Definition: PxeBaseCode.h:914
EFI_VLAN_CONFIG_PROTOCOL provide manageability interface for VLAN setting.
Definition: VlanConfig.h:128
#define PXE_ROMID_REV
!PXE structure format revision
Definition: UefiPxe.h:839
IP4_t dest_ip
Destination IP address.
Definition: pxe_api.h:59
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:458
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:82
EFI_VLAN_FIND_DATA.
Definition: VlanConfig.h:27
void efi_nullify_hii(EFI_HII_CONFIG_ACCESS_PROTOCOL *hii)
Nullify HII configuration access protocol.
Definition: efi_null.c:343
#define PXE_STATCODE_UNSUPPORTED
Definition: UefiPxe.h:617
static EFI_STATUS EFIAPI efi_null_vlan_set(EFI_VLAN_CONFIG_PROTOCOL *vcfg __unused, UINT16 tag __unused, UINT8 priority __unused)
Definition: efi_null.c:204
IP4_t ip
Destination IP address.
Definition: pxe_api.h:58
static EFI_STATUS EFIAPI efi_null_snp_reset(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused, BOOLEAN ext_verify __unused)
Definition: efi_null.c:61
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:126
UINT64 UINTN
Unsigned value of native width.
IP Receive Filter structure.
Definition: PxeBaseCode.h:77
Standard Endpoint Descriptor USB 2.0 spec, Section 9.6.6.
Definition: Usb.h:156
void efi_nullify_vlan(EFI_VLAN_CONFIG_PROTOCOL *vcfg)
Nullify VLAN configuration interface.
Definition: efi_null.c:233
#define VOID
Undeclared type.
Definition: Base.h:271
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:246
unsigned long long UINT64
Definition: ProcessorBind.h:96
static EFI_STATUS EFIAPI efi_null_block_flush(EFI_BLOCK_IO_PROTOCOL *block __unused)
Definition: efi_null.c:376
static EFI_BLOCK_IO_MEDIA efi_null_block_media
Definition: efi_null.c:380
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:253
EFI_USB_IO_CONTROL_TRANSFER UsbControlTransfer
Definition: UsbIo.h:482
EFI API.
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:434
Packet structure.
Definition: PxeBaseCode.h:253
Block IO read only mode data and updated only via members of BlockIO.
Definition: BlockIo.h:130
void efi_nullify_name2(EFI_COMPONENT_NAME2_PROTOCOL *name2)
Nullify Component Name Protocol interface.
Definition: efi_null.c:272
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:445
#define __unused
Declare a variable or data structure as unused.
Definition: compiler.h:573
Discover() information override structure.
Definition: PxeBaseCode.h:181
uint32_t len
Length.
Definition: ena.h:14
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:89
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:679
uint32_t type
Operating system type.
Definition: ena.h:12
uint8_t block[3][8]
DES-encrypted blocks.
Definition: mschapv2.h:12
uint16_t priority
Priotity.
Definition: stp.h:12
PXE_UINT64 EntryPoint
API entry point.
Definition: UefiPxe.h:820
EFI_LOAD_FILE LoadFile
Definition: LoadFile.h:79
char CHAR8
void efi_nullify_block(EFI_BLOCK_IO_PROTOCOL *block)
Nullify block I/O protocol.
Definition: efi_null.c:396
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:31
UINT64 Revision
Revision of the EFI_SIMPLE_NETWORK_PROTOCOL.
uint16_t count
Number of entries.
Definition: ena.h:22
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:309
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:362
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:117
u8 request[0]
List of IEs requested.
Definition: ieee80211.h:16
Standard Configuration Descriptor USB 2.0 spec, Section 9.6.3.
Definition: Usb.h:125
PXE_STATFLAGS StatFlags
Definition: UefiPxe.h:883
void efi_nullify_load_file(EFI_LOAD_FILE_PROTOCOL *load_file)
Nullify Load File Protocol interface.
Definition: efi_null.c:297
static char media[]
Definition: sundance.c:85
uint8_t data[48]
Additional event data.
Definition: ena.h:22
EFI_PXE_BASE_CODE_TFTP_OPCODE
TFTP opcode definitions.
Definition: PxeBaseCode.h:194
#define FALSE
Definition: tlan.h:45
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:611
static EFI_STATUS EFIAPI efi_null_vlan_remove(EFI_VLAN_CONFIG_PROTOCOL *vcfg __unused, UINT16 tag __unused)
Definition: efi_null.c:217
static EFI_STATUS EFIAPI efi_null_snp_start(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition: efi_null.c:44
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:492
UINT16 EFI_QUESTION_ID
void timeout(int)
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:54
void efi_nullify_nii(EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *nii)
Nullify NII interface.
Definition: efi_null.c:191
typeof(acpi_finder=acpi_find)
ACPI table finder.
Definition: acpi.c:45
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:426
static EFI_STATUS EFIAPI efi_null_pxe_stop(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused)
Definition: efi_null.c:415
UINT64 Revision
The revision to which the block IO interface adheres.
Definition: BlockIo.h:222
void efi_nullify_apple(EFI_APPLE_NET_BOOT_PROTOCOL *apple)
Nullify Apple Net Boot protocol.
Definition: efi_null.c:571
uint64_t index
Index of the first segment within the content.
Definition: pccrc.h:21
EFI_PXE_BASE_CODE_MODE * Mode
The pointer to the EFI_PXE_BASE_CODE_MODE data for this device.
Definition: PxeBaseCode.h:930
The EFI_PXE_BASE_CODE_PROTOCOL is used to control PXE-compatible devices.
Definition: PxeBaseCode.h:908
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:593
int overwrite(const WINDOW *, WINDOW *)
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:111
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:631
uint64_t tag
Identity tag.
Definition: edd.h:30
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:642
Simple Network Protocol data structures.
Definition: SimpleNetwork.h:40
Standard Device Descriptor USB 2.0 spec, Section 9.6.1.
Definition: Usb.h:104
String functions.
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:96
static EFI_COMPONENT_NAME2_PROTOCOL efi_null_name2
Definition: efi_null.c:261
void efi_nullify_snp(EFI_SIMPLE_NETWORK_PROTOCOL *snp)
Nullify SNP interface.
Definition: efi_null.c:156
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:82
Definition: efi.h:59
UINTN EFI_BROWSER_ACTION
static EFI_BLOCK_IO_PROTOCOL efi_null_block
Definition: efi_null.c:382
uint8_t flags
Flags.
Definition: ena.h:18