11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/* 21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Generic advertisement service (GAS) query 31f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2009, Atheros Communications 41f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2011, Qualcomm Atheros 51f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 7c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 81f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */ 91f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 101f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifndef GAS_QUERY_H 111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define GAS_QUERY_H 121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 131f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct gas_query; 141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 151f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifdef CONFIG_GAS 161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct gas_query * gas_query_init(struct wpa_supplicant *wpa_s); 181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_query_deinit(struct gas_query *gas); 191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint gas_query_rx(struct gas_query *gas, const u8 *da, const u8 *sa, 201f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt const u8 *bssid, const u8 *data, size_t len, int freq); 211f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtenum gas_query_result { 231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_SUCCESS, 241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_FAILURE, 251f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_TIMEOUT, 261f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_PEER_ERROR, 271f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_INTERNAL_ERROR, 281f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_CANCELLED, 291f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_DELETED_AT_DEINIT 301f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt}; 311f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 321f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint gas_query_req(struct gas_query *gas, const u8 *dst, int freq, 331f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt struct wpabuf *req, 341f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt void (*cb)(void *ctx, const u8 *dst, u8 dialog_token, 351f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt enum gas_query_result result, 361f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt const struct wpabuf *adv_proto, 371f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt const struct wpabuf *resp, u16 status_code), 381f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt void *ctx); 391f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_query_cancel(struct gas_query *gas, const u8 *dst, u8 dialog_token); 401f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 411f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#else /* CONFIG_GAS */ 421f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 431f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstatic inline struct gas_query * gas_query_init(struct wpa_supplicant *wpa_s) 441f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt{ 451f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt return (void *) 1; 461f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt} 471f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 481f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstatic inline void gas_query_deinit(struct gas_query *gas) 491f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt{ 501f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt} 511f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 521f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* CONFIG_GAS */ 531f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 541f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 551f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* GAS_QUERY_H */ 56