1*a1157835SDaniel Fojt /*
2*a1157835SDaniel Fojt * Generic advertisement service (GAS) server
3*a1157835SDaniel Fojt * Copyright (c) 2017, Qualcomm Atheros, Inc.
4*a1157835SDaniel Fojt *
5*a1157835SDaniel Fojt * This software may be distributed under the terms of the BSD license.
6*a1157835SDaniel Fojt * See README for more details.
7*a1157835SDaniel Fojt */
8*a1157835SDaniel Fojt
9*a1157835SDaniel Fojt #ifndef GAS_SERVER_H
10*a1157835SDaniel Fojt #define GAS_SERVER_H
11*a1157835SDaniel Fojt
12*a1157835SDaniel Fojt #ifdef CONFIG_GAS_SERVER
13*a1157835SDaniel Fojt
14*a1157835SDaniel Fojt struct gas_server;
15*a1157835SDaniel Fojt
16*a1157835SDaniel Fojt struct gas_server * gas_server_init(void *ctx,
17*a1157835SDaniel Fojt void (*tx)(void *ctx, int freq,
18*a1157835SDaniel Fojt const u8 *da,
19*a1157835SDaniel Fojt struct wpabuf *buf,
20*a1157835SDaniel Fojt unsigned int wait_time));
21*a1157835SDaniel Fojt void gas_server_deinit(struct gas_server *gas);
22*a1157835SDaniel Fojt int gas_server_register(struct gas_server *gas,
23*a1157835SDaniel Fojt const u8 *adv_proto_id, u8 adv_proto_id_len,
24*a1157835SDaniel Fojt struct wpabuf *
25*a1157835SDaniel Fojt (*req_cb)(void *ctx, const u8 *sa,
26*a1157835SDaniel Fojt const u8 *query, size_t query_len),
27*a1157835SDaniel Fojt void (*status_cb)(void *ctx, struct wpabuf *resp,
28*a1157835SDaniel Fojt int ok),
29*a1157835SDaniel Fojt void *ctx);
30*a1157835SDaniel Fojt int gas_server_rx(struct gas_server *gas, const u8 *da, const u8 *sa,
31*a1157835SDaniel Fojt const u8 *bssid, u8 categ, const u8 *data, size_t len,
32*a1157835SDaniel Fojt int freq);
33*a1157835SDaniel Fojt void gas_server_tx_status(struct gas_server *gas, const u8 *dst, const u8 *data,
34*a1157835SDaniel Fojt size_t data_len, int ack);
35*a1157835SDaniel Fojt
36*a1157835SDaniel Fojt #else /* CONFIG_GAS_SERVER */
37*a1157835SDaniel Fojt
gas_server_deinit(struct gas_server * gas)38*a1157835SDaniel Fojt static inline void gas_server_deinit(struct gas_server *gas)
39*a1157835SDaniel Fojt {
40*a1157835SDaniel Fojt }
41*a1157835SDaniel Fojt
42*a1157835SDaniel Fojt #endif /* CONFIG_GAS_SERVER */
43*a1157835SDaniel Fojt
44*a1157835SDaniel Fojt #endif /* GAS_SERVER_H */
45