From fd8552ca3ad01521eac26f75b00ca72c8efe1095 Mon Sep 17 00:00:00 2001 From: "Justin C. Miller" Date: Thu, 21 Jan 2021 18:48:42 -0800 Subject: [PATCH] [external] Update to latest j6-uefi-headers --- external/uefi/boot_services.h | 6 +- external/uefi/networking.h | 390 ++++++++++++++++++++++ external/uefi/protos/device_path.h | 3 +- external/uefi/protos/file.h | 4 +- external/uefi/protos/file_info.h | 3 +- external/uefi/protos/graphics_output.h | 3 +- external/uefi/protos/http.h | 72 ++++ external/uefi/protos/ip6.h | 93 ++++++ external/uefi/protos/ip6_config.h | 57 ++++ external/uefi/protos/load_file.h | 36 ++ external/uefi/protos/loaded_image.h | 3 +- external/uefi/protos/service_binding.h | 41 +++ external/uefi/protos/simple_file_system.h | 3 +- external/uefi/protos/simple_text_output.h | 3 +- 14 files changed, 707 insertions(+), 10 deletions(-) create mode 100644 external/uefi/networking.h create mode 100644 external/uefi/protos/http.h create mode 100644 external/uefi/protos/ip6.h create mode 100644 external/uefi/protos/ip6_config.h create mode 100644 external/uefi/protos/load_file.h create mode 100644 external/uefi/protos/service_binding.h diff --git a/external/uefi/boot_services.h b/external/uefi/boot_services.h index 8130ad6..363a9bb 100644 --- a/external/uefi/boot_services.h +++ b/external/uefi/boot_services.h @@ -14,8 +14,10 @@ namespace uefi { namespace bs_impl { using allocate_pages = status (*)(allocate_type, memory_type, size_t, void**); + using free_pages = status (*)(void*, size_t); using get_memory_map = status (*)(size_t*, memory_descriptor*, size_t*, size_t*, uint32_t*); using allocate_pool = status (*)(memory_type, uint64_t, void**); + using free_pool = status (*)(void*); using handle_protocol = status (*)(handle, const guid*, void**); using create_event = status (*)(evt, tpl, event_notify, void*, event*); using exit_boot_services = status (*)(handle, size_t); @@ -35,10 +37,10 @@ struct boot_services { // Memory Services bs_impl::allocate_pages allocate_pages; - void *free_pages; + bs_impl::free_pages free_pages; bs_impl::get_memory_map get_memory_map; bs_impl::allocate_pool allocate_pool; - void *free_pool; + bs_impl::free_pool free_pool; // Event & Timer Services bs_impl::create_event create_event; diff --git a/external/uefi/networking.h b/external/uefi/networking.h new file mode 100644 index 0000000..850a97b --- /dev/null +++ b/external/uefi/networking.h @@ -0,0 +1,390 @@ +#pragma once +#ifndef _uefi_networking_h_ +#define _uefi_networking_h_ + +// This Source Code Form is part of the j6-uefi-headers project and is subject +// to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was +// not distributed with this file, You can obtain one at +// http://mozilla.org/MPL/2.0/. + +#include +#include + +namespace uefi { + +// +// IPv4 definitions +// +struct ipv4_address +{ + uint8_t addr[4]; +}; + +// +// IPv6 definitions +// +struct ipv6_address +{ + uint8_t addr[16]; +}; + +struct ip6_address_info +{ + ipv6_address address; + uint8_t prefix_length; +}; + +struct ip6_route_table +{ + ipv6_address gateway; + ipv6_address destination; + uint8_t prefix_length; +}; + +enum class ip6_neighbor_state : int { + incomplete, + reachable, + stale, + delay, + probe, +} + +struct ip6_neighbor_cache +{ + ipv6_address neighbor; + mac_address link_address; + ip6_neighbor_state state; +}; + +enum class icmpv6_type : uint8_t +{ + dest_unreachable = 0x1, + packet_too_big = 0x2, + time_exceeded = 0x3, + parameter_problem = 0x4, + echo_request = 0x80, + echo_reply = 0x81, + listener_query = 0x82, + listener_report = 0x83, + listener_done = 0x84, + router_solicit = 0x85, + router_advertise = 0x86, + neighbor_solicit = 0x87, + neighbor_advertise = 0x88, + redirect = 0x89, + listener_report_2 = 0x8f, +}; + +enum class icmpv6_code : uint8_t +{ + // codes for icmpv6_type::dest_unreachable + no_route_to_dest = 0x0, + comm_prohibited = 0x1, + beyond_scope = 0x2, + addr_unreachable = 0x3, + port_unreachable = 0x4, + source_addr_failed = 0x5, + route_rejected = 0x6, + + // codes for icmpv6_type::time_exceeded + timeout_hop_limit = 0x0, + timeout_reassemble = 0x1, + + // codes for icmpv6_type::parameter_problem + erroneous_header = 0x0, + unrecognize_next_hdr = 0x1, + unrecognize_option = 0x2, +}; + +struct ip6_icmp_type +{ + icmpv6_type type; + icmpv6_code code; +}; + +struct ip6_config_data +{ + uint8_t default_protocol; + bool accept_any_protocol; + bool accept_icmp_errors; + bool accept_promiscuous; + ipv6_address destination_address; + ipv6_address station_address; + uint8_t traffic_class; + uint8_t hop_limit; + uint32_t flow_label; + uint32_t receive_timeout; + uint32_t transmit_timeout; +}; + +struct ip6_mode_data +{ + bool is_started; + uint32_t max_packet_size; + ip6_config_data config_data; + bool is_configured; + uint32_t address_count; + ip6_address_info * address_list; + uint32_t group_count; + ipv6_address * group_table; + uint32_t route_count; + ip6_route_table * route_table; + uint32_t neighbor_count; + ip6_neighbor_cache * neighbor_cache; + uint32_t prefix_count; + ip6_address_info * prefix_table; + uint32_t icmp_type_count; + * icmp_type_list; +}; + +struct ip6_header +{ + uint8_t traffic_class_h : 4; + uint8_t version : 4; + uint8_t flow_label_h : 4; + uint8_t traffic_class_l : 4; + uint16_t flow_label_l; + uint16_t payload_length; + uint8_t next_header; + uint8_t hop_limit; + ipv6_address source_address; + ipv6_address destination_address; +} __attribute__ ((packed)); + +struct ip6_fragment_data +{ + uint32_t fragment_length; + void *fragment_buffer; +}; + +struct ip6_override_data +{ + uint8_t protocol; + uint8_t hop_limit; + uint32_t flow_label; +}; + +struct ip6_receive_data +{ + time time_stamp; + event recycle_signal; + uint32_t header_length; + ip6_header *header; + uint32_t data_length; + uint32_t fragment_count; + ip6_fragment_data fragment_table[1]; +}; + +struct ip6_transmit_data +{ + ipv6_address destination_address; + ip6_override_data *override_data; + + uint32_t ext_hdrs_length; + void *ext_hdrs; + uint8_t next_header; + uint32_t data_length; + uint32_t fragment_count; + ip6_fragment_data fragment_table[1]; +}; + +struct ip6_completion_token +{ + event event; + status status; + union { + ip6_receive_data *rx_data; + ip6_transmit_data *tx_data; + } packet; +}; + +enum class ip6_config_data_type : int +{ + interface_info, + alt_interface_id, + policy, + dup_addr_detect_transmits, + manual_address, + gateway, + dns_server, + maximum +}; + +struct ip6_config_interface_info +{ + wchar_t name[32]; + uint8_t if_type; + uint32_t hw_address_size; + mac_address hw_address; + uint32_t address_info_count; + ip6_address_info *address_info; + uint32_t route_count; + ip6_route_table *route_table; +}; + +struct ip6_config_interface_id +{ + uint8_t id[8]; +}; + +enum class ip6_config_policy : int +{ + manual, + automatic +}; + +struct ip6_config_dup_addr_detect_transmits +{ + uint32_t dup_addr_detect_transmits; +}; + +struct ip6_config_manual_address +{ + ipv6_address address; + bool is_anycast; + uint8_t prefix_length; +}; + +// +// IP definitions +// +union ip_address +{ + uint8_t addr[4]; + ipv4_address v4; + ipv6_address v6; +}; + +// +// HTTP definitions +// +struct httpv4_access_point +{ + bool use_default_address; + ipv4_address local_address; + ipv4_address local_subnet; + uint16_t local_port; +}; + +struct httpv6_access_point +{ + ipv6_address local_address; + uint16_t local_port; +}; + +enum class http_version : int { + v10, + v11, + unsupported, +}; + +struct http_config_data +{ + http_version http_version; + uint32_t time_out_millisec; + bool local_address_is_ipv6; + union { + httpv4_access_point *ipv4_node; + httpv6_access_point *ipv6_node; + } access_point; +}; + +enum class http_method : int { + get, + post, + patch, + options, + connect, + head, + put, + delete_, + trace, +}; + +struct http_request_data +{ + http_method method; + wchar_t *url; +}; + +enum class http_status_code : int { + unsupported, + continue_, + switching_protocols, + ok, + created, + accepted, + non_authoritative_information, + no_content, + reset_content, + partial_content, + multiple_choices, + moved_permanently, + found, + see_other, + not_modified, + use_proxy, + temporary_redirect, + bad_request, + unauthorized, + payment_required, + forbidden, + not_found, + method_not_allowed, + not_acceptable, + proxy_authentication_required, + request_time_out, + conflict, + gone, + length_required, + precondition_failed, + request_entity_too_large, + request_uri_too_large, + unsupported_media_type, + requested_range_not_satisfied, + expectation_failed, + internal_server_error, + not_implemented, + bad_gateway, + service_unavailable, + gateway_timeout, + http_version_not_supported, + permanent_redirect, // I hate your decisions, uefi. +}; + +struct http_response_data +{ + http_status_code status_code; +}; + +struct http_header +{ + char *field_name; + char *field_value; +}; + +struct http_message +{ + union { + http_request_data *request; + http_response_data *response; + } data; + + size_t header_count; + http_header *headers; + + size_t body_length; + void *body; +}; + +struct http_token +{ + event event; + status status; + http_message *message; +}; + + +} // namespace uefi + +#endif diff --git a/external/uefi/protos/device_path.h b/external/uefi/protos/device_path.h index 3317cbb..0559bc1 100644 --- a/external/uefi/protos/device_path.h +++ b/external/uefi/protos/device_path.h @@ -16,6 +16,7 @@ struct device_path { static constexpr uefi::guid guid{ 0x09576e91,0x6d3f,0x11d2,{0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b} }; + uint8_t type; uint8_t sub_type; uint16_t length; @@ -27,4 +28,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_device_path_h_ +#endif // _uefi_protos_device_path_h_ \ No newline at end of file diff --git a/external/uefi/protos/file.h b/external/uefi/protos/file.h index 37ab5bf..77d282f 100644 --- a/external/uefi/protos/file.h +++ b/external/uefi/protos/file.h @@ -14,7 +14,7 @@ struct file; struct file { - + inline uefi::status open(file ** new_handle, const wchar_t * file_name, file_mode open_mode, file_attr attributes) { return _open(this, new_handle, file_name, open_mode, attributes); @@ -123,4 +123,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_file_h_ +#endif // _uefi_protos_file_h_ \ No newline at end of file diff --git a/external/uefi/protos/file_info.h b/external/uefi/protos/file_info.h index 3f6d026..26e3f28 100644 --- a/external/uefi/protos/file_info.h +++ b/external/uefi/protos/file_info.h @@ -16,6 +16,7 @@ struct file_info { static constexpr uefi::guid guid{ 0x09576e92,0x6d3f,0x11d2,{0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b} }; + uint64_t size; uint64_t file_size; uint64_t physical_size; @@ -32,4 +33,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_file_info_h_ +#endif // _uefi_protos_file_info_h_ \ No newline at end of file diff --git a/external/uefi/protos/graphics_output.h b/external/uefi/protos/graphics_output.h index 6c17ce6..239b09c 100644 --- a/external/uefi/protos/graphics_output.h +++ b/external/uefi/protos/graphics_output.h @@ -17,6 +17,7 @@ struct graphics_output { static constexpr uefi::guid guid{ 0x9042a9de,0x23dc,0x4a38,{0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a} }; + inline uefi::status query_mode(uint32_t mode_number, uint64_t * size_of_info, uefi::graphics_output_mode_info ** info) { return _query_mode(this, mode_number, size_of_info, info); } @@ -47,4 +48,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_graphics_output_h_ +#endif // _uefi_protos_graphics_output_h_ \ No newline at end of file diff --git a/external/uefi/protos/http.h b/external/uefi/protos/http.h new file mode 100644 index 0000000..8388972 --- /dev/null +++ b/external/uefi/protos/http.h @@ -0,0 +1,72 @@ +#pragma once +#ifndef _uefi_protos_http_h_ +#define _uefi_protos_http_h_ + +// This file was auto generated by the j6-uefi-headers project. Please see +// https://github.com/justinian/j6-uefi-headers for more information. + +#include +#include +#include + +namespace uefi { +namespace protos { +struct http; + +struct http +{ + static constexpr uefi::guid guid{ 0x7a59b29b,0x910b,0x4171,{0x82,0x42,0xa8,0x5a,0x0d,0xf2,0x5b,0x5b} }; + static constexpr uefi::guid service_binding{ 0xbdc8e6af,0xd9bc,0x4379,{0xa7,0x2a,0xe0,0xc4,0xe7,0x5d,0xae,0x1c} }; + + + inline uefi::status get_mode_data(uefi::http_config_data * http_config_data) { + return _get_mode_data(this, http_config_data); + } + + inline uefi::status configure(uefi::http_config_data * http_config_data) { + return _configure(this, http_config_data); + } + + inline uefi::status request(uefi::http_token * token) { + return _request(this, token); + } + + inline uefi::status cancel(uefi::http_token * token) { + return _cancel(this, token); + } + + inline uefi::status response(uefi::http_token * token) { + return _response(this, token); + } + + inline uefi::status poll() { + return _poll(this); + } + + +protected: + using _get_mode_data_def = uefi::status (*)(uefi::protos::http *, uefi::http_config_data *); + _get_mode_data_def _get_mode_data; + + using _configure_def = uefi::status (*)(uefi::protos::http *, uefi::http_config_data *); + _configure_def _configure; + + using _request_def = uefi::status (*)(uefi::protos::http *, uefi::http_token *); + _request_def _request; + + using _cancel_def = uefi::status (*)(uefi::protos::http *, uefi::http_token *); + _cancel_def _cancel; + + using _response_def = uefi::status (*)(uefi::protos::http *, uefi::http_token *); + _response_def _response; + + using _poll_def = uefi::status (*)(uefi::protos::http *); + _poll_def _poll; + +public: +}; + +} // namespace protos +} // namespace uefi + +#endif // _uefi_protos_http_h_ \ No newline at end of file diff --git a/external/uefi/protos/ip6.h b/external/uefi/protos/ip6.h new file mode 100644 index 0000000..4218f00 --- /dev/null +++ b/external/uefi/protos/ip6.h @@ -0,0 +1,93 @@ +#pragma once +#ifndef _uefi_protos_ip6_h_ +#define _uefi_protos_ip6_h_ + +// This file was auto generated by the j6-uefi-headers project. Please see +// https://github.com/justinian/j6-uefi-headers for more information. + +#include +#include +#include + +namespace uefi { +namespace protos { +struct ip6; + +struct ip6 +{ + static constexpr uefi::guid guid{ 0x2c8759d5,0x5c2d,0x66ef,{0x92,0x5f,0xb6,0x6c,0x10,0x19,0x57,0xe2} }; + static constexpr uefi::guid service_binding{ 0xec835dd3,0xfe0f,0x617b,{0xa6,0x21,0xb3,0x50,0xc3,0xe1,0x33,0x88} }; + + + inline uefi::status get_mode_data(uefi::ip6_mode_data * ip6_mode_data, uefi::managed_network_config_data * mnp_config_data, uefi::simple_network_mode * snp_config_data) { + return _get_mode_data(this, ip6_mode_data, mnp_config_data, snp_config_data); + } + + inline uefi::status configure(uefi::ip6_config_data * ip6_config_data) { + return _configure(this, ip6_config_data); + } + + inline uefi::status groups(bool join_flag, uefi::ipv6_address * group_address) { + return _groups(this, join_flag, group_address); + } + + inline uefi::status routes(bool delete_route, uefi::ipv6_address * destination, uint8_t prefix_length, uefi::ipv6_address * gateway_address) { + return _routes(this, delete_route, destination, prefix_length, gateway_address); + } + + inline uefi::status neighbors(bool delete_flag, uefi::ipv6_address * target_ip6_address, uefi::mac_address * target_link_address, uint32_t timeout, bool override) { + return _neighbors(this, delete_flag, target_ip6_address, target_link_address, timeout, override); + } + + inline uefi::status transmit(uefi::ip6_completion_token * token) { + return _transmit(this, token); + } + + inline uefi::status receive(uefi::ip6_completion_token * token) { + return _receive(this, token); + } + + inline uefi::status cancel(uefi::ip6_completion_token * token) { + return _cancel(this, token); + } + + inline uefi::status poll() { + return _poll(this); + } + + +protected: + using _get_mode_data_def = uefi::status (*)(uefi::protos::ip6 *, uefi::ip6_mode_data *, uefi::managed_network_config_data *, uefi::simple_network_mode *); + _get_mode_data_def _get_mode_data; + + using _configure_def = uefi::status (*)(uefi::protos::ip6 *, uefi::ip6_config_data *); + _configure_def _configure; + + using _groups_def = uefi::status (*)(uefi::protos::ip6 *, bool, uefi::ipv6_address *); + _groups_def _groups; + + using _routes_def = uefi::status (*)(uefi::protos::ip6 *, bool, uefi::ipv6_address *, uint8_t, uefi::ipv6_address *); + _routes_def _routes; + + using _neighbors_def = uefi::status (*)(uefi::protos::ip6 *, bool, uefi::ipv6_address *, uefi::mac_address *, uint32_t, bool); + _neighbors_def _neighbors; + + using _transmit_def = uefi::status (*)(uefi::protos::ip6 *, uefi::ip6_completion_token *); + _transmit_def _transmit; + + using _receive_def = uefi::status (*)(uefi::protos::ip6 *, uefi::ip6_completion_token *); + _receive_def _receive; + + using _cancel_def = uefi::status (*)(uefi::protos::ip6 *, uefi::ip6_completion_token *); + _cancel_def _cancel; + + using _poll_def = uefi::status (*)(uefi::protos::ip6 *); + _poll_def _poll; + +public: +}; + +} // namespace protos +} // namespace uefi + +#endif // _uefi_protos_ip6_h_ \ No newline at end of file diff --git a/external/uefi/protos/ip6_config.h b/external/uefi/protos/ip6_config.h new file mode 100644 index 0000000..fcee539 --- /dev/null +++ b/external/uefi/protos/ip6_config.h @@ -0,0 +1,57 @@ +#pragma once +#ifndef _uefi_protos_ip6_config_h_ +#define _uefi_protos_ip6_config_h_ + +// This file was auto generated by the j6-uefi-headers project. Please see +// https://github.com/justinian/j6-uefi-headers for more information. + +#include +#include +#include + +namespace uefi { +namespace protos { +struct ip6_config; + +struct ip6_config +{ + static constexpr uefi::guid guid{ 0x937fe521,0x95ae,0x4d1a,{0x89,0x29,0x48,0xbc,0xd9,0x0a,0xd3,0x1a} }; + + + inline uefi::status set_data(uefi::ip6_config_data_type data_type, size_t data_size, void * data) { + return _set_data(this, data_type, data_size, data); + } + + inline uefi::status get_data(uefi::ip6_config_data_type data_type, size_t data_size, void * data) { + return _get_data(this, data_type, data_size, data); + } + + inline uefi::status register_data_notify(uefi::ip6_config_data_type data_type, uefi::event event) { + return _register_data_notify(this, data_type, event); + } + + inline uefi::status unregister_data_notify(uefi::ip6_config_data_type data_type, uefi::event event) { + return _unregister_data_notify(this, data_type, event); + } + + +protected: + using _set_data_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, size_t, void *); + _set_data_def _set_data; + + using _get_data_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, size_t, void *); + _get_data_def _get_data; + + using _register_data_notify_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, uefi::event); + _register_data_notify_def _register_data_notify; + + using _unregister_data_notify_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, uefi::event); + _unregister_data_notify_def _unregister_data_notify; + +public: +}; + +} // namespace protos +} // namespace uefi + +#endif // _uefi_protos_ip6_config_h_ \ No newline at end of file diff --git a/external/uefi/protos/load_file.h b/external/uefi/protos/load_file.h new file mode 100644 index 0000000..fdfcb77 --- /dev/null +++ b/external/uefi/protos/load_file.h @@ -0,0 +1,36 @@ +#pragma once +#ifndef _uefi_protos_load_file_h_ +#define _uefi_protos_load_file_h_ + +// This file was auto generated by the j6-uefi-headers project. Please see +// https://github.com/justinian/j6-uefi-headers for more information. + +#include +#include +#include + +namespace uefi { +namespace protos { +struct load_file; + +struct load_file +{ + static constexpr uefi::guid guid{ {0x56ec3091,0x954c,0x11d2,{0x8e,0x3f,0x00,0xa0,0xc9,0x69,0x72,0x3b} }; + + + inline uefi::status load_file(uefi::protos::device_path * file_path, bool boot_policy, size_t * buffer_size, void * buffer) { + return _load_file(this, file_path, boot_policy, buffer_size, buffer); + } + + +protected: + using _load_file_def = uefi::status (*)(uefi::protos::load_file *, uefi::protos::device_path *, bool, size_t *, void *); + _load_file_def _load_file; + +public: +}; + +} // namespace protos +} // namespace uefi + +#endif // _uefi_protos_load_file_h_ \ No newline at end of file diff --git a/external/uefi/protos/loaded_image.h b/external/uefi/protos/loaded_image.h index 420ca94..3d01d5b 100644 --- a/external/uefi/protos/loaded_image.h +++ b/external/uefi/protos/loaded_image.h @@ -18,6 +18,7 @@ struct loaded_image { static constexpr uefi::guid guid{ 0x5b1b31a1,0x9562,0x11d2,{0x8e,0x3f,0x00,0xa0,0xc9,0x69,0x72,0x3b} }; + inline uefi::status unload(uefi::handle image_handle) { return _unload(image_handle); } @@ -45,4 +46,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_loaded_image_h_ +#endif // _uefi_protos_loaded_image_h_ \ No newline at end of file diff --git a/external/uefi/protos/service_binding.h b/external/uefi/protos/service_binding.h new file mode 100644 index 0000000..0668aa1 --- /dev/null +++ b/external/uefi/protos/service_binding.h @@ -0,0 +1,41 @@ +#pragma once +#ifndef _uefi_protos_service_binding_h_ +#define _uefi_protos_service_binding_h_ + +// This file was auto generated by the j6-uefi-headers project. Please see +// https://github.com/justinian/j6-uefi-headers for more information. + +#include +#include + +namespace uefi { +namespace protos { +struct service_binding; + +struct service_binding +{ + + + inline uefi::status create_child(uefi::handle * child_handle) { + return _create_child(this, child_handle); + } + + inline uefi::status destroy_child(uefi::handle child_handle) { + return _destroy_child(this, child_handle); + } + + +protected: + using _create_child_def = uefi::status (*)(uefi::protos::service_binding *, uefi::handle *); + _create_child_def _create_child; + + using _destroy_child_def = uefi::status (*)(uefi::protos::service_binding *, uefi::handle); + _destroy_child_def _destroy_child; + +public: +}; + +} // namespace protos +} // namespace uefi + +#endif // _uefi_protos_service_binding_h_ \ No newline at end of file diff --git a/external/uefi/protos/simple_file_system.h b/external/uefi/protos/simple_file_system.h index 7bf1600..fc0d507 100644 --- a/external/uefi/protos/simple_file_system.h +++ b/external/uefi/protos/simple_file_system.h @@ -17,6 +17,7 @@ struct simple_file_system { static constexpr uefi::guid guid{ 0x0964e5b22,0x6459,0x11d2,{0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b} }; + inline uefi::status open_volume(uefi::protos::file ** root) { return _open_volume(this, root); } @@ -33,4 +34,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_simple_file_system_h_ +#endif // _uefi_protos_simple_file_system_h_ \ No newline at end of file diff --git a/external/uefi/protos/simple_text_output.h b/external/uefi/protos/simple_text_output.h index bb4ca09..82c74e9 100644 --- a/external/uefi/protos/simple_text_output.h +++ b/external/uefi/protos/simple_text_output.h @@ -17,6 +17,7 @@ struct simple_text_output { static constexpr uefi::guid guid{ 0x387477c2,0x69c7,0x11d2,{0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b} }; + inline uefi::status reset(bool extended_verification) { return _reset(this, extended_verification); } @@ -89,4 +90,4 @@ public: } // namespace protos } // namespace uefi -#endif // _uefi_protos_simple_text_output_h_ +#endif // _uefi_protos_simple_text_output_h_ \ No newline at end of file