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