Add service_binding proto and the http proto which uses it, and related types

This commit is contained in:
Justin C. Miller
2021-01-10 01:34:36 -08:00
parent 578198a6c3
commit eeb9affb23
2 changed files with 81 additions and 0 deletions

View File

@@ -226,3 +226,30 @@
type: uint64_t type: uint64_t
- name: file_name[] - name: file_name[]
type: wchar_t type: wchar_t
- name: service_binding
methods:
- name: create_child
args:
- name: child_handle
type: uefi::handle *
- name: destroy_child
args:
- name: child_handle
type: uefi::handle
- name: http
guid: "0x7a59b29b,0x910b,0x4171,{0x82,0x42,0xa8,0x5a,0x0d,0xf2,0x5b,0x5b}"
bindings:
- name: service_binding
guid: "0xbdc8e6af,0xd9bc,0x4379,{0xa7,0x2a,0xe0,0xc4,0xe7,0x5d,0xae,0x1c}"
methods:
- name: get_mode_data
args:
- name: http_config_data
type: uefi::http_config_data *
- name: configure
- name: request
- name: cancel
- name: response
- name: poll

View File

@@ -152,6 +152,60 @@ enum class file_attr : uint64_t
archive = 0x0000000000000020ull archive = 0x0000000000000020ull
}; };
//
// IP definitions
//
struct ipv4_address
{
uint8_t addr[4];
};
struct ipv6_address
{
uint8_t addr[16];
};
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;
};
} // namespace uefi } // namespace uefi
#endif #endif