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 FILE_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 
44 static EFI_STATUS EFIAPI
46  return EFI_UNSUPPORTED;
47 }
48 
49 static EFI_STATUS EFIAPI
51  return EFI_UNSUPPORTED;
52 }
53 
54 static EFI_STATUS EFIAPI
56  UINTN extra_rx_bufsize __unused,
57  UINTN extra_tx_bufsize __unused ) {
58  return EFI_UNSUPPORTED;
59 }
60 
61 static EFI_STATUS EFIAPI
63  BOOLEAN ext_verify __unused ) {
64  return EFI_UNSUPPORTED;
65 }
66 
67 static EFI_STATUS EFIAPI
69  return EFI_UNSUPPORTED;
70 }
71 
72 static EFI_STATUS EFIAPI
74  UINT32 enable __unused,
75  UINT32 disable __unused,
76  BOOLEAN mcast_reset __unused,
77  UINTN mcast_count __unused,
78  EFI_MAC_ADDRESS *mcast __unused ) {
79  return EFI_UNSUPPORTED;
80 }
81 
82 static EFI_STATUS EFIAPI
84  BOOLEAN reset __unused,
85  EFI_MAC_ADDRESS *new __unused ) {
86  return EFI_UNSUPPORTED;
87 }
88 
89 static EFI_STATUS EFIAPI
91  BOOLEAN reset __unused, UINTN *stats_len __unused,
93  return EFI_UNSUPPORTED;
94 }
95 
96 static EFI_STATUS EFIAPI
98  BOOLEAN ipv6 __unused,
101  return EFI_UNSUPPORTED;
102 }
103 
104 static EFI_STATUS EFIAPI
108  return EFI_UNSUPPORTED;
109 }
110 
111 static EFI_STATUS EFIAPI
113  UINT32 *interrupts __unused, VOID **txbuf __unused ) {
114  return EFI_UNSUPPORTED;
115 }
116 
117 static EFI_STATUS EFIAPI
119  UINTN ll_header_len __unused, UINTN len __unused,
121  EFI_MAC_ADDRESS *ll_dest __unused,
122  UINT16 *net_proto __unused ) {
123  return EFI_UNSUPPORTED;
124 }
125 
126 static EFI_STATUS EFIAPI
128  UINTN *ll_header_len __unused, UINTN *len __unused,
130  EFI_MAC_ADDRESS *ll_dest __unused,
131  UINT16 *net_proto __unused ) {
132  return EFI_UNSUPPORTED;
133 }
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 
171 static EFIAPI VOID efi_null_undi_issue ( UINT64 cdb_phys ) {
172  PXE_CDB *cdb = ( ( void * ) ( intptr_t ) cdb_phys );
173 
176 }
177 
178 static PXE_SW_UNDI efi_null_undi __attribute__ (( aligned ( 16 ) )) = {
179  .Signature = PXE_ROMID_SIGNATURE,
180  .Len = sizeof ( efi_null_undi ),
181  .Rev = PXE_ROMID_REV,
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  */
194  nii->Id = ( ( intptr_t ) &efi_null_undi );
195 }
196 
197 /******************************************************************************
198  *
199  * VLAN configuration protocol
200  *
201  ******************************************************************************
202  */
203 
204 static EFI_STATUS EFIAPI
207  return EFI_UNSUPPORTED;
208 }
209 
210 static EFI_STATUS EFIAPI
213  EFI_VLAN_FIND_DATA **entries __unused ) {
214  return EFI_UNSUPPORTED;
215 }
216 
217 static EFI_STATUS EFIAPI
219  UINT16 tag __unused ) {
220  return EFI_UNSUPPORTED;
221 }
222 
225  .Find = efi_null_vlan_find,
226  .Remove = efi_null_vlan_remove,
227 };
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 
246 static EFI_STATUS EFIAPI
248  CHAR8 *language __unused,
249  CHAR16 **driver_name __unused ) {
250  return EFI_UNSUPPORTED;
251 }
252 
253 static EFI_STATUS EFIAPI
256  EFI_HANDLE child __unused,
257  CHAR8 *language __unused,
258  CHAR16 **controller_name __unused ) {
259  return EFI_UNSUPPORTED;
260 }
261 
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 
285 static EFI_STATUS EFIAPI
288  BOOLEAN booting __unused, UINTN *len __unused,
289  VOID *data __unused ) {
290  return EFI_UNSUPPORTED;
291 }
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 
309 static EFI_STATUS EFIAPI
312  EFI_STRING *progress __unused,
313  EFI_STRING *results __unused ) {
314  return EFI_UNSUPPORTED;
315 }
316 
317 static EFI_STATUS EFIAPI
319  EFI_STRING config __unused,
320  EFI_STRING *progress __unused ) {
321  return EFI_UNSUPPORTED;
322 }
323 
324 static EFI_STATUS EFIAPI
327  EFI_QUESTION_ID question_id __unused,
329  EFI_BROWSER_ACTION_REQUEST *action_request __unused ) {
330  return EFI_UNSUPPORTED;
331 }
332 
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 
356 static EFI_STATUS EFIAPI
358  BOOLEAN verify __unused ) {
359  return EFI_UNSUPPORTED;
360 }
361 
362 static EFI_STATUS EFIAPI
366  return EFI_UNSUPPORTED;
367 }
368 
369 static EFI_STATUS EFIAPI
373  return EFI_UNSUPPORTED;
374 }
375 
376 static EFI_STATUS EFIAPI
378  return EFI_UNSUPPORTED;
379 }
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 
409 static EFI_STATUS EFIAPI
411  BOOLEAN use_ipv6 __unused ) {
412  return EFI_UNSUPPORTED;
413 }
414 
415 static EFI_STATUS EFIAPI
417  return EFI_UNSUPPORTED;
418 }
419 
420 static EFI_STATUS EFIAPI
422  BOOLEAN sort __unused ) {
423  return EFI_UNSUPPORTED;
424 }
425 
426 static EFI_STATUS EFIAPI
429  BOOLEAN bis __unused,
431  return EFI_UNSUPPORTED;
432 }
433 
434 static EFI_STATUS EFIAPI
441  BOOLEAN callback __unused ) {
442  return EFI_UNSUPPORTED;
443 }
444 
445 static EFI_STATUS EFIAPI
450  EFI_IP_ADDRESS *gateway __unused,
453  UINTN *hdr_len __unused, VOID *hdr __unused,
455  return EFI_UNSUPPORTED;
456 }
457 
458 static EFI_STATUS EFIAPI
465  UINTN *hdr_len __unused, VOID *hdr __unused,
467  return EFI_UNSUPPORTED;
468 }
469 
470 static EFI_STATUS EFIAPI
473  return EFI_UNSUPPORTED;
474 }
475 
476 static EFI_STATUS EFIAPI
480  return EFI_UNSUPPORTED;
481 }
482 
483 static 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 
492 static EFI_STATUS EFIAPI
495  EFI_IP_ADDRESS *netmask __unused ) {
496  return EFI_UNSUPPORTED;
497 }
498 
499 static 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,
512  EFI_PXE_BASE_CODE_PACKET *pxebsbis __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 
550 static EFI_STATUS EFIAPI
553  return EFI_UNSUPPORTED;
554 }
555 
556 static EFI_STATUS EFIAPI
559  return EFI_UNSUPPORTED;
560 }
561 
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 
584 static EFI_STATUS EFIAPI
590  return EFI_UNSUPPORTED;
591 }
592 
593 static EFI_STATUS EFIAPI
595  UINT8 endpoint __unused, VOID *data __unused,
597  UINT32 *status __unused ) {
598  return EFI_UNSUPPORTED;
599 }
600 
601 static EFI_STATUS EFIAPI
603  UINT8 endpoint __unused,
604  VOID *data __unused,
605  UINTN *len __unused,
607  UINT32 *status __unused ) {
608  return EFI_UNSUPPORTED;
609 }
610 
611 static EFI_STATUS EFIAPI
613  UINT8 endpoint __unused,
615  UINTN interval __unused,
618  callback __unused,
619  VOID *context __unused ) {
620  return EFI_UNSUPPORTED;
621 }
622 
623 static EFI_STATUS EFIAPI
625  UINT8 endpoint __unused,
627  UINT32 *status __unused ) {
628  return EFI_UNSUPPORTED;
629 }
630 
631 static EFI_STATUS EFIAPI
633  UINT8 endpoint __unused,
634  VOID *data __unused,
637  callback __unused,
638  VOID *context __unused ) {
639  return EFI_UNSUPPORTED;
640 }
641 
642 static EFI_STATUS EFIAPI
645  *efidesc __unused ) {
646  return EFI_UNSUPPORTED;
647 }
648 
649 static EFI_STATUS EFIAPI
652  *efidesc __unused ) {
653  return EFI_UNSUPPORTED;
654 }
655 
656 static EFI_STATUS EFIAPI
659  *efidesc __unused ) {
660  return EFI_UNSUPPORTED;
661 }
662 
663 static EFI_STATUS EFIAPI
667  *efidesc __unused ) {
668  return EFI_UNSUPPORTED;
669 }
670 
671 static EFI_STATUS EFIAPI
673  UINT16 language __unused,
675  CHAR16 **string __unused ) {
676  return EFI_UNSUPPORTED;
677 }
678 
679 static EFI_STATUS EFIAPI
681  UINT16 **languages __unused,
682  UINT16 *len __unused ) {
683  return EFI_UNSUPPORTED;
684 }
685 
686 static EFI_STATUS EFIAPI
688  return EFI_UNSUPPORTED;
689 }
690 
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 }
#define __attribute__(x)
Definition: compiler.h:10
struct option_descriptor read[1]
Definition: nvo_cmd.c:116
#define EFI_UNSUPPORTED
Enumeration of EFI_STATUS.
Definition: UefiBaseType.h:118
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
The EFI_SIMPLE_NETWORK_PROTOCOL protocol is used to initialize access to a network adapter.
PXE_STATCODE StatCode
Definition: UefiPxe.h:883
u32 info
Definition: ar9003_mac.h:24
GET_DHCP_RESPONSE GetDhcpResponse
Definition: AppleNetBoot.h:43
#define PXE_ROMID_MAJORVER
UNDI command interface revision.
Definition: UefiPxe.h:847
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
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:421
static EFIAPI VOID efi_null_undi_issue(UINT64 cdb_phys)
Definition: efi_null.c:171
#define PXE_ROMID_SIGNATURE
Signature of !PXE structure.
Definition: UefiPxe.h:835
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_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_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
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:664
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:68
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:98
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
unsigned char BOOLEAN
uint32_t type
Operating system type.
Definition: ena.h:12
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_usb_port_reset(EFI_USB_IO_PROTOCOL *usbio __unused)
Definition: efi_null.c:687
static EFI_STATUS EFIAPI efi_null_block_reset(EFI_BLOCK_IO_PROTOCOL *block __unused, BOOLEAN verify __unused)
Definition: efi_null.c:357
static EFI_STATUS EFIAPI efi_null_pxe_start(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused, BOOLEAN use_ipv6 __unused)
Definition: efi_null.c:410
#define PXE_STATFLAGS_COMMAND_FAILED
Definition: UefiPxe.h:418
This protocol provides control over block devices.
Definition: BlockIo.h:217
long index
Definition: bigint.h:65
Standard Interface Descriptor USB 2.0 spec, Section 9.6.5.
Definition: Usb.h:158
unsigned int UINT32
Definition: ProcessorBind.h:99
EFI_HII_ACCESS_EXTRACT_CONFIG ExtractConfig
The EFI_USB_IO_PROTOCOL provides four basic transfers types described in the USB 1....
Definition: UsbIo.h:479
unsigned short CHAR16
static EFI_APPLE_NET_BOOT_PROTOCOL efi_null_apple
Definition: efi_null.c:562
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:46
#define offsetof(type, field)
Get offset of a field within a structure.
Definition: stddef.h:25
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
uint8_t mac[ETH_ALEN]
MAC address.
Definition: ena.h:24
static EFI_SIMPLE_NETWORK_PROTOCOL efi_null_snp
Definition: efi_null.c:135
EFI_USB_DATA_DIRECTION
USB data transfer direction.
Definition: UsbIo.h:47
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:105
static EFI_STATUS EFIAPI efi_null_snp_stop(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition: efi_null.c:50
UINTN EFI_BROWSER_ACTION_REQUEST
Definition: FormBrowser2.h:50
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:211
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_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
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:602
EFI_VLAN_CONFIG_SET Set
Definition: VlanConfig.h:130
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_PXE_BASE_CODE_PROTOCOL efi_null_pxe
Definition: efi_null.c:516
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
A hardware device.
Definition: device.h:77
void * memcpy(void *dest, const void *src, size_t len) __nonnull
static EFI_USB_IO_PROTOCOL efi_null_usbio
Definition: efi_null.c:691
#define EFI_BLOCK_IO_INTERFACE_REVISION
Revision defined in EFI1.1.
Definition: BlockIo.h:212
#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION
Definition: PxeBaseCode.h:892
#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION
Format of Setup Data for USB Device Requests USB 2.0 spec, Section 9.3.
Definition: Usb.h:95
The EFI_LOAD_FILE_PROTOCOL is a simple protocol used to obtain files from arbitrary devices.
Definition: LoadFile.h:79
UINT8_t Rev
PCI revision.
Definition: pxe_api.h:62
MTFTP information.
Definition: PxeBaseCode.h:210
static PXE_SW_UNDI efi_null_undi
Definition: efi_null.c:178
void efi_nullify_usbio(EFI_USB_IO_PROTOCOL *usbio)
Nullify USB I/O protocol.
Definition: efi_null.c:712
16-byte buffer aligned on a 4-byte boundary.
Definition: UefiBaseType.h:106
UINT64 EFI_LBA
Logical block address.
Definition: UefiBaseType.h:48
pseudo_bit_t value[0x00020]
Definition: arbel.h:13
#define __unused
Declare a variable or data structure as unused.
Definition: compiler.h:573
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:286
ring len
Length.
Definition: dwmac.h:231
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
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:471
void efi_nullify_pxe(EFI_PXE_BASE_CODE_PROTOCOL *pxe)
Nullify PXE base code protocol.
Definition: efi_null.c:537
static unsigned int count
Number of entries.
Definition: dwmac.h:225
UINT16 EFI_PXE_BASE_CODE_UDP_PORT
Definition: PxeBaseCode.h:110
#define PXE_ROMID_MINORVER
Definition: UefiPxe.h:848
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
FILE_SECBOOT(PERMITTED)
#define PXE_ROMID_IMP_SW_VIRT_ADDR
Definition: UefiPxe.h:854
EFI null interfaces.
unsigned short UINT16
static EFI_HII_CONFIG_ACCESS_PROTOCOL efi_null_hii
Definition: efi_null.c:333
uint8_t flags
Flags.
Definition: ena.h:18
static EFI_VLAN_CONFIG_PROTOCOL efi_null_vlan
Definition: efi_null.c:223
#define EFIAPI
UINT64 Revision
The revision of the EFI_PXE_BASE_CODE_PROTOCOL.
Definition: PxeBaseCode.h:913
EFI_VLAN_CONFIG_PROTOCOL provide manageability interface for VLAN setting.
Definition: VlanConfig.h:129
#define PXE_ROMID_REV
!PXE structure format revision
Definition: UefiPxe.h:840
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:459
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
EFI_VLAN_FIND_DATA.
Definition: VlanConfig.h:28
void efi_nullify_hii(EFI_HII_CONFIG_ACCESS_PROTOCOL *hii)
Nullify HII configuration access protocol.
Definition: efi_null.c:344
#define PXE_STATCODE_UNSUPPORTED
Definition: UefiPxe.h:618
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
IP4_t ip
Destination IP address.
Definition: pxe_api.h:58
uint64_t lba
Starting block number.
Definition: int13.h:22
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_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
UINT64 UINTN
Unsigned value of native width.
IP Receive Filter structure.
Definition: PxeBaseCode.h:78
Standard Endpoint Descriptor USB 2.0 spec, Section 9.6.6.
Definition: Usb.h:174
void efi_nullify_vlan(EFI_VLAN_CONFIG_PROTOCOL *vcfg)
Nullify VLAN configuration interface.
Definition: efi_null.c:234
#define VOID
Undeclared type.
Definition: Base.h:272
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
unsigned long long UINT64
Definition: ProcessorBind.h:97
static EFI_STATUS EFIAPI efi_null_block_flush(EFI_BLOCK_IO_PROTOCOL *block __unused)
Definition: efi_null.c:377
static EFI_BLOCK_IO_MEDIA efi_null_block_media
Definition: efi_null.c:381
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
EFI_USB_IO_CONTROL_TRANSFER UsbControlTransfer
Definition: UsbIo.h:483
EFI API.
uint8_t status
Status.
Definition: ena.h:16
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
Packet structure.
Definition: PxeBaseCode.h:252
Block IO read only mode data and updated only via members of BlockIO.
Definition: BlockIo.h:131
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_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
Discover() information override structure.
Definition: PxeBaseCode.h:180
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_get_supported_languages(EFI_USB_IO_PROTOCOL *usbio __unused, UINT16 **languages __unused, UINT16 *len __unused)
Definition: efi_null.c:680
uint8_t block[3][8]
DES-encrypted blocks.
Definition: mschapv2.h:12
uint16_t priority
Priotity.
Definition: stp.h:13
PXE_UINT64 EntryPoint
API entry point.
Definition: UefiPxe.h:821
EFI_LOAD_FILE LoadFile
Definition: LoadFile.h:80
char CHAR8
void efi_nullify_block(EFI_BLOCK_IO_PROTOCOL *block)
Nullify block I/O protocol.
Definition: efi_null.c:397
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:32
UINT64 Revision
Revision of the EFI_SIMPLE_NETWORK_PROTOCOL.
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 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_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
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:128
PXE_STATFLAGS StatFlags
Definition: UefiPxe.h:884
void efi_nullify_load_file(EFI_LOAD_FILE_PROTOCOL *load_file)
Nullify Load File Protocol interface.
Definition: efi_null.c:298
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:193
#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:612
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_snp_start(EFI_SIMPLE_NETWORK_PROTOCOL *snp __unused)
Definition: efi_null.c:45
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
UINT16 EFI_QUESTION_ID
uint32_t blksize
Cipher block size.
Definition: pccrr.h:15
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:55
void efi_nullify_nii(EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *nii)
Nullify NII interface.
Definition: efi_null.c:192
typeof(acpi_finder=acpi_find)
ACPI table finder.
Definition: acpi.c:48
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
static EFI_STATUS EFIAPI efi_null_pxe_stop(EFI_PXE_BASE_CODE_PROTOCOL *pxe __unused)
Definition: efi_null.c:416
UINT64 Revision
The revision to which the block IO interface adheres.
Definition: BlockIo.h:223
uint16_t offset
Offset to command line.
Definition: bzimage.h:8
void efi_nullify_apple(EFI_APPLE_NET_BOOT_PROTOCOL *apple)
Nullify Apple Net Boot protocol.
Definition: efi_null.c:572
EFI_PXE_BASE_CODE_MODE * Mode
The pointer to the EFI_PXE_BASE_CODE_MODE data for this device.
Definition: PxeBaseCode.h:929
The EFI_PXE_BASE_CODE_PROTOCOL is used to control PXE-compatible devices.
Definition: PxeBaseCode.h:907
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
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:112
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
uint64_t tag
Identity tag.
Definition: edd.h:31
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
Simple Network Protocol data structures.
Definition: SimpleNetwork.h:41
Standard Device Descriptor USB 2.0 spec, Section 9.6.1.
Definition: Usb.h:107
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:97
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
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
Definition: efi.h:62
UINTN EFI_BROWSER_ACTION
static EFI_BLOCK_IO_PROTOCOL efi_null_block
Definition: efi_null.c:383