xref: /freebsd/contrib/wpa/src/common/gas_server.h (revision c93b6e5fa24ba172ab271432c6692f9cc604e15a)
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 
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