/* * Generic advertisement service (GAS) server * Copyright (c) 2017, Qualcomm Atheros, Inc. * Copyright (c) 2020, The Linux Foundation * Copyright (c) 2022, Qualcomm Innovation Center, Inc. * * This software may be distributed under the terms of the BSD license. * See README for more details. */ #ifndef GAS_SERVER_H #define GAS_SERVER_H #ifdef CONFIG_GAS_SERVER struct gas_server; struct gas_server * gas_server_init(void *ctx, void (*tx)(void *ctx, int freq, const u8 *da, struct wpabuf *buf, unsigned int wait_time)); void gas_server_deinit(struct gas_server *gas); int gas_server_register(struct gas_server *gas, const u8 *adv_proto_id, u8 adv_proto_id_len, struct wpabuf * (*req_cb)(void *ctx, void *resp_ctx, const u8 *sa, const u8 *query, size_t query_len, int *comeback_delay), void (*status_cb)(void *ctx, struct wpabuf *resp, int ok), void *ctx); int gas_server_rx(struct gas_server *gas, const u8 *da, const u8 *sa, const u8 *bssid, u8 categ, const u8 *data, size_t len, int freq); void gas_server_tx_status(struct gas_server *gas, const u8 *dst, const u8 *data, size_t data_len, int ack); int gas_server_set_comeback_delay(struct gas_server *gas, void *resp_ctx, u16 comeback_delay); int gas_server_set_resp(struct gas_server *gas, void *resp_ctx, struct wpabuf *resp); bool gas_server_response_sent(struct gas_server *gas, void *resp_ctx); #else /* CONFIG_GAS_SERVER */ static inline void gas_server_deinit(struct gas_server *gas) { } #endif /* CONFIG_GAS_SERVER */ #endif /* GAS_SERVER_H */