Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 1981362 Details for
Bug 2228600
gcc -fanalyzer internal compiler error
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh89 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
the /tmp/ccXXXXXX.out file gcc told me to attach
ccyJ6wGT.out (text/plain), 209.49 KB, created by
Peter Jones
on 2023-08-02 20:06:08 UTC
(
hide
)
Description:
the /tmp/ccXXXXXX.out file gcc told me to attach
Filename:
MIME Type:
Creator:
Peter Jones
Created:
2023-08-02 20:06:08 UTC
Size:
209.49 KB
patch
obsolete
>// Target: x86_64-redhat-linux >// Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,m2,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-libstdcxx-zoneinfo=/usr/share/zoneinfo --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-13.1.1-20230426/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-offload-defaulted --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1 >// Thread model: posix >// Supported LTO compression algorithms: zlib zstd >// gcc version 13.1.1 20230426 (Red Hat 13.1.1-1) (GCC) >// >// during IPA pass: analyzer >// [01m[Kcsv.c:[m[K In function â[01m[Kparse_csv_line[m[Kâ: >// [01m[Kcsv.c:30:36:[m[K [01;31m[Kinternal compiler error: [m[Kin make, at analyzer/store.cc:132 >// 30 | columns[n] [01;31m[K=[m[K NULL; >// | [01;31m[K^[m[K >// Please submit a full bug report, with preprocessed source. >// See <http://bugzilla.redhat.com/bugzilla> for instructions. > >// /usr/libexec/gcc/x86_64-redhat-linux/13/cc1 -quiet -nostdinc -nostdinc -I /home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib -I /home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Include -I /home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc -I /home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64 -I /home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/protocol -I /home/pjones/devel/github.com/shim/gcc-fanalyzer/include -D MDE_CPU_X64 -D PAGE_SIZE=4096 -D DEFAULT_LOADER=L"\\\\grubx64.efi" -D DEFAULT_LOADER_CHAR="\\\\grubx64.efi" -D EFI_ARCH=L"x64" -D DEBUGDIR=L"/usr/lib/debug/usr/share/shim/x64-15.7/" -iquote /home/pjones/devel/github.com/shim/gcc-fanalyzer -iquote /home/pjones/devel/github.com/shim/gcc-fanalyzer -isystem /home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system -isystem /usr/lib/gcc/x86_64-redhat-linux/13/include csv.c -quiet -dumpbase csv.c -dumpbase-ext .c -mno-mmx -mno-sse -mno-red-zone -maccumulate-outgoing-args -m64 -mtune=generic -march=x86-64 -ggdb -Os -Wall -Wextra -Wno-missing-field-initializers -Werror=analyzer-null-dereference -std=gnu11 -fdiagnostics-color=always -ffreestanding -fmacro-prefix-map=/home/pjones/devel/github.com/shim/gcc-fanalyzer/= -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar -fanalyzer -o - -frandom-seed=0 -fdump-noaddr > ># 0 "csv.c" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer//" ># 0 "<built-in>" ># 0 "<command-line>" ># 1 "csv.c" > > > > > ># 1 "shim.h" 1 ># 47 "shim.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/ctype.h" 1 3 4 ># 14 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/ctype.h" 3 4 > ># 14 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/ctype.h" 3 4 >static inline __attribute__((__unused__)) int >isdigit(int c) >{ > > > > return (('0' <= (c)) && ((c) <= '9')); >} > > >static inline __attribute__((__unused__)) int >isxdigit(int c) >{ > > > > return ((('0' <= (c)) && ((c) <= '9')) || > (('a' <= (c)) && ((c) <= 'f')) || > (('A' <= (c)) && ((c) <= 'F'))); >} > > >static inline __attribute__((__unused__)) int >isspace(int c) >{ > > > > return ((c) == ' '); >} > > >static inline __attribute__((__unused__)) int >isalnum(int c) >{ > > > > return ((('0' <= (c)) && ((c) <= '9')) || > (('a' <= (c)) && ((c) <= 'z')) || > (('A' <= (c)) && ((c) <= 'Z'))); >} > > >static inline __attribute__((__unused__)) int >isupper(int c) >{ > > > > return (('A' <= (c)) && ((c) <= 'Z')); >} > > >static inline __attribute__((__unused__)) int >tolower(int c) >{ > if (('A' <= (c)) && ((c) <= 'Z')) { > return (c - ('A' - 'a')); > } > return (c); >} > >static inline __attribute__((__unused__)) int >toupper(int c) >{ > return ((c >= 'a' && c <= 'z') ? c - ('a' - 'A') : c); >} ># 48 "shim.h" 2 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stdbool.h" 1 3 4 ># 49 "shim.h" 2 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 1 3 4 ># 145 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 3 4 >typedef long int ptrdiff_t; ># 214 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 3 4 >typedef long unsigned int size_t; ># 329 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 3 4 >typedef short unsigned int wchar_t; ># 425 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 3 4 >typedef struct { > long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); > long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); ># 436 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 3 4 >} max_align_t; ># 50 "shim.h" 2 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stdint.h" 1 3 4 ># 11 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stdint.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stdint-gcc.h" 1 3 4 ># 34 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stdint-gcc.h" 3 4 >typedef signed char int8_t; > > >typedef short int int16_t; > > >typedef int int32_t; > > >typedef long int int64_t; > > >typedef unsigned char uint8_t; > > >typedef short unsigned int uint16_t; > > >typedef unsigned int uint32_t; > > >typedef long unsigned int uint64_t; > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; >typedef long int int_least64_t; >typedef unsigned char uint_least8_t; >typedef short unsigned int uint_least16_t; >typedef unsigned int uint_least32_t; >typedef long unsigned int uint_least64_t; > > > >typedef signed char int_fast8_t; >typedef long int int_fast16_t; >typedef long int int_fast32_t; >typedef long int int_fast64_t; >typedef unsigned char uint_fast8_t; >typedef long unsigned int uint_fast16_t; >typedef long unsigned int uint_fast32_t; >typedef long unsigned int uint_fast64_t; > > > > >typedef long int intptr_t; > > >typedef long unsigned int uintptr_t; > > > > >typedef long int intmax_t; >typedef long unsigned int uintmax_t; ># 12 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stdint.h" 2 3 4 ># 51 "shim.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/stdarg.h" 1 3 4 ># 52 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/stdarg.h" 3 4 >typedef __builtin_ms_va_list ms_va_list; > > > > >typedef __builtin_sysv_va_list sysv_va_list; > > > > > > > >typedef __builtin_ms_va_list VA_LIST; ># 52 "shim.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/string.h" 1 3 4 ># 25 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/string.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 1 3 4 ># 26 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/string.h" 2 3 4 > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/builtins_begin_.h" 1 3 4 ># 28 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/string.h" 2 3 4 > >__typeof__(__builtin_ffsl) ffsl; >__typeof__(__builtin_clzl) clzl; >__typeof__(__builtin_ctzl) ctzl; >__typeof__(__builtin_clrsbl) clrsbl; >__typeof__(__builtin_popcountl) popcountl; >__typeof__(__builtin_parityl) parityl; >__typeof__(__builtin_ffsll) ffsll; >__typeof__(__builtin_clzll) clzll; >__typeof__(__builtin_ctzll) ctzll; >__typeof__(__builtin_clrsbll) clrsbll; >__typeof__(__builtin_popcountll) popcountll; >__typeof__(__builtin_parityll) parityll; > >__typeof__(__builtin_bcmp) bcmp; >__typeof__(__builtin_bcopy) bcopy; >__typeof__(__builtin_bzero) bzero; >__typeof__(__builtin_index) index; >__typeof__(__builtin_memchr) memchr; >__typeof__(__builtin_memcmp) memcmp; >__typeof__(__builtin_memcpy) memcpy; >__typeof__(__builtin_memmove) memmove; >__typeof__(__builtin_mempcpy) mempcpy; >__typeof__(__builtin_rindex) rindex; >__typeof__(__builtin_stpcpy) stpcpy; >__typeof__(__builtin_stpncpy) stpncpy; >__typeof__(__builtin_strcasecmp) strcasecmp; >__typeof__(__builtin_strcat) strcat; >__typeof__(__builtin_strchr) strchr; >__typeof__(__builtin_strcmp) strcmp; >__typeof__(__builtin_strcpy) strcpy; >__typeof__(__builtin_strcspn) strcspn; >__typeof__(__builtin_strdup) strdup; >__typeof__(__builtin_strndup) strndup; >__typeof__(__builtin_strlen) strlen; >__typeof__(__builtin_strncasecmp) strncasecmp; >__typeof__(__builtin_strncat) strncat; >__typeof__(__builtin_strncmp) strncmp; >__typeof__(__builtin_strncpy) strncpy; > >__typeof__(__builtin_strnlen) strnlen; > > > >__typeof__(__builtin_strpbrk) strpbrk; >__typeof__(__builtin_strrchr) strrchr; >__typeof__(__builtin_strspn) strspn; >__typeof__(__builtin_strstr) strstr; > >__typeof__(__builtin_memset) memset;; > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/builtins_end_.h" 1 3 4 ># 80 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/string.h" 2 3 4 ># 53 "shim.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/strings.h" 1 3 4 > > > > > > > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/builtins_begin_.h" 1 3 4 ># 9 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/strings.h" 2 3 4 >__typeof__(__builtin_ffs) ffs; >__typeof__(__builtin_clz) clz; >__typeof__(__builtin_ctz) ctz; >__typeof__(__builtin_clrsb) clrsb; >__typeof__(__builtin_popcount) popcount; >__typeof__(__builtin_parity) parity; ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/builtins_end_.h" 1 3 4 ># 16 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/strings.h" 2 3 4 ># 54 "shim.h" 2 > > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 1 ># 42 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efibind.h" 1 ># 100 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efibind.h" > ># 100 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efibind.h" >typedef uint64_t UINT64; >typedef int64_t INT64; > > > typedef uint32_t UINT32; > typedef int32_t INT32; > > >typedef uint16_t UINT16; >typedef uint16_t CHAR16; >typedef int16_t INT16; > >typedef uint8_t UINT8; >typedef char CHAR8; >typedef int8_t INT8; > > > > > >typedef int64_t INTN; >typedef uint64_t UINTN; ># 43 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 57 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficompiler.h" 1 ># 58 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" 1 ># 23 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" >typedef unsigned char BOOLEAN; ># 37 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" >typedef UINTN EFI_STATUS; >typedef UINT64 EFI_LBA; >typedef UINTN EFI_TPL; >typedef void *EFI_HANDLE; >typedef void *EFI_EVENT; ># 64 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" >typedef struct { > UINT32 Data1; > UINT16 Data2; > UINT16 Data3; > UINT8 Data4[8]; >} EFI_GUID; > > > > > > >typedef struct { > UINT16 Year; > UINT8 Month; > UINT8 Day; > UINT8 Hour; > UINT8 Minute; > UINT8 Second; > UINT8 Pad1; > UINT32 Nanosecond; > INT16 TimeZone; > UINT8 Daylight; > UINT8 Pad2; >} EFI_TIME; ># 103 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" >typedef struct { > UINT8 Addr[4]; >} EFI_IPv4_ADDRESS; > >typedef struct { > UINT8 Addr[16]; >} EFI_IPv6_ADDRESS; > >typedef struct { > UINT8 Addr[32]; >} EFI_MAC_ADDRESS; > >typedef struct { > UINT32 ReceivedQueueTimeoutValue; > UINT32 TransmitQueueTimeoutValue; > UINT16 ProtocolTypeFilter; > BOOLEAN EnableUnicastReceive; > BOOLEAN EnableMulticastReceive; > BOOLEAN EnableBroadcastReceive; > BOOLEAN EnablePromiscuousReceive; > BOOLEAN FlushQueuesOnReset; > BOOLEAN EnableReceiveTimestamps; > BOOLEAN DisableBackgroundPolling; >} EFI_MANAGED_NETWORK_CONFIG_DATA; > > > > > >typedef UINT64 EFI_PHYSICAL_ADDRESS; >typedef UINT64 EFI_VIRTUAL_ADDRESS; > >typedef enum { > AllocateAnyPages, > AllocateMaxAddress, > AllocateAddress, > MaxAllocateType >} EFI_ALLOCATE_TYPE; ># 149 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" >typedef enum { > EfiReservedMemoryType, > EfiLoaderCode, > EfiLoaderData, > EfiBootServicesCode, > EfiBootServicesData, > EfiRuntimeServicesCode, > EfiRuntimeServicesData, > EfiConventionalMemory, > EfiUnusableMemory, > EfiACPIReclaimMemory, > EfiACPIMemoryNVS, > EfiMemoryMappedIO, > EfiMemoryMappedIOPortSpace, > EfiPalCode, > EfiMaxMemoryType >} EFI_MEMORY_TYPE; ># 184 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidef.h" >typedef struct { > UINT32 Type; > UINT32 Pad; > EFI_PHYSICAL_ADDRESS PhysicalStart; > EFI_VIRTUAL_ADDRESS VirtualStart; > UINT64 NumberOfPages; > UINT64 Attribute; >} EFI_MEMORY_DESCRIPTOR; > > > > > >typedef CHAR8 ISO_639_2; ># 59 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" 1 ># 26 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _EFI_DEVICE_PATH_PROTOCOL { > UINT8 Type; > UINT8 SubType; > UINT8 Length[2]; >} EFI_DEVICE_PATH_PROTOCOL; > >typedef struct _EFI_DEVICE_PATH_PROTOCOL _EFI_DEVICE_PATH; >typedef EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH; ># 81 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _PCI_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT8 Function; > UINT8 Device; >} PCI_DEVICE_PATH; > > >typedef struct _PCCARD_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT8 FunctionNumber ; >} PCCARD_DEVICE_PATH; > > >typedef struct _MEMMAP_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 MemoryType; > EFI_PHYSICAL_ADDRESS StartingAddress; > EFI_PHYSICAL_ADDRESS EndingAddress; >} MEMMAP_DEVICE_PATH; > > >typedef struct _VENDOR_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > EFI_GUID Guid; >} VENDOR_DEVICE_PATH; > > > > >typedef struct _UKNOWN_DEVICE_VENDOR_DP { > VENDOR_DEVICE_PATH DevicePath; > UINT8 LegacyDriveLetter; >} UNKNOWN_DEVICE_VENDOR_DEVICE_PATH; > > >typedef struct _CONTROLLER_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 Controller; >} CONTROLLER_DEVICE_PATH; ># 128 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _ACPI_HID_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 HID; > UINT32 UID; >} ACPI_HID_DEVICE_PATH; > > >typedef struct _EXPANDED_ACPI_HID_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 HID; > UINT32 UID; > UINT32 CID; > UINT8 HidStr[1]; >} EXPANDED_ACPI_HID_DEVICE_PATH; > > >typedef struct _ACPI_ADR_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT32 ADR ; >} ACPI_ADR_DEVICE_PATH ; ># 170 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _ATAPI_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT8 PrimarySecondary; > UINT8 SlaveMaster; > UINT16 Lun; >} ATAPI_DEVICE_PATH; > > >typedef struct _SCSI_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT16 Pun; > UINT16 Lun; >} SCSI_DEVICE_PATH; > > >typedef struct _FIBRECHANNEL_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 Reserved; > UINT64 WWN; > UINT64 Lun; >} FIBRECHANNEL_DEVICE_PATH; > > > > > > >typedef struct _FIBRECHANNELEX_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT32 Reserved ; > UINT8 WWN[ 8 ] ; > UINT8 Lun[ 8 ] ; >} FIBRECHANNELEX_DEVICE_PATH ; > > >typedef struct _F1394_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 Reserved; > UINT64 Guid; >} F1394_DEVICE_PATH; > > >typedef struct _USB_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT8 Port; > UINT8 Endpoint; >} USB_DEVICE_PATH; > > > > > > >typedef struct _SATA_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT16 HBAPortNumber ; > UINT16 PortMultiplierPortNumber ; > UINT16 Lun ; >} SATA_DEVICE_PATH ; > > > > > > >typedef struct _USB_WWID_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT16 InterfaceNumber ; > UINT16 VendorId ; > UINT16 ProductId ; > CHAR16 SerialNumber[ 1 ] ; >} USB_WWID_DEVICE_PATH ; > > > > > > >typedef struct _DEVICE_LOGICAL_UNIT_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT8 Lun ; >} DEVICE_LOGICAL_UNIT_DEVICE_PATH ; > > >typedef struct _USB_CLASS_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT16 VendorId; > UINT16 ProductId; > UINT8 DeviceClass; > UINT8 DeviceSubclass; > UINT8 DeviceProtocol; >} USB_CLASS_DEVICE_PATH; > > >typedef struct _I2O_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 Tid; >} I2O_DEVICE_PATH; > > >typedef struct _MAC_ADDR_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > EFI_MAC_ADDRESS MacAddress; > UINT8 IfType; >} MAC_ADDR_DEVICE_PATH; > > >typedef struct _IPv4_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > EFI_IPv4_ADDRESS LocalIpAddress; > EFI_IPv4_ADDRESS RemoteIpAddress; > UINT16 LocalPort; > UINT16 RemotePort; > UINT16 Protocol; > BOOLEAN StaticIpAddress; > > EFI_IPv4_ADDRESS GatewayIpAddress ; > EFI_IPv4_ADDRESS SubnetMask ; >} IPv4_DEVICE_PATH; > > >typedef struct _IPv6_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > EFI_IPv6_ADDRESS LocalIpAddress; > EFI_IPv6_ADDRESS RemoteIpAddress; > UINT16 LocalPort; > UINT16 RemotePort; > UINT16 Protocol; > BOOLEAN IPAddressOrigin ; > > UINT8 PrefixLength ; > EFI_IPv6_ADDRESS GatewayIpAddress ; >} IPv6_DEVICE_PATH; > > > > > > > >typedef struct _URI_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > CHAR8 Uri[1]; >} URI_DEVICE_PATH; > > > > > > >typedef struct _VLAN_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT16 VlanId ; >} VLAN_DEVICE_PATH; > > >typedef struct _INFINIBAND_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 ResourceFlags; > UINT8 PortGid[16]; > UINT64 ServiceId; > UINT64 TargetPortId; > UINT64 DeviceId; >} INFINIBAND_DEVICE_PATH; > > >typedef struct _UART_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 Reserved; > UINT64 BaudRate; > UINT8 DataBits; > UINT8 Parity; > UINT8 StopBits; >} UART_DEVICE_PATH; ># 371 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _HARDDRIVE_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 PartitionNumber; > UINT64 PartitionStart; > UINT64 PartitionSize; > UINT8 Signature[16]; > UINT8 MBRType; > UINT8 SignatureType; >} HARDDRIVE_DEVICE_PATH; ># 388 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _CDROM_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT32 BootEntry; > UINT64 PartitionStart; > UINT64 PartitionSize; >} CDROM_DEVICE_PATH; > > > > > >typedef struct _FILEPATH_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > CHAR16 PathName[1]; >} FILEPATH_DEVICE_PATH; > > > > >typedef struct _MEDIA_PROTOCOL_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > EFI_GUID Protocol; >} MEDIA_PROTOCOL_DEVICE_PATH; > > > > > > >typedef struct _MEDIA_FW_VOL_FILEPATH_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > EFI_GUID FvFileName ; >} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH ; > > > > > > >typedef struct _MEDIA_FW_VOL_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > EFI_GUID FvName ; >} MEDIA_FW_VOL_DEVICE_PATH ; > > > > > > >typedef struct _MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header ; > UINT32 Reserved ; > UINT64 StartingOffset ; > UINT64 EndingOffset ; >} MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH ; ># 451 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef struct _BBS_BBS_DEVICE_PATH { > EFI_DEVICE_PATH_PROTOCOL Header; > UINT16 DeviceType; > UINT16 StatusFlag; > CHAR8 String[1]; >} BBS_BBS_DEVICE_PATH; ># 468 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidevp.h" >typedef union { > EFI_DEVICE_PATH_PROTOCOL DevPath; > PCI_DEVICE_PATH Pci; > PCCARD_DEVICE_PATH PcCard; > MEMMAP_DEVICE_PATH MemMap; > VENDOR_DEVICE_PATH Vendor; > UNKNOWN_DEVICE_VENDOR_DEVICE_PATH UnknownVendor; > CONTROLLER_DEVICE_PATH Controller; > ACPI_HID_DEVICE_PATH Acpi; > > ATAPI_DEVICE_PATH Atapi; > SCSI_DEVICE_PATH Scsi; > FIBRECHANNEL_DEVICE_PATH FibreChannel; > > F1394_DEVICE_PATH F1394; > USB_DEVICE_PATH Usb; > USB_CLASS_DEVICE_PATH UsbClass; > I2O_DEVICE_PATH I2O; > MAC_ADDR_DEVICE_PATH MacAddr; > IPv4_DEVICE_PATH Ipv4; > IPv6_DEVICE_PATH Ipv6; > URI_DEVICE_PATH Uri; > INFINIBAND_DEVICE_PATH InfiniBand; > UART_DEVICE_PATH Uart; > > HARDDRIVE_DEVICE_PATH HardDrive; > CDROM_DEVICE_PATH CD; > > FILEPATH_DEVICE_PATH FilePath; > MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol; > > BBS_BBS_DEVICE_PATH Bbs; > >} EFI_DEV_PATH; > >typedef union { > EFI_DEVICE_PATH_PROTOCOL *DevPath; > PCI_DEVICE_PATH *Pci; > PCCARD_DEVICE_PATH *PcCard; > MEMMAP_DEVICE_PATH *MemMap; > VENDOR_DEVICE_PATH *Vendor; > UNKNOWN_DEVICE_VENDOR_DEVICE_PATH *UnknownVendor; > CONTROLLER_DEVICE_PATH *Controller; > ACPI_HID_DEVICE_PATH *Acpi; > > ATAPI_DEVICE_PATH *Atapi; > SCSI_DEVICE_PATH *Scsi; > FIBRECHANNEL_DEVICE_PATH *FibreChannel; > > F1394_DEVICE_PATH *F1394; > USB_DEVICE_PATH *Usb; > USB_CLASS_DEVICE_PATH *UsbClass; > I2O_DEVICE_PATH *I2O; > MAC_ADDR_DEVICE_PATH *MacAddr; > IPv4_DEVICE_PATH *Ipv4; > IPv6_DEVICE_PATH *Ipv6; > URI_DEVICE_PATH *Uri; > INFINIBAND_DEVICE_PATH *InfiniBand; > UART_DEVICE_PATH *Uart; > > HARDDRIVE_DEVICE_PATH *HardDrive; > > FILEPATH_DEVICE_PATH *FilePath; > MEDIA_PROTOCOL_DEVICE_PATH *MediaProtocol; > > CDROM_DEVICE_PATH *CD; > BBS_BBS_DEVICE_PATH *Bbs; > >} EFI_DEV_PATH_PTR; > > > > >typedef >CHAR16* >(__attribute__((ms_abi)) *EFI_DEVICE_PATH_TO_TEXT_NODE) ( > const EFI_DEVICE_PATH_PROTOCOL *DeviceNode, > BOOLEAN DisplayOnly, > BOOLEAN AllowShortcuts > ); > >typedef >CHAR16* >(__attribute__((ms_abi)) *EFI_DEVICE_PATH_TO_TEXT_PATH) ( > const EFI_DEVICE_PATH_PROTOCOL *DevicePath, > BOOLEAN DisplayOnly, > BOOLEAN AllowShortcuts > ); > >typedef struct _EFI_DEVICE_PATH_TO_TEXT_PROTOCOL { > EFI_DEVICE_PATH_TO_TEXT_NODE ConvertDeviceNodeToText; > EFI_DEVICE_PATH_TO_TEXT_PATH ConvertDevicePathToText; >} EFI_DEVICE_PATH_TO_TEXT_PROTOCOL; > > > > >typedef >EFI_DEVICE_PATH_PROTOCOL* >(__attribute__((ms_abi)) *EFI_DEVICE_PATH_FROM_TEXT_NODE) ( > const CHAR16 *TextDeviceNode > ); > >typedef >EFI_DEVICE_PATH_PROTOCOL* >(__attribute__((ms_abi)) *EFI_DEVICE_PATH_FROM_TEXT_PATH) ( > const CHAR16 *TextDevicePath > ); > >typedef struct { > EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode; > EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath; >} EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL; ># 60 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipciio.h" 1 ># 10 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipciio.h" >struct _EFI_PCI_IO_PROTOCOL; >struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL; > >typedef enum { > EfiPciIoWidthUint8, > EfiPciIoWidthUint16, > EfiPciIoWidthUint32, > EfiPciIoWidthUint64, > EfiPciIoWidthFifoUint8, > EfiPciIoWidthFifoUint16, > EfiPciIoWidthFifoUint32, > EfiPciIoWidthFifoUint64, > EfiPciIoWidthFillUint8, > EfiPciIoWidthFillUint16, > EfiPciIoWidthFillUint32, > EfiPciIoWidthFillUint64, > EfiPciIoWidthMaximum >} EFI_PCI_IO_PROTOCOL_WIDTH, EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH; > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_POLL_IO_MEM) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_PCI_IO_PROTOCOL_WIDTH Width, > UINT8 BarIndex, > UINT64 Offset, > UINT64 Mask, > UINT64 Value, > UINT64 Delay, > UINT64 *Result >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, > UINT64 Address, > UINT64 Mask, > UINT64 Value, > UINT64 Delay, > UINT64 *Result >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_IO_MEM) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_PCI_IO_PROTOCOL_WIDTH Width, > UINT8 BarIndex, > UINT64 Offset, > UINTN Count, > void *Buffer >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, > UINT64 Address, > UINTN Count, > void *Buffer >); > >typedef struct { > EFI_PCI_IO_PROTOCOL_IO_MEM Read; > EFI_PCI_IO_PROTOCOL_IO_MEM Write; >} EFI_PCI_IO_PROTOCOL_ACCESS; > >typedef struct { > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM Read; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM Write; >} EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_CONFIG) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_PCI_IO_PROTOCOL_WIDTH Width, > UINT32 Offset, > UINTN Count, > void *Buffer >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > void **Resources >); > >typedef struct { > EFI_PCI_IO_PROTOCOL_CONFIG Read; > EFI_PCI_IO_PROTOCOL_CONFIG Write; >} EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_COPY_MEM) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_PCI_IO_PROTOCOL_WIDTH Width, > UINT8 DestBarIndex, > UINT64 DestOffset, > UINT8 SrcBarIndex, > UINT64 SrcOffset, > UINTN Count >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, > UINT64 DestAddress, > UINT64 SrcAddress, > UINTN Count >); > >typedef enum { > EfiPciIoOperationBusMasterRead, > EfiPciIoOperationBusMasterWrite, > EfiPciIoOperationBusMasterCommonBuffer, > EfiPciIoOperationMaximum >} EFI_PCI_IO_PROTOCOL_OPERATION; > >typedef enum { > EfiPciOperationBusMasterRead, > EfiPciOperationBusMasterWrite, > EfiPciOperationBusMasterCommonBuffer, > EfiPciOperationBusMasterRead64, > EfiPciOperationBusMasterWrite64, > EfiPciOperationBusMasterCommonBuffer64, > EfiPciOperationMaximum >} EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_MAP) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_PCI_IO_PROTOCOL_OPERATION Operation, > void *HostAddress, > UINTN *NumberOfBytes, > EFI_PHYSICAL_ADDRESS *DeviceAddress, > void **Mapping >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION Operation, > void *HostAddress, > UINTN *NumberOfBytes, > EFI_PHYSICAL_ADDRESS *DeviceAddress, > void **Mapping >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_UNMAP) ( > struct _EFI_PCI_IO_PROTOCOL *This, > void *Mapping >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > void *Mapping >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_ALLOCATE_BUFFER) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_ALLOCATE_TYPE Type, > EFI_MEMORY_TYPE MemoryType, > UINTN Pages, > void **HostAddress, > UINT64 Attributes >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > EFI_ALLOCATE_TYPE Type, > EFI_MEMORY_TYPE MemoryType, > UINTN Pages, > void **HostAddress, > UINT64 Attributes >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_FREE_BUFFER) ( > struct _EFI_PCI_IO_PROTOCOL *This, > UINTN Pages, > void *HostAddress > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > UINTN Pages, > void *HostAddress >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_FLUSH) ( > struct _EFI_PCI_IO_PROTOCOL *This >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_GET_LOCATION) ( > struct _EFI_PCI_IO_PROTOCOL *This, > UINTN *SegmentNumber, > UINTN *BusNumber, > UINTN *DeviceNumber, > UINTN *FunctionNumber >); ># 290 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipciio.h" >typedef struct { > UINT8 Register; > UINT8 Function; > UINT8 Device; > UINT8 Bus; > UINT32 ExtendedRegister; >} EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS; > >typedef enum { > EfiPciIoAttributeOperationGet, > EfiPciIoAttributeOperationSet, > EfiPciIoAttributeOperationEnable, > EfiPciIoAttributeOperationDisable, > EfiPciIoAttributeOperationSupported, > EfiPciIoAttributeOperationMaximum >} EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_ATTRIBUTES) ( > struct _EFI_PCI_IO_PROTOCOL *This, > EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation, > UINT64 Attributes, > UINT64 *Result >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_GET_BAR_ATTRIBUTES) ( > struct _EFI_PCI_IO_PROTOCOL *This, > UINT8 BarIndex, > UINT64 *Supports , > void **Resources >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > UINT64 *Supports, > UINT64 *Attributes >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_IO_PROTOCOL_SET_BAR_ATTRIBUTES) ( > struct _EFI_PCI_IO_PROTOCOL *This, > UINT64 Attributes, > UINT8 BarIndex, > UINT64 *Offset, > UINT64 *Length >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES) ( > struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, > UINT64 Attributes, > UINT64 *ResourceBase, > UINT64 *ResourceLength >); > >typedef struct _EFI_PCI_IO_PROTOCOL { > EFI_PCI_IO_PROTOCOL_POLL_IO_MEM PollMem; > EFI_PCI_IO_PROTOCOL_POLL_IO_MEM PollIo; > EFI_PCI_IO_PROTOCOL_ACCESS Mem; > EFI_PCI_IO_PROTOCOL_ACCESS Io; > EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS Pci; > EFI_PCI_IO_PROTOCOL_COPY_MEM CopyMem; > EFI_PCI_IO_PROTOCOL_MAP Map; > EFI_PCI_IO_PROTOCOL_UNMAP Unmap; > EFI_PCI_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer; > EFI_PCI_IO_PROTOCOL_FREE_BUFFER FreeBuffer; > EFI_PCI_IO_PROTOCOL_FLUSH Flush; > EFI_PCI_IO_PROTOCOL_GET_LOCATION GetLocation; > EFI_PCI_IO_PROTOCOL_ATTRIBUTES Attributes; > EFI_PCI_IO_PROTOCOL_GET_BAR_ATTRIBUTES GetBarAttributes; > EFI_PCI_IO_PROTOCOL_SET_BAR_ATTRIBUTES SetBarAttributes; > UINT64 RomSize; > void *RomImage; >} EFI_PCI_IO_PROTOCOL; > > > > > > >typedef struct _EFI_PCI_IO_PROTOCOL _EFI_PCI_IO; >typedef EFI_PCI_IO_PROTOCOL EFI_PCI_IO; > >typedef struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL { > EFI_HANDLE ParentHandle; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollMem; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollIo; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Mem; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Io; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Pci; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM CopyMem; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP Map; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP Unmap; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER FreeBuffer; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH Flush; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES GetAttributes; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES SetAttributes; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION Configuration; > UINT32 SegmentNumber; >} EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL; ># 61 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" 1 ># 53 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_BLOCK_IO_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_RESET) ( > struct _EFI_BLOCK_IO_PROTOCOL *This, > BOOLEAN ExtendedVerification > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_READ) ( > struct _EFI_BLOCK_IO_PROTOCOL *This, > UINT32 MediaId, > EFI_LBA LBA, > UINTN BufferSize, > void *Buffer > ); > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_WRITE) ( > struct _EFI_BLOCK_IO_PROTOCOL *This, > UINT32 MediaId, > EFI_LBA LBA, > UINTN BufferSize, > void *Buffer > ); > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_FLUSH) ( > struct _EFI_BLOCK_IO_PROTOCOL *This > ); > > > >typedef struct { > UINT32 MediaId; > BOOLEAN RemovableMedia; > BOOLEAN MediaPresent; > > BOOLEAN LogicalPartition; > BOOLEAN ReadOnly; > BOOLEAN WriteCaching; > > UINT32 BlockSize; > UINT32 IoAlign; > > EFI_LBA LastBlock; > > > EFI_LBA LowestAlignedLba; > UINT32 LogicalBlocksPerPhysicalBlock; > > UINT32 OptimalTransferLengthGranularity; >} EFI_BLOCK_IO_MEDIA; > >typedef struct _EFI_BLOCK_IO_PROTOCOL { > UINT64 Revision; > > EFI_BLOCK_IO_MEDIA *Media; > > EFI_BLOCK_RESET Reset; > EFI_BLOCK_READ ReadBlocks; > EFI_BLOCK_WRITE WriteBlocks; > EFI_BLOCK_FLUSH FlushBlocks; > >} EFI_BLOCK_IO_PROTOCOL; > >typedef struct _EFI_BLOCK_IO_PROTOCOL _EFI_BLOCK_IO; >typedef EFI_BLOCK_IO_PROTOCOL EFI_BLOCK_IO; > > > > >struct _EFI_BLOCK_IO2_PROTOCOL; > >typedef struct { > EFI_EVENT Event; > EFI_STATUS TransactionStatus; >} EFI_BLOCK_IO2_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_RESET_EX) ( > struct _EFI_BLOCK_IO2_PROTOCOL *This, > BOOLEAN ExtendedVerification > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_READ_EX) ( > struct _EFI_BLOCK_IO2_PROTOCOL *This, > UINT32 MediaId, > EFI_LBA LBA, > EFI_BLOCK_IO2_TOKEN *Token, > UINTN BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_WRITE_EX) ( > struct _EFI_BLOCK_IO2_PROTOCOL *This, > UINT32 MediaId, > EFI_LBA LBA, > EFI_BLOCK_IO2_TOKEN *Token, > UINTN BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BLOCK_FLUSH_EX) ( > struct _EFI_BLOCK_IO2_PROTOCOL *This, > EFI_BLOCK_IO2_TOKEN *Token > ); > >typedef struct _EFI_BLOCK_IO2_PROTOCOL { > EFI_BLOCK_IO_MEDIA *Media; > EFI_BLOCK_RESET_EX Reset; > EFI_BLOCK_READ_EX ReadBlocksEx; > EFI_BLOCK_WRITE_EX WriteBlocksEx; > EFI_BLOCK_FLUSH_EX FlushBlocksEx; >} EFI_BLOCK_IO2_PROTOCOL; ># 193 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_DISK_IO_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISK_READ) ( > struct _EFI_DISK_IO_PROTOCOL *This, > UINT32 MediaId, > UINT64 Offset, > UINTN BufferSize, > void *Buffer > ); > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISK_WRITE) ( > struct _EFI_DISK_IO_PROTOCOL *This, > UINT32 MediaId, > UINT64 Offset, > UINTN BufferSize, > void *Buffer > ); > > >typedef struct _EFI_DISK_IO_PROTOCOL { > UINT64 Revision; > EFI_DISK_READ ReadDisk; > EFI_DISK_WRITE WriteDisk; >} EFI_DISK_IO_PROTOCOL; > >typedef struct _EFI_DISK_IO_PROTOCOL _EFI_DISK_IO; >typedef EFI_DISK_IO_PROTOCOL EFI_DISK_IO; > > > > > > > >struct _EFI_DISK_IO2_PROTOCOL; > >typedef struct { > EFI_EVENT Event; > EFI_STATUS TransactionStatus; >} EFI_DISK_IO2_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISK_CANCEL_EX) ( > struct _EFI_DISK_IO2_PROTOCOL *This > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISK_READ_EX) ( > struct _EFI_DISK_IO2_PROTOCOL *This, > UINT32 MediaId, > UINT64 Offset, > EFI_DISK_IO2_TOKEN *Token, > UINTN BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISK_WRITE_EX) ( > struct _EFI_DISK_IO2_PROTOCOL *This, > UINT32 MediaId, > UINT64 Offset, > EFI_DISK_IO2_TOKEN *Token, > UINTN BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISK_FLUSH_EX) ( > struct _EFI_DISK_IO2_PROTOCOL *This, > EFI_DISK_IO2_TOKEN *Token > ); > >typedef struct _EFI_DISK_IO2_PROTOCOL { > UINT64 Revision; > EFI_DISK_CANCEL_EX Cancel; > EFI_DISK_READ_EX ReadDiskEx; > EFI_DISK_WRITE_EX WriteDiskEx; > EFI_DISK_FLUSH_EX FlushDiskEx; >} EFI_DISK_IO2_PROTOCOL; ># 290 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL; >struct _EFI_FILE_HANDLE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_VOLUME_OPEN) ( > struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This, > struct _EFI_FILE_HANDLE **Root > ); > > > > >typedef struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL { > UINT64 Revision; > EFI_VOLUME_OPEN OpenVolume; >} EFI_SIMPLE_FILE_SYSTEM_PROTOCOL; > >typedef struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL _EFI_FILE_IO_INTERFACE; >typedef EFI_SIMPLE_FILE_SYSTEM_PROTOCOL EFI_FILE_IO_INTERFACE; > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_OPEN) ( > struct _EFI_FILE_HANDLE *File, > struct _EFI_FILE_HANDLE **NewHandle, > CHAR16 *FileName, > UINT64 OpenMode, > UINT64 Attributes > ); ># 339 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_CLOSE) ( > struct _EFI_FILE_HANDLE *File > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_DELETE) ( > struct _EFI_FILE_HANDLE *File > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_READ) ( > struct _EFI_FILE_HANDLE *File, > UINTN *BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_WRITE) ( > struct _EFI_FILE_HANDLE *File, > UINTN *BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_SET_POSITION) ( > struct _EFI_FILE_HANDLE *File, > UINT64 Position > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_GET_POSITION) ( > struct _EFI_FILE_HANDLE *File, > UINT64 *Position > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_GET_INFO) ( > struct _EFI_FILE_HANDLE *File, > EFI_GUID *InformationType, > UINTN *BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_SET_INFO) ( > struct _EFI_FILE_HANDLE *File, > EFI_GUID *InformationType, > UINTN BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_FLUSH) ( > struct _EFI_FILE_HANDLE *File > ); > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; > UINTN BufferSize; > void *Buffer; >} EFI_FILE_IO_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_OPEN_EX)( > struct _EFI_FILE_HANDLE *File, > struct _EFI_FILE_HANDLE **NewHandle, > CHAR16 *FileName, > UINT64 OpenMode, > UINT64 Attributes, > EFI_FILE_IO_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_READ_EX) ( > struct _EFI_FILE_HANDLE *File, > EFI_FILE_IO_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_WRITE_EX) ( > struct _EFI_FILE_HANDLE *File, > EFI_FILE_IO_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FILE_FLUSH_EX) ( > struct _EFI_FILE_HANDLE *File, > EFI_FILE_IO_TOKEN *Token > ); > > > > > > >typedef struct _EFI_FILE_HANDLE { > UINT64 Revision; > EFI_FILE_OPEN Open; > EFI_FILE_CLOSE Close; > EFI_FILE_DELETE Delete; > EFI_FILE_READ Read; > EFI_FILE_WRITE Write; > EFI_FILE_GET_POSITION GetPosition; > EFI_FILE_SET_POSITION SetPosition; > EFI_FILE_GET_INFO GetInfo; > EFI_FILE_SET_INFO SetInfo; > EFI_FILE_FLUSH Flush; > EFI_FILE_OPEN_EX OpenEx; > EFI_FILE_READ_EX ReadEx; > EFI_FILE_WRITE_EX WriteEx; > EFI_FILE_FLUSH_EX FlushEx; >} EFI_FILE_PROTOCOL, *EFI_FILE_HANDLE; > >typedef EFI_FILE_PROTOCOL EFI_FILE; ># 477 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef struct { > UINT64 Size; > UINT64 FileSize; > UINT64 PhysicalSize; > EFI_TIME CreateTime; > EFI_TIME LastAccessTime; > EFI_TIME ModificationTime; > UINT64 Attribute; > CHAR16 FileName[1]; >} EFI_FILE_INFO; ># 501 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef struct { > UINT64 Size; > BOOLEAN ReadOnly; > UINT64 VolumeSize; > UINT64 FreeSpace; > UINT32 BlockSize; > CHAR16 VolumeLabel[1]; >} EFI_FILE_SYSTEM_INFO; ># 523 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef struct { > CHAR16 VolumeLabel[1]; >} EFI_FILE_SYSTEM_VOLUME_LABEL_INFO; ># 538 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_LOAD_FILE_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_LOAD_FILE) ( > struct _EFI_LOAD_FILE_PROTOCOL *This, > EFI_DEVICE_PATH *FilePath, > BOOLEAN BootPolicy, > UINTN *BufferSize, > void *Buffer > ); > >typedef struct _EFI_LOAD_FILE_PROTOCOL { > EFI_LOAD_FILE LoadFile; >} EFI_LOAD_FILE_PROTOCOL; > >typedef struct _EFI_LOAD_FILE_PROTOCOL _EFI_LOAD_FILE_INTERFACE; >typedef EFI_LOAD_FILE_PROTOCOL EFI_LOAD_FILE_INTERFACE; ># 565 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_DEVICE_IO_PROTOCOL; > >typedef enum { > IO_UINT8, > IO_UINT16, > IO_UINT32, > IO_UINT64, > > > > MMIO_COPY_UINT8, > MMIO_COPY_UINT16, > MMIO_COPY_UINT32, > MMIO_COPY_UINT64 >} EFI_IO_WIDTH; > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DEVICE_IO) ( > struct _EFI_DEVICE_IO_PROTOCOL *This, > EFI_IO_WIDTH Width, > UINT64 Address, > UINTN Count, > void *Buffer > ); > >typedef struct { > EFI_DEVICE_IO Read; > EFI_DEVICE_IO Write; >} EFI_IO_ACCESS; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PCI_DEVICE_PATH) ( > struct _EFI_DEVICE_IO_PROTOCOL *This, > UINT64 Address, > EFI_DEVICE_PATH **PciDevicePath > ); > >typedef enum { > EfiBusMasterRead, > EfiBusMasterWrite, > EfiBusMasterCommonBuffer >} EFI_IO_OPERATION_TYPE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IO_MAP) ( > struct _EFI_DEVICE_IO_PROTOCOL *This, > EFI_IO_OPERATION_TYPE Operation, > EFI_PHYSICAL_ADDRESS *HostAddress, > UINTN *NumberOfBytes, > EFI_PHYSICAL_ADDRESS *DeviceAddress, > void **Mapping > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IO_UNMAP) ( > struct _EFI_DEVICE_IO_PROTOCOL *This, > void *Mapping > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IO_ALLOCATE_BUFFER) ( > struct _EFI_DEVICE_IO_PROTOCOL *This, > EFI_ALLOCATE_TYPE Type, > EFI_MEMORY_TYPE MemoryType, > UINTN Pages, > EFI_PHYSICAL_ADDRESS *HostAddress > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IO_FLUSH) ( > struct _EFI_DEVICE_IO_PROTOCOL *This > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IO_FREE_BUFFER) ( > struct _EFI_DEVICE_IO_PROTOCOL *This, > UINTN Pages, > EFI_PHYSICAL_ADDRESS HostAddress > ); > >typedef struct _EFI_DEVICE_IO_PROTOCOL { > EFI_IO_ACCESS Mem; > EFI_IO_ACCESS Io; > EFI_IO_ACCESS Pci; > EFI_IO_MAP Map; > EFI_PCI_DEVICE_PATH PciDevicePath; > EFI_IO_UNMAP Unmap; > EFI_IO_ALLOCATE_BUFFER AllocateBuffer; > EFI_IO_FLUSH Flush; > EFI_IO_FREE_BUFFER FreeBuffer; >} EFI_DEVICE_IO_PROTOCOL; > >typedef struct _EFI_DEVICE_IO_PROTOCOL _EFI_DEVICE_IO_INTERFACE; >typedef EFI_DEVICE_IO_PROTOCOL EFI_DEVICE_IO_INTERFACE; ># 682 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_UNICODE_COLLATION_PROTOCOL; > >typedef >INTN >(__attribute__((ms_abi)) *EFI_UNICODE_STRICOLL) ( > struct _EFI_UNICODE_COLLATION_PROTOCOL *This, > CHAR16 *s1, > CHAR16 *s2 > ); > >typedef >BOOLEAN >(__attribute__((ms_abi)) *EFI_UNICODE_METAIMATCH) ( > struct _EFI_UNICODE_COLLATION_PROTOCOL *This, > CHAR16 *String, > CHAR16 *Pattern > ); > >typedef >void >(__attribute__((ms_abi)) *EFI_UNICODE_STRLWR) ( > struct _EFI_UNICODE_COLLATION_PROTOCOL *This, > CHAR16 *Str > ); > >typedef >void >(__attribute__((ms_abi)) *EFI_UNICODE_STRUPR) ( > struct _EFI_UNICODE_COLLATION_PROTOCOL *This, > CHAR16 *Str > ); > >typedef >void >(__attribute__((ms_abi)) *EFI_UNICODE_FATTOSTR) ( > struct _EFI_UNICODE_COLLATION_PROTOCOL *This, > UINTN FatSize, > CHAR8 *Fat, > CHAR16 *String > ); > >typedef >BOOLEAN >(__attribute__((ms_abi)) *EFI_UNICODE_STRTOFAT) ( > struct _EFI_UNICODE_COLLATION_PROTOCOL *This, > CHAR16 *String, > UINTN FatSize, > CHAR8 *Fat > ); ># 772 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_HASH_PROTOCOL; > >typedef UINT8 EFI_MD5_HASH[16]; >typedef UINT8 EFI_SHA1_HASH[20]; >typedef UINT8 EFI_SHA224_HASH[28]; >typedef UINT8 EFI_SHA256_HASH[32]; >typedef UINT8 EFI_SHA384_HASH[48]; >typedef UINT8 EFI_SHA512_HASH[64]; >typedef union _EFI_HASH_OUTPUT { > EFI_MD5_HASH *Md5Hash; > EFI_SHA1_HASH *Sha1Hash; > EFI_SHA224_HASH *Sha224Hash; > EFI_SHA256_HASH *Sha256Hash; > EFI_SHA384_HASH *Sha384Hash; > EFI_SHA512_HASH *Sha512Hash; >} EFI_HASH_OUTPUT; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HASH_GET_HASH_SIZE) ( > const struct _EFI_HASH_PROTOCOL *This, > const EFI_GUID *HashAlgorithm, > UINTN *HashSize); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HASH_HASH) ( > const struct _EFI_HASH_PROTOCOL *This, > const EFI_GUID *HashAlgorithm, > BOOLEAN Extend, > const UINT8 *Message, > UINT64 MessageSize, > EFI_HASH_OUTPUT *Hash); > >typedef struct _EFI_HASH_PROTOCOL { > EFI_HASH_GET_HASH_SIZE GetHashSize; > EFI_HASH_HASH Hash; >} EFI_HASH_PROTOCOL; > >typedef struct _EFI_HASH_PROTOCOL _EFI_HASH; >typedef EFI_HASH_PROTOCOL EFI_HASH; > > >typedef struct _EFI_UNICODE_COLLATION_PROTOCOL { > > > EFI_UNICODE_STRICOLL StriColl; > EFI_UNICODE_METAIMATCH MetaiMatch; > EFI_UNICODE_STRLWR StrLwr; > EFI_UNICODE_STRUPR StrUpr; > > > EFI_UNICODE_FATTOSTR FatToStr; > EFI_UNICODE_STRTOFAT StrToFat; > > CHAR8 *SupportedLanguages; >} EFI_UNICODE_COLLATION_PROTOCOL; > >typedef EFI_UNICODE_COLLATION_PROTOCOL EFI_UNICODE_COLLATION_INTERFACE; > > > > >typedef struct _EFI_GRAPHICS_OUTPUT_PROTOCOL EFI_GRAPHICS_OUTPUT_PROTOCOL; > >typedef struct { > UINT32 RedMask; > UINT32 GreenMask; > UINT32 BlueMask; > UINT32 ReservedMask; >} EFI_PIXEL_BITMASK; > >typedef enum { > PixelRedGreenBlueReserved8BitPerColor, > PixelBlueGreenRedReserved8BitPerColor, > PixelBitMask, > PixelBltOnly, > PixelFormatMax >} EFI_GRAPHICS_PIXEL_FORMAT; > >typedef struct { > UINT32 Version; > UINT32 HorizontalResolution; > UINT32 VerticalResolution; > EFI_GRAPHICS_PIXEL_FORMAT PixelFormat; > EFI_PIXEL_BITMASK PixelInformation; > UINT32 PixelsPerScanLine; >} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION; ># 876 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE) ( > EFI_GRAPHICS_OUTPUT_PROTOCOL *This, > UINT32 ModeNumber, > UINTN *SizeOfInfo, > EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info > ) >; ># 897 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) ( > EFI_GRAPHICS_OUTPUT_PROTOCOL *This, > UINT32 ModeNumber > ); > >typedef struct { > UINT8 Blue; > UINT8 Green; > UINT8 Red; > UINT8 Reserved; >} EFI_GRAPHICS_OUTPUT_BLT_PIXEL; > >typedef union { > EFI_GRAPHICS_OUTPUT_BLT_PIXEL Pixel; > UINT32 Raw; >} EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION; > >typedef enum { > EfiBltVideoFill, > EfiBltVideoToBltBuffer, > EfiBltBufferToVideo, > EfiBltVideoToVideo, > EfiGraphicsOutputBltOperationMax >} EFI_GRAPHICS_OUTPUT_BLT_OPERATION; ># 968 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT) ( > EFI_GRAPHICS_OUTPUT_PROTOCOL *This, > EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, > EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation, > UINTN SourceX, > UINTN SourceY, > UINTN DestinationX, > UINTN DestinationY, > UINTN Width, > UINTN Height, > UINTN Delta > ); > >typedef struct { > UINT32 MaxMode; > UINT32 Mode; > EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; > UINTN SizeOfInfo; > EFI_PHYSICAL_ADDRESS FrameBufferBase; > UINTN FrameBufferSize; >} EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE; > >struct _EFI_GRAPHICS_OUTPUT_PROTOCOL { > EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode; > EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode; > EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt; > EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode; >}; ># 1008 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef struct _EFI_EDID_DISCOVERED_PROTOCOL { > UINT32 SizeOfEdid; > UINT8 *Edid; >} EFI_EDID_DISCOVERED_PROTOCOL; ># 1022 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef struct _EFI_EDID_ACTIVE_PROTOCOL { > UINT32 SizeOfEdid; > UINT8 *Edid; >} EFI_EDID_ACTIVE_PROTOCOL; ># 1036 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_EDID_OVERRIDE_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID) ( > struct _EFI_EDID_OVERRIDE_PROTOCOL *This, > EFI_HANDLE *ChildHandle, > UINT32 *Attributes, > UINTN *EdidSize, > UINT8 **Edid); > >typedef struct _EFI_EDID_OVERRIDE_PROTOCOL { > EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID GetEdid; >} EFI_EDID_OVERRIDE_PROTOCOL; > > > >struct _EFI_SERVICE_BINDING; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERVICE_BINDING_CREATE_CHILD) ( > struct _EFI_SERVICE_BINDING *This, > EFI_HANDLE *ChildHandle > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERVICE_BINDING_DESTROY_CHILD) ( > struct _EFI_SERVICE_BINDING *This, > EFI_HANDLE ChildHandle > ); > >typedef struct _EFI_SERVICE_BINDING { > EFI_SERVICE_BINDING_CREATE_CHILD CreateChild; > EFI_SERVICE_BINDING_DESTROY_CHILD DestroyChild; >} EFI_SERVICE_BINDING; ># 1084 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_DRIVER_BINDING_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DRIVER_BINDING_PROTOCOL_SUPPORTED) ( > struct _EFI_DRIVER_BINDING_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_DEVICE_PATH *RemainingDevicePath ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DRIVER_BINDING_PROTOCOL_START) ( > struct _EFI_DRIVER_BINDING_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_DEVICE_PATH *RemainingDevicePath ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DRIVER_BINDING_PROTOCOL_STOP) ( > struct _EFI_DRIVER_BINDING_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > UINTN NumberOfChildren, > EFI_HANDLE *ChildHandleBuffer ); > >typedef struct _EFI_DRIVER_BINDING_PROTOCOL { > EFI_DRIVER_BINDING_PROTOCOL_SUPPORTED Supported; > EFI_DRIVER_BINDING_PROTOCOL_START Start; > EFI_DRIVER_BINDING_PROTOCOL_STOP Stop; > UINT32 Version; > EFI_HANDLE ImageHandle; > EFI_HANDLE DriverBindingHandle; >} EFI_DRIVER_BINDING_PROTOCOL; > >typedef struct _EFI_DRIVER_BINDING_PROTOCOL _EFI_DRIVER_BINDING; >typedef EFI_DRIVER_BINDING_PROTOCOL EFI_DRIVER_BINDING; ># 1138 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_COMPONENT_NAME_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_COMPONENT_NAME_GET_DRIVER_NAME) ( > struct _EFI_COMPONENT_NAME_PROTOCOL *This, > CHAR8 *Language, > CHAR16 **DriverName); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_COMPONENT_NAME_GET_CONTROLLER_NAME) ( > struct _EFI_COMPONENT_NAME_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_HANDLE ChildHandle , > CHAR8 *Language, > CHAR16 **ControllerName); > >typedef struct _EFI_COMPONENT_NAME_PROTOCOL { > EFI_COMPONENT_NAME_GET_DRIVER_NAME GetDriverName; > EFI_COMPONENT_NAME_GET_CONTROLLER_NAME GetControllerName; > CHAR8 *SupportedLanguages; >} EFI_COMPONENT_NAME_PROTOCOL; > >typedef struct _EFI_COMPONENT_NAME_PROTOCOL _EFI_COMPONENT_NAME; >typedef EFI_COMPONENT_NAME_PROTOCOL EFI_COMPONENT_NAME; ># 1174 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_COMPONENT_NAME2_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ( > struct _EFI_COMPONENT_NAME2_PROTOCOL *This, > CHAR8 *Language, > CHAR16 **DriverName); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ( > struct _EFI_COMPONENT_NAME2_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_HANDLE ChildHandle , > CHAR8 *Language, > CHAR16 **ControllerName); > >typedef struct _EFI_COMPONENT_NAME2_PROTOCOL { > EFI_COMPONENT_NAME2_GET_DRIVER_NAME GetDriverName; > EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME GetControllerName; > CHAR8 *SupportedLanguages; >} EFI_COMPONENT_NAME2_PROTOCOL; > >typedef struct _EFI_COMPONENT_NAME2_PROTOCOL _EFI_COMPONENT_NAME2; >typedef EFI_COMPONENT_NAME2_PROTOCOL EFI_COMPONENT_NAME2; ># 1214 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IMAGE_UNLOAD) ( > EFI_HANDLE ImageHandle > ); > >typedef struct { > UINT32 Revision; > EFI_HANDLE ParentHandle; > struct _EFI_SYSTEM_TABLE *SystemTable; > > > EFI_HANDLE DeviceHandle; > EFI_DEVICE_PATH *FilePath; > void *Reserved; > > > UINT32 LoadOptionsSize; > void *LoadOptions; > > > void *ImageBase; > UINT64 ImageSize; > EFI_MEMORY_TYPE ImageCodeType; > EFI_MEMORY_TYPE ImageDataType; > > > EFI_IMAGE_UNLOAD Unload; >} EFI_LOADED_IMAGE_PROTOCOL; > >typedef EFI_LOADED_IMAGE_PROTOCOL EFI_LOADED_IMAGE; ># 1256 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >typedef EFI_GUID EFI_RNG_ALGORITHM; ># 1276 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_RNG_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_RNG_GET_INFO) ( > struct _EFI_RNG_PROTOCOL *This, > UINTN *RNGAlgorithmListSize, > EFI_RNG_ALGORITHM *RNGAlgorithmList >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_RNG_GET_RNG) ( > struct _EFI_RNG_PROTOCOL *This, > EFI_RNG_ALGORITHM *RNGAlgorithm, > UINTN RNGValueLength, > UINT8 *RNGValue >); > >typedef struct _EFI_RNG_PROTOCOL { > EFI_RNG_GET_INFO GetInfo; > EFI_RNG_GET_RNG GetRNG; >} EFI_RNG_PROTOCOL; ># 1308 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER) ( > struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_HANDLE *DriverImageHandle); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH) ( > struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_DEVICE_PATH **DriverImagePath); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED) ( > struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This, > EFI_HANDLE ControllerHandle, > EFI_DEVICE_PATH *DriverImagePath, > EFI_HANDLE DriverImageHandle); > >typedef struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL { > EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER GetDriver; > EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH GetDriverPath; > EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED DriverLoaded; >} EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL; ># 1345 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER) ( > struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *This, > EFI_HANDLE *DriverImageHandle); > >typedef struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL { > EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER GetDriver; >} EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL; ># 1364 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL; > >typedef >UINT32 >(__attribute__((ms_abi)) *EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION) ( > struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL *This); > >typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL { > EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion; >} EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL; ># 1384 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiprot.h" >struct _EFI_EBC_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EBC_CREATE_THUNK)( > struct _EFI_EBC_PROTOCOL *This, > EFI_HANDLE ImageHandle, > void *EbcEntryPoint, > void **Thunk); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EBC_UNLOAD_IMAGE)( > struct _EFI_EBC_PROTOCOL *This, > EFI_HANDLE ImageHandle); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EBC_ICACHE_FLUSH)( > EFI_PHYSICAL_ADDRESS Start, > UINT64 Length); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EBC_REGISTER_ICACHE_FLUSH)( > struct _EFI_EBC_PROTOCOL *This, > EBC_ICACHE_FLUSH Flush); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EBC_GET_VERSION)( > struct _EFI_EBC_PROTOCOL *This, > UINT64 *Version); > >typedef struct _EFI_EBC_PROTOCOL { > EFI_EBC_CREATE_THUNK CreateThunk; > EFI_EBC_UNLOAD_IMAGE UnloadImage; > EFI_EBC_REGISTER_ICACHE_FLUSH RegisterICacheFlush; > EFI_EBC_GET_VERSION GetVersion; >} EFI_EBC_PROTOCOL; > >struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_MEMORY_ATTRIBUTES)( > struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL *This, > EFI_PHYSICAL_ADDRESS BaseAddress, > UINT64 Length, > UINT64 *Attributes > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_MEMORY_ATTRIBUTES)( > struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL *This, > EFI_PHYSICAL_ADDRESS BaseAddress, > UINT64 Length, > UINT64 Attributes > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CLEAR_MEMORY_ATTRIBUTES)( > struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL *This, > EFI_PHYSICAL_ADDRESS BaseAddress, > UINT64 Length, > UINT64 Attributes > ); > >typedef struct _EFI_MEMORY_ATTRIBUTE_PROTOCOL { > EFI_GET_MEMORY_ATTRIBUTES GetMemoryAttributes; > EFI_SET_MEMORY_ATTRIBUTES SetMemoryAttributes; > EFI_CLEAR_MEMORY_ATTRIBUTES ClearMemoryAttributes; >} EFI_MEMORY_ATTRIBUTE_PROTOCOL; ># 62 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficon.h" 1 ># 30 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficon.h" >struct _SIMPLE_TEXT_OUTPUT_INTERFACE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_RESET) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > BOOLEAN ExtendedVerification > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_OUTPUT_STRING) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > CHAR16 *String > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_TEST_STRING) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > CHAR16 *String > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_QUERY_MODE) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > UINTN ModeNumber, > UINTN *Columns, > UINTN *Rows > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_SET_MODE) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > UINTN ModeNumber > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_SET_ATTRIBUTE) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > UINTN Attribute > ); ># 106 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficon.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_CLEAR_SCREEN) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_SET_CURSOR_POSITION) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > UINTN Column, > UINTN Row > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TEXT_ENABLE_CURSOR) ( > struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This, > BOOLEAN Enable > ); > >typedef struct { > INT32 MaxMode; > > INT32 Mode; > INT32 Attribute; > INT32 CursorColumn; > INT32 CursorRow; > BOOLEAN CursorVisible; >} SIMPLE_TEXT_OUTPUT_MODE; > >typedef struct _SIMPLE_TEXT_OUTPUT_INTERFACE { > EFI_TEXT_RESET Reset; > > EFI_TEXT_OUTPUT_STRING OutputString; > EFI_TEXT_TEST_STRING TestString; > > EFI_TEXT_QUERY_MODE QueryMode; > EFI_TEXT_SET_MODE SetMode; > EFI_TEXT_SET_ATTRIBUTE SetAttribute; > > EFI_TEXT_CLEAR_SCREEN ClearScreen; > EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition; > EFI_TEXT_ENABLE_CURSOR EnableCursor; > > > SIMPLE_TEXT_OUTPUT_MODE *Mode; >} SIMPLE_TEXT_OUTPUT_INTERFACE, EFI_SIMPLE_TEXT_OUT_PROTOCOL; ># 239 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficon.h" >struct _SIMPLE_INPUT_INTERFACE; > >typedef struct { > UINT16 ScanCode; > CHAR16 UnicodeChar; >} EFI_INPUT_KEY; ># 285 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficon.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INPUT_RESET) ( > struct _SIMPLE_INPUT_INTERFACE *This, > BOOLEAN ExtendedVerification > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INPUT_READ_KEY) ( > struct _SIMPLE_INPUT_INTERFACE *This, > EFI_INPUT_KEY *Key > ); > >typedef struct _SIMPLE_INPUT_INTERFACE { > EFI_INPUT_RESET Reset; > EFI_INPUT_READ_KEY ReadKeyStroke; > EFI_EVENT WaitForKey; >} SIMPLE_INPUT_INTERFACE, EFI_SIMPLE_TEXT_IN_PROTOCOL; ># 63 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficonex.h" 1 ># 25 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficonex.h" >struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; > >typedef UINT8 EFI_KEY_TOGGLE_STATE; > >typedef struct EFI_KEY_STATE { > UINT32 KeyShiftState; > EFI_KEY_TOGGLE_STATE KeyToggleState; >} EFI_KEY_STATE; > >typedef struct { > EFI_INPUT_KEY Key; > EFI_KEY_STATE KeyState; >} EFI_KEY_DATA; ># 59 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/eficonex.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INPUT_RESET_EX) ( > struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, > BOOLEAN ExtendedVerification > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INPUT_READ_KEY_EX) ( > struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, > EFI_KEY_DATA *KeyData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_STATE) ( > struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, > EFI_KEY_TOGGLE_STATE *KeyToggleState > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_KEY_NOTIFY_FUNCTION) ( > EFI_KEY_DATA *KeyData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_REGISTER_KEYSTROKE_NOTIFY) ( > struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, > EFI_KEY_DATA *KeyData, > EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction, > void **NotifyHandle > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UNREGISTER_KEYSTROKE_NOTIFY) ( > struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, > void *NotificationHandle > ); > >typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL{ > EFI_INPUT_RESET_EX Reset; > EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx; > EFI_EVENT WaitForKeyEx; > EFI_SET_STATE SetState; > EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify; > EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify; >} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; ># 64 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiser.h" 1 ># 28 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiser.h" >struct _EFI_SERIAL_IO_PROTOCOL; > >typedef enum { > DefaultParity, > NoParity, > EvenParity, > OddParity, > MarkParity, > SpaceParity >} EFI_PARITY_TYPE; > >typedef enum { > DefaultStopBits, > OneStopBit, > OneFiveStopBits, > TwoStopBits >} EFI_STOP_BITS_TYPE; ># 58 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiser.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERIAL_RESET) ( > struct _EFI_SERIAL_IO_PROTOCOL *This > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERIAL_SET_ATTRIBUTES) ( > struct _EFI_SERIAL_IO_PROTOCOL *This, > UINT64 BaudRate, > UINT32 ReceiveFifoDepth, > UINT32 Timeout, > EFI_PARITY_TYPE Parity, > UINT8 DataBits, > EFI_STOP_BITS_TYPE StopBits > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERIAL_SET_CONTROL_BITS) ( > struct _EFI_SERIAL_IO_PROTOCOL *This, > UINT32 Control > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERIAL_GET_CONTROL_BITS) ( > struct _EFI_SERIAL_IO_PROTOCOL *This, > UINT32 *Control > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERIAL_WRITE) ( > struct _EFI_SERIAL_IO_PROTOCOL *This, > UINTN *BufferSize, > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SERIAL_READ) ( > struct _EFI_SERIAL_IO_PROTOCOL *This, > UINTN *BufferSize, > void *Buffer > ); > >typedef struct { > UINT32 ControlMask; > > > UINT32 Timeout; > UINT64 BaudRate; > UINT32 ReceiveFifoDepth; > UINT32 DataBits; > UINT32 Parity; > UINT32 StopBits; >} SERIAL_IO_MODE; > > > >typedef struct _EFI_SERIAL_IO_PROTOCOL { > UINT32 Revision; > EFI_SERIAL_RESET Reset; > EFI_SERIAL_SET_ATTRIBUTES SetAttributes; > EFI_SERIAL_SET_CONTROL_BITS SetControl; > EFI_SERIAL_GET_CONTROL_BITS GetControl; > EFI_SERIAL_WRITE Write; > EFI_SERIAL_READ Read; > > SERIAL_IO_MODE *Mode; >} EFI_SERIAL_IO_PROTOCOL; > >typedef struct _EFI_SERIAL_IO_PROTOCOL _SERIAL_IO_INTERFACE; >typedef EFI_SERIAL_IO_PROTOCOL SERIAL_IO_INTERFACE; ># 65 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi_nii.h" 1 ># 26 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi_nii.h" >typedef enum { > EfiNetworkInterfaceUndi = 1 >} EFI_NETWORK_INTERFACE_TYPE; > >typedef struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL { > > UINT64 Revision; > > > UINT64 ID; > > > > > > UINT64 ImageAddr; ># 53 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi_nii.h" > UINT32 ImageSize; > > > > CHAR8 StringId[4]; > > > > > > UINT8 Type; > UINT8 MajorVer; > UINT8 MinorVer; > > > > BOOLEAN Ipv6Supported; > UINT8 IfNum; >} EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL, EFI_NETWORK_INTERFACE_IDENTIFIER_INTERFACE; ># 66 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" 1 ># 29 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" >struct _EFI_PXE_BASE_CODE_PROTOCOL; > > > > > > > >typedef union { > UINT32 Addr[4]; > EFI_IPv4_ADDRESS v4; > EFI_IPv6_ADDRESS v6; >} EFI_IP_ADDRESS; > >typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT; > > > > > >typedef struct { > UINT8 BootpOpcode; > UINT8 BootpHwType; > UINT8 BootpHwAddrLen; > UINT8 BootpGateHops; > UINT32 BootpIdent; > UINT16 BootpSeconds; > UINT16 BootpFlags; > UINT8 BootpCiAddr[4]; > UINT8 BootpYiAddr[4]; > UINT8 BootpSiAddr[4]; > UINT8 BootpGiAddr[4]; > UINT8 BootpHwAddr[16]; > UINT8 BootpSrvName[64]; > UINT8 BootpBootFile[128]; > UINT32 DhcpMagik; > UINT8 DhcpOptions[56]; >} EFI_PXE_BASE_CODE_DHCPV4_PACKET; > >typedef struct { > UINT32 MessageType:8; > UINT32 TransactionId:24; > UINT8 DhcpOptions[1024]; >} EFI_PXE_BASE_CODE_DHCPV6_PACKET; > >typedef union { > UINT8 Raw[1472]; > EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4; > EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6; >} EFI_PXE_BASE_CODE_PACKET; > >typedef struct { > UINT8 Type; > UINT8 Code; > UINT16 Checksum; > union { > UINT32 reserved; > UINT32 Mtu; > UINT32 Pointer; > struct { > UINT16 Identifier; > UINT16 Sequence; > } Echo; > } u; > UINT8 Data[494]; >} EFI_PXE_BASE_CODE_ICMP_ERROR; > >typedef struct { > UINT8 ErrorCode; > CHAR8 ErrorString[127]; >} EFI_PXE_BASE_CODE_TFTP_ERROR; > > > > > >typedef struct { > UINT8 Filters; > UINT8 IpCnt; > UINT16 reserved; > EFI_IP_ADDRESS IpList[8]; >} EFI_PXE_BASE_CODE_IP_FILTER; ># 121 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" >typedef struct { > EFI_IP_ADDRESS IpAddr; > EFI_MAC_ADDRESS MacAddr; >} EFI_PXE_BASE_CODE_ARP_ENTRY; > >typedef struct { > EFI_IP_ADDRESS IpAddr; > EFI_IP_ADDRESS SubnetMask; > EFI_IP_ADDRESS GwAddr; >} EFI_PXE_BASE_CODE_ROUTE_ENTRY; ># 175 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" >typedef struct { > UINT16 Type; > BOOLEAN AcceptAnyResponse; > UINT8 Reserved; > EFI_IP_ADDRESS IpAddr; >} EFI_PXE_BASE_CODE_SRVLIST; > >typedef struct { > BOOLEAN UseMCast; > BOOLEAN UseBCast; > BOOLEAN UseUCast; > BOOLEAN MustUseList; > EFI_IP_ADDRESS ServerMCastIp; > UINT16 IpCnt; > EFI_PXE_BASE_CODE_SRVLIST SrvList[1]; >} EFI_PXE_BASE_CODE_DISCOVER_INFO; > > > > > >typedef enum { > EFI_PXE_BASE_CODE_TFTP_FIRST, > EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, > EFI_PXE_BASE_CODE_TFTP_READ_FILE, > EFI_PXE_BASE_CODE_TFTP_WRITE_FILE, > EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY, > EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE, > EFI_PXE_BASE_CODE_MTFTP_READ_FILE, > EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY, > EFI_PXE_BASE_CODE_MTFTP_LAST >} EFI_PXE_BASE_CODE_TFTP_OPCODE; > >typedef struct { > EFI_IP_ADDRESS MCastIp; > EFI_PXE_BASE_CODE_UDP_PORT CPort; > EFI_PXE_BASE_CODE_UDP_PORT SPort; > UINT16 ListenTimeout; > UINT16 TransmitTimeout; >} EFI_PXE_BASE_CODE_MTFTP_INFO; ># 223 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" >typedef struct { > BOOLEAN Started; > BOOLEAN Ipv6Available; > BOOLEAN Ipv6Supported; > BOOLEAN UsingIpv6; > BOOLEAN BisSupported; > BOOLEAN BisDetected; > BOOLEAN AutoArp; > BOOLEAN SendGUID; > BOOLEAN DhcpDiscoverValid; > BOOLEAN DhcpAckReceived; > BOOLEAN ProxyOfferReceived; > BOOLEAN PxeDiscoverValid; > BOOLEAN PxeReplyReceived; > BOOLEAN PxeBisReplyReceived; > BOOLEAN IcmpErrorReceived; > BOOLEAN TftpErrorReceived; > BOOLEAN MakeCallbacks; > UINT8 TTL; > UINT8 ToS; > EFI_IP_ADDRESS StationIp; > EFI_IP_ADDRESS SubnetMask; > EFI_PXE_BASE_CODE_PACKET DhcpDiscover; > EFI_PXE_BASE_CODE_PACKET DhcpAck; > EFI_PXE_BASE_CODE_PACKET ProxyOffer; > EFI_PXE_BASE_CODE_PACKET PxeDiscover; > EFI_PXE_BASE_CODE_PACKET PxeReply; > EFI_PXE_BASE_CODE_PACKET PxeBisReply; > EFI_PXE_BASE_CODE_IP_FILTER IpFilter; > UINT32 ArpCacheEntries; > EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[8]; > UINT32 RouteTableEntries; > EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[8]; > EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError; > EFI_PXE_BASE_CODE_TFTP_ERROR TftpError; >} EFI_PXE_BASE_CODE_MODE; > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_START) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > BOOLEAN UseIpv6 > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_STOP) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_DHCP) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > BOOLEAN SortOffers > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_DISCOVER) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > UINT16 Type, > UINT16 *Layer, > BOOLEAN UseBis, > EFI_PXE_BASE_CODE_DISCOVER_INFO *Info > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_MTFTP) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > EFI_PXE_BASE_CODE_TFTP_OPCODE Operation, > void *BufferPtr , > BOOLEAN Overwrite, > UINT64 *BufferSize, > UINTN *BlockSize , > EFI_IP_ADDRESS *ServerIp, > UINT8 *Filename, > EFI_PXE_BASE_CODE_MTFTP_INFO *Info , > BOOLEAN DontUseBuffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_UDP_WRITE) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > UINT16 OpFlags, > EFI_IP_ADDRESS *DestIp, > EFI_PXE_BASE_CODE_UDP_PORT *DestPort, > EFI_IP_ADDRESS *GatewayIp, > EFI_IP_ADDRESS *SrcIp, > EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, > UINTN *HeaderSize, > void *HeaderPtr, > UINTN *BufferSize, > void *BufferPtr > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_UDP_READ) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > UINT16 OpFlags, > EFI_IP_ADDRESS *DestIp, > EFI_PXE_BASE_CODE_UDP_PORT *DestPort, > EFI_IP_ADDRESS *SrcIp, > EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, > UINTN *HeaderSize, > void *HeaderPtr, > UINTN *BufferSize, > void *BufferPtr > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_SET_IP_FILTER) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > EFI_PXE_BASE_CODE_IP_FILTER *NewFilter > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_ARP) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > EFI_IP_ADDRESS *IpAddr, > EFI_MAC_ADDRESS *MacAddr > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_SET_PARAMETERS) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > BOOLEAN *NewAutoArp, > BOOLEAN *NewSendGUID, > UINT8 *NewTTL, > UINT8 *NewToS, > BOOLEAN *NewMakeCallback > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_SET_STATION_IP) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > EFI_IP_ADDRESS *NewStationIp, > EFI_IP_ADDRESS *NewSubnetMask > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PXE_BASE_CODE_SET_PACKETS) ( > struct _EFI_PXE_BASE_CODE_PROTOCOL *This, > BOOLEAN *NewDhcpDiscoverValid, > BOOLEAN *NewDhcpAckReceived, > BOOLEAN *NewProxyOfferReceived, > BOOLEAN *NewPxeDiscoverValid, > BOOLEAN *NewPxeReplyReceived, > BOOLEAN *NewPxeBisReplyReceived, > EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, > EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, > EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, > EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, > EFI_PXE_BASE_CODE_PACKET *NewPxeReply, > EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply > ); ># 399 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" >typedef struct _EFI_PXE_BASE_CODE_PROTOCOL { > UINT64 Revision; > EFI_PXE_BASE_CODE_START Start; > EFI_PXE_BASE_CODE_STOP Stop; > EFI_PXE_BASE_CODE_DHCP Dhcp; > EFI_PXE_BASE_CODE_DISCOVER Discover; > EFI_PXE_BASE_CODE_MTFTP Mtftp; > EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite; > EFI_PXE_BASE_CODE_UDP_READ UdpRead; > EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter; > EFI_PXE_BASE_CODE_ARP Arp; > EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters; > EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp; > EFI_PXE_BASE_CODE_SET_PACKETS SetPackets; > EFI_PXE_BASE_CODE_MODE *Mode; >} EFI_PXE_BASE_CODE_PROTOCOL; > > > > > > >typedef struct _EFI_PXE_BASE_CODE_PROTOCOL _EFI_PXE_BASE_CODE; >typedef struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE; ># 438 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipxebc.h" >struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL; > >typedef enum { > EFI_PXE_BASE_CODE_FUNCTION_FIRST, > EFI_PXE_BASE_CODE_FUNCTION_DHCP, > EFI_PXE_BASE_CODE_FUNCTION_DISCOVER, > EFI_PXE_BASE_CODE_FUNCTION_MTFTP, > EFI_PXE_BASE_CODE_FUNCTION_UDP_WRITE, > EFI_PXE_BASE_CODE_FUNCTION_UDP_READ, > EFI_PXE_BASE_CODE_FUNCTION_ARP, > EFI_PXE_BASE_CODE_FUNCTION_IGMP, > EFI_PXE_BASE_CODE_PXE_FUNCTION_LAST >} EFI_PXE_BASE_CODE_FUNCTION; > >typedef enum { > EFI_PXE_BASE_CODE_CALLBACK_STATUS_FIRST, > EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE, > EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT, > EFI_PXE_BASE_CODE_CALLBACK_STATUS_LAST >} EFI_PXE_BASE_CODE_CALLBACK_STATUS; > >typedef >EFI_PXE_BASE_CODE_CALLBACK_STATUS >(__attribute__((ms_abi)) *EFI_PXE_CALLBACK) ( > struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *This, > EFI_PXE_BASE_CODE_FUNCTION Function, > BOOLEAN Received, > UINT32 PacketLen, > EFI_PXE_BASE_CODE_PACKET *Packet > ); > >typedef struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL { > UINT64 Revision; > EFI_PXE_CALLBACK Callback; >} EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL; > > > > > > >typedef struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL _EFI_PXE_BASE_CODE_CALLBACK; >typedef EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL EFI_PXE_BASE_CODE_CALLBACK; ># 67 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efinet.h" 1 ># 26 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efinet.h" >struct _EFI_SIMPLE_NETWORK_PROTOCOL; > > > > >typedef struct { > > > > > UINT64 RxTotalFrames; > > > > > UINT64 RxGoodFrames; > > > > > > UINT64 RxUndersizeFrames; > > > > > > UINT64 RxOversizeFrames; > > > > > UINT64 RxDroppedFrames; > > > > > UINT64 RxUnicastFrames; > > > > > UINT64 RxBroadcastFrames; > > > > > UINT64 RxMulticastFrames; > > > > > UINT64 RxCrcErrorFrames; > > > > > > UINT64 RxTotalBytes; > > > > > UINT64 TxTotalFrames; > UINT64 TxGoodFrames; > UINT64 TxUndersizeFrames; > UINT64 TxOversizeFrames; > UINT64 TxDroppedFrames; > UINT64 TxUnicastFrames; > UINT64 TxBroadcastFrames; > UINT64 TxMulticastFrames; > UINT64 TxCrcErrorFrames; > UINT64 TxTotalBytes; > > > > > UINT64 Collisions; > > > > > UINT64 UnsupportedProtocol; > >} EFI_NETWORK_STATISTICS; > > > > >typedef enum { > EfiSimpleNetworkStopped, > EfiSimpleNetworkStarted, > EfiSimpleNetworkInitialized, > EfiSimpleNetworkMaxState >} EFI_SIMPLE_NETWORK_STATE; ># 142 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efinet.h" >typedef struct { > UINT32 State; > UINT32 HwAddressSize; > UINT32 MediaHeaderSize; > UINT32 MaxPacketSize; > UINT32 NvRamSize; > UINT32 NvRamAccessSize; > UINT32 ReceiveFilterMask; > UINT32 ReceiveFilterSetting; > UINT32 MaxMCastFilterCount; > UINT32 MCastFilterCount; > EFI_MAC_ADDRESS MCastFilter[16]; > EFI_MAC_ADDRESS CurrentAddress; > EFI_MAC_ADDRESS BroadcastAddress; > EFI_MAC_ADDRESS PermanentAddress; > UINT8 IfType; > BOOLEAN MacAddressChangeable; > BOOLEAN MultipleTxSupported; > BOOLEAN MediaPresentSupported; > BOOLEAN MediaPresent; >} EFI_SIMPLE_NETWORK_MODE; > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_START) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_STOP) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_INITIALIZE) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > UINTN ExtraRxBufferSize , > UINTN ExtraTxBufferSize >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_RESET) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > BOOLEAN ExtendedVerification >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_SHUTDOWN) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_RECEIVE_FILTERS) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > UINT32 Enable, > UINT32 Disable, > BOOLEAN ResetMCastFilter, > UINTN MCastFilterCnt , > EFI_MAC_ADDRESS *MCastFilter >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_STATION_ADDRESS) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > BOOLEAN Reset, > EFI_MAC_ADDRESS *New >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_STATISTICS) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > BOOLEAN Reset, > UINTN *StatisticsSize , > EFI_NETWORK_STATISTICS *StatisticsTable >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > BOOLEAN IPv6, > EFI_IP_ADDRESS *IP, > EFI_MAC_ADDRESS *MAC >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_NVDATA) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > BOOLEAN ReadWrite, > UINTN Offset, > UINTN BufferSize, > void *Buffer >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_GET_STATUS) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > UINT32 *InterruptStatus , > void **TxBuf >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_TRANSMIT) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > UINTN HeaderSize, > UINTN BufferSize, > void *Buffer, > EFI_MAC_ADDRESS *SrcAddr , > EFI_MAC_ADDRESS *DestAddr , > UINT16 *Protocol >); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_NETWORK_RECEIVE) ( > struct _EFI_SIMPLE_NETWORK_PROTOCOL *This, > UINTN *HeaderSize , > UINTN *BufferSize, > void *Buffer, > EFI_MAC_ADDRESS *SrcAddr , > EFI_MAC_ADDRESS *DestAddr , > UINT16 *Protocol >); > > > > > > > >typedef struct _EFI_SIMPLE_NETWORK_PROTOCOL { > UINT64 Revision; > EFI_SIMPLE_NETWORK_START Start; > EFI_SIMPLE_NETWORK_STOP Stop; > EFI_SIMPLE_NETWORK_INITIALIZE Initialize; > EFI_SIMPLE_NETWORK_RESET Reset; > EFI_SIMPLE_NETWORK_SHUTDOWN Shutdown; > EFI_SIMPLE_NETWORK_RECEIVE_FILTERS ReceiveFilters; > EFI_SIMPLE_NETWORK_STATION_ADDRESS StationAddress; > EFI_SIMPLE_NETWORK_STATISTICS Statistics; > EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC MCastIpToMac; > EFI_SIMPLE_NETWORK_NVDATA NvData; > EFI_SIMPLE_NETWORK_GET_STATUS GetStatus; > EFI_SIMPLE_NETWORK_TRANSMIT Transmit; > EFI_SIMPLE_NETWORK_RECEIVE Receive; > EFI_EVENT WaitForPacket; > EFI_SIMPLE_NETWORK_MODE *Mode; >} EFI_SIMPLE_NETWORK_PROTOCOL; > > > > > > >typedef struct _EFI_SIMPLE_NETWORK_PROTOCOL _EFI_SIMPLE_NETWORK; >typedef EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK; ># 68 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" 1 ># 34 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >struct _EFI_SYSTEM_TABLE; > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_ALLOCATE_PAGES) ( > EFI_ALLOCATE_TYPE Type, > EFI_MEMORY_TYPE MemoryType, > UINTN NoPages, > EFI_PHYSICAL_ADDRESS *Memory > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FREE_PAGES) ( > EFI_PHYSICAL_ADDRESS Memory, > UINTN NoPages > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_MEMORY_MAP) ( > UINTN *MemoryMapSize, > EFI_MEMORY_DESCRIPTOR *MemoryMap, > UINTN *MapKey, > UINTN *DescriptorSize, > UINT32 *DescriptorVersion > ); > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_ALLOCATE_POOL) ( > EFI_MEMORY_TYPE PoolType, > UINTN Size, > void **Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_FREE_POOL) ( > void *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_VIRTUAL_ADDRESS_MAP) ( > UINTN MemoryMapSize, > UINTN DescriptorSize, > UINT32 DescriptorVersion, > EFI_MEMORY_DESCRIPTOR *VirtualMap > ); > > > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CONVERT_POINTER) ( > UINTN DebugDisposition, > void **Address > ); ># 134 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef >void >(__attribute__((ms_abi)) *EFI_EVENT_NOTIFY) ( > EFI_EVENT Event, > void *Context > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CREATE_EVENT) ( > UINT32 Type, > EFI_TPL NotifyTpl, > EFI_EVENT_NOTIFY NotifyFunction, > void *NotifyContext, > EFI_EVENT *Event > ); > >typedef enum { > TimerCancel, > TimerPeriodic, > TimerRelative, > TimerTypeMax >} EFI_TIMER_DELAY; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_TIMER) ( > EFI_EVENT Event, > EFI_TIMER_DELAY Type, > UINT64 TriggerTime > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIGNAL_EVENT) ( > EFI_EVENT Event > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_WAIT_FOR_EVENT) ( > UINTN NumberOfEvents, > EFI_EVENT *Event, > UINTN *Index > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CLOSE_EVENT) ( > EFI_EVENT Event > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CHECK_EVENT) ( > EFI_EVENT Event > ); ># 204 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef >EFI_TPL >(__attribute__((ms_abi)) *EFI_RAISE_TPL) ( > EFI_TPL NewTpl > ); > >typedef >void >(__attribute__((ms_abi)) *EFI_RESTORE_TPL) ( > EFI_TPL OldTpl > ); ># 237 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_VARIABLE) ( > CHAR16 *VariableName, > EFI_GUID *VendorGuid, > UINT32 *Attributes , > UINTN *DataSize, > void *Data > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_NEXT_VARIABLE_NAME) ( > UINTN *VariableNameSize, > CHAR16 *VariableName, > EFI_GUID *VendorGuid > ); > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_VARIABLE) ( > CHAR16 *VariableName, > EFI_GUID *VendorGuid, > UINT32 Attributes, > UINTN DataSize, > void *Data > ); > > > > > > >typedef struct { > UINT32 Resolution; > UINT32 Accuracy; > BOOLEAN SetsToZero; >} EFI_TIME_CAPABILITIES; > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_TIME) ( > EFI_TIME *Time, > EFI_TIME_CAPABILITIES *Capabilities > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_TIME) ( > EFI_TIME *Time > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_WAKEUP_TIME) ( > BOOLEAN *Enabled, > BOOLEAN *Pending, > EFI_TIME *Time > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_WAKEUP_TIME) ( > BOOLEAN Enable, > EFI_TIME *Time > ); ># 348 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IMAGE_ENTRY_POINT) ( > EFI_HANDLE ImageHandle, > struct _EFI_SYSTEM_TABLE *SystemTable > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IMAGE_LOAD) ( > BOOLEAN BootPolicy, > EFI_HANDLE ParentImageHandle, > EFI_DEVICE_PATH *FilePath, > void *SourceBuffer , > UINTN SourceSize, > EFI_HANDLE *ImageHandle > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IMAGE_START) ( > EFI_HANDLE ImageHandle, > UINTN *ExitDataSize, > CHAR16 **ExitData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EXIT) ( > EFI_HANDLE ImageHandle, > EFI_STATUS ExitStatus, > UINTN ExitDataSize, > CHAR16 *ExitData > ); ># 415 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_EXIT_BOOT_SERVICES) ( > EFI_HANDLE ImageHandle, > UINTN MapKey > ); > > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_STALL) ( > UINTN Microseconds > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SET_WATCHDOG_TIMER) ( > UINTN Timeout, > UINT64 WatchdogCode, > UINTN DataSize, > CHAR16 *WatchdogData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CONNECT_CONTROLLER) ( > EFI_HANDLE ControllerHandle, > EFI_HANDLE *DriverImageHandle , > EFI_DEVICE_PATH *RemainingDevicePath , > BOOLEAN Recursive > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_DISCONNECT_CONTROLLER) ( > EFI_HANDLE ControllerHandle, > EFI_HANDLE DriverImageHandle , > EFI_HANDLE ChildHandle > ); ># 466 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_OPEN_PROTOCOL) ( > EFI_HANDLE Handle, > EFI_GUID *Protocol, > void **Interface , > EFI_HANDLE AgentHandle, > EFI_HANDLE ControllerHandle, > UINT32 Attributes > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CLOSE_PROTOCOL) ( > EFI_HANDLE Handle, > EFI_GUID *Protocol, > EFI_HANDLE AgentHandle, > EFI_HANDLE ControllerHandle > ); > >typedef struct { > EFI_HANDLE AgentHandle; > EFI_HANDLE ControllerHandle; > UINT32 Attributes; > UINT32 OpenCount; >} EFI_OPEN_PROTOCOL_INFORMATION_ENTRY; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_OPEN_PROTOCOL_INFORMATION) ( > EFI_HANDLE Handle, > EFI_GUID *Protocol, > EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer, > UINTN *EntryCount > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_PROTOCOLS_PER_HANDLE) ( > EFI_HANDLE Handle, > EFI_GUID ***ProtocolBuffer, > UINTN *ProtocolBufferCount > ); > >typedef enum { > AllHandles, > ByRegisterNotify, > ByProtocol >} EFI_LOCATE_SEARCH_TYPE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_LOCATE_HANDLE_BUFFER) ( > EFI_LOCATE_SEARCH_TYPE SearchType, > EFI_GUID *Protocol , > void *SearchKey , > UINTN *NoHandles, > EFI_HANDLE **Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_LOCATE_PROTOCOL) ( > EFI_GUID *Protocol, > void *Registration , > void **Interface > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES) ( > EFI_HANDLE *Handle, > ... > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES) ( > EFI_HANDLE Handle, > ... > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CALCULATE_CRC32) ( > void *Data, > UINTN DataSize, > UINT32 *Crc32 > ); > >typedef >void >(__attribute__((ms_abi)) *EFI_COPY_MEM) ( > void *Destination, > void *Source, > UINTN Length > ); > >typedef >void >(__attribute__((ms_abi)) *EFI_SET_MEM) ( > void *Buffer, > UINTN Size, > UINT8 Value > ); > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CREATE_EVENT_EX) ( > UINT32 Type, > EFI_TPL NotifyTpl, > EFI_EVENT_NOTIFY NotifyFunction , > const void *NotifyContext , > const EFI_GUID *EventGroup , > EFI_EVENT *Event > ); > >typedef enum { > EfiResetCold, > EfiResetWarm, > EfiResetShutdown >} EFI_RESET_TYPE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_RESET_SYSTEM) ( > EFI_RESET_TYPE ResetType, > EFI_STATUS ResetStatus, > UINTN DataSize, > CHAR16 *ResetData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_NEXT_MONOTONIC_COUNT) ( > UINT64 *Count > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_NEXT_HIGH_MONO_COUNT) ( > UINT32 *HighCount > ); > >typedef struct { > UINT64 Length; > union { > EFI_PHYSICAL_ADDRESS DataBlock; > EFI_PHYSICAL_ADDRESS ContinuationPointer; > } Union; >} EFI_CAPSULE_BLOCK_DESCRIPTOR; > >typedef struct { > EFI_GUID CapsuleGuid; > UINT32 HeaderSize; > UINT32 Flags; > UINT32 CapsuleImageSize; >} EFI_CAPSULE_HEADER; > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UPDATE_CAPSULE) ( > EFI_CAPSULE_HEADER **CapsuleHeaderArray, > UINTN CapsuleCount, > EFI_PHYSICAL_ADDRESS ScatterGatherList > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_QUERY_CAPSULE_CAPABILITIES) ( > EFI_CAPSULE_HEADER **CapsuleHeaderArray, > UINTN CapsuleCount, > UINT64 *MaximumCapsuleSize, > EFI_RESET_TYPE *ResetType > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_QUERY_VARIABLE_INFO) ( > UINT32 Attributes, > UINT64 *MaximumVariableStorageSize, > UINT64 *RemainingVariableStorageSize, > UINT64 *MaximumVariableSize > ); > > > > > >typedef enum { > EFI_NATIVE_INTERFACE, > EFI_PCODE_INTERFACE >} EFI_INTERFACE_TYPE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INSTALL_PROTOCOL_INTERFACE) ( > EFI_HANDLE *Handle, > EFI_GUID *Protocol, > EFI_INTERFACE_TYPE InterfaceType, > void *Interface > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_REINSTALL_PROTOCOL_INTERFACE) ( > EFI_HANDLE Handle, > EFI_GUID *Protocol, > void *OldInterface, > void *NewInterface > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UNINSTALL_PROTOCOL_INTERFACE) ( > EFI_HANDLE Handle, > EFI_GUID *Protocol, > void *Interface > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HANDLE_PROTOCOL) ( > EFI_HANDLE Handle, > EFI_GUID *Protocol, > void **Interface > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_REGISTER_PROTOCOL_NOTIFY) ( > EFI_GUID *Protocol, > EFI_EVENT Event, > void **Registration > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_LOCATE_HANDLE) ( > EFI_LOCATE_SEARCH_TYPE SearchType, > EFI_GUID *Protocol , > void *SearchKey , > UINTN *BufferSize, > EFI_HANDLE *Buffer > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_LOCATE_DEVICE_PATH) ( > EFI_GUID *Protocol, > EFI_DEVICE_PATH **DevicePath, > EFI_HANDLE *Device > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INSTALL_CONFIGURATION_TABLE) ( > EFI_GUID *Guid, > void *Table > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_RESERVED_SERVICE) ( > ); > > > > > >typedef struct _EFI_TABLE_HEADER { > UINT64 Signature; > UINT32 Revision; > UINT32 HeaderSize; > UINT32 CRC32; > UINT32 Reserved; >} EFI_TABLE_HEADER; ># 759 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef struct { > EFI_TABLE_HEADER Hdr; > > > > > > EFI_GET_TIME GetTime; > EFI_SET_TIME SetTime; > EFI_GET_WAKEUP_TIME GetWakeupTime; > EFI_SET_WAKEUP_TIME SetWakeupTime; > > > > > > EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap; > EFI_CONVERT_POINTER ConvertPointer; > > > > > > EFI_GET_VARIABLE GetVariable; > EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName; > EFI_SET_VARIABLE SetVariable; > > > > > > EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount; > EFI_RESET_SYSTEM ResetSystem; > > EFI_UPDATE_CAPSULE UpdateCapsule; > EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities; > EFI_QUERY_VARIABLE_INFO QueryVariableInfo; >} EFI_RUNTIME_SERVICES; ># 808 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef struct _EFI_BOOT_SERVICES { > > EFI_TABLE_HEADER Hdr; > > > > > > EFI_RAISE_TPL RaiseTPL; > EFI_RESTORE_TPL RestoreTPL; > > > > > > EFI_ALLOCATE_PAGES AllocatePages; > EFI_FREE_PAGES FreePages; > EFI_GET_MEMORY_MAP GetMemoryMap; > EFI_ALLOCATE_POOL AllocatePool; > EFI_FREE_POOL FreePool; > > > > > > EFI_CREATE_EVENT CreateEvent; > EFI_SET_TIMER SetTimer; > EFI_WAIT_FOR_EVENT WaitForEvent; > EFI_SIGNAL_EVENT SignalEvent; > EFI_CLOSE_EVENT CloseEvent; > EFI_CHECK_EVENT CheckEvent; > > > > > > EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface; > EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface; > EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface; > EFI_HANDLE_PROTOCOL HandleProtocol; > EFI_HANDLE_PROTOCOL PCHandleProtocol; > EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify; > EFI_LOCATE_HANDLE LocateHandle; > EFI_LOCATE_DEVICE_PATH LocateDevicePath; > EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable; > > > > > > EFI_IMAGE_LOAD LoadImage; > EFI_IMAGE_START StartImage; > EFI_EXIT Exit; > EFI_IMAGE_UNLOAD UnloadImage; > EFI_EXIT_BOOT_SERVICES ExitBootServices; > > > > > > EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount; > EFI_STALL Stall; > EFI_SET_WATCHDOG_TIMER SetWatchdogTimer; > > > > > > EFI_CONNECT_CONTROLLER ConnectController; > EFI_DISCONNECT_CONTROLLER DisconnectController; > > > > > EFI_OPEN_PROTOCOL OpenProtocol; > EFI_CLOSE_PROTOCOL CloseProtocol; > EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation; > > > > > EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle; > EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer; > EFI_LOCATE_PROTOCOL LocateProtocol; > EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces; > EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces; > > > > > EFI_CALCULATE_CRC32 CalculateCrc32; > > > > > EFI_COPY_MEM CopyMem; > EFI_SET_MEM SetMem; > EFI_CREATE_EVENT_EX CreateEventEx; >} EFI_BOOT_SERVICES; ># 932 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef struct _EFI_CONFIGURATION_TABLE { > EFI_GUID VendorGuid; > void *VendorTable; >} EFI_CONFIGURATION_TABLE; ># 951 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiapi.h" >typedef struct _EFI_SYSTEM_TABLE { > EFI_TABLE_HEADER Hdr; > > CHAR16 *FirmwareVendor; > UINT32 FirmwareRevision; > > EFI_HANDLE ConsoleInHandle; > SIMPLE_INPUT_INTERFACE *ConIn; > > EFI_HANDLE ConsoleOutHandle; > SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut; > > EFI_HANDLE StandardErrorHandle; > SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr; > > EFI_RUNTIME_SERVICES *RuntimeServices; > EFI_BOOT_SERVICES *BootServices; > > UINTN NumberOfTableEntries; > EFI_CONFIGURATION_TABLE *ConfigurationTable; > >} EFI_SYSTEM_TABLE; ># 69 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efifs.h" 1 ># 32 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efifs.h" >typedef struct _EFI_PARTITION_HEADER { > EFI_TABLE_HEADER Hdr; > UINT32 DirectoryAllocationNumber; > UINT32 BlockSize; > EFI_LBA FirstUsableLba; > EFI_LBA LastUsableLba; > EFI_LBA UnusableSpace; > EFI_LBA FreeSpace; > EFI_LBA RootFile; > EFI_LBA SecutiryFile; >} EFI_PARTITION_HEADER; ># 53 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efifs.h" >typedef struct _EFI_FILE_HEADER { > EFI_TABLE_HEADER Hdr; > UINT32 Class; > UINT32 LBALOffset; > EFI_LBA Parent; > UINT64 FileSize; > UINT64 FileAttributes; > EFI_TIME FileCreateTime; > EFI_TIME FileModificationTime; > EFI_GUID VendorGuid; > CHAR16 FileString[260]; >} EFI_FILE_HEADER; ># 87 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efifs.h" >typedef struct _EFI_LBAL { > EFI_TABLE_HEADER Hdr; > UINT32 Class; > EFI_LBA Parent; > EFI_LBA Next; > UINT32 ArraySize; > UINT32 ArrayCount; >} EFI_LBAL; ># 104 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efifs.h" >typedef struct { > EFI_LBA Start; > UINT64 Length; >} EFI_RL; ># 70 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efierr.h" 1 ># 71 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiui.h" 1 ># 36 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiui.h" >typedef enum { > UiDeviceString, > UiVendorString, > UiMaxString >} UI_STRING_TYPE; > >typedef struct { > ISO_639_2 *LangCode; > CHAR16 *UiString; >} UI_STRING_ENTRY; > > > > >typedef struct _EFI_UI_INTERFACE_PROTOCOL { > UINT32 Version; > UI_STRING_ENTRY *Entry; >} EFI_UI_INTERFACE_PROTOCOL; > >typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE; >typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE; ># 72 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiip.h" 1 ># 21 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiip.h" >struct _EFI_IP4; >struct _EFI_IP6; > >typedef struct { > EFI_HANDLE InstanceHandle; > EFI_IPv4_ADDRESS Ip4Address; > EFI_IPv4_ADDRESS SubnetMask; >} EFI_IP4_ADDRESS_PAIR; > >typedef struct { > EFI_HANDLE DriverHandle; > UINT32 AddressCount; > EFI_IP4_ADDRESS_PAIR AddressPairs[1]; >} EFI_IP4_VARIABLE_DATA; > >typedef struct { > UINT8 DefaultProtocol; > BOOLEAN AcceptAnyProtocol; > BOOLEAN AcceptIcmpErrors; > BOOLEAN AcceptBroadcast; > BOOLEAN AcceptPromiscuous; > BOOLEAN UseDefaultAddress; > EFI_IPv4_ADDRESS StationAddress; > EFI_IPv4_ADDRESS SubnetMask; > UINT8 TypeOfService; > UINT8 TimeToLive; > BOOLEAN DoNotFragment; > BOOLEAN RawData; > UINT32 ReceiveTimeout; > UINT32 TransmitTimeout; >} EFI_IP4_CONFIG_DATA; > >typedef struct { > EFI_IPv4_ADDRESS SubnetAddress; > EFI_IPv4_ADDRESS SubnetMask; > EFI_IPv4_ADDRESS GatewayAddress; >} EFI_IP4_ROUTE_TABLE; > >typedef struct { > UINT8 Type; > UINT8 Code; >} EFI_IP4_ICMP_TYPE; > >typedef struct { > BOOLEAN IsStarted; > UINT32 MaxPacketSize; > EFI_IP4_CONFIG_DATA ConfigData; > BOOLEAN IsConfigured; > UINT32 GroupCount; > EFI_IPv4_ADDRESS *GroupTable; > UINT32 RouteCount; > EFI_IP4_ROUTE_TABLE *RouteTable; > UINT32 IcmpTypeCount; > EFI_IP4_ICMP_TYPE *IcmpTypeList; >} EFI_IP4_MODE_DATA; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_GET_MODE_DATA) ( > struct _EFI_IP4 *This, > EFI_IP4_MODE_DATA *Ip4ModeData , > EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData , > EFI_SIMPLE_NETWORK_MODE *SnpModeData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_CONFIGURE) ( > struct _EFI_IP4 *This, > EFI_IP4_CONFIG_DATA *IpConfigData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_GROUPS) ( > struct _EFI_IP4 *This, > BOOLEAN JoinFlag, > EFI_IPv4_ADDRESS *GroupAddress > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_ROUTES) ( > struct _EFI_IP4 *This, > BOOLEAN DeleteRoute, > EFI_IPv4_ADDRESS *SubnetAddress, > EFI_IPv4_ADDRESS *SubnetMask, > EFI_IPv4_ADDRESS *GatewayAddress > ); > >#pragma pack(1) >typedef struct { > UINT8 HeaderLength:4; > UINT8 Version:4; > UINT8 TypeOfService; > UINT16 TotalLength; > UINT16 Identification; > UINT16 Fragmentation; > UINT8 TimeToLive; > UINT8 Protocol; > UINT16 Checksum; > EFI_IPv4_ADDRESS SourceAddress; > EFI_IPv4_ADDRESS DestinationAddress; >} EFI_IP4_HEADER; >#pragma pack() > >typedef struct { > UINT32 FragmentLength; > void *FragmentBuffer; >} EFI_IP4_FRAGMENT_DATA; > >typedef struct { > EFI_TIME TimeStamp; > EFI_EVENT RecycleSignal; > UINT32 HeaderLength; > EFI_IP4_HEADER *Header; > UINT32 OptionsLength; > void *Options; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_IP4_FRAGMENT_DATA FragmentTable[1]; >} EFI_IP4_RECEIVE_DATA; > >typedef struct { > EFI_IPv4_ADDRESS SourceAddress; > EFI_IPv4_ADDRESS GatewayAddress; > UINT8 Protocol; > UINT8 TypeOfService; > UINT8 TimeToLive; > BOOLEAN DoNotFragment; >} EFI_IP4_OVERRIDE_DATA; > >typedef struct { > EFI_IPv4_ADDRESS DestinationAddress; > EFI_IP4_OVERRIDE_DATA *OverrideData; > UINT32 OptionsLength; > void *OptionsBuffer; > UINT32 TotalDataLength; > UINT32 FragmentCount; > EFI_IP4_FRAGMENT_DATA FragmentTable[1]; >} EFI_IP4_TRANSMIT_DATA; > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; > union { > EFI_IP4_RECEIVE_DATA *RxData; > EFI_IP4_TRANSMIT_DATA *TxData; > } Packet; >} EFI_IP4_COMPLETION_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_TRANSMIT) ( > struct _EFI_IP4 *This, > EFI_IP4_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_RECEIVE) ( > struct _EFI_IP4 *This, > EFI_IP4_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_CANCEL)( > struct _EFI_IP4 *This, > EFI_IP4_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_POLL) ( > struct _EFI_IP4 *This > ); > >typedef struct _EFI_IP4 { > EFI_IP4_GET_MODE_DATA GetModeData; > EFI_IP4_CONFIGURE Configure; > EFI_IP4_GROUPS Groups; > EFI_IP4_ROUTES Routes; > EFI_IP4_TRANSMIT Transmit; > EFI_IP4_RECEIVE Receive; > EFI_IP4_CANCEL Cancel; > EFI_IP4_POLL Poll; >} EFI_IP4; > >typedef struct { > UINT8 DefaultProtocol; > BOOLEAN AcceptAnyProtocol; > BOOLEAN AcceptIcmpErrors; > BOOLEAN AcceptPromiscuous; > EFI_IPv6_ADDRESS DestinationAddress; > EFI_IPv6_ADDRESS StationAddress; > UINT8 TrafficClass; > UINT8 HopLimit; > UINT32 FlowLabel; > UINT32 ReceiveTimeout; > UINT32 TransmitTimeout; >} EFI_IP6_CONFIG_DATA; > >typedef struct { > EFI_IPv6_ADDRESS Address; > UINT8 PrefixLength; >} EFI_IP6_ADDRESS_INFO; > >typedef struct { > EFI_IPv6_ADDRESS Gateway; > EFI_IPv6_ADDRESS Destination; > UINT8 PrefixLength; >} EFI_IP6_ROUTE_TABLE; > >typedef enum { > EfiNeighborInComplete, > EfiNeighborReachable, > EfiNeighborStale, > EfiNeighborDelay, > EfiNeighborProbe >} EFI_IP6_NEIGHBOR_STATE; > >typedef struct { > EFI_IPv6_ADDRESS Neighbor; > EFI_MAC_ADDRESS LinkAddress; > EFI_IP6_NEIGHBOR_STATE State; >} EFI_IP6_NEIGHBOR_CACHE; > >typedef struct { > UINT8 Type; > UINT8 Code; >} EFI_IP6_ICMP_TYPE; ># 301 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiip.h" >typedef struct { > BOOLEAN IsStarted; > UINT32 MaxPacketSize; > EFI_IP6_CONFIG_DATA ConfigData; > BOOLEAN IsConfigured; > UINT32 AddressCount; > EFI_IP6_ADDRESS_INFO *AddressList; > UINT32 GroupCount; > EFI_IPv6_ADDRESS *GroupTable; > UINT32 RouteCount; > EFI_IP6_ROUTE_TABLE *RouteTable; > UINT32 NeighborCount; > EFI_IP6_NEIGHBOR_CACHE *NeighborCache; > UINT32 PrefixCount; > EFI_IP6_ADDRESS_INFO *PrefixTable; > UINT32 IcmpTypeCount; > EFI_IP6_ICMP_TYPE *IcmpTypeList; >} EFI_IP6_MODE_DATA; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_GET_MODE_DATA) ( > struct _EFI_IP6 *This, > EFI_IP6_MODE_DATA *Ip6ModeData , > EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData , > EFI_SIMPLE_NETWORK_MODE *SnpModeData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_CONFIGURE) ( > struct _EFI_IP6 *This, > EFI_IP6_CONFIG_DATA *Ip6ConfigData > ); >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_GROUPS) ( > struct _EFI_IP6 *This, > BOOLEAN JoinFlag, > EFI_IPv6_ADDRESS *GroupAddress > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_ROUTES) ( > struct _EFI_IP6 *This, > BOOLEAN DeleteRoute, > EFI_IPv6_ADDRESS *Destination , > UINT8 PrefixLength, > EFI_IPv6_ADDRESS *GatewayAddress > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_NEIGHBORS) ( > struct _EFI_IP6 *This, > BOOLEAN DeleteFlag, > EFI_IPv6_ADDRESS *TargetIp6Address, > EFI_MAC_ADDRESS *TargetLinkAddress , > UINT32 Timeout, > BOOLEAN Override > ); > >typedef struct _EFI_IP6_FRAGMENT_DATA { > UINT32 FragmentLength; > void *FragmentBuffer; >} EFI_IP6_FRAGMENT_DATA; > >typedef struct _EFI_IP6_OVERRIDE_DATA { > UINT8 Protocol; > UINT8 HopLimit; > UINT32 FlowLabel; >} EFI_IP6_OVERRIDE_DATA; > >typedef struct _EFI_IP6_TRANSMIT_DATA { > EFI_IPv6_ADDRESS DestinationAddress; > EFI_IP6_OVERRIDE_DATA *OverrideData; > UINT32 ExtHdrsLength; > void *ExtHdrs; > UINT8 NextHeader; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_IP6_FRAGMENT_DATA FragmentTable[1]; >} EFI_IP6_TRANSMIT_DATA; > >#pragma pack(1) >typedef struct _EFI_IP6_HEADER { > UINT8 TrafficClassH:4; > UINT8 Version:4; > UINT8 FlowLabelH:4; > UINT8 TrafficClassL:4; > UINT16 FlowLabelL; > UINT16 PayloadLength; > UINT8 NextHeader; > UINT8 HopLimit; > EFI_IPv6_ADDRESS SourceAddress; > EFI_IPv6_ADDRESS DestinationAddress; >} EFI_IP6_HEADER; >#pragma pack() > >typedef struct _EFI_IP6_RECEIVE_DATA { > EFI_TIME TimeStamp; > EFI_EVENT RecycleSignal; > UINT32 HeaderLength; > EFI_IP6_HEADER *Header; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_IP6_FRAGMENT_DATA FragmentTable[1]; >} EFI_IP6_RECEIVE_DATA; > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; > union { > EFI_IP6_RECEIVE_DATA *RxData; > EFI_IP6_TRANSMIT_DATA *TxData; > } Packet; >} EFI_IP6_COMPLETION_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_TRANSMIT) ( > struct _EFI_IP6 *This, > EFI_IP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_RECEIVE) ( > struct _EFI_IP6 *This, > EFI_IP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_CANCEL)( > struct _EFI_IP6 *This, > EFI_IP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_POLL) ( > struct _EFI_IP6 *This > ); > >typedef struct _EFI_IP6 { > EFI_IP6_GET_MODE_DATA GetModeData; > EFI_IP6_CONFIGURE Configure; > EFI_IP6_GROUPS Groups; > EFI_IP6_ROUTES Routes; > EFI_IP6_NEIGHBORS Neighbors; > EFI_IP6_TRANSMIT Transmit; > EFI_IP6_RECEIVE Receive; > EFI_IP6_CANCEL Cancel; > EFI_IP6_POLL Poll; >} EFI_IP6; ># 73 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiudp.h" 1 ># 22 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiudp.h" >struct _EFI_UDP4; >struct _EFI_UDP6; > >typedef struct { > BOOLEAN AcceptBroadcast; > BOOLEAN AcceptPromiscuous; > BOOLEAN AcceptAnyPort; > BOOLEAN AllowDuplicatePort; > UINT8 TypeOfService; > UINT8 TimeToLive; > BOOLEAN DoNotFragment; > UINT32 ReceiveTimeout; > UINT32 TransmitTimeout; > BOOLEAN UseDefaultAddress; > EFI_IPv4_ADDRESS StationAddress; > EFI_IPv4_ADDRESS SubnetMask; > UINT16 StationPort; > EFI_IPv4_ADDRESS RemoteAddress; > UINT16 RemotePort; >} EFI_UDP4_CONFIG_DATA; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_GET_MODE_DATA) ( > struct _EFI_UDP4 *This, > EFI_UDP4_CONFIG_DATA *Udp4ConfigData , > EFI_IP4_MODE_DATA *Ip4ModeData , > EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData , > EFI_SIMPLE_NETWORK_MODE *SnpModeData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_CONFIGURE) ( > struct _EFI_UDP4 *This, > EFI_UDP4_CONFIG_DATA *UdpConfigData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_GROUPS) ( > struct _EFI_UDP4 *This, > BOOLEAN JoinFlag, > EFI_IPv4_ADDRESS *MulticastAddress > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_ROUTES) ( > struct _EFI_UDP4 *This, > BOOLEAN DeleteRoute, > EFI_IPv4_ADDRESS *SubnetAddress, > EFI_IPv4_ADDRESS *SubnetMask, > EFI_IPv4_ADDRESS *GatewayAddress > ); > > > > > > >typedef struct { > EFI_IPv4_ADDRESS SourceAddress; > UINT16 SourcePort; > EFI_IPv4_ADDRESS DestinationAddress; > UINT16 DestinationPort; >} EFI_UDP4_SESSION_DATA; > >typedef struct { > UINT32 FragmentLength; > void *FragmentBuffer; >} EFI_UDP4_FRAGMENT_DATA; > >typedef struct { > EFI_TIME TimeStamp; > EFI_EVENT RecycleSignal; > EFI_UDP4_SESSION_DATA UdpSession; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_UDP4_FRAGMENT_DATA FragmentTable[1]; >} EFI_UDP4_RECEIVE_DATA; > >typedef struct { > EFI_UDP4_SESSION_DATA *UdpSessionData; > EFI_IPv4_ADDRESS *GatewayAddress; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_UDP4_FRAGMENT_DATA FragmentTable[1]; >} EFI_UDP4_TRANSMIT_DATA; > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; > union { > EFI_UDP4_RECEIVE_DATA *RxData; > EFI_UDP4_TRANSMIT_DATA *TxData; > } Packet; >} EFI_UDP4_COMPLETION_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_TRANSMIT) ( > struct _EFI_UDP4 *This, > EFI_UDP4_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_RECEIVE) ( > struct _EFI_UDP4 *This, > EFI_UDP4_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_CANCEL)( > struct _EFI_UDP4 *This, > EFI_UDP4_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP4_POLL) ( > struct _EFI_UDP4 *This > ); > >typedef struct _EFI_UDP4 { > EFI_UDP4_GET_MODE_DATA GetModeData; > EFI_UDP4_CONFIGURE Configure; > EFI_UDP4_GROUPS Groups; > EFI_UDP4_ROUTES Routes; > EFI_UDP4_TRANSMIT Transmit; > EFI_UDP4_RECEIVE Receive; > EFI_UDP4_CANCEL Cancel; > EFI_UDP4_POLL Poll; >} EFI_UDP4; > >typedef struct { > BOOLEAN AcceptPromiscuous; > BOOLEAN AcceptAnyPort; > BOOLEAN AllowDuplicatePort; > UINT8 TrafficClass; > UINT8 HopLimit; > UINT32 ReceiveTimeout; > UINT32 TransmitTimeout; > EFI_IPv6_ADDRESS StationAddress; > UINT16 StationPort; > EFI_IPv6_ADDRESS RemoteAddress; > UINT16 RemotePort; >} EFI_UDP6_CONFIG_DATA; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_GET_MODE_DATA) ( > struct _EFI_UDP6 *This, > EFI_UDP6_CONFIG_DATA *Udp6ConfigData , > EFI_IP6_MODE_DATA *Ip6ModeData , > EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData , > EFI_SIMPLE_NETWORK_MODE *SnpModeData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_CONFIGURE) ( > struct _EFI_UDP6 *This, > EFI_UDP6_CONFIG_DATA *UdpConfigData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_GROUPS) ( > struct _EFI_UDP6 *This, > BOOLEAN JoinFlag, > EFI_IPv6_ADDRESS *MulticastAddress > ); > >typedef struct { > EFI_IPv6_ADDRESS SourceAddress; > UINT16 SourcePort; > EFI_IPv6_ADDRESS DestinationAddress; > UINT16 DestinationPort; >} EFI_UDP6_SESSION_DATA; > >typedef struct { > UINT32 FragmentLength; > void *FragmentBuffer; >} EFI_UDP6_FRAGMENT_DATA; > >typedef struct { > EFI_TIME TimeStamp; > EFI_EVENT RecycleSignal; > EFI_UDP6_SESSION_DATA UdpSession; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_UDP6_FRAGMENT_DATA FragmentTable[1]; >} EFI_UDP6_RECEIVE_DATA; > >typedef struct { > EFI_UDP6_SESSION_DATA *UdpSessionData; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_UDP6_FRAGMENT_DATA FragmentTable[1]; >} EFI_UDP6_TRANSMIT_DATA; > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; > union { > EFI_UDP6_RECEIVE_DATA *RxData; > EFI_UDP6_TRANSMIT_DATA *TxData; > } Packet; >} EFI_UDP6_COMPLETION_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_TRANSMIT) ( > struct _EFI_UDP6 *This, > EFI_UDP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_RECEIVE) ( > struct _EFI_UDP6 *This, > EFI_UDP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_CANCEL)( > struct _EFI_UDP6 *This, > EFI_UDP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_UDP6_POLL) ( > struct _EFI_UDP6 *This > ); > >typedef struct _EFI_UDP6 { > EFI_UDP6_GET_MODE_DATA GetModeData; > EFI_UDP6_CONFIGURE Configure; > EFI_UDP6_GROUPS Groups; > EFI_UDP6_TRANSMIT Transmit; > EFI_UDP6_RECEIVE Receive; > EFI_UDP6_CANCEL Cancel; > EFI_UDP6_POLL Poll; >} EFI_UDP6; ># 74 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efitcp.h" 1 ># 21 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efitcp.h" >struct _EFI_TCP4; >struct _EFI_TCP6; > >typedef struct { > BOOLEAN UseDefaultAddress; > EFI_IPv4_ADDRESS StationAddress; > EFI_IPv4_ADDRESS SubnetMask; > UINT16 StationPort; > EFI_IPv4_ADDRESS RemoteAddress; > UINT16 RemotePort; > BOOLEAN ActiveFlag; >} EFI_TCP4_ACCESS_POINT; > >typedef struct { > UINT32 ReceiveBufferSize; > UINT32 SendBufferSize; > UINT32 MaxSynBackLog; > UINT32 ConnectionTimeout; > UINT32 DataRetries; > UINT32 FinTimeout; > UINT32 TimeWaitTimeout; > UINT32 KeepAliveProbes; > UINT32 KeepAliveTime; > UINT32 KeepAliveInterval; > BOOLEAN EnableNagle; > BOOLEAN EnableTimeStamp; > BOOLEAN EnableWindowScaling; > BOOLEAN EnableSelectiveAck; > BOOLEAN EnablePAthMtuDiscovery; >} EFI_TCP4_OPTION; > >typedef struct { > > > UINT8 TypeOfService; > UINT8 TimeToLive; > > > EFI_TCP4_ACCESS_POINT AccessPoint; > > > EFI_TCP4_OPTION *ControlOption; >} EFI_TCP4_CONFIG_DATA; > >typedef enum { > Tcp4StateClosed = 0, > Tcp4StateListen = 1, > Tcp4StateSynSent = 2, > Tcp4StateSynReceived = 3, > Tcp4StateEstablished = 4, > Tcp4StateFinWait1 = 5, > Tcp4StateFinWait2 = 6, > Tcp4StateClosing = 7, > Tcp4StateTimeWait = 8, > Tcp4StateCloseWait = 9, > Tcp4StateLastAck = 10 >} EFI_TCP4_CONNECTION_STATE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_GET_MODE_DATA) ( > struct _EFI_TCP4 *This, > EFI_TCP4_CONNECTION_STATE *Tcp4State , > EFI_TCP4_CONFIG_DATA *Tcp4ConfigData , > EFI_IP4_MODE_DATA *Ip4ModeData , > EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData , > EFI_SIMPLE_NETWORK_MODE *SnpModeData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_CONFIGURE) ( > struct _EFI_TCP4 *This, > EFI_TCP4_CONFIG_DATA *TcpConfigData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_ROUTES) ( > struct _EFI_TCP4 *This, > BOOLEAN DeleteRoute, > EFI_IPv4_ADDRESS *SubnetAddress, > EFI_IPv4_ADDRESS *SubnetMask, > EFI_IPv4_ADDRESS *GatewayAddress >); > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; >} EFI_TCP4_COMPLETION_TOKEN; > >typedef struct { > EFI_TCP4_COMPLETION_TOKEN CompletionToken; >} EFI_TCP4_CONNECTION_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_CONNECT) ( > struct _EFI_TCP4 *This, > EFI_TCP4_CONNECTION_TOKEN *ConnectionToken > ); > >typedef struct { > EFI_TCP4_COMPLETION_TOKEN CompletionToken; > EFI_HANDLE NewChildHandle; >} EFI_TCP4_LISTEN_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_ACCEPT) ( > struct _EFI_TCP4 *This, > EFI_TCP4_LISTEN_TOKEN *ListenToken > ); > > > > > >typedef struct { > UINT32 FragmentLength; > void *FragmentBuffer; >} EFI_TCP4_FRAGMENT_DATA; > >typedef struct { > BOOLEAN UrgentFlag; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_TCP4_FRAGMENT_DATA FragmentTable[1]; >} EFI_TCP4_RECEIVE_DATA; > >typedef struct { > BOOLEAN Push; > BOOLEAN Urgent; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_TCP4_FRAGMENT_DATA FragmentTable[1]; >} EFI_TCP4_TRANSMIT_DATA; > >typedef struct { > EFI_TCP4_COMPLETION_TOKEN CompletionToken; > union { > EFI_TCP4_RECEIVE_DATA *RxData; > EFI_TCP4_TRANSMIT_DATA *TxData; > } Packet; >} EFI_TCP4_IO_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_TRANSMIT) ( > struct _EFI_TCP4 *This, > EFI_TCP4_IO_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_RECEIVE) ( > struct _EFI_TCP4 *This, > EFI_TCP4_IO_TOKEN *Token > ); > >typedef struct { > EFI_TCP4_COMPLETION_TOKEN CompletionToken; > BOOLEAN AbortOnClose; >} EFI_TCP4_CLOSE_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_CLOSE)( > struct _EFI_TCP4 *This, > EFI_TCP4_CLOSE_TOKEN *CloseToken > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_CANCEL)( > struct _EFI_TCP4 *This, > EFI_TCP4_COMPLETION_TOKEN *Token >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP4_POLL) ( > struct _EFI_TCP4 *This > ); > >typedef struct _EFI_TCP4 { > EFI_TCP4_GET_MODE_DATA GetModeData; > EFI_TCP4_CONFIGURE Configure; > EFI_TCP4_ROUTES Routes; > EFI_TCP4_CONNECT Connect; > EFI_TCP4_ACCEPT Accept; > EFI_TCP4_TRANSMIT Transmit; > EFI_TCP4_RECEIVE Receive; > EFI_TCP4_CLOSE Close; > EFI_TCP4_CANCEL Cancel; > EFI_TCP4_POLL Poll; >} EFI_TCP4; > >typedef enum { > Tcp6StateClosed = 0, > Tcp6StateListen = 1, > Tcp6StateSynSent = 2, > Tcp6StateSynReceived = 3, > Tcp6StateEstablished = 4, > Tcp6StateFinWait1 = 5, > Tcp6StateFinWait2 = 6, > Tcp6StateClosing = 7, > Tcp6StateTimeWait = 8, > Tcp6StateCloseWait = 9, > Tcp6StateLastAck = 10 >} EFI_TCP6_CONNECTION_STATE; > >typedef struct { > EFI_IPv6_ADDRESS StationAddress; > UINT16 StationPort; > EFI_IPv6_ADDRESS RemoteAddress; > UINT16 RemotePort; > BOOLEAN ActiveFlag; >} EFI_TCP6_ACCESS_POINT; > >typedef struct { > UINT32 ReceiveBufferSize; > UINT32 SendBufferSize; > UINT32 MaxSynBackLog; > UINT32 ConnectionTimeout; > UINT32 DataRetries; > UINT32 FinTimeout; > UINT32 TimeWaitTimeout; > UINT32 KeepAliveProbes; > UINT32 KeepAliveTime; > UINT32 KeepAliveInterval; > BOOLEAN EnableNagle; > BOOLEAN EnableTimeStamp; > BOOLEAN EnableWindbowScaling; > BOOLEAN EnableSelectiveAck; > BOOLEAN EnablePathMtuDiscovery; >} EFI_TCP6_OPTION; > >typedef struct { > UINT8 TrafficClass; > UINT8 HopLimit; > EFI_TCP6_ACCESS_POINT AccessPoint; > EFI_TCP6_OPTION *ControlOption; >} EFI_TCP6_CONFIG_DATA; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_GET_MODE_DATA) ( > struct _EFI_TCP6 *This, > EFI_TCP6_CONNECTION_STATE *Tcp6State , > EFI_TCP6_CONFIG_DATA *Tcp6ConfigData , > EFI_IP6_MODE_DATA *Ip6ModeData , > EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData , > EFI_SIMPLE_NETWORK_MODE *SnpModeData > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_CONFIGURE) ( > struct _EFI_TCP6 *This, > EFI_TCP6_CONFIG_DATA *Tcp6ConfigData > ); > >typedef struct { > EFI_EVENT Event; > EFI_STATUS Status; >} EFI_TCP6_COMPLETION_TOKEN; > >typedef struct { > EFI_TCP6_COMPLETION_TOKEN CompletionToken; >} EFI_TCP6_CONNECTION_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_CONNECT) ( > struct _EFI_TCP6 *This, > EFI_TCP6_CONNECTION_TOKEN *ConnectionToken > ); > >typedef struct { > EFI_TCP6_COMPLETION_TOKEN CompletionToken; > EFI_HANDLE NewChildHandle; >} EFI_TCP6_LISTEN_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_ACCEPT) ( > struct _EFI_TCP6 *This, > EFI_TCP6_LISTEN_TOKEN *ListenToken > ); > >typedef struct { > UINT32 FragmentLength; > void *FragmentBuffer; >} EFI_TCP6_FRAGMENT_DATA; > >typedef struct { > BOOLEAN UrgentFlag; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_TCP6_FRAGMENT_DATA FragmentTable[1]; >} EFI_TCP6_RECEIVE_DATA; > >typedef struct { > BOOLEAN Push; > BOOLEAN Urgent; > UINT32 DataLength; > UINT32 FragmentCount; > EFI_TCP6_FRAGMENT_DATA FragmentTable[1]; >} EFI_TCP6_TRANSMIT_DATA; > >typedef struct { > EFI_TCP6_COMPLETION_TOKEN CompletionToken; > union { > EFI_TCP6_RECEIVE_DATA *RxData; > EFI_TCP6_TRANSMIT_DATA *TxData; > } Packet; >} EFI_TCP6_IO_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_TRANSMIT) ( > struct _EFI_TCP6 *This, > EFI_TCP6_IO_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_RECEIVE) ( > struct _EFI_TCP6 *This, > EFI_TCP6_IO_TOKEN *Token > ); > >typedef struct { > EFI_TCP6_COMPLETION_TOKEN CompletionToken; > BOOLEAN AbortOnClose; >} EFI_TCP6_CLOSE_TOKEN; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_CLOSE)( > struct _EFI_TCP6 *This, > EFI_TCP6_CLOSE_TOKEN *CloseToken > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_CANCEL)( > struct _EFI_TCP6 *This, > EFI_TCP6_COMPLETION_TOKEN *Token > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_TCP6_POLL) ( > struct _EFI_TCP6 *This > ); > >typedef struct _EFI_TCP6 { > EFI_TCP6_GET_MODE_DATA GetModeData; > EFI_TCP6_CONFIGURE Configure; > EFI_TCP6_CONNECT Connect; > EFI_TCP6_ACCEPT Accept; > EFI_TCP6_TRANSMIT Transmit; > EFI_TCP6_RECEIVE Receive; > EFI_TCP6_CLOSE Close; > EFI_TCP6_CANCEL Cancel; > EFI_TCP6_POLL Poll; >} EFI_TCP6; ># 75 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipoint.h" 1 ># 28 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipoint.h" >struct _EFI_SIMPLE_POINTER; > >typedef struct { > INT32 RelativeMovementX; > INT32 RelativeMovementY; > INT32 RelativeMovementZ; > BOOLEAN LeftButton; > BOOLEAN RightButton; >} EFI_SIMPLE_POINTER_STATE; > >typedef struct { > UINT64 ResolutionX; > UINT64 ResolutionY; > UINT64 ResolutionZ; > BOOLEAN LeftButton; > BOOLEAN RightButton; >} EFI_SIMPLE_POINTER_MODE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_POINTER_RESET) ( > struct _EFI_SIMPLE_POINTER *This, > BOOLEAN ExtendedVerification >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_SIMPLE_POINTER_GET_STATE) ( > struct _EFI_SIMPLE_POINTER *This, > EFI_SIMPLE_POINTER_STATE *State >); > >typedef struct _EFI_SIMPLE_POINTER { > EFI_SIMPLE_POINTER_RESET Reset; > EFI_SIMPLE_POINTER_GET_STATE GetState; > EFI_EVENT WaitForInput; > EFI_SIMPLE_POINTER_MODE *Mode; >} EFI_SIMPLE_POINTER_PROTOCOL; > > > > >struct _EFI_ABSOLUTE_POINTER_PROTOCOL; > >typedef struct { > UINT64 AbsoluteMinX; > UINT64 AbsoluteMinY; > UINT64 AbsoluteMinZ; > UINT64 AbsoluteMaxX; > UINT64 AbsoluteMaxY; > UINT64 AbsoluteMaxZ; > UINT32 Attributes; >} EFI_ABSOLUTE_POINTER_MODE; > >typedef struct { > UINT64 CurrentX; > UINT64 CurrentY; > UINT64 CurrentZ; > UINT32 ActiveButtons; >} EFI_ABSOLUTE_POINTER_STATE; > > > > > > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_ABSOLUTE_POINTER_RESET) ( > struct _EFI_ABSOLUTE_POINTER_PROTOCOL *This, > BOOLEAN ExtendedVerification >); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_ABSOLUTE_POINTER_GET_STATE) ( > struct _EFI_ABSOLUTE_POINTER_PROTOCOL *This, > EFI_ABSOLUTE_POINTER_STATE *State >); > >typedef struct _EFI_ABSOLUTE_POINTER_PROTOCOL { > EFI_ABSOLUTE_POINTER_RESET Reset; > EFI_ABSOLUTE_POINTER_GET_STATE GetState; > EFI_EVENT WaitForInput; > EFI_ABSOLUTE_POINTER_MODE *Mode; >} EFI_ABSOLUTE_POINTER_PROTOCOL; ># 76 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 2 ># 57 "shim.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 1 ># 22 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" 1 ># 22 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >extern UINTN EFIDebug; ># 95 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >INTN >DbgAssert ( > const CHAR8 *file, > INTN lineno, > const CHAR8 *string > ); > >INTN __attribute__((ms_abi)) >DbgPrint ( > INTN mask, > const CHAR8 *format, > ... > ); > > > > > >typedef INTN EFI_EXCEPTION_TYPE; ># 134 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >typedef struct { > UINT16 Fcw; > UINT16 Fsw; > UINT16 Ftw; > UINT16 Opcode; > UINT32 Eip; > UINT16 Cs; > UINT16 Reserved1; > UINT32 DataOffset; > UINT16 Ds; > UINT8 Reserved2[10]; > UINT8 St0Mm0[10], Reserved3[6]; > UINT8 St1Mm1[10], Reserved4[6]; > UINT8 St2Mm2[10], Reserved5[6]; > UINT8 St3Mm3[10], Reserved6[6]; > UINT8 St4Mm4[10], Reserved7[6]; > UINT8 St5Mm5[10], Reserved8[6]; > UINT8 St6Mm6[10], Reserved9[6]; > UINT8 St7Mm7[10], Reserved10[6]; > UINT8 Xmm0[16]; > UINT8 Xmm1[16]; > UINT8 Xmm2[16]; > UINT8 Xmm3[16]; > UINT8 Xmm4[16]; > UINT8 Xmm5[16]; > UINT8 Xmm6[16]; > UINT8 Xmm7[16]; > UINT8 Reserved11[14 * 16]; >} EFI_FX_SAVE_STATE_IA32; > >typedef struct { > UINT32 ExceptionData; > EFI_FX_SAVE_STATE_IA32 FxSaveState; > UINT32 Dr0; > UINT32 Dr1; > UINT32 Dr2; > UINT32 Dr3; > UINT32 Dr6; > UINT32 Dr7; > UINT32 Cr0; > UINT32 Cr1; > UINT32 Cr2; > UINT32 Cr3; > UINT32 Cr4; > UINT32 Eflags; > UINT32 Ldtr; > UINT32 Tr; > UINT32 Gdtr[2]; > UINT32 Idtr[2]; > UINT32 Eip; > UINT32 Gs; > UINT32 Fs; > UINT32 Es; > UINT32 Ds; > UINT32 Cs; > UINT32 Ss; > UINT32 Edi; > UINT32 Esi; > UINT32 Ebp; > UINT32 Esp; > UINT32 Ebx; > UINT32 Edx; > UINT32 Ecx; > UINT32 Eax; >} EFI_SYSTEM_CONTEXT_IA32; ># 219 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >typedef struct { > UINT16 Fcw; > UINT16 Fsw; > UINT16 Ftw; > UINT16 Opcode; > UINT64 Rip; > UINT64 DataOffset; > UINT8 Reserved1[8]; > UINT8 St0Mm0[10], Reserved2[6]; > UINT8 St1Mm1[10], Reserved3[6]; > UINT8 St2Mm2[10], Reserved4[6]; > UINT8 St3Mm3[10], Reserved5[6]; > UINT8 St4Mm4[10], Reserved6[6]; > UINT8 St5Mm5[10], Reserved7[6]; > UINT8 St6Mm6[10], Reserved8[6]; > UINT8 St7Mm7[10], Reserved9[6]; > UINT8 Xmm0[16]; > UINT8 Xmm1[16]; > UINT8 Xmm2[16]; > UINT8 Xmm3[16]; > UINT8 Xmm4[16]; > UINT8 Xmm5[16]; > UINT8 Xmm6[16]; > UINT8 Xmm7[16]; > UINT8 Reserved11[14 * 16]; >} EFI_FX_SAVE_STATE_X64; > >typedef struct { > UINT64 ExceptionData; > EFI_FX_SAVE_STATE_X64 FxSaveState; > UINT64 Dr0; > UINT64 Dr1; > UINT64 Dr2; > UINT64 Dr3; > UINT64 Dr6; > UINT64 Dr7; > UINT64 Cr0; > UINT64 Cr1; > UINT64 Cr2; > UINT64 Cr3; > UINT64 Cr4; > UINT64 Cr8; > UINT64 Rflags; > UINT64 Ldtr; > UINT64 Tr; > UINT64 Gdtr[2]; > UINT64 Idtr[2]; > UINT64 Rip; > UINT64 Gs; > UINT64 Fs; > UINT64 Es; > UINT64 Ds; > UINT64 Cs; > UINT64 Ss; > UINT64 Rdi; > UINT64 Rsi; > UINT64 Rbp; > UINT64 Rsp; > UINT64 Rbx; > UINT64 Rdx; > UINT64 Rcx; > UINT64 Rax; > UINT64 R8; > UINT64 R9; > UINT64 R10; > UINT64 R11; > UINT64 R12; > UINT64 R13; > UINT64 R14; > UINT64 R15; >} EFI_SYSTEM_CONTEXT_X64; ># 325 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >typedef struct { > UINT64 Reserved; > UINT64 R1; > UINT64 R2; > UINT64 R3; > UINT64 R4; > UINT64 R5; > UINT64 R6; > UINT64 R7; > UINT64 R8; > UINT64 R9; > UINT64 R10; > UINT64 R11; > UINT64 R12; > UINT64 R13; > UINT64 R14; > UINT64 R15; > UINT64 R16; > UINT64 R17; > UINT64 R18; > UINT64 R19; > UINT64 R20; > UINT64 R21; > UINT64 R22; > UINT64 R23; > UINT64 R24; > UINT64 R25; > UINT64 R26; > UINT64 R27; > UINT64 R28; > UINT64 R29; > UINT64 R30; > UINT64 R31; > UINT64 F2[2]; > UINT64 F3[2]; > UINT64 F4[2]; > UINT64 F5[2]; > UINT64 F6[2]; > UINT64 F7[2]; > UINT64 F8[2]; > UINT64 F9[2]; > UINT64 F10[2]; > UINT64 F11[2]; > UINT64 F12[2]; > UINT64 F13[2]; > UINT64 F14[2]; > UINT64 F15[2]; > UINT64 F16[2]; > UINT64 F17[2]; > UINT64 F18[2]; > UINT64 F19[2]; > UINT64 F20[2]; > UINT64 F21[2]; > UINT64 F22[2]; > UINT64 F23[2]; > UINT64 F24[2]; > UINT64 F25[2]; > UINT64 F26[2]; > UINT64 F27[2]; > UINT64 F28[2]; > UINT64 F29[2]; > UINT64 F30[2]; > UINT64 F31[2]; > UINT64 Pr; > UINT64 B0; > UINT64 B1; > UINT64 B2; > UINT64 B3; > UINT64 B4; > UINT64 B5; > UINT64 B6; > UINT64 B7; > UINT64 ArRsc; > UINT64 ArBsp; > UINT64 ArBspstore; > UINT64 ArRnat; > UINT64 ArFcr; > UINT64 ArEflag; > UINT64 ArCsd; > UINT64 ArSsd; > UINT64 ArCflg; > UINT64 ArFsr; > UINT64 ArFir; > UINT64 ArFdr; > UINT64 ArCcv; > UINT64 ArUnat; > UINT64 ArFpsr; > UINT64 ArPfs; > UINT64 ArLc; > UINT64 ArEc; > UINT64 CrDcr; > UINT64 CrItm; > UINT64 CrIva; > UINT64 CrPta; > UINT64 CrIpsr; > UINT64 CrIsr; > UINT64 CrIip; > UINT64 CrIfa; > UINT64 CrItir; > UINT64 CrIipa; > UINT64 CrIfs; > UINT64 CrIim; > UINT64 CrIha; > UINT64 Dbr0; > UINT64 Dbr1; > UINT64 Dbr2; > UINT64 Dbr3; > UINT64 Dbr4; > UINT64 Dbr5; > UINT64 Dbr6; > UINT64 Dbr7; > UINT64 Ibr0; > UINT64 Ibr1; > UINT64 Ibr2; > UINT64 Ibr3; > UINT64 Ibr4; > UINT64 Ibr5; > UINT64 Ibr6; > UINT64 Ibr7; > UINT64 IntNat; >} EFI_SYSTEM_CONTEXT_IPF; ># 461 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >typedef struct { > UINT64 R0; > UINT64 R1; > UINT64 R2; > UINT64 R3; > UINT64 R4; > UINT64 R5; > UINT64 R6; > UINT64 R7; > UINT64 Flags; > UINT64 ControlFlags; > UINT64 Ip; >} EFI_SYSTEM_CONTEXT_EBC; ># 486 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >typedef struct { > UINT32 R0; > UINT32 R1; > UINT32 R2; > UINT32 R3; > UINT32 R4; > UINT32 R5; > UINT32 R6; > UINT32 R7; > UINT32 R8; > UINT32 R9; > UINT32 R10; > UINT32 R11; > UINT32 R12; > UINT32 SP; > UINT32 LR; > UINT32 PC; > UINT32 CPSR; > UINT32 DFSR; > UINT32 DFAR; > UINT32 IFSR; > UINT32 IFAR; >} EFI_SYSTEM_CONTEXT_ARM; > > >typedef union { > EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc; > EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32; > EFI_SYSTEM_CONTEXT_X64 *SystemContextX64; > EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf; > EFI_SYSTEM_CONTEXT_ARM *SystemContextArm; >} EFI_SYSTEM_CONTEXT; > >typedef >void >(__attribute__((ms_abi)) *EFI_EXCEPTION_CALLBACK)( > EFI_EXCEPTION_TYPE ExceptionType, > EFI_SYSTEM_CONTEXT SystemContext); > >typedef >void >(__attribute__((ms_abi)) *EFI_PERIODIC_CALLBACK)( > EFI_SYSTEM_CONTEXT SystemContext); > >typedef enum { > IsaIa32 = 0x014c, > IsaX64 = 0x8664, > IsaIpf = 0x0200, > IsaEbc = 0x0EBC, > IsaArm = 0x01C2, > >} EFI_INSTRUCTION_SET_ARCHITECTURE; ># 551 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >typedef struct { >UINT64 Signature; >EFI_PHYSICAL_ADDRESS EfiSystemTableBase; >UINT32 Crc32; >} EFI_SYSTEM_TABLE_POINTER; > >typedef struct { >UINT32 ImageInfoType; >EFI_LOADED_IMAGE_PROTOCOL *LoadedImageProtocolInstance; >EFI_HANDLE *ImageHandle; >} EFI_DEBUG_IMAGE_INFO_NORMAL; > >typedef union { >UINT32 *ImageInfoType; >EFI_DEBUG_IMAGE_INFO_NORMAL *NormalImage; >} EFI_DEBUG_IMAGE_INFO; > >typedef struct { >volatile UINT32 UpdateStatus; >UINT32 TableSize; >EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable; >} EFI_DEBUG_IMAGE_INFO_TABLE_HEADER; ># 581 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efidebug.h" >struct _EFI_DEBUG_SUPPORT_PROTOCOL; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_GET_MAXIMUM_PROCESSOR_INDEX)( > struct _EFI_DEBUG_SUPPORT_PROTOCOL *This, > UINTN *MaxProcessorIndex); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_REGISTER_PERIODIC_CALLBACK)( > struct _EFI_DEBUG_SUPPORT_PROTOCOL *This, > UINTN ProcessorIndex, > EFI_PERIODIC_CALLBACK PeriodicCallback); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_REGISTER_EXCEPTION_CALLBACK)( > struct _EFI_DEBUG_SUPPORT_PROTOCOL *This, > UINTN ProcessorIndex, > EFI_EXCEPTION_CALLBACK ExceptionCallback, > EFI_EXCEPTION_TYPE ExceptionType); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_INVALIDATE_INSTRUCTION_CACHE)( > struct _EFI_DEBUG_SUPPORT_PROTOCOL *This, > UINTN ProcessorIndex, > void *Start, > UINT64 Length); > >typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL { > EFI_INSTRUCTION_SET_ARCHITECTURE Isa; > EFI_GET_MAXIMUM_PROCESSOR_INDEX GetMaximumProcessorIndex; > EFI_REGISTER_PERIODIC_CALLBACK RegisterPeriodicCallback; > EFI_REGISTER_EXCEPTION_CALLBACK RegisterExceptionCallback; > EFI_INVALIDATE_INSTRUCTION_CACHE InvalidateInstructionCache; >} EFI_DEBUG_SUPPORT_PROTOCOL; ># 23 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipart.h" 1 ># 29 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipart.h" >#pragma pack(1) > >typedef struct { > UINT8 BootIndicator; > UINT8 StartHead; > UINT8 StartSector; > UINT8 StartTrack; > UINT8 OSIndicator; > UINT8 EndHead; > UINT8 EndSector; > UINT8 EndTrack; > UINT8 StartingLBA[4]; > UINT8 SizeInLBA[4]; >} MBR_PARTITION_RECORD; ># 51 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efipart.h" >typedef struct { > UINT8 BootStrapCode[440]; > UINT8 UniqueMbrSignature[4]; > UINT8 Unknown[2]; > MBR_PARTITION_RECORD Partition[4]; > UINT16 Signature; >} MASTER_BOOT_RECORD; >#pragma pack() ># 24 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efilibplat.h" 1 ># 20 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efilibplat.h" >void >InitializeLibPlatform ( > EFI_HANDLE ImageHandle, > EFI_SYSTEM_TABLE *SystemTable > ); ># 26 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 ># 37 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilink.h" 1 ># 28 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilink.h" >typedef struct _LIST_ENTRY { > struct _LIST_ENTRY *Flink; > struct _LIST_ENTRY *Blink; >} LIST_ENTRY; ># 170 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilink.h" >typedef struct _FLOCK { > EFI_TPL Tpl; > EFI_TPL OwnerTpl; > UINTN Lock; >} FLOCK; ># 38 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efirtlib.h" 1 ># 24 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efirtlib.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efilibplat.h" 1 ># 20 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/x86_64/efilibplat.h" >void >InitializeLibPlatform ( > EFI_HANDLE ImageHandle, > EFI_SYSTEM_TABLE *SystemTable > ); ># 25 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efirtlib.h" 2 ># 38 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efirtlib.h" >void > >RtZeroMem ( > void *Buffer, > UINTN Size > ); > >void > >RtSetMem ( > void *Buffer, > UINTN Size, > UINT8 Value > ); > >void > >RtCopyMem ( > void *Dest, > const void *Src, > UINTN len > ); > >INTN > >RtCompareMem ( > const void *Dest, > const void *Src, > UINTN len > ); > >INTN > >RtStrCmp ( > const CHAR16 *s1, > const CHAR16 *s2 > ); > > >void > >RtStrCpy ( > CHAR16 *Dest, > const CHAR16 *Src > ); > >void > >RtStrnCpy ( > CHAR16 *Dest, > const CHAR16 *Src, > UINTN Len > ); > >CHAR16 * > >RtStpCpy ( > CHAR16 *Dest, > const CHAR16 *Src > ); > >CHAR16 * > >RtStpnCpy ( > CHAR16 *Dest, > const CHAR16 *Src, > UINTN Len > ); > >void > >RtStrCat ( > CHAR16 *Dest, > const CHAR16 *Src > ); > >void > >RtStrnCat ( > CHAR16 *Dest, > const CHAR16 *Src, > UINTN Len > ); > >UINTN > >RtStrLen ( > const CHAR16 *s1 > ); > >UINTN > >RtStrnLen ( > const CHAR16 *s1, > UINTN Len > ); > >UINTN > >RtStrSize ( > const CHAR16 *s1 > ); > >INTN > >RtCompareGuid ( > EFI_GUID *Guid1, > EFI_GUID *Guid2 > ); > >UINT8 > >RtDecimaltoBCD( > UINT8 BcdValue > ); > >UINT8 > >RtBCDtoDecimal( > UINT8 BcdValue > ); > > > > > > >void > >RtLibEnableVirtualMappings ( > void > ); > >void > >RtConvertList ( > UINTN DebugDisposition, > LIST_ENTRY *ListHead > ); > >void > >RtAcquireLock ( > FLOCK *Lock > ); > >void > >RtReleaseLock ( > FLOCK *Lock > ); ># 39 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efistdarg.h" 1 ># 40 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/pci22.h" 1 ># 36 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/pci22.h" >#pragma pack(1) >typedef struct { > UINT16 VendorId; > UINT16 DeviceId; > UINT16 Command; > UINT16 Status; > UINT8 RevisionID; > UINT8 ClassCode[3]; > UINT8 CacheLineSize; > UINT8 LaytencyTimer; > UINT8 HeaderType; > UINT8 BIST; >} PCI_DEVICE_INDEPENDENT_REGION; > >typedef struct { > UINT32 Bar[6]; > UINT32 CISPtr; > UINT16 SubsystemVendorID; > UINT16 SubsystemID; > UINT32 ExpansionRomBar; > UINT32 Reserved[2]; > UINT8 InterruptLine; > UINT8 InterruptPin; > UINT8 MinGnt; > UINT8 MaxLat; >} PCI_DEVICE_HEADER_TYPE_REGION; > >typedef struct { > PCI_DEVICE_INDEPENDENT_REGION Hdr; > PCI_DEVICE_HEADER_TYPE_REGION Device; >} PCI_TYPE00; > >typedef struct { > UINT32 Bar[2]; > UINT8 PrimaryBus; > UINT8 SecondaryBus; > UINT8 SubordinateBus; > UINT8 SecondaryLatencyTimer; > UINT8 IoBase; > UINT8 IoLimit; > UINT16 SecondaryStatus; > UINT16 MemoryBase; > UINT16 MemoryLimit; > UINT16 PrefetchableMemoryBase; > UINT16 PrefetchableMemoryLimit; > UINT32 PrefetchableBaseUpper32; > UINT32 PrefetchableLimitUpper32; > UINT16 IoBaseUpper16; > UINT16 IoLimitUpper16; > UINT32 Reserved; > UINT32 ExpansionRomBAR; > UINT8 InterruptLine; > UINT8 InterruptPin; > UINT16 BridgeControl; >} PCI_BRIDGE_CONTROL_REGISTER; ># 110 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/pci22.h" >typedef struct { > PCI_DEVICE_INDEPENDENT_REGION Hdr; > PCI_BRIDGE_CONTROL_REGISTER Bridge; >} PCI_TYPE01; > >typedef struct { > UINT8 Register; > UINT8 Function; > UINT8 Device; > UINT8 Bus; > UINT8 Reserved[4]; >} DEFIO_PCI_ADDR; > >typedef struct { > UINT32 Reg : 8; > UINT32 Func : 3; > UINT32 Dev : 5; > UINT32 Bus : 8; > UINT32 Reserved: 7; > UINT32 Enable : 1; >} PCI_CONFIG_ACCESS_CF8; > >#pragma pack() > > >typedef struct { > UINTN Signature; > > UINT16 BridgeNumber; > UINT16 PrimaryBus; > UINT16 SubordinateBus; > > EFI_DEVICE_PATH *DevicePath; > > LIST_ENTRY Link; >} PCI_ROOT_BRIDGE_ENTRY; > > > > > > >#pragma pack(1) >typedef struct { > UINT16 Signature; > UINT8 Reserved[0x16]; > UINT16 PcirOffset; >} PCI_EXPANSION_ROM_HEADER; > > >typedef struct { > UINT16 Signature; > UINT16 InitializationSize; > UINT16 EfiSignature; > UINT16 EfiSubsystem; > UINT16 EfiMachineType; > UINT8 Reserved[0x0A]; > UINT16 EfiImageHeaderOffset; > UINT16 PcirOffset; >} EFI_PCI_EXPANSION_ROM_HEADER; > >typedef struct { > UINT32 Signature; > UINT16 VendorId; > UINT16 DeviceId; > UINT16 Reserved0; > UINT16 Length; > UINT8 Revision; > UINT8 ClassCode[3]; > UINT16 ImageLength; > UINT16 CodeRevision; > UINT8 CodeType; > UINT8 Indicator; > UINT16 Reserved1; >} PCI_DATA_STRUCTURE; >#pragma pack() ># 41 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/libsmbios.h" 1 ># 22 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/libsmbios.h" >#pragma pack(1) >typedef struct { > UINT8 AnchorString[4]; > UINT8 EntryPointStructureChecksum; > UINT8 EntryPointLength; > UINT8 MajorVersion; > UINT8 MinorVersion; > UINT16 MaxStructureSize; > UINT8 EntryPointRevision; > UINT8 FormattedArea[5]; > UINT8 IntermediateAnchorString[5]; > UINT8 IntermediateChecksum; > UINT16 TableLength; > UINT32 TableAddress; > UINT16 NumberOfSmbiosStructures; > UINT8 SmbiosBcdRevision; >} SMBIOS_STRUCTURE_TABLE; > >typedef struct { > UINT8 AnchorString[5]; > UINT8 EntryPointStructureChecksum; > UINT8 EntryPointLength; > UINT8 MajorVersion; > UINT8 MinorVersion; > UINT8 DocRev; > UINT8 EntryPointRevision; > UINT8 Reserved; > UINT32 TableMaximumSize; > UINT64 TableAddress; >} SMBIOS3_STRUCTURE_TABLE; > > > > > > >typedef struct { > UINT8 Type; > UINT8 Length; > UINT8 Handle[2]; >} SMBIOS_HEADER; > >typedef UINT8 SMBIOS_STRING; > >typedef struct { > SMBIOS_HEADER Hdr; > SMBIOS_STRING Vendor; > SMBIOS_STRING BiosVersion; > UINT8 BiosSegment[2]; > SMBIOS_STRING BiosReleaseDate; > UINT8 BiosSize; > UINT8 BiosCharacteristics[8]; >} SMBIOS_TYPE0; > >typedef struct { > SMBIOS_HEADER Hdr; > SMBIOS_STRING Manufacturer; > SMBIOS_STRING ProductName; > SMBIOS_STRING Version; > SMBIOS_STRING SerialNumber; > > > > > EFI_GUID Uuid; > > UINT8 WakeUpType; >} SMBIOS_TYPE1; > >typedef struct { > SMBIOS_HEADER Hdr; > SMBIOS_STRING Manufacturer; > SMBIOS_STRING ProductName; > SMBIOS_STRING Version; > SMBIOS_STRING SerialNumber; >} SMBIOS_TYPE2; > >typedef struct { > SMBIOS_HEADER Hdr; > SMBIOS_STRING Manufacturer; > UINT8 Type; > SMBIOS_STRING Version; > SMBIOS_STRING SerialNumber; > SMBIOS_STRING AssetTag; > UINT8 BootupState; > UINT8 PowerSupplyState; > UINT8 ThermalState; > UINT8 SecurityStatus; > UINT8 OemDefined[4]; >} SMBIOS_TYPE3; > >typedef struct { > SMBIOS_HEADER Hdr; > UINT8 Socket; > UINT8 ProcessorType; > UINT8 ProcessorFamily; > SMBIOS_STRING ProcessorManufacture; > UINT8 ProcessorId[8]; > SMBIOS_STRING ProcessorVersion; > UINT8 Voltage; > UINT8 ExternalClock[2]; > UINT8 MaxSpeed[2]; > UINT8 CurrentSpeed[2]; > UINT8 Status; > UINT8 ProcessorUpgrade; > UINT8 L1CacheHandle[2]; > UINT8 L2CacheHandle[2]; > UINT8 L3CacheHandle[2]; >} SMBIOS_TYPE4; > >typedef union { > SMBIOS_HEADER *Hdr; > SMBIOS_TYPE0 *Type0; > SMBIOS_TYPE1 *Type1; > SMBIOS_TYPE2 *Type2; > SMBIOS_TYPE3 *Type3; > SMBIOS_TYPE4 *Type4; > UINT8 *Raw; >} SMBIOS_STRUCTURE_POINTER; >#pragma pack() ># 42 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" 2 > > > > > >extern EFI_SYSTEM_TABLE *ST; > >extern EFI_BOOT_SERVICES *BS; > >extern EFI_RUNTIME_SERVICES *RT; > > >extern EFI_GUID gEfiDevicePathProtocolGuid; > >extern EFI_GUID gEfiDevicePathToTextProtocolGuid; > >extern EFI_GUID gEfiDevicePathFromTextProtocolGuid; > >extern EFI_GUID gEfiLoadedImageProtocolGuid; > >extern EFI_GUID gEfiSimpleTextInProtocolGuid; > >extern EFI_GUID gEfiSimpleTextOutProtocolGuid; > >extern EFI_GUID gEfiGraphicsOutputProtocolGuid; > >extern EFI_GUID gEfiEdidDiscoveredProtocolGuid; > >extern EFI_GUID gEfiEdidActiveProtocolGuid; > >extern EFI_GUID gEfiEdidOverrideProtocolGuid; > >extern EFI_GUID gEfiBlockIoProtocolGuid; > >extern EFI_GUID gEfiBlockIo2ProtocolGuid; > >extern EFI_GUID gEfiDiskIoProtocolGuid; > >extern EFI_GUID gEfiDiskIo2ProtocolGuid; > >extern EFI_GUID gEfiSimpleFileSystemProtocolGuid; > >extern EFI_GUID gEfiLoadFileProtocolGuid; > >extern EFI_GUID gEfiDeviceIoProtocolGuid; > >extern EFI_GUID VariableStoreProtocol; >extern EFI_GUID LegacyBootProtocol; >extern EFI_GUID gEfiUnicodeCollationProtocolGuid; > >extern EFI_GUID gEfiSerialIoProtocolGuid; > >extern EFI_GUID VgaClassProtocol; >extern EFI_GUID TextOutSpliterProtocol; >extern EFI_GUID ErrorOutSpliterProtocol; >extern EFI_GUID TextInSpliterProtocol; >extern EFI_GUID gEfiSimpleNetworkProtocolGuid; > >extern EFI_GUID gEfiPxeBaseCodeProtocolGuid; > >extern EFI_GUID gEfiPxeBaseCodeCallbackProtocolGuid; > >extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid; > >extern EFI_GUID gEFiUiInterfaceProtocolGuid; > >extern EFI_GUID InternalShellProtocol; >extern EFI_GUID gEfiPciIoProtocolGuid; > >extern EFI_GUID gEfiPciRootBridgeIoProtocolGuid; >extern EFI_GUID gEfiDriverBindingProtocolGuid; > >extern EFI_GUID gEfiComponentNameProtocolGuid; > >extern EFI_GUID gEfiComponentName2ProtocolGuid; > >extern EFI_GUID gEfiHashProtocolGuid; > >extern EFI_GUID gEfiPlatformDriverOverrideProtocolGuid; > >extern EFI_GUID gEfiBusSpecificDriverOverrideProtocolGuid; > >extern EFI_GUID gEfiDriverFamilyOverrideProtocolGuid; > >extern EFI_GUID gEfiEbcProtocolGuid; > >extern EFI_GUID gEfiGlobalVariableGuid; > >extern EFI_GUID gEfiFileInfoGuid; > >extern EFI_GUID gEfiFileSystemInfoGuid; > >extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid; > >extern EFI_GUID gEfiPcAnsiGuid; > >extern EFI_GUID gEfiVT100Guid; > >extern EFI_GUID gEfiVT100PlusGuid; >extern EFI_GUID gEfiVTUTF8Guid; > >extern EFI_GUID NullGuid; >extern EFI_GUID UnknownDevice; > >extern EFI_GUID EfiPartTypeSystemPartitionGuid; >extern EFI_GUID EfiPartTypeLegacyMbrGuid; > >extern EFI_GUID MpsTableGuid; >extern EFI_GUID AcpiTableGuid; >extern EFI_GUID SMBIOSTableGuid; >extern EFI_GUID SMBIOS3TableGuid; >extern EFI_GUID SalSystemTableGuid; > >extern EFI_GUID SimplePointerProtocol; >extern EFI_GUID AbsolutePointerProtocol; > >extern EFI_GUID gEfiDebugImageInfoTableGuid; >extern EFI_GUID gEfiDebugSupportProtocolGuid; > >extern EFI_GUID SimpleTextInputExProtocol; ># 186 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" >extern EFI_DEVICE_PATH RootDevicePath[]; >extern EFI_DEVICE_PATH EndDevicePath[]; >extern EFI_DEVICE_PATH EndInstanceDevicePath[]; > > > > > >extern EFI_MEMORY_TYPE PoolAllocationType; ># 210 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efilib.h" >void >InitializeLib ( > EFI_HANDLE ImageHandle, > EFI_SYSTEM_TABLE *SystemTable > ); > >void >InitializeUnicodeSupport ( > CHAR8 *LangCode > ); > >void >EFIDebugVariable ( > void > ); > >void >Exit( > EFI_STATUS ExitStatus, > UINTN ExitDataSize, > CHAR16 *ExitData > ); > >INTN >GetShellArgcArgv( > EFI_HANDLE ImageHandle, > CHAR16 **Argv[] > ); > >void >SetCrc ( > EFI_TABLE_HEADER *Hdr > ); > >void >SetCrcAltSize ( > UINTN Size, > EFI_TABLE_HEADER *Hdr > ); > >BOOLEAN >CheckCrc ( > UINTN MaxSize, > EFI_TABLE_HEADER *Hdr > ); > >BOOLEAN >CheckCrcAltSize ( > UINTN MaxSize, > UINTN Size, > EFI_TABLE_HEADER *Hdr > ); > >UINT32 >CalculateCrc ( > UINT8 *pt, > UINTN Size > ); > >void >ZeroMem ( > void *Buffer, > UINTN Size > ); > >void __attribute__((ms_abi)) >SetMem ( > void *Buffer, > UINTN Size, > UINT8 Value > ); > >void __attribute__((ms_abi)) >CopyMem ( > void *Dest, > void *Src, > UINTN len > ); > >INTN >CompareMem ( > const void *Dest, > const void *Src, > UINTN len > ); > >INTN >StrCmp ( > const CHAR16 *s1, > const CHAR16 *s2 > ); > >INTN >StrnCmp ( > const CHAR16 *s1, > const CHAR16 *s2, > UINTN len > ); > >INTN >StriCmp ( > const CHAR16 *s1, > const CHAR16 *s2 > ); > >void >StrLwr ( > CHAR16 *Str > ); > >void >StrUpr ( > CHAR16 *Str > ); > >void >StrCpy ( > CHAR16 *Dest, > const CHAR16 *Src > ); > >void >StrnCpy ( > CHAR16 *Dest, > const CHAR16 *Src, > UINTN Len > ); > >CHAR16 * >StpCpy ( > CHAR16 *Dest, > const CHAR16 *Src > ); > >CHAR16 * >StpnCpy ( > CHAR16 *Dest, > const CHAR16 *Src, > UINTN Len > ); > >void >StrCat ( > CHAR16 *Dest, > const CHAR16 *Src > ); > >void >StrnCat ( > CHAR16 *Dest, > const CHAR16 *Src, > UINTN Len > ); > >UINTN >StrLen ( > const CHAR16 *s1 > ); > >UINTN >StrnLen ( > const CHAR16 *s1, > UINTN Len > ); > >UINTN >StrSize ( > const CHAR16 *s1 > ); > >CHAR16 * >StrDuplicate ( > const CHAR16 *Src > ); > >UINTN >xtoi ( > const CHAR16 *str > ); > >UINTN >Atoi ( > const CHAR16 *str > ); > >BOOLEAN >MetaMatch ( > CHAR16 *String, > CHAR16 *Pattern > ); > >BOOLEAN >MetaiMatch ( > CHAR16 *String, > CHAR16 *Pattern > ); > >UINT64 >LShiftU64 ( > UINT64 Operand, > UINTN Count > ); > >UINT64 >RShiftU64 ( > UINT64 Operand, > UINTN Count > ); > >UINT64 >MultU64x32 ( > UINT64 Multiplicand, > UINTN Multiplier > ); > >UINT64 >DivU64x32 ( > UINT64 Dividend, > UINTN Divisor, > UINTN *Remainder > ); > >void >InitializeLock ( > FLOCK *Lock, > EFI_TPL Priority > ); > >void >AcquireLock ( > FLOCK *Lock > ); > >void >ReleaseLock ( > FLOCK *Lock > ); > > >INTN >CompareGuid( > EFI_GUID *Guid1, > EFI_GUID *Guid2 > ); > >void * >AllocatePool ( > UINTN Size > ); > >void * >AllocateZeroPool ( > UINTN Size > ); > >void * >ReallocatePool ( > void *OldPool, > UINTN OldSize, > UINTN NewSize > ); > >void >FreePool ( > void *p > ); > > >void >Output ( > CHAR16 *Str > ); > >void >Input ( > CHAR16 *Prompt , > CHAR16 *InStr, > UINTN StrLen > ); > >void >IInput ( > SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut, > SIMPLE_INPUT_INTERFACE *ConIn, > CHAR16 *Prompt , > CHAR16 *InStr, > UINTN StrLen > ); > >UINTN __attribute__((ms_abi)) >Print ( > const CHAR16 *fmt, > ... > ); > >UINTN __attribute__((ms_abi)) >VPrint ( > const CHAR16 *fmt, > __builtin_ms_va_list args > ); > >UINTN __attribute__((ms_abi)) >SPrint ( > CHAR16 *Str, > UINTN StrSize, > const CHAR16 *fmt, > ... > ); > >UINTN __attribute__((ms_abi)) >VSPrint ( > CHAR16 *Str, > UINTN StrSize, > const CHAR16 *fmt, > __builtin_ms_va_list args > ); > >CHAR16 * __attribute__((ms_abi)) >VPoolPrint ( > const CHAR16 *fmt, > __builtin_ms_va_list args > ); > >CHAR16 * __attribute__((ms_abi)) >PoolPrint ( > const CHAR16 *fmt, > ... > ); > >typedef struct { > CHAR16 *str; > UINTN len; > UINTN maxlen; >} POOL_PRINT; > >CHAR16 * __attribute__((ms_abi)) >CatPrint ( > POOL_PRINT *Str, > const CHAR16 *fmt, > ... > ); > >UINTN __attribute__((ms_abi)) >PrintAt ( > UINTN Column, > UINTN Row, > const CHAR16 *fmt, > ... > ); > >UINTN __attribute__((ms_abi)) >IPrint ( > SIMPLE_TEXT_OUTPUT_INTERFACE *Out, > const CHAR16 *fmt, > ... > ); > >UINTN __attribute__((ms_abi)) >IPrintAt ( > SIMPLE_TEXT_OUTPUT_INTERFACE *Out, > UINTN Column, > UINTN Row, > const CHAR16 *fmt, > ... > ); > >UINTN __attribute__((ms_abi)) >AsciiPrint ( > const CHAR8 *fmt, > ... > ); > > > > >UINTN __attribute__((ms_abi)) >AsciiVSPrint( > CHAR8 *Str, > UINTN StrSize, > const CHAR8 *fmt, > __builtin_ms_va_list args >); > >void >ValueToHex ( > CHAR16 *Buffer, > UINT64 v > ); > >void >ValueToString ( > CHAR16 *Buffer, > BOOLEAN Comma, > INT64 v > ); > >void >FloatToString ( > CHAR16 *Buffer, > BOOLEAN Comma, > double v > ); > >void >TimeToString ( > CHAR16 *Buffer, > EFI_TIME *Time > ); > >void >GuidToString ( > CHAR16 *Buffer, > EFI_GUID *Guid > ); > >void >StatusToString ( > CHAR16 *Buffer, > EFI_STATUS Status > ); > >void >DumpHex ( > UINTN Indent, > UINTN Offset, > UINTN DataSize, > void *UserData > ); > >BOOLEAN >GrowBuffer( > EFI_STATUS *Status, > void **Buffer, > UINTN BufferSize > ); > >EFI_MEMORY_DESCRIPTOR * >LibMemoryMap ( > UINTN *NoEntries, > UINTN *MapKey, > UINTN *DescriptorSize, > UINT32 *DescriptorVersion > ); > >void * >LibGetVariable ( > CHAR16 *Name, > EFI_GUID *VendorGuid > ); > >void * >LibGetVariableAndSize ( > CHAR16 *Name, > EFI_GUID *VendorGuid, > UINTN *VarSize > ); > >EFI_STATUS >LibDeleteVariable ( > CHAR16 *VarName, > EFI_GUID *VarGuid > ); > >EFI_STATUS >LibSetNVVariable ( > CHAR16 *VarName, > EFI_GUID *VarGuid, > UINTN DataSize, > void *Data > ); > >EFI_STATUS >LibSetVariable ( > CHAR16 *VarName, > EFI_GUID *VarGuid, > UINTN DataSize, > void *Data > ); >EFI_STATUS >LibInsertToTailOfBootOrder ( > UINT16 BootOption, > BOOLEAN OnlyInsertIfEmpty > ); > >EFI_STATUS >LibLocateProtocol ( > EFI_GUID *ProtocolGuid, > void **Interface > ); > >EFI_STATUS >LibLocateHandle ( > EFI_LOCATE_SEARCH_TYPE SearchType, > EFI_GUID *Protocol , > void *SearchKey , > UINTN *NoHandles, > EFI_HANDLE **Buffer > ); > >EFI_STATUS >LibLocateHandleByDiskSignature ( > UINT8 MBRType, > UINT8 SignatureType, > void *Signature, > UINTN *NoHandles, > EFI_HANDLE **Buffer > ); > >EFI_STATUS __attribute__((ms_abi)) >LibInstallProtocolInterfaces ( > EFI_HANDLE *Handle, > ... > ); > >void __attribute__((ms_abi)) >LibUninstallProtocolInterfaces ( > EFI_HANDLE Handle, > ... > ); > >EFI_STATUS __attribute__((ms_abi)) >LibReinstallProtocolInterfaces ( > EFI_HANDLE *Handle, > ... > ); > >EFI_EVENT >LibCreateProtocolNotifyEvent ( > EFI_GUID *ProtocolGuid, > EFI_TPL NotifyTpl, > EFI_EVENT_NOTIFY NotifyFunction, > void *NotifyContext, > void *Registration > ); > >EFI_STATUS >WaitForSingleEvent ( > EFI_EVENT Event, > UINT64 Timeout > ); > >void >WaitForEventWithTimeout ( > EFI_EVENT Event, > UINTN Timeout, > UINTN Row, > UINTN Column, > CHAR16 *String, > EFI_INPUT_KEY TimeoutKey, > EFI_INPUT_KEY *Key > ); > >EFI_FILE_HANDLE >LibOpenRoot ( > EFI_HANDLE DeviceHandle > ); > >EFI_FILE_INFO * >LibFileInfo ( > EFI_FILE_HANDLE FHand > ); > >EFI_FILE_SYSTEM_INFO * >LibFileSystemInfo ( > EFI_FILE_HANDLE FHand > ); > >EFI_FILE_SYSTEM_VOLUME_LABEL_INFO * >LibFileSystemVolumeLabelInfo ( > EFI_FILE_HANDLE FHand > ); > >BOOLEAN >ValidMBR( > MASTER_BOOT_RECORD *Mbr, > EFI_BLOCK_IO *BlkIo > ); > >BOOLEAN >LibMatchDevicePaths ( > EFI_DEVICE_PATH *Multi, > EFI_DEVICE_PATH *Single > ); > >EFI_DEVICE_PATH * >LibDuplicateDevicePathInstance ( > EFI_DEVICE_PATH *DevPath > ); > >EFI_DEVICE_PATH * >DevicePathFromHandle ( > EFI_HANDLE Handle > ); > >EFI_DEVICE_PATH * >DevicePathInstance ( > EFI_DEVICE_PATH **DevicePath, > UINTN *Size > ); > >UINTN >DevicePathInstanceCount ( > EFI_DEVICE_PATH *DevicePath > ); > >EFI_DEVICE_PATH * >AppendDevicePath ( > EFI_DEVICE_PATH *Src1, > EFI_DEVICE_PATH *Src2 > ); > >EFI_DEVICE_PATH * >AppendDevicePathNode ( > EFI_DEVICE_PATH *Src1, > EFI_DEVICE_PATH *Src2 > ); > >EFI_DEVICE_PATH* >AppendDevicePathInstance ( > EFI_DEVICE_PATH *Src, > EFI_DEVICE_PATH *Instance > ); > >EFI_DEVICE_PATH * >FileDevicePath ( > EFI_HANDLE Device , > CHAR16 *FileName > ); > >UINTN >DevicePathSize ( > EFI_DEVICE_PATH *DevPath > ); > >EFI_DEVICE_PATH * >DuplicateDevicePath ( > EFI_DEVICE_PATH *DevPath > ); > >EFI_DEVICE_PATH * >UnpackDevicePath ( > EFI_DEVICE_PATH *DevPath > ); > >EFI_STATUS >LibDevicePathToInterface ( > EFI_GUID *Protocol, > EFI_DEVICE_PATH *FilePath, > void **Interface > ); > >CHAR16 * >DevicePathToStr ( > EFI_DEVICE_PATH *DevPath > ); > > > > >typedef struct { > UINT8 Register; > UINT8 Function; > UINT8 Device; > UINT8 Bus; > UINT32 Reserved; >} EFI_ADDRESS; > >typedef union { > UINT64 Address; > EFI_ADDRESS EfiAddress; >} EFI_PCI_ADDRESS_UNION; > > >EFI_STATUS >PciFindDeviceClass ( > EFI_PCI_ADDRESS_UNION *Address, > UINT8 BaseClass, > UINT8 SubClass > ); > >EFI_STATUS >PciFindDevice ( > EFI_PCI_ADDRESS_UNION *DeviceAddress, > UINT16 VendorId, > UINT16 DeviceId, > PCI_TYPE00 *Pci > ); > > > > > >typedef void *SIMPLE_READ_FILE; > >EFI_STATUS >OpenSimpleReadFile ( > BOOLEAN BootPolicy, > void *SourceBuffer , > UINTN SourceSize, > EFI_DEVICE_PATH **FilePath, > EFI_HANDLE *DeviceHandle, > SIMPLE_READ_FILE *SimpleReadHandle > ); > >EFI_STATUS >ReadSimpleReadFile ( > SIMPLE_READ_FILE SimpleReadHandle, > UINTN Offset, > UINTN *ReadSize, > void *Buffer > ); > > >void >CloseSimpleReadFile ( > SIMPLE_READ_FILE SimpleReadHandle > ); > >void >InitializeGuid ( > void > ); > >UINT8 >DecimaltoBCD( > UINT8 DecValue > ); > >UINT8 >BCDtoDecimal( > UINT8 BcdValue > ); > >EFI_STATUS >LibGetSystemConfigurationTable( > EFI_GUID *TableGuid, > void **Table > ); > >BOOLEAN >LibIsValidTextGraphics ( > CHAR16 Graphic, > CHAR8 *PcAnsi, > CHAR8 *Ascii > ); > >BOOLEAN >IsValidAscii ( > CHAR16 Ascii > ); > >BOOLEAN >IsValidEfiCntlChar ( > CHAR16 c > ); > >CHAR16 * >LibGetUiString ( > EFI_HANDLE Handle, > UI_STRING_TYPE StringType, > ISO_639_2 *LangCode, > BOOLEAN ReturnDevicePathStrOnMismatch > ); > >CHAR8* >LibGetSmbiosString ( > SMBIOS_STRUCTURE_POINTER *Smbios, > UINT16 StringNumber > ); > >EFI_STATUS >LibGetSmbiosSystemGuidAndSerialNumber ( > EFI_GUID *SystemGuid, > CHAR8 **SystemSerialNumber > ); > > >EFI_STATUS >InitializeGlobalIoDevice ( > EFI_DEVICE_PATH *DevicePath, > EFI_GUID *Protocol, > CHAR8 *ErrorStr, > EFI_DEVICE_IO_INTERFACE **GlobalIoFncs > ); > >UINT32 >ReadPort ( > EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, > EFI_IO_WIDTH Width, > UINTN Port > ); > >UINT32 >WritePort ( > EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, > EFI_IO_WIDTH Width, > UINTN Port, > UINTN Data > ); > >UINT32 >ReadPciConfig ( > EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, > EFI_IO_WIDTH Width, > UINTN Port > ); > >UINT32 >WritePciConfig ( > EFI_DEVICE_IO_INTERFACE *GlobalIoFncs, > EFI_IO_WIDTH Width, > UINTN Port, > UINTN Data > ); > >void >Pause ( > void >); > >extern EFI_DEVICE_IO_INTERFACE *GlobalIoFncs; ># 58 "shim.h" 2 > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efierr.h" 1 ># 60 "shim.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efiip.h" 1 ># 61 "shim.h" 2 ># 160 "shim.h" ># 1 "include/asm.h" 1 ># 9 "include/asm.h" >static inline uint64_t read_counter(void) >{ > uint64_t val; > > unsigned long low, high; > __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high)); > val = (low) | (high) << 32; ># 25 "include/asm.h" > return val; >} > > >static inline void wait_for_debug(void) >{ > __asm__ __volatile__("pause"); >} ># 161 "shim.h" 2 ># 1 "include/compiler.h" 1 ># 162 "shim.h" 2 ># 1 "include/list.h" 1 ># 15 "include/list.h" >struct list_head { > struct list_head *next; > struct list_head *prev; >}; > >typedef struct list_head list_t; ># 35 "include/list.h" >static inline int >list_empty(const struct list_head *head) >{ > return head->next == head; >} > >static inline void >__list_add(struct list_head *new, struct list_head *prev, > struct list_head *next) >{ > next->prev = new; > new->next = next; > new->prev = prev; > prev->next = new; >} > >static inline void >list_add(struct list_head *new, struct list_head *head) >{ > __list_add(new, head, head->next); >} > >static inline void >list_add_tail(struct list_head *new, struct list_head *head) >{ > __list_add(new, head->prev, head); >} > >static inline void >__list_del(struct list_head *prev, struct list_head *next) >{ > next->prev = prev; > prev->next = next; >} > >static inline void >__list_del_entry(struct list_head *entry) >{ > __list_del(entry->prev, entry->next); >} > >static inline void >list_del(struct list_head *entry) >{ > __list_del_entry(entry); > entry->next = ># 80 "include/list.h" 3 4 > ((void *)0) ># 80 "include/list.h" > ; > entry->prev = ># 81 "include/list.h" 3 4 > ((void *)0) ># 81 "include/list.h" > ; >} ># 105 "include/list.h" >static inline size_t >list_size(struct list_head *entry) >{ > list_t *pos; > size_t i = 0; > for (pos = (entry)->next; pos != (entry); pos = pos->next) { > i++; > } > return i; >} ># 163 "shim.h" 2 ># 1 "include/configtable.h" 1 > > > > > > > >typedef UINT32 EFI_IMAGE_EXECUTION_ACTION; ># 19 "include/configtable.h" >typedef struct { > > > > EFI_IMAGE_EXECUTION_ACTION Action; > > > > UINT32 InfoSize; ># 50 "include/configtable.h" > UINT8 Data[]; >} EFI_IMAGE_EXECUTION_INFO; > >typedef struct { > > > > UINTN NumberOfImages; > > > > EFI_IMAGE_EXECUTION_INFO InformationInfo[]; >} EFI_IMAGE_EXECUTION_INFO_TABLE; > >void * >configtable_get_table(EFI_GUID *guid); >EFI_IMAGE_EXECUTION_INFO_TABLE * >configtable_get_image_table(void); >EFI_IMAGE_EXECUTION_INFO * >configtable_find_image(const EFI_DEVICE_PATH *DevicePath); >int >configtable_image_is_forbidden(const EFI_DEVICE_PATH *DevicePath); ># 164 "shim.h" 2 ># 1 "include/console.h" 1 ># 18 "include/console.h" >EFI_STATUS >console_get_keystroke(EFI_INPUT_KEY *key); >UINTN __attribute__((ms_abi)) >console_print(const CHAR16 *fmt, ...); >UINTN __attribute__((ms_abi)) >console_print_at(UINTN col, UINTN row, const CHAR16 *fmt, ...); >void >console_print_box_at(CHAR16 *str_arr[], int highlight, > int start_col, int start_row, > int size_cols, int size_rows, > int offset, int lines); >void >console_print_box(CHAR16 *str_arr[], int highlight); >int >console_yes_no(CHAR16 *str_arr[]); >int >console_select(CHAR16 *title[], CHAR16* selectors[], unsigned int start); >void >console_errorbox(CHAR16 *err); >void >console_error(CHAR16 *err, EFI_STATUS); >void >console_alertbox(CHAR16 **title); >void >console_notify(CHAR16 *string); >void >console_save_and_set_mode(SIMPLE_TEXT_OUTPUT_MODE * SavedMode); >void >console_restore_mode(SIMPLE_TEXT_OUTPUT_MODE * SavedMode); >int >console_countdown(CHAR16* title, const CHAR16* message, int timeout); >void >console_reset(void); >void >console_mode_handle(void); >void >clear_screen(void); > > > >typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL; > >typedef enum { > EfiConsoleControlScreenText, > EfiConsoleControlScreenGraphics, > EfiConsoleControlScreenMaxValue >} EFI_CONSOLE_CONTROL_SCREEN_MODE; > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) ( > EFI_CONSOLE_CONTROL_PROTOCOL *This, > EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode, > BOOLEAN *GopUgaExists, > BOOLEAN *StdInLocked > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) ( > EFI_CONSOLE_CONTROL_PROTOCOL *This, > EFI_CONSOLE_CONTROL_SCREEN_MODE Mode > ); > >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) ( > EFI_CONSOLE_CONTROL_PROTOCOL *This, > CHAR16 *Password > ); > >struct _EFI_CONSOLE_CONTROL_PROTOCOL { > EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode; > EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode; > EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn; >}; > >extern void console_fini(void); >extern void setup_verbosity(void); >extern UINT32 verbose; ># 113 "include/console.h" >extern EFI_STATUS __attribute__((ms_abi)) vdprint_(const CHAR16 *fmt, const char *file, int line, > const char *func, ms_va_list args); > > > > > > > >extern EFI_STATUS print_crypto_errors(EFI_STATUS rc, char *file, const char *func, int line); > > > >extern void usleep(unsigned long usecs); > > > > >extern UINT8 in_protocol; ># 165 "shim.h" 2 ># 1 "include/crypt_blowfish.h" 1 ># 29 "include/crypt_blowfish.h" >char *crypt_blowfish_rn(const char *key, const char *setting, > char *output, int size); ># 166 "shim.h" 2 ># 1 "include/efiauthenticated.h" 1 > > > > > ># 1 "include/wincert.h" 1 ># 9 "include/wincert.h" >typedef struct { > > > > > UINT32 dwLength; > > > > > UINT16 wRevision; > > > > > > UINT16 wCertificateType; > > > > > > >} WIN_CERTIFICATE; ># 7 "include/efiauthenticated.h" 2 > > > > > > > >#pragma pack(1) > >typedef struct { > > > > > EFI_GUID SignatureOwner; > > > > UINT8 SignatureData[1]; >} EFI_SIGNATURE_DATA; > >typedef struct { > > > > EFI_GUID SignatureType; > > > > UINT32 SignatureListSize; > > > > UINT32 SignatureHeaderSize; > > > > UINT32 SignatureSize; ># 54 "include/efiauthenticated.h" >} EFI_SIGNATURE_LIST; > >#pragma pack() ># 68 "include/efiauthenticated.h" >typedef struct { > EFI_GUID HashType; > UINT8 PublicKey[256]; > UINT8 Signature[256]; >} EFI_CERT_BLOCK_RSA_2048_SHA256; > > > > >typedef struct { > > > > > WIN_CERTIFICATE Hdr; > > > > EFI_GUID CertType; > > > > > > > UINT8 CertData[1]; >} WIN_CERTIFICATE_UEFI_GUID; ># 103 "include/efiauthenticated.h" >typedef struct { > > > > > WIN_CERTIFICATE Hdr; > > > > > EFI_GUID HashAlgorithm; ># 122 "include/efiauthenticated.h" >} WIN_CERTIFICATE_EFI_PKCS1_15; ># 151 "include/efiauthenticated.h" >typedef struct { > > > > > UINT64 MonotonicCount; > > > > > > > WIN_CERTIFICATE_UEFI_GUID AuthInfo; >} EFI_VARIABLE_AUTHENTICATION; ># 175 "include/efiauthenticated.h" >typedef struct { > > > > > > EFI_TIME TimeStamp; > > > > WIN_CERTIFICATE_UEFI_GUID AuthInfo; >} EFI_VARIABLE_AUTHENTICATION_2; ># 167 "shim.h" 2 ># 1 "include/errors.h" 1 ># 168 "shim.h" 2 ># 1 "include/execute.h" 1 > > > > > >EFI_STATUS >generate_path(CHAR16* name, EFI_LOADED_IMAGE *li, > EFI_DEVICE_PATH **path, CHAR16 **PathName); >EFI_STATUS >execute(EFI_HANDLE image, CHAR16 *name); ># 169 "shim.h" 2 ># 1 "include/guid.h" 1 > > > > > >extern EFI_GUID BDS_GUID; >extern EFI_GUID GV_GUID; >extern EFI_GUID SIG_DB; >extern EFI_GUID X509_GUID; >extern EFI_GUID RSA2048_GUID; >extern EFI_GUID PKCS7_GUID; >extern EFI_GUID IMAGE_PROTOCOL; >extern EFI_GUID EFI_FILE_INFO_GUID; >extern EFI_GUID EFI_FILE_SYSTEM_INFO_GUID; >extern EFI_GUID EFI_CERT_RSA2048_GUID; >extern EFI_GUID EFI_CERT_SHA1_GUID; >extern EFI_GUID EFI_CERT_SHA256_GUID; >extern EFI_GUID EFI_CERT_SHA224_GUID; >extern EFI_GUID EFI_CERT_SHA384_GUID; >extern EFI_GUID EFI_CERT_SHA512_GUID; >extern EFI_GUID EFI_CERT_TYPE_PKCS7_GUID; >extern EFI_GUID EFI_CERT_TYPE_RSA2048_SHA256_GUID; >extern EFI_GUID EFI_CERT_TYPE_X509_GUID; >extern EFI_GUID EFI_CONSOLE_CONTROL_GUID; >extern EFI_GUID EFI_HTTP_BINDING_GUID; >extern EFI_GUID EFI_HTTP_PROTOCOL_GUID; >extern EFI_GUID EFI_IP4_CONFIG2_GUID; >extern EFI_GUID EFI_IP6_CONFIG_GUID; >extern EFI_GUID EFI_LOADED_IMAGE_GUID; >extern EFI_GUID EFI_TPM_GUID; >extern EFI_GUID EFI_TPM2_GUID; >extern EFI_GUID EFI_CC_MEASUREMENT_PROTOCOL_GUID; >extern EFI_GUID EFI_SECURE_BOOT_DB_GUID; >extern EFI_GUID EFI_SIMPLE_FILE_SYSTEM_GUID; >extern EFI_GUID SECURITY_PROTOCOL_GUID; >extern EFI_GUID SECURITY2_PROTOCOL_GUID; >extern EFI_GUID EFI_MEMORY_ATTRIBUTE_PROTOCOL_GUID; >extern EFI_GUID SHIM_LOCK_GUID; >extern EFI_GUID MOK_VARIABLE_STORE; >extern EFI_GUID SECUREBOOT_EFI_NAMESPACE_GUID; ># 170 "shim.h" 2 ># 1 "include/http.h" 1 ># 16 "include/http.h" >typedef struct _EFI_HTTP_PROTOCOL EFI_HTTP_PROTOCOL; > > > > >typedef enum { > HttpVersion10, > HttpVersion11, > HttpVersionUnsupported >} EFI_HTTP_VERSION; > > > > >typedef enum { > HttpMethodGet, > HttpMethodPost, > HttpMethodPatch, > HttpMethodOptions, > HttpMethodConnect, > HttpMethodHead, > HttpMethodPut, > HttpMethodDelete, > HttpMethodTrace, > HttpMethodMax >} EFI_HTTP_METHOD; > > > > >typedef enum { > HTTP_STATUS_UNSUPPORTED_STATUS = 0, > HTTP_STATUS_100_CONTINUE, > HTTP_STATUS_101_SWITCHING_PROTOCOLS, > HTTP_STATUS_200_OK, > HTTP_STATUS_201_CREATED, > HTTP_STATUS_202_ACCEPTED, > HTTP_STATUS_203_NON_AUTHORITATIVE_INFORMATION, > HTTP_STATUS_204_NO_CONTENT, > HTTP_STATUS_205_RESET_CONTENT, > HTTP_STATUS_206_PARTIAL_CONTENT, > HTTP_STATUS_300_MULTIPLE_CHIOCES, > HTTP_STATUS_301_MOVED_PERMANENTLY, > HTTP_STATUS_302_FOUND, > HTTP_STATUS_303_SEE_OTHER, > HTTP_STATUS_304_NOT_MODIFIED, > HTTP_STATUS_305_USE_PROXY, > HTTP_STATUS_307_TEMPORARY_REDIRECT, > HTTP_STATUS_400_BAD_REQUEST, > HTTP_STATUS_401_UNAUTHORIZED, > HTTP_STATUS_402_PAYMENT_REQUIRED, > HTTP_STATUS_403_FORBIDDEN, > HTTP_STATUS_404_NOT_FOUND, > HTTP_STATUS_405_METHOD_NOT_ALLOWED, > HTTP_STATUS_406_NOT_ACCEPTABLE, > HTTP_STATUS_407_PROXY_AUTHENTICATION_REQUIRED, > HTTP_STATUS_408_REQUEST_TIME_OUT, > HTTP_STATUS_409_CONFLICT, > HTTP_STATUS_410_GONE, > HTTP_STATUS_411_LENGTH_REQUIRED, > HTTP_STATUS_412_PRECONDITION_FAILED, > HTTP_STATUS_413_REQUEST_ENTITY_TOO_LARGE, > HTTP_STATUS_414_REQUEST_URI_TOO_LARGE, > HTTP_STATUS_415_UNSUPPORTED_MEDIA_TYPE, > HTTP_STATUS_416_REQUESTED_RANGE_NOT_SATISFIED, > HTTP_STATUS_417_EXPECTATION_FAILED, > HTTP_STATUS_500_INTERNAL_SERVER_ERROR, > HTTP_STATUS_501_NOT_IMPLEMENTED, > HTTP_STATUS_502_BAD_GATEWAY, > HTTP_STATUS_503_SERVICE_UNAVAILABLE, > HTTP_STATUS_504_GATEWAY_TIME_OUT, > HTTP_STATUS_505_HTTP_VERSION_NOT_SUPPORTED >} EFI_HTTP_STATUS_CODE; > > > > >typedef struct { > > > > > > BOOLEAN UseDefaultAddress; > > > > > EFI_IPv4_ADDRESS LocalAddress; > > > > > EFI_IPv4_ADDRESS LocalSubnet; > > > > > UINT16 LocalPort; >} EFI_HTTPv4_ACCESS_POINT; > > > > >typedef struct { > > > > EFI_IPv6_ADDRESS LocalAddress; > > > > UINT16 LocalPort; >} EFI_HTTPv6_ACCESS_POINT; > > > > > > >typedef struct { > > > > EFI_HTTP_VERSION HttpVersion; > > > > UINT32 TimeOutMillisec; > > > > > > BOOLEAN LocalAddressIsIPv6; > > union { > > > > > EFI_HTTPv4_ACCESS_POINT *IPv4Node; > > > > > EFI_HTTPv6_ACCESS_POINT *IPv6Node; > } AccessPoint; >} EFI_HTTP_CONFIG_DATA; > > > > >typedef struct { > > > > EFI_HTTP_METHOD Method; > > > > > > > CHAR16 *Url; >} EFI_HTTP_REQUEST_DATA; > > > > >typedef struct { > > > > EFI_HTTP_STATUS_CODE StatusCode; >} EFI_HTTP_RESPONSE_DATA; > > > > >typedef struct { > > > > > CHAR8 *FieldName; > > > > > CHAR8 *FieldValue; >} EFI_HTTP_HEADER; > > > > >typedef struct { > > > > union { > > > > > EFI_HTTP_REQUEST_DATA *Request; > > > > > EFI_HTTP_RESPONSE_DATA *Response; > } Data; > > > > > UINTN HeaderCount; > > > > > > > EFI_HTTP_HEADER *Headers; > > > > UINTN BodyLength; > > > > > void *Body; >} EFI_HTTP_MESSAGE; > > > > > >typedef struct { > > > > > > EFI_EVENT Event; ># 273 "include/http.h" > EFI_STATUS Status; > > > > EFI_HTTP_MESSAGE *Message; >} EFI_HTTP_TOKEN; ># 299 "include/http.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) * EFI_HTTP_GET_MODE_DATA)( > EFI_HTTP_PROTOCOL *This, > EFI_HTTP_CONFIG_DATA *HttpConfigData > ); ># 338 "include/http.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) * EFI_HTTP_CONFIGURE)( > EFI_HTTP_PROTOCOL *This, > EFI_HTTP_CONFIG_DATA *HttpConfigData > ); ># 369 "include/http.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HTTP_REQUEST) ( > EFI_HTTP_PROTOCOL *This, > EFI_HTTP_TOKEN *Token > ); ># 397 "include/http.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HTTP_CANCEL)( > EFI_HTTP_PROTOCOL *This, > EFI_HTTP_TOKEN *Token > ); ># 451 "include/http.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HTTP_RESPONSE) ( > EFI_HTTP_PROTOCOL *This, > EFI_HTTP_TOKEN *Token > ); ># 477 "include/http.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_HTTP_POLL) ( > EFI_HTTP_PROTOCOL *This > ); > > > > > > > >struct _EFI_HTTP_PROTOCOL { > EFI_HTTP_GET_MODE_DATA GetModeData; > EFI_HTTP_CONFIGURE Configure; > EFI_HTTP_REQUEST Request; > EFI_HTTP_CANCEL Cancel; > EFI_HTTP_RESPONSE Response; > EFI_HTTP_POLL Poll; >}; ># 171 "shim.h" 2 ># 1 "include/httpboot.h" 1 ># 13 "include/httpboot.h" >extern BOOLEAN find_httpboot(EFI_HANDLE device); >extern EFI_STATUS httpboot_fetch_buffer(EFI_HANDLE image, void **buffer, > UINT64 *buf_size); ># 172 "shim.h" 2 ># 1 "include/ip4config2.h" 1 ># 12 "include/ip4config2.h" >typedef struct _EFI_IP4_CONFIG2_PROTOCOL EFI_IP4_CONFIG2_PROTOCOL; > > > > > >typedef enum { > > > > > > > Ip4Config2DataTypeInterfaceInfo, > > > > > > > > Ip4Config2DataTypePolicy, > > > > > > > Ip4Config2DataTypeManualAddress, ># 49 "include/ip4config2.h" > Ip4Config2DataTypeGateway, ># 58 "include/ip4config2.h" > Ip4Config2DataTypeDnsServer, > Ip4Config2DataTypeMaximum >} EFI_IP4_CONFIG2_DATA_TYPE; ># 70 "include/ip4config2.h" >typedef struct { > > > > CHAR16 Name[32]; > > > > > UINT8 IfType; > > > > UINT32 HwAddressSize; > > > > EFI_MAC_ADDRESS HwAddress; > > > > EFI_IPv4_ADDRESS StationAddress; > > > > EFI_IPv4_ADDRESS SubnetMask; > > > > UINT32 RouteTableSize; > > > > > > EFI_IP4_ROUTE_TABLE *RouteTable ; >} EFI_IP4_CONFIG2_INTERFACE_INFO; > > > > >typedef enum { > > > > > > > > Ip4Config2PolicyStatic, > > > > > > > Ip4Config2PolicyDhcp, > Ip4Config2PolicyMax >} EFI_IP4_CONFIG2_POLICY; > > > > >typedef struct { > > > > EFI_IPv4_ADDRESS Address; > > > > EFI_IPv4_ADDRESS SubnetMask; >} EFI_IP4_CONFIG2_MANUAL_ADDRESS; ># 186 "include/ip4config2.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_CONFIG2_SET_DATA) ( > EFI_IP4_CONFIG2_PROTOCOL *This, > EFI_IP4_CONFIG2_DATA_TYPE DataType, > UINTN DataSize, > void *Data > ); ># 228 "include/ip4config2.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_CONFIG2_GET_DATA) ( > EFI_IP4_CONFIG2_PROTOCOL *This, > EFI_IP4_CONFIG2_DATA_TYPE DataType, > UINTN *DataSize, > void *Data > ); ># 257 "include/ip4config2.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_CONFIG2_REGISTER_NOTIFY) ( > EFI_IP4_CONFIG2_PROTOCOL *This, > EFI_IP4_CONFIG2_DATA_TYPE DataType, > EFI_EVENT Event > ); ># 278 "include/ip4config2.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP4_CONFIG2_UNREGISTER_NOTIFY) ( > EFI_IP4_CONFIG2_PROTOCOL *This, > EFI_IP4_CONFIG2_DATA_TYPE DataType, > EFI_EVENT Event > ); > > > > > > > >struct _EFI_IP4_CONFIG2_PROTOCOL { > EFI_IP4_CONFIG2_SET_DATA SetData; > EFI_IP4_CONFIG2_GET_DATA GetData; > EFI_IP4_CONFIG2_REGISTER_NOTIFY RegisterDataNotify; > EFI_IP4_CONFIG2_UNREGISTER_NOTIFY UnregisterDataNotify; >}; ># 173 "shim.h" 2 ># 1 "include/ip6config.h" 1 ># 11 "include/ip6config.h" >typedef struct _EFI_IP6_CONFIG_PROTOCOL EFI_IP6_CONFIG_PROTOCOL; > > > > >typedef enum { > > > > > > > Ip6ConfigDataTypeInterfaceInfo, ># 33 "include/ip6config.h" > Ip6ConfigDataTypeAltInterfaceId, > > > > > > > > Ip6ConfigDataTypePolicy, ># 50 "include/ip6config.h" > Ip6ConfigDataTypeDupAddrDetectTransmits, > > > > > > > Ip6ConfigDataTypeManualAddress, ># 66 "include/ip6config.h" > Ip6ConfigDataTypeGateway, ># 75 "include/ip6config.h" > Ip6ConfigDataTypeDnsServer, > > > > Ip6ConfigDataTypeMaximum >} EFI_IP6_CONFIG_DATA_TYPE; > > > > > > >typedef struct { > > > > CHAR16 Name[32]; > > > > UINT8 IfType; > > > > UINT32 HwAddressSize; > > > > EFI_MAC_ADDRESS HwAddress; > > > > UINT32 AddressInfoCount; > > > > > > > EFI_IP6_ADDRESS_INFO *AddressInfo; > > > > UINT32 RouteCount; > > > > > EFI_IP6_ROUTE_TABLE *RouteTable; >} EFI_IP6_CONFIG_INTERFACE_INFO; > > > > > >typedef struct { > UINT8 Id[8]; >} EFI_IP6_CONFIG_INTERFACE_ID; > > > > > > >typedef enum { ># 148 "include/ip6config.h" > Ip6ConfigPolicyManual, ># 160 "include/ip6config.h" > Ip6ConfigPolicyAutomatic >} EFI_IP6_CONFIG_POLICY; > > > > > > > >typedef struct { > UINT32 DupAddrDetectTransmits; >} EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS; > > > > > > >typedef struct { > EFI_IPv6_ADDRESS Address; > BOOLEAN IsAnycast; > UINT8 PrefixLength; >} EFI_IP6_CONFIG_MANUAL_ADDRESS; ># 233 "include/ip6config.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_CONFIG_SET_DATA)( > EFI_IP6_CONFIG_PROTOCOL *This, > EFI_IP6_CONFIG_DATA_TYPE DataType, > UINTN DataSize, > void *Data > ); ># 279 "include/ip6config.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_CONFIG_GET_DATA)( > EFI_IP6_CONFIG_PROTOCOL *This, > EFI_IP6_CONFIG_DATA_TYPE DataType, > UINTN *DataSize, > void *Data > ); ># 310 "include/ip6config.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_CONFIG_REGISTER_NOTIFY)( > EFI_IP6_CONFIG_PROTOCOL *This, > EFI_IP6_CONFIG_DATA_TYPE DataType, > EFI_EVENT Event > ); ># 333 "include/ip6config.h" >typedef >EFI_STATUS >(__attribute__((ms_abi)) *EFI_IP6_CONFIG_UNREGISTER_NOTIFY)( > EFI_IP6_CONFIG_PROTOCOL *This, > EFI_IP6_CONFIG_DATA_TYPE DataType, > EFI_EVENT Event > ); > > > > > >struct _EFI_IP6_CONFIG_PROTOCOL { > EFI_IP6_CONFIG_SET_DATA SetData; > EFI_IP6_CONFIG_GET_DATA GetData; > EFI_IP6_CONFIG_REGISTER_NOTIFY RegisterDataNotify; > EFI_IP6_CONFIG_UNREGISTER_NOTIFY UnregisterDataNotify; >}; ># 174 "shim.h" 2 ># 1 "include/load-options.h" 1 ># 9 "include/load-options.h" >EFI_STATUS generate_path_from_image_path(EFI_LOADED_IMAGE *li, > CHAR16 *ImagePath, > CHAR16 **PathName); > >EFI_STATUS parse_load_options(EFI_LOADED_IMAGE *li); > >extern CHAR16 *second_stage; >extern void *load_options; >extern UINT32 load_options_size; ># 175 "shim.h" 2 ># 1 "include/mok.h" 1 ># 10 "include/mok.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/shim.h" 1 ># 11 "include/mok.h" 2 > >typedef enum { > VENDOR_ADDEND_DB, > VENDOR_ADDEND_X509, > VENDOR_ADDEND_NONE, >} vendor_addend_category_t; > >struct mok_state_variable; >typedef vendor_addend_category_t (vendor_addend_categorizer_t)(struct mok_state_variable *); > > > > > > > >struct mok_state_variable { > CHAR16 *name; > char *name8; > CHAR16 *rtname; > char *rtname8; > EFI_GUID *guid; > > > > > > UINT8 *data; > UINTN data_size; ># 48 "include/mok.h" > vendor_addend_categorizer_t *categorize_addend; ># 59 "include/mok.h" > UINT8 **addend; > UINT32 *addend_size; > > UINT8 **user_cert; > UINT32 *user_cert_size; ># 73 "include/mok.h" > UINT8 **build_cert; > UINT32 *build_cert_size; > > UINT32 yes_attr; > UINT32 no_attr; > UINT32 flags; > > > > > > > UINTN pcr; > > > > > > UINT8 *state; >}; > >extern size_t n_mok_state_variables; >extern struct mok_state_variable *mok_state_variables; > >struct mok_variable_config_entry { > CHAR8 name[256]; > UINT64 data_size; > UINT8 data[]; >}; ># 176 "shim.h" 2 ># 1 "include/netboot.h" 1 > > > > > >extern BOOLEAN findNetboot(EFI_HANDLE image_handle); > >extern EFI_STATUS parseNetbootinfo(EFI_HANDLE image_handle); > >extern EFI_STATUS FetchNetbootimage(EFI_HANDLE image_handle, void **buffer, UINT64 *bufsiz); ># 177 "shim.h" 2 ># 1 "include/passwordcrypt.h" 1 > > > > > >enum HashMethod { > TRADITIONAL_DES = 0, > EXTEND_BSDI_DES, > MD5_BASED, > SHA256_BASED, > SHA512_BASED, > BLOWFISH_BASED >}; > >typedef struct { > UINT16 method; > UINT64 iter_count; > UINT16 salt_size; > UINT8 salt[32]; > UINT8 hash[128]; >} __attribute__ ((packed)) PASSWORD_CRYPT; > > > >EFI_STATUS password_crypt (const char *password, UINT32 pw_length, > const PASSWORD_CRYPT *pw_hash, UINT8 *hash); >UINT16 get_hash_size (const UINT16 method); ># 178 "shim.h" 2 ># 1 "include/peimage.h" 1 ># 66 "include/peimage.h" >typedef struct { > UINT16 e_magic; > UINT16 e_cblp; > UINT16 e_cp; > UINT16 e_crlc; > UINT16 e_cparhdr; > UINT16 e_minalloc; > UINT16 e_maxalloc; > UINT16 e_ss; > UINT16 e_sp; > UINT16 e_csum; > UINT16 e_ip; > UINT16 e_cs; > UINT16 e_lfarlc; > UINT16 e_ovno; > UINT16 e_res[4]; > UINT16 e_oemid; > UINT16 e_oeminfo; > UINT16 e_res2[10]; > UINT32 e_lfanew; >} EFI_IMAGE_DOS_HEADER; > > > > >typedef struct { > UINT16 Machine; > UINT16 NumberOfSections; > UINT32 TimeDateStamp; > UINT32 PointerToSymbolTable; > UINT32 NumberOfSymbols; > UINT16 SizeOfOptionalHeader; > UINT16 Characteristics; >} EFI_IMAGE_FILE_HEADER; ># 123 "include/peimage.h" >typedef struct { > UINT32 VirtualAddress; > UINT32 Size; >} EFI_IMAGE_DATA_DIRECTORY; ># 156 "include/peimage.h" >typedef struct { > > > > UINT16 Magic; > UINT8 MajorLinkerVersion; > UINT8 MinorLinkerVersion; > UINT32 SizeOfCode; > UINT32 SizeOfInitializedData; > UINT32 SizeOfUninitializedData; > UINT32 AddressOfEntryPoint; > UINT32 BaseOfCode; > UINT32 BaseOfData; > > > > UINT32 ImageBase; > UINT32 SectionAlignment; > UINT32 FileAlignment; > UINT16 MajorOperatingSystemVersion; > UINT16 MinorOperatingSystemVersion; > UINT16 MajorImageVersion; > UINT16 MinorImageVersion; > UINT16 MajorSubsystemVersion; > UINT16 MinorSubsystemVersion; > UINT32 Win32VersionValue; > UINT32 SizeOfImage; > UINT32 SizeOfHeaders; > UINT32 CheckSum; > UINT16 Subsystem; > UINT16 DllCharacteristics; > UINT32 SizeOfStackReserve; > UINT32 SizeOfStackCommit; > UINT32 SizeOfHeapReserve; > UINT32 SizeOfHeapCommit; > UINT32 LoaderFlags; > UINT32 NumberOfRvaAndSizes; > EFI_IMAGE_DATA_DIRECTORY DataDirectory[16]; >} EFI_IMAGE_OPTIONAL_HEADER32; ># 207 "include/peimage.h" >typedef struct { > > > > UINT16 Magic; > UINT8 MajorLinkerVersion; > UINT8 MinorLinkerVersion; > UINT32 SizeOfCode; > UINT32 SizeOfInitializedData; > UINT32 SizeOfUninitializedData; > UINT32 AddressOfEntryPoint; > UINT32 BaseOfCode; > > > > UINT64 ImageBase; > UINT32 SectionAlignment; > UINT32 FileAlignment; > UINT16 MajorOperatingSystemVersion; > UINT16 MinorOperatingSystemVersion; > UINT16 MajorImageVersion; > UINT16 MinorImageVersion; > UINT16 MajorSubsystemVersion; > UINT16 MinorSubsystemVersion; > UINT32 Win32VersionValue; > UINT32 SizeOfImage; > UINT32 SizeOfHeaders; > UINT32 CheckSum; > UINT16 Subsystem; > UINT16 DllCharacteristics; > UINT64 SizeOfStackReserve; > UINT64 SizeOfStackCommit; > UINT64 SizeOfHeapReserve; > UINT64 SizeOfHeapCommit; > UINT32 LoaderFlags; > UINT32 NumberOfRvaAndSizes; > EFI_IMAGE_DATA_DIRECTORY DataDirectory[16]; >} EFI_IMAGE_OPTIONAL_HEADER64; ># 269 "include/peimage.h" >typedef struct { > UINT32 Signature; > EFI_IMAGE_FILE_HEADER FileHeader; > EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader; >} EFI_IMAGE_NT_HEADERS32; > > > > > > > >typedef struct { > UINT32 Signature; > EFI_IMAGE_FILE_HEADER FileHeader; > EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader; >} EFI_IMAGE_NT_HEADERS64; ># 307 "include/peimage.h" >typedef struct { > UINT8 Name[8]; > union { > UINT32 PhysicalAddress; > UINT32 VirtualSize; > } Misc; > UINT32 VirtualAddress; > UINT32 SizeOfRawData; > UINT32 PointerToRawData; > UINT32 PointerToRelocations; > UINT32 PointerToLinenumbers; > UINT16 NumberOfRelocations; > UINT16 NumberOfLinenumbers; > UINT32 Characteristics; >} EFI_IMAGE_SECTION_HEADER; ># 479 "include/peimage.h" >typedef struct { > UINT32 VirtualAddress; > UINT32 SymbolTableIndex; > UINT16 Type; >} EFI_IMAGE_RELOCATION; ># 527 "include/peimage.h" >typedef struct { > UINT32 VirtualAddress; > UINT32 SizeOfBlock; >} EFI_IMAGE_BASE_RELOCATION; ># 555 "include/peimage.h" >typedef struct { > union { > UINT32 SymbolTableIndex; > UINT32 VirtualAddress; > } Type; > UINT16 Linenumber; >} EFI_IMAGE_LINENUMBER; ># 581 "include/peimage.h" >typedef struct { > UINT8 Name[16]; > UINT8 Date[12]; > UINT8 UserID[6]; > UINT8 GroupID[6]; > UINT8 Mode[8]; > UINT8 Size[10]; > UINT8 EndHeader[2]; >} EFI_IMAGE_ARCHIVE_MEMBER_HEADER; ># 604 "include/peimage.h" >typedef struct { > UINT32 Characteristics; > UINT32 TimeDateStamp; > UINT16 MajorVersion; > UINT16 MinorVersion; > UINT32 Name; > UINT32 Base; > UINT32 NumberOfFunctions; > UINT32 NumberOfNames; > UINT32 AddressOfFunctions; > UINT32 AddressOfNames; > UINT32 AddressOfNameOrdinals; >} EFI_IMAGE_EXPORT_DIRECTORY; > > > > >typedef struct { > UINT16 Hint; > UINT8 Name[1]; >} EFI_IMAGE_IMPORT_BY_NAME; > > > > >typedef struct { > union { > UINT32 Function; > UINT32 Ordinal; > EFI_IMAGE_IMPORT_BY_NAME *AddressOfData; > } u1; >} EFI_IMAGE_THUNK_DATA; ># 644 "include/peimage.h" >typedef struct { > UINT32 Characteristics; > UINT32 TimeDateStamp; > UINT32 ForwarderChain; > UINT32 Name; > EFI_IMAGE_THUNK_DATA *FirstThunk; >} EFI_IMAGE_IMPORT_DESCRIPTOR; > > > > > >typedef struct { > UINT32 Characteristics; > UINT32 TimeDateStamp; > UINT16 MajorVersion; > UINT16 MinorVersion; > UINT32 Type; > UINT32 SizeOfData; > UINT32 RVA; > UINT32 FileOffset; >} EFI_IMAGE_DEBUG_DIRECTORY_ENTRY; > > > > > > > >typedef struct { > UINT32 Signature; > UINT32 Unknown; > UINT32 Unknown2; > UINT32 Unknown3; > > > >} EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY; > > > > > >typedef struct { > UINT32 Signature; > UINT32 Unknown; > UINT32 Unknown2; > UINT32 Unknown3; > UINT32 Unknown4; > UINT32 Unknown5; > > > >} EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY; > > > > > > >typedef struct { > UINT32 Signature; > EFI_GUID MachOUuid; > > > >} EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY; > > > > >typedef struct { > UINT32 Characteristics; > UINT32 TimeDateStamp; > UINT16 MajorVersion; > UINT16 MinorVersion; > UINT16 NumberOfNamedEntries; > UINT16 NumberOfIdEntries; > > > >} EFI_IMAGE_RESOURCE_DIRECTORY; > > > > >typedef struct { > union { > struct { > UINT32 NameOffset:31; > UINT32 NameIsString:1; > } s; > UINT32 Id; > } u1; > union { > UINT32 OffsetToData; > struct { > UINT32 OffsetToDirectory:31; > UINT32 DataIsDirectory:1; > } s; > } u2; >} EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY; > > > > >typedef struct { > UINT16 Length; > CHAR16 String[1]; >} EFI_IMAGE_RESOURCE_DIRECTORY_STRING; > > > > >typedef struct { > UINT32 OffsetToData; > UINT32 Size; > UINT32 CodePage; > UINT32 Reserved; >} EFI_IMAGE_RESOURCE_DATA_ENTRY; > > > > >typedef struct { > UINT16 Signature; > UINT16 Machine; > UINT8 NumberOfSections; > UINT8 Subsystem; > UINT16 StrippedSize; > UINT32 AddressOfEntryPoint; > UINT32 BaseOfCode; > UINT64 ImageBase; > EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; >} EFI_TE_IMAGE_HEADER; ># 793 "include/peimage.h" >typedef union { > EFI_IMAGE_NT_HEADERS32 Pe32; > EFI_IMAGE_NT_HEADERS64 Pe32Plus; > EFI_TE_IMAGE_HEADER Te; >} EFI_IMAGE_OPTIONAL_HEADER_UNION; > >typedef union { > EFI_IMAGE_NT_HEADERS32 *Pe32; > EFI_IMAGE_NT_HEADERS64 *Pe32Plus; > EFI_TE_IMAGE_HEADER *Te; > EFI_IMAGE_OPTIONAL_HEADER_UNION *Union; >} EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION; > >typedef struct { > WIN_CERTIFICATE Hdr; > UINT8 CertData[1]; >} WIN_CERTIFICATE_EFI_PKCS; > > > > > >typedef struct { > UINT64 ImageAddress; > UINT64 ImageSize; > UINT64 EntryPoint; > UINTN SizeOfHeaders; > UINT16 ImageType; > UINT16 NumberOfSections; > UINT32 SectionAlignment; > EFI_IMAGE_SECTION_HEADER *FirstSection; > EFI_IMAGE_DATA_DIRECTORY *RelocDir; > EFI_IMAGE_DATA_DIRECTORY *SecDir; > UINT64 NumberOfRvaAndSizes; > EFI_IMAGE_OPTIONAL_HEADER_UNION *PEHdr; >} PE_COFF_LOADER_IMAGE_CONTEXT; ># 179 "shim.h" 2 ># 1 "include/pe.h" 1 ># 10 "include/pe.h" >void * >ImageAddress (void *image, uint64_t size, uint64_t address); > >EFI_STATUS >read_header(void *data, unsigned int datasize, > PE_COFF_LOADER_IMAGE_CONTEXT *context); > >EFI_STATUS verify_image(void *data, unsigned int datasize, > EFI_LOADED_IMAGE *li, > PE_COFF_LOADER_IMAGE_CONTEXT *context); > >EFI_STATUS >verify_sbat_section(char *SBATBase, size_t SBATSize); > >EFI_STATUS >get_section_vma (UINTN section_num, > char *buffer, size_t bufsz __attribute__((__unused__)), > PE_COFF_LOADER_IMAGE_CONTEXT *context, > char **basep, size_t *sizep, > EFI_IMAGE_SECTION_HEADER **sectionp); > >EFI_STATUS >get_section_vma_by_name (char *name, size_t namesz, > char *buffer, size_t bufsz, > PE_COFF_LOADER_IMAGE_CONTEXT *context, > char **basep, size_t *sizep, > EFI_IMAGE_SECTION_HEADER **sectionp); > >EFI_STATUS >handle_image (void *data, unsigned int datasize, > EFI_LOADED_IMAGE *li, > EFI_IMAGE_ENTRY_POINT *entry_point, > EFI_PHYSICAL_ADDRESS *alloc_address, > UINTN *alloc_pages); > >EFI_STATUS >generate_hash (char *data, unsigned int datasize, > PE_COFF_LOADER_IMAGE_CONTEXT *context, > UINT8 *sha256hash, UINT8 *sha1hash); > >EFI_STATUS >relocate_coff (PE_COFF_LOADER_IMAGE_CONTEXT *context, > EFI_IMAGE_SECTION_HEADER *Section, > void *orig, void *data); ># 180 "shim.h" 2 ># 1 "include/replacements.h" 1 ># 10 "include/replacements.h" >extern EFI_SYSTEM_TABLE *get_active_systab(void); > >typedef enum { > VERIFIED_BY_NOTHING, > VERIFIED_BY_CERT, > VERIFIED_BY_HASH >} verification_method_t; > >extern verification_method_t verification_method; >extern int loader_is_participating; > >extern void hook_system_services(EFI_SYSTEM_TABLE *local_systab); >extern void unhook_system_services(void); > >extern void hook_exit(EFI_SYSTEM_TABLE *local_systab); >extern void unhook_exit(void); > >extern EFI_STATUS install_shim_protocols(void); >extern void uninstall_shim_protocols(void); ># 181 "shim.h" 2 ># 1 "include/sbat.h" 1 ># 41 "include/sbat.h" >extern UINTN _sbat, _esbat; > >struct sbat_var_entry { > const CHAR8 *component_name; > const CHAR8 *component_generation; > > > > const CHAR8 *sbat_datestamp; > list_t list; >}; >extern list_t sbat_var; > > > >EFI_STATUS parse_sbat_var(list_t *entries, char *sbat_var_candidate); >void cleanup_sbat_var(list_t *entries); >EFI_STATUS set_sbat_uefi_variable_internal(void); >EFI_STATUS set_sbat_uefi_variable(char *, char *); > ># 60 "include/sbat.h" 3 4 >_Bool ># 60 "include/sbat.h" > preserve_sbat_uefi_variable(UINT8 *sbat, UINTN sbatsize, > UINT32 attributes, char *sbar_var); > >struct sbat_section_entry { > const CHAR8 *component_name; > const CHAR8 *component_generation; > const CHAR8 *vendor_name; > const CHAR8 *vendor_package_name; > const CHAR8 *vendor_version; > const CHAR8 *vendor_url; >}; > > >EFI_STATUS >parse_sbat_section(char *section_base, size_t section_size, size_t *n, > struct sbat_section_entry ***entriesp); >void cleanup_sbat_section_entries(size_t n, struct sbat_section_entry **entries); > >EFI_STATUS verify_sbat(size_t n, struct sbat_section_entry **entries); ># 182 "shim.h" 2 ># 1 "include/sbat_var_defs.h" 1 ># 183 "shim.h" 2 ># 1 "include/ssp.h" 1 ># 11 "include/ssp.h" >EFI_STATUS set_ssp_uefi_variable_internal(void); >EFI_STATUS set_ssp_uefi_variable(uint8_t*, uint8_t*, uint8_t*, uint8_t*); ># 184 "shim.h" 2 > > > ># 1 "include/simple_file.h" 1 > > > > > >EFI_STATUS >simple_file_open (EFI_HANDLE image, CHAR16 *name, EFI_FILE **file, UINT64 mode); >EFI_STATUS >simple_file_open_by_handle(EFI_HANDLE device, CHAR16 *name, EFI_FILE **file, UINT64 mode); >EFI_STATUS >simple_file_read_all(EFI_FILE *file, UINTN *size, void **buffer); >EFI_STATUS >simple_file_write_all(EFI_FILE *file, UINTN size, void *buffer); >EFI_STATUS >simple_dir_read_all(EFI_HANDLE image, CHAR16 *name, EFI_FILE_INFO **Entries, > int *count); >EFI_STATUS >simple_dir_filter(EFI_HANDLE image, CHAR16 *name, CHAR16 *filter, > CHAR16 ***result, int *count, EFI_FILE_INFO **entries); >void >simple_file_selector(EFI_HANDLE *im, CHAR16 **title, CHAR16 *name, > CHAR16 *filter, CHAR16 **result); >EFI_STATUS >simple_volume_selector(CHAR16 **title, CHAR16 **selected, EFI_HANDLE *h); ># 188 "shim.h" 2 ># 1 "include/str.h" 1 ># 10 "include/str.h" >#pragma GCC diagnostic ignored "-Wnonnull-compare" > > > >static inline __attribute__((__unused__)) __attribute__((__returns_nonnull__)) __attribute__((__nonnull__(1))) >char * >strnchrnul(const char *s, size_t max, int c) >{ > unsigned int i; > > if (!s || !max) > return (char *)s; > > for (i = 0; i < max && s[i] != '\0' && s[i] != c; i++) > ; > > if (i == max) > i--; > > return (char *)&s[i]; >} ># 63 "include/str.h" >static inline __attribute__((__unused__)) __attribute__((__nonnull__(1, 3, 4))) int >strntoken(char *str, size_t max, const char *delims, char **token, char *state) >{ > char *tokend; > const char *delim; > int isdelim = 0; > int state_is_delim = 0; > > if (!str || !max || !delims || !token || !state) > return 0; > > tokend = &str[max-1]; > > > > > > if (*token == ># 80 "include/str.h" 3 4 > ((void *)0) ># 80 "include/str.h" > && max == 1 && *str == '\0') { > state_is_delim = 1; > } > > for (delim = delims; *delim; delim++) { > char *tmp = ># 85 "include/str.h" 3 4 > ((void *)0) ># 85 "include/str.h" > ; > if (*token && *delim == *state) > state_is_delim = 1; > tmp = strnchrnul(str, max, *delim); > if (tmp < tokend) > tokend = tmp; > if (*tokend == *delim) > isdelim = 1; > } > *token = str; > if (isdelim) { > *state = *tokend; > *tokend = '\0'; > return 1; > } > return state_is_delim; >} > > > > >static inline __attribute__((__unused__)) __attribute__((__nonnull__(1))) BOOLEAN >is_utf8_bom(CHAR8 *buf, size_t bufsize) >{ > unsigned char bom[] = { 0xef, 0xbb, 0xbf }; > > return CompareMem(buf, bom, ({(3) < (bufsize) ? (3) : (bufsize);})) == 0; >} ># 135 "include/str.h" >struct csv_row { > list_t list; > size_t n_columns; > char *columns[0]; >}; > >EFI_STATUS parse_csv_data(char *data, char *end, size_t n_columns, > list_t *list); >void free_csv_list(list_t *list); ># 189 "shim.h" 2 ># 1 "include/tpm.h" 1 > > > > > > > >EFI_STATUS tpm_log_event(EFI_PHYSICAL_ADDRESS buf, UINTN size, UINT8 pcr, > const CHAR8 *description); >EFI_STATUS fallback_should_prefer_reset(void); > >EFI_STATUS tpm_log_pe(EFI_PHYSICAL_ADDRESS buf, UINTN size, > EFI_PHYSICAL_ADDRESS addr, EFI_DEVICE_PATH *path, > UINT8 *sha1hash, UINT8 pcr); > >EFI_STATUS tpm_measure_variable(CHAR16 *dbname, EFI_GUID guid, UINTN size, void *data); > >typedef struct { > uint8_t Major; > uint8_t Minor; > uint8_t RevMajor; > uint8_t RevMinor; >} TCG_VERSION; > >typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY { > uint8_t Size; > TCG_VERSION StructureVersion; > TCG_VERSION ProtocolSpecVersion; > uint8_t HashAlgorithmBitmap; > char TPMPresentFlag; > char TPMDeactivatedFlag; >} TCG_EFI_BOOT_SERVICE_CAPABILITY; > >typedef struct _TCG_PCR_EVENT { > uint32_t PCRIndex; > uint32_t EventType; > uint8_t digest[20]; > uint32_t EventSize; > uint8_t Event[1]; >} TCG_PCR_EVENT; > >typedef struct _EFI_IMAGE_LOAD_EVENT { > EFI_PHYSICAL_ADDRESS ImageLocationInMemory; > UINTN ImageLengthInMemory; > UINTN ImageLinkTimeAddress; > UINTN LengthOfDevicePath; > EFI_DEVICE_PATH DevicePath[0]; >} EFI_IMAGE_LOAD_EVENT; > >struct efi_tpm_protocol >{ > EFI_STATUS (__attribute__((ms_abi)) *status_check) (struct efi_tpm_protocol *this, > TCG_EFI_BOOT_SERVICE_CAPABILITY *ProtocolCapability, > uint32_t *TCGFeatureFlags, > EFI_PHYSICAL_ADDRESS *EventLogLocation, > EFI_PHYSICAL_ADDRESS *EventLogLastEntry); > EFI_STATUS (__attribute__((ms_abi)) *hash_all) (struct efi_tpm_protocol *this, > uint8_t *HashData, > uint64_t HashLen, > uint32_t AlgorithmId, > uint64_t *HashedDataLen, > uint8_t **HashedDataResult); > EFI_STATUS (__attribute__((ms_abi)) *log_event) (struct efi_tpm_protocol *this, > TCG_PCR_EVENT *TCGLogData, > uint32_t *EventNumber, > uint32_t Flags); > EFI_STATUS (__attribute__((ms_abi)) *pass_through_to_tpm) (struct efi_tpm_protocol *this, > uint32_t TpmInputParameterBlockSize, > uint8_t *TpmInputParameterBlock, > uint32_t TpmOutputParameterBlockSize, > uint8_t *TpmOutputParameterBlock); > EFI_STATUS (__attribute__((ms_abi)) *log_extend_event) (struct efi_tpm_protocol *this, > EFI_PHYSICAL_ADDRESS HashData, > uint64_t HashDataLen, > uint32_t AlgorithmId, > TCG_PCR_EVENT *TCGLogData, > uint32_t *EventNumber, > EFI_PHYSICAL_ADDRESS *EventLogLastEntry); >}; > >typedef struct efi_tpm_protocol efi_tpm_protocol_t; > >typedef uint32_t TREE_EVENT_LOG_BITMAP; > >typedef uint32_t EFI_TCG2_EVENT_LOG_BITMAP; >typedef uint32_t EFI_TCG2_EVENT_LOG_FORMAT; >typedef uint32_t EFI_TCG2_EVENT_ALGORITHM_BITMAP; > >typedef struct tdTREE_VERSION { > uint8_t Major; > uint8_t Minor; >} TREE_VERSION; > >typedef struct tdEFI_TCG2_VERSION { > uint8_t Major; > uint8_t Minor; >} EFI_TCG2_VERSION; > >typedef struct tdTREE_BOOT_SERVICE_CAPABILITY { > uint8_t Size; > TREE_VERSION StructureVersion; > TREE_VERSION ProtocolVersion; > uint32_t HashAlgorithmBitmap; > TREE_EVENT_LOG_BITMAP SupportedEventLogs; > BOOLEAN TrEEPresentFlag; > uint16_t MaxCommandSize; > uint16_t MaxResponseSize; > uint32_t ManufacturerID; >} TREE_BOOT_SERVICE_CAPABILITY; > >typedef struct tdEFI_TCG2_BOOT_SERVICE_CAPABILITY { > uint8_t Size; > EFI_TCG2_VERSION StructureVersion; > EFI_TCG2_VERSION ProtocolVersion; > EFI_TCG2_EVENT_ALGORITHM_BITMAP HashAlgorithmBitmap; > EFI_TCG2_EVENT_LOG_BITMAP SupportedEventLogs; > BOOLEAN TPMPresentFlag; > uint16_t MaxCommandSize; > uint16_t MaxResponseSize; > uint32_t ManufacturerID; > uint32_t NumberOfPcrBanks; > EFI_TCG2_EVENT_ALGORITHM_BITMAP ActivePcrBanks; >} EFI_TCG2_BOOT_SERVICE_CAPABILITY; > >typedef uint32_t TCG_PCRINDEX; >typedef uint32_t TCG_EVENTTYPE; > >typedef struct tdEFI_TCG2_EVENT_HEADER { > uint32_t HeaderSize; > uint16_t HeaderVersion; > TCG_PCRINDEX PCRIndex; > TCG_EVENTTYPE EventType; >} __attribute__ ((packed)) EFI_TCG2_EVENT_HEADER; > >typedef struct tdEFI_TCG2_EVENT { > uint32_t Size; > EFI_TCG2_EVENT_HEADER Header; > uint8_t Event[1]; >} __attribute__ ((packed)) EFI_TCG2_EVENT; > > > > >struct efi_tpm2_protocol >{ > EFI_STATUS (__attribute__((ms_abi)) *get_capability) (struct efi_tpm2_protocol *this, > EFI_TCG2_BOOT_SERVICE_CAPABILITY *ProtocolCapability); > EFI_STATUS (__attribute__((ms_abi)) *get_event_log) (struct efi_tpm2_protocol *this, > EFI_TCG2_EVENT_LOG_FORMAT EventLogFormat, > EFI_PHYSICAL_ADDRESS *EventLogLocation, > EFI_PHYSICAL_ADDRESS *EventLogLastEntry, > BOOLEAN *EventLogTruncated); > EFI_STATUS (__attribute__((ms_abi)) *hash_log_extend_event) (struct efi_tpm2_protocol *this, > uint64_t Flags, > EFI_PHYSICAL_ADDRESS DataToHash, > uint64_t DataToHashLen, > EFI_TCG2_EVENT *EfiTcgEvent); > EFI_STATUS (__attribute__((ms_abi)) *submit_command) (struct efi_tpm2_protocol *this, > uint32_t InputParameterBlockSize, > uint8_t *InputParameterBlock, > uint32_t OutputParameterBlockSize, > uint8_t *OutputParameterBlock); > EFI_STATUS (__attribute__((ms_abi)) *get_active_pcr_blanks) (struct efi_tpm2_protocol *this, > uint32_t *ActivePcrBanks); > EFI_STATUS (__attribute__((ms_abi)) *set_active_pcr_banks) (struct efi_tpm2_protocol *this, > uint32_t ActivePcrBanks); > EFI_STATUS (__attribute__((ms_abi)) *get_result_of_set_active_pcr_banks) (struct efi_tpm2_protocol *this, > uint32_t *OperationPresent, > uint32_t *Response); >}; > >typedef struct efi_tpm2_protocol efi_tpm2_protocol_t; > >typedef UINT32 TCG_EVENTTYPE; ># 190 "shim.h" 2 ># 1 "include/cc.h" 1 > > > > > >typedef struct { > uint8_t Major; > uint8_t Minor; >} EFI_CC_VERSION; > > > > > >typedef struct { > uint8_t Type; > uint8_t SubType; >} EFI_CC_TYPE; > >typedef uint32_t EFI_CC_EVENT_LOG_BITMAP; >typedef uint32_t EFI_CC_EVENT_LOG_FORMAT; >typedef uint32_t EFI_CC_EVENT_ALGORITHM_BITMAP; >typedef uint32_t EFI_CC_MR_INDEX; ># 35 "include/cc.h" >typedef struct tdEFI_CC_EVENT_HEADER { > uint32_t HeaderSize; > uint16_t HeaderVersion; > EFI_CC_MR_INDEX MrIndex; > uint32_t EventType; >} __attribute__((packed)) EFI_CC_EVENT_HEADER; > >typedef struct tdEFI_CC_EVENT { > uint32_t Size; > EFI_CC_EVENT_HEADER Header; > uint8_t Event[1]; >} __attribute__((packed)) EFI_CC_EVENT; > >typedef struct tdEFI_CC_BOOT_SERVICE_CAPABILITY { > uint8_t Size; > EFI_CC_VERSION StructureVersion; > EFI_CC_VERSION ProtocolVersion; > EFI_CC_EVENT_ALGORITHM_BITMAP HashAlgorithmBitmap; > EFI_CC_EVENT_LOG_BITMAP SupportedEventLogs; > EFI_CC_TYPE CcType; >} EFI_CC_BOOT_SERVICE_CAPABILITY; > >struct efi_cc_protocol >{ > EFI_STATUS (__attribute__((ms_abi)) *get_capability) ( > struct efi_cc_protocol *this, > EFI_CC_BOOT_SERVICE_CAPABILITY *ProtocolCapability); > EFI_STATUS (__attribute__((ms_abi)) *get_event_log) ( > struct efi_cc_protocol *this, > EFI_CC_EVENT_LOG_FORMAT EventLogFormat, > EFI_PHYSICAL_ADDRESS *EventLogLocation, > EFI_PHYSICAL_ADDRESS *EventLogLastEntry, > BOOLEAN *EventLogTruncated); > EFI_STATUS (__attribute__((ms_abi)) *hash_log_extend_event) ( > struct efi_cc_protocol *this, > uint64_t Flags, > EFI_PHYSICAL_ADDRESS DataToHash, > uint64_t DataToHashLen, > EFI_CC_EVENT *EfiCcEvent); > EFI_STATUS (__attribute__((ms_abi)) *map_pcr_to_mr_index) ( > struct efi_cc_protocol *this, > uint32_t PcrIndex, > EFI_CC_MR_INDEX *MrIndex); >}; > >typedef struct efi_cc_protocol efi_cc_protocol_t; ># 191 "shim.h" 2 ># 1 "include/ucs2.h" 1 ># 13 "include/ucs2.h" >static inline INTN >__attribute__((unused)) >StrCaseCmp(CHAR16 *s0, CHAR16 *s1) >{ > CHAR16 c0, c1; > while (1) { > if (*s0 == L'\0' || *s1 == L'\0') > return *s1 - *s0; > c0 = (*s0 >= L'a' && *s0 <= L'z') ? *s0 - 32 : *s0; > c1 = (*s1 >= L'a' && *s1 <= L'z') ? *s1 - 32 : *s1; > if (c0 != c1) > return c1 - c0; > s0++; > s1++; > } > return 0; >} > >static inline INTN >__attribute__((unused)) >StrnCaseCmp(CHAR16 *s0, CHAR16 *s1, int n) >{ > CHAR16 c0, c1; > int x = 0; > while (n > x++) { > if (*s0 == L'\0' || *s1 == L'\0') > return *s1 - *s0; > c0 = (*s0 >= L'a' && *s0 <= L'z') ? *s0 - 32 : *s0; > c1 = (*s1 >= L'a' && *s1 <= L'z') ? *s1 - 32 : *s1; > if (c0 != c1) > return c1 - c0; > s0++; > s1++; > } > return 0; >} > >static inline UINTN >__attribute__((unused)) >StrCSpn(const CHAR16 *s, const CHAR16 *reject) >{ > UINTN ret; > > for (ret = 0; s[ret] != L'\0'; ret++) { > int i; > for (i = 0; reject[i] != L'\0'; i++) { > if (reject[i] == s[ret]) > return ret; > } > } > return ret; >} ># 192 "shim.h" 2 ># 1 "include/variables.h" 1 > > > > > ># 1 "include/efiauthenticated.h" 1 ># 7 "include/variables.h" 2 ># 1 "include/peimage.h" 1 ># 8 "include/variables.h" 2 ># 24 "include/variables.h" >EFI_STATUS >CreatePkX509SignatureList ( > UINT8 *X509Data, > UINTN X509DataSize, > EFI_GUID owner, > EFI_SIGNATURE_LIST **PkCert > ); >EFI_STATUS >CreateTimeBasedPayload ( > UINTN *DataSize, > UINT8 **Data > ); >EFI_STATUS >SetSecureVariable(const CHAR16 * const var, UINT8 *Data, UINTN len, EFI_GUID owner, UINT32 options, int createtimebased); >EFI_STATUS >get_variable(const CHAR16 * const var, UINT8 **data, UINTN *len, EFI_GUID owner); >EFI_STATUS >get_variable_attr(const CHAR16 * const var, UINT8 **data, UINTN *len, EFI_GUID owner, UINT32 *attributes); >EFI_STATUS >get_variable_size(const CHAR16 * const var, EFI_GUID owner, UINTN *lenp); >EFI_STATUS >set_variable(CHAR16 *var, EFI_GUID owner, UINT32 attributes, UINTN datasize, void *data); >EFI_STATUS >del_variable(CHAR16 *var, EFI_GUID owner); >EFI_STATUS >find_in_esl(UINT8 *Data, UINTN DataSize, UINT8 *key, UINTN keylen); >EFI_STATUS >find_in_variable_esl(const CHAR16 * const var, EFI_GUID owner, UINT8 *key, UINTN keylen); > > > >UINT64 >GetOSIndications(void); >EFI_STATUS >SETOSIndicationsAndReboot(UINT64 indications); >int >variable_is_secureboot(void); >int >variable_is_setupmode(int default_return); >EFI_STATUS >variable_enroll_hash(const CHAR16 * const var, EFI_GUID owner, > UINT8 hash[32]); >EFI_STATUS >variable_create_esl(const EFI_SIGNATURE_DATA *first_sig, const size_t howmany, > const EFI_GUID *type, const UINT32 sig_size, > uint8_t **out, size_t *outlen); >EFI_STATUS >variable_create_esl_with_one_signature(const uint8_t* data, const size_t data_len, > const EFI_GUID *type, const EFI_GUID *owner, > uint8_t **out, size_t *outlen); >EFI_STATUS >fill_esl(const EFI_SIGNATURE_DATA *first_sig, const size_t howmany, > const EFI_GUID *type, const UINT32 sig_size, > uint8_t *out, size_t *outlen); >EFI_STATUS >fill_esl_with_one_signature(const uint8_t *data, const uint32_t data_len, > const EFI_GUID *type, const EFI_GUID *owner, > uint8_t *out, size_t *outlen); ># 193 "shim.h" 2 ># 1 "include/hexdump.h" 1 > > > > > > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/console.h" 1 ># 8 "include/hexdump.h" 2 > >static inline unsigned long __attribute__((__unused__)) >prepare_hex(const void *data, size_t size, char *buf, unsigned int position) >{ > char hexchars[] = "0123456789abcdef"; > int offset = 0; > unsigned long i; > unsigned long j; > unsigned long ret; > > unsigned long before = (position % 16); > unsigned long after = (before+size >= 16) ? 0 : 16 - (before+size); > > for (i = 0; i < before; i++) { > buf[offset++] = 'X'; > buf[offset++] = 'X'; > buf[offset++] = ' '; > if (i == 7) > buf[offset++] = ' '; > } > for (j = 0; j < 16 - after - before; j++) { > uint8_t d = ((uint8_t *)data)[j]; > buf[offset++] = hexchars[(d & 0xf0) >> 4]; > buf[offset++] = hexchars[(d & 0x0f)]; > if (i+j != 15) > buf[offset++] = ' '; > if (i+j == 7) > buf[offset++] = ' '; > } > ret = 16 - after - before; > j += i; > for (i = 0; i < after; i++) { > buf[offset++] = 'X'; > buf[offset++] = 'X'; > if (i+j != 15) > buf[offset++] = ' '; > if (i+j == 7) > buf[offset++] = ' '; > } > buf[offset] = '\0'; > return ret; >} > >static inline void __attribute__((__unused__)) >prepare_text(const void *data, size_t size, char *buf, unsigned int position) >{ > int offset = 0; > unsigned long i; > unsigned long j; > > unsigned long before = position % 16; > unsigned long after = (before+size > 16) ? 0 : 16 - (before+size); > > if (size == 0) { > buf[0] = '\0'; > return; > } > for (i = 0; i < before; i++) > buf[offset++] = 'X'; > buf[offset++] = '|'; > for (j = 0; j < 16 - after - before; j++) { > if ( ># 69 "include/hexdump.h" 3 4 > (( ># 69 "include/hexdump.h" > ((uint8_t *)data)[j] ># 69 "include/hexdump.h" 3 4 > ) >= 0x20 && ( ># 69 "include/hexdump.h" > ((uint8_t *)data)[j] ># 69 "include/hexdump.h" 3 4 > ) <= 0x7e) ># 69 "include/hexdump.h" > ) > buf[offset++] = ((uint8_t *)data)[j]; > else > buf[offset++] = '.'; > } > buf[offset++] = '|'; > buf[offset] = '\0'; >} > > > > > >static inline void __attribute__((__unused__)) __attribute__((ms_abi)) >vhexdumpf(const char *file, int line, const char *func, const CHAR16 *const fmt, > const void *data, unsigned long size, size_t at, ms_va_list ap) >{ > unsigned long display_offset = at; > unsigned long offset = 0; > > if (verbose == 0) > return; > > if (!data || !size) { > ({ UINTN __dprint_ret = 0; if (verbose) __dprint_ret = console_print((L"%a:%d:%a() " L"hexdump of a NULL pointer!\n"), "include/hexdump.h", 93 - 1, __func__); __dprint_ret; }); > return; > } > > while (offset < size) { > char hexbuf[49]; > char txtbuf[19]; > unsigned long sz; > > sz = prepare_hex(data+offset, size-offset, hexbuf, > (unsigned long)data+offset); > if (sz == 0) > return; > > prepare_text(data+offset, size-offset, txtbuf, > (unsigned long)data+offset); > if (fmt && fmt[0] != 0) > vdprint_(fmt, file, line, func, ap); > ({ UINTN __dprint_ret = 0; if (verbose) __dprint_ret = console_print((L"%a:%d:%a() %08lx %a %a\n"), file, line, func, display_offset, hexbuf, txtbuf); __dprint_ret; }); > > display_offset += sz; > offset += sz; > } >} > > > > > >static inline void __attribute__((__unused__)) __attribute__((ms_abi)) >hexdumpf(const char *file, int line, const char *func, const CHAR16 *const fmt, > const void *data, unsigned long size, size_t at, ...) >{ > ms_va_list ap; > > ># 128 "include/hexdump.h" 3 4 >__builtin_ms_va_start( ># 128 "include/hexdump.h" >ap ># 128 "include/hexdump.h" 3 4 >, ># 128 "include/hexdump.h" >at ># 128 "include/hexdump.h" 3 4 >) ># 128 "include/hexdump.h" > ; > vhexdumpf(file, line, func, fmt, data, size, at, ap); > ># 130 "include/hexdump.h" 3 4 >__builtin_ms_va_end( ># 130 "include/hexdump.h" >ap ># 130 "include/hexdump.h" 3 4 >) ># 130 "include/hexdump.h" > ; >} > >static inline void __attribute__((__unused__)) >hexdump(const char *file, int line, const char *func, const void *data, unsigned long size) >{ > hexdumpf(file, line, func, L"", data, size, (intptr_t)data); >} > >static inline void __attribute__((__unused__)) >hexdumpat(const char *file, int line, const char *func, const void *data, unsigned long size, size_t at) >{ > hexdumpf(file, line, func, L"", data, size, at); >} ># 194 "shim.h" 2 > ># 1 "version.h" 1 > > > > > >extern CHAR8 shim_version[]; ># 196 "shim.h" 2 > > ># 1 "Cryptlib/Include/OpenSslSupport.h" 1 ># 37 "Cryptlib/Include/OpenSslSupport.h" ># 1 "/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h" 1 3 4 ># 38 "Cryptlib/Include/OpenSslSupport.h" 2 > > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/include/system/string.h" 1 3 4 ># 41 "Cryptlib/Include/OpenSslSupport.h" 2 > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 1 ># 43 "Cryptlib/Include/OpenSslSupport.h" 2 > ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Base.h" 1 ># 45 "Cryptlib/Include/OpenSslSupport.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Library/BaseLib.h" 1 ># 17 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Library/BaseLib.h" ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/gnu-efi/inc/efi.h" 1 ># 18 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Library/BaseLib.h" 2 > > >UINT32 WriteUnaligned32 (UINT32 *Buffer, UINT32 Value); >UINTN AsciiStrSize (const CHAR8 *string); >CHAR8 *AsciiStrnCpy(CHAR8 *Destination, const CHAR8 *Source, UINTN count); >CHAR8 *AsciiStrCat(CHAR8 *Destination, const CHAR8 *Source); >CHAR8 *AsciiStrCpy(CHAR8 *Destination, const CHAR8 *Source); >UINTN AsciiStrDecimalToUintn(const CHAR8 *String); ># 46 "Cryptlib/Include/OpenSslSupport.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Library/BaseMemoryLib.h" 1 >CHAR8 *ScanMem8(CHAR8 *str, UINTN count, CHAR8 ch); ># 47 "Cryptlib/Include/OpenSslSupport.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Library/MemoryAllocationLib.h" 1 ># 48 "Cryptlib/Include/OpenSslSupport.h" 2 ># 1 "/home/pjones/devel/github.com/shim/gcc-fanalyzer/Cryptlib/Library/DebugLib.h" 1 ># 49 "Cryptlib/Include/OpenSslSupport.h" 2 ># 81 "Cryptlib/Include/OpenSslSupport.h" >typedef void *FILE; ># 121 "Cryptlib/Include/OpenSslSupport.h" >typedef UINTN size_t; >typedef INTN ssize_t; >typedef INT64 off_t; >typedef UINT16 mode_t; >typedef long time_t; >typedef unsigned long clock_t; >typedef UINT32 uid_t; >typedef UINT32 gid_t; >typedef UINT32 ino_t; >typedef UINT32 dev_t; >typedef UINT16 nlink_t; >typedef int pid_t; >typedef void *DIR; >typedef void __sighandler_t (int); > > > > >struct tm { > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > long tm_gmtoff; > char *tm_zone; >}; > >struct timeval { > long tv_sec; > long tv_usec; >}; > >struct dirent { > UINT32 d_fileno; > UINT16 d_reclen; > UINT8 d_type; > UINT8 d_namlen; > char d_name[255 + 1]; >}; > >struct stat { > dev_t st_dev; > ino_t st_ino; > mode_t st_mode; > nlink_t st_nlink; > uid_t st_uid; > gid_t st_gid; > dev_t st_rdev; > time_t st_atime; > long st_atimensec; > time_t st_mtime; > long st_mtimensec; > time_t st_ctime; > long st_ctimensec; > off_t st_size; > INT64 st_blocks; > UINT32 st_blksize; > UINT32 st_flags; > UINT32 st_gen; > INT32 st_lspare; > INT64 st_qspare[2]; >}; > > > > >extern int errno; > > > > >void *malloc (size_t); >void *realloc (void *, size_t); >void free (void *); >void *memcpy (void *, const void *, size_t); >void *memset (void *, int, size_t); >void *memchr (const void *, int, size_t); >int memcmp (const void *, const void *, size_t); >void *memmove (void *, const void *, size_t); >char *strcpy (char *, const char *); >char *strncpy (char *, const char *, size_t); >char *strcat (char *, const char *); >char *strchr (const char *, int); >int strcasecmp (const char *, const char *); >int strncasecmp (const char *, const char *, size_t); >char *strncpy (char *, const char *, size_t); >unsigned long strtoul (const char *, char **, int); >long strtol (const char *, char **, int); >char *strerror (int); >int printf (const char *, ...); >int sscanf (const char *, const char *, ...); >int open (const char *, int, ...); >int chmod (const char *, mode_t); >int stat (const char *, struct stat *); >off_t lseek (int, off_t, int); >ssize_t read (int, void *, size_t); >ssize_t write (int, const void *, size_t); >int close (int); >FILE *fopen (const char *, const char *); >size_t fread (void *, size_t, size_t, FILE *); >size_t fwrite (const void *, size_t, size_t, FILE *); >char *fgets (char *, int, FILE *); >int fputs (const char *, FILE *); >int fprintf (FILE *, const char *, ...); >int vfprintf (FILE *, const char *, ms_va_list); >int fflush (FILE *); >int fclose (FILE *); >DIR *opendir (const char *); >struct dirent *readdir (DIR *); >int closedir (DIR *); >void openlog (const char *, int, int); >void closelog (void); >void syslog (int, const char *, ...); >time_t time (time_t *); >struct tm *localtime (const time_t *); >struct tm *gmtime (const time_t *); >struct tm *gmtime_r (const time_t *, struct tm *); >uid_t getuid (void); >uid_t geteuid (void); >gid_t getgid (void); >gid_t getegid (void); >void qsort (void *, size_t, size_t, int (*)(const void *, const void *)); >char *getenv (const char *); >void exit (int); >__sighandler_t *signal (int, __sighandler_t *); > > > > >extern FILE *stderr; >extern FILE *stdin; >extern FILE *stdout; ># 199 "shim.h" 2 > > > > > > >struct _SHIM_LOCK; > >typedef >EFI_STATUS >(*EFI_SHIM_LOCK_VERIFY) ( > void *buffer, > UINT32 size > ); > >typedef >EFI_STATUS >(*EFI_SHIM_LOCK_HASH) ( > char *data, > int datasize, > PE_COFF_LOADER_IMAGE_CONTEXT *context, > UINT8 *sha256hash, > UINT8 *sha1hash > ); > >typedef >EFI_STATUS >(*EFI_SHIM_LOCK_CONTEXT) ( > void *data, > unsigned int datasize, > PE_COFF_LOADER_IMAGE_CONTEXT *context > ); > >typedef struct _SHIM_LOCK { > EFI_SHIM_LOCK_VERIFY Verify; > EFI_SHIM_LOCK_HASH Hash; > EFI_SHIM_LOCK_CONTEXT Context; >} SHIM_LOCK; > >extern EFI_STATUS shim_init(void); >extern void shim_fini(void); >extern EFI_STATUS __attribute__((ms_abi)) LogError_(const char *file, int line, const char *func, > const CHAR16 *fmt, ...); >extern EFI_STATUS __attribute__((ms_abi)) VLogError(const char *file, int line, const char *func, > const CHAR16 *fmt, ms_va_list args); >extern void LogHexdump_(const char *file, int line, const char *func, > const void *data, size_t sz); >extern void PrintErrors(void); >extern void ClearErrors(void); >extern void restore_loaded_image(void); >extern EFI_STATUS start_image(EFI_HANDLE image_handle, CHAR16 *ImagePath); >extern EFI_STATUS import_mok_state(EFI_HANDLE image_handle); > >extern UINT32 vendor_null_size; >extern UINT8 *vendor_null; > >extern UINT32 vendor_deauthorized_null_size; >extern UINT8 *vendor_deauthorized_null; > >extern UINT32 user_cert_size; >extern UINT8 *user_cert; > > > > > > >extern UINT8 user_insecure_mode; >extern UINT8 ignore_db; >extern UINT8 trust_mok_list; >extern UINT8 mok_policy; > >extern UINT8 in_protocol; >extern void *load_options; >extern UINT32 load_options_size; > >BOOLEAN secure_mode (void); > >EFI_STATUS >verify_buffer (char *data, int datasize, > PE_COFF_LOADER_IMAGE_CONTEXT *context, > UINT8 *sha256hash, UINT8 *sha1hash); ># 325 "shim.h" >char *translate_slashes(char *out, const char *str); ># 7 "csv.c" 2 > >void __attribute__((__nonnull__(1, 3, 4))) >parse_csv_line(char * line, size_t max, size_t *n_columns, const char *columns[]) >{ > char *next = line; > size_t n = 0, new_n = n; > const char * const delims = ","; > char state = 0; > char *token = ># 15 "csv.c" 3 4 > ((void *)0) ># 15 "csv.c" > ; > > ># 17 "csv.c" 3 4 >_Bool ># 17 "csv.c" > valid = ># 17 "csv.c" 3 4 > 1 ># 17 "csv.c" > ; > > for (n = 0; n < *n_columns; n++) { > > if (valid) { > valid = strntoken(next, max, delims, &token, &state); > } > if (valid) { > next += strlen(token) + 1; > max -= strlen(token) + 1; > columns[n] = token; > new_n = n + 1; > } else { > columns[n] = ># 30 "csv.c" 3 4 > ((void *)0) ># 30 "csv.c" > ; > continue; > } > } > *n_columns = new_n; >} > >void >free_csv_list(list_t *list) >{ > list_t *pos = ># 40 "csv.c" 3 4 > ((void *)0) ># 40 "csv.c" > , *tmp = ># 40 "csv.c" 3 4 > ((void *)0) ># 40 "csv.c" > ; > for (pos = (list)->next, tmp = pos->next; pos != (list); pos = tmp, tmp = pos->next) { > struct csv_row *row; > > row = ({ void *__mptr = (void *)(pos); ((struct csv_row *)(__mptr - ># 44 "csv.c" 3 4 > __builtin_offsetof ( ># 44 "csv.c" > struct csv_row ># 44 "csv.c" 3 4 > , ># 44 "csv.c" > list ># 44 "csv.c" 3 4 > ) ># 44 "csv.c" > )); }); > list_del(&row->list); > FreePool(row); > } >} > >EFI_STATUS >parse_csv_data(char *data, char *data_end, size_t n_columns, list_t *list) >{ > EFI_STATUS efi_status = (0x8000000000000000 | 9); > char delims[] = "\r\n"; > char *line = data; > size_t max = 0; > char *end = data_end; > > if (!data || !end || end <= data || !n_columns || !list) { > ({ UINTN __dprint_ret = 0; if (verbose) __dprint_ret = console_print((L"%a:%d:%a() " L"data:0x%lx end:0x%lx n_columns:%lu list:0x%lx\n"), "csv.c", 60 - 1, __func__, data, end, n_columns, list); __dprint_ret; }) > ; > return (0x8000000000000000 | 2); > } > > max = (uintptr_t)end - (uintptr_t)line + (end > line ? 1 : 0); > if (is_utf8_bom(line, max)) > > line += 3; > > while (line <= data_end && *line) { > size_t entrysz = sizeof(char *) * n_columns + sizeof(struct csv_row); > struct csv_row *entry; > size_t m_columns = n_columns; > char *delim; > ># 75 "csv.c" 3 4 > _Bool ># 75 "csv.c" > found = ># 75 "csv.c" 3 4 > 1 ># 75 "csv.c" > ; > ># 76 "csv.c" 3 4 > _Bool ># 76 "csv.c" > eof = ># 76 "csv.c" 3 4 > 0 ># 76 "csv.c" > ; > > end = data_end; > max = (uintptr_t)end - (uintptr_t)line + (end > line ? 1 : 0); > > while (max && found) { > found = ># 82 "csv.c" 3 4 > 0 ># 82 "csv.c" > ; > for (delim = &delims[0]; max && *delim; delim++) { > if (line[0] == *delim) { > line++; > max--; > found = ># 87 "csv.c" 3 4 > 1 ># 87 "csv.c" > ; > } > } > } > > for (delim = &delims[0]; *delim; delim++) { > char *tmp = strnchrnul(line, max, *delim); > if (tmp < end) > end = tmp; > } > max = (uintptr_t)end - (uintptr_t)line + (end > line ? 1 : 0); > > if (!*end) > eof = ># 100 "csv.c" 3 4 > 1 ># 100 "csv.c" > ; > *end = '\0'; > > if (line == data_end || max == 0) { > line = end + 1; > continue; > } > > entry = AllocateZeroPool(entrysz); > if (!entry) { > efi_status = (0x8000000000000000 | 9); > goto err_oom; > } > > ({ (&entry->list)->next = (&entry->list); (&entry->list)->prev = (&entry->list); }); > list_add_tail(&entry->list, list); > > for (delim = &delims[0]; *delim; delim++) { > char *tmp = strnchrnul((const char *)line, max, *delim); > if (tmp < end) > end = tmp; > } > > parse_csv_line(line, max, &m_columns, (const char **)entry->columns); > entry->n_columns = m_columns; > if (eof) > break; > > line = end + 1; > } > > return 0; >err_oom: > free_csv_list(list); > return efi_status; >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 2228600
: 1981362