#ifndef _GVE_ADMINQ_H
#define _GVE_ADMINQ_H
#include <linux/build_bug.h>
enum gve_adminq_opcodes { … };
enum gve_adminq_extended_cmd_opcodes { … };
enum gve_adminq_statuses { … };
#define GVE_ADMINQ_DEVICE_DESCRIPTOR_VERSION …
struct gve_adminq_describe_device { … };
static_assert(…);
struct gve_device_descriptor { … };
static_assert(…);
struct gve_device_option { … };
static_assert(…);
struct gve_device_option_gqi_rda { … };
static_assert(…);
struct gve_device_option_gqi_qpl { … };
static_assert(…);
struct gve_device_option_dqo_rda { … };
static_assert(…);
struct gve_device_option_dqo_qpl { … };
static_assert(…);
struct gve_device_option_jumbo_frames { … };
static_assert(…);
struct gve_device_option_buffer_sizes { … };
static_assert(…);
struct gve_device_option_modify_ring { … };
static_assert(…);
struct gve_device_option_flow_steering { … };
static_assert(…);
enum gve_dev_opt_id { … };
enum gve_dev_opt_req_feat_mask { … };
enum gve_sup_feature_mask { … };
#define GVE_DEV_OPT_LEN_GQI_RAW_ADDRESSING …
#define GVE_VERSION_STR_LEN …
enum gve_driver_capbility { … };
#define GVE_CAP1(a) …
#define GVE_CAP2(a) …
#define GVE_CAP3(a) …
#define GVE_CAP4(a) …
#define GVE_DRIVER_CAPABILITY_FLAGS1 …
#define GVE_DRIVER_CAPABILITY_FLAGS2 …
#define GVE_DRIVER_CAPABILITY_FLAGS3 …
#define GVE_DRIVER_CAPABILITY_FLAGS4 …
struct gve_adminq_extended_command { … };
static_assert(…);
struct gve_driver_info { … };
struct gve_adminq_verify_driver_compatibility { … };
static_assert(…);
struct gve_adminq_configure_device_resources { … };
static_assert(…);
struct gve_adminq_register_page_list { … };
static_assert(…);
struct gve_adminq_unregister_page_list { … };
static_assert(…);
#define GVE_RAW_ADDRESSING_QPL_ID …
struct gve_adminq_create_tx_queue { … };
static_assert(…);
struct gve_adminq_create_rx_queue { … };
static_assert(…);
struct gve_queue_resources { … };
static_assert(…);
struct gve_adminq_destroy_tx_queue { … };
static_assert(…);
struct gve_adminq_destroy_rx_queue { … };
static_assert(…);
enum gve_set_driver_param_types { … };
struct gve_adminq_set_driver_parameter { … };
static_assert(…);
struct gve_adminq_report_stats { … };
static_assert(…);
struct gve_adminq_report_link_speed { … };
static_assert(…);
struct stats { … };
static_assert(…);
struct gve_stats_report { … };
static_assert(…);
enum gve_stat_names { … };
enum gve_l3_type { … };
enum gve_l4_type { … };
struct gve_ptype_entry { … };
struct gve_ptype_map { … };
struct gve_adminq_get_ptype_map { … };
enum gve_adminq_flow_rule_cfg_opcode { … };
enum gve_adminq_flow_rule_query_opcode { … };
enum gve_adminq_flow_type { … };
struct gve_adminq_flow_rule { … };
struct gve_adminq_configure_flow_rule { … };
static_assert(…);
struct gve_query_flow_rules_descriptor { … };
struct gve_adminq_queried_flow_rule { … };
struct gve_adminq_query_flow_rules { … };
static_assert(…);
gve_adminq_command;
static_assert(…);
int gve_adminq_alloc(struct device *dev, struct gve_priv *priv);
void gve_adminq_free(struct device *dev, struct gve_priv *priv);
void gve_adminq_release(struct gve_priv *priv);
int gve_adminq_describe_device(struct gve_priv *priv);
int gve_adminq_configure_device_resources(struct gve_priv *priv,
dma_addr_t counter_array_bus_addr,
u32 num_counters,
dma_addr_t db_array_bus_addr,
u32 num_ntfy_blks);
int gve_adminq_deconfigure_device_resources(struct gve_priv *priv);
int gve_adminq_create_tx_queues(struct gve_priv *priv, u32 start_id, u32 num_queues);
int gve_adminq_destroy_tx_queues(struct gve_priv *priv, u32 start_id, u32 num_queues);
int gve_adminq_create_single_rx_queue(struct gve_priv *priv, u32 queue_index);
int gve_adminq_create_rx_queues(struct gve_priv *priv, u32 num_queues);
int gve_adminq_destroy_single_rx_queue(struct gve_priv *priv, u32 queue_index);
int gve_adminq_destroy_rx_queues(struct gve_priv *priv, u32 queue_id);
int gve_adminq_register_page_list(struct gve_priv *priv,
struct gve_queue_page_list *qpl);
int gve_adminq_unregister_page_list(struct gve_priv *priv, u32 page_list_id);
int gve_adminq_set_mtu(struct gve_priv *priv, u64 mtu);
int gve_adminq_report_stats(struct gve_priv *priv, u64 stats_report_len,
dma_addr_t stats_report_addr, u64 interval);
int gve_adminq_verify_driver_compatibility(struct gve_priv *priv,
u64 driver_info_len,
dma_addr_t driver_info_addr);
int gve_adminq_report_link_speed(struct gve_priv *priv);
int gve_adminq_add_flow_rule(struct gve_priv *priv, struct gve_adminq_flow_rule *rule, u32 loc);
int gve_adminq_del_flow_rule(struct gve_priv *priv, u32 loc);
int gve_adminq_reset_flow_rules(struct gve_priv *priv);
int gve_adminq_query_flow_rules(struct gve_priv *priv, u16 query_opcode, u32 starting_loc);
struct gve_ptype_lut;
int gve_adminq_get_ptype_map_dqo(struct gve_priv *priv,
struct gve_ptype_lut *ptype_lut);
#endif