1195377Ssam/*-
2195377Ssam * Copyright (c) 2009 Sam Leffler, Errno Consulting
3195377Ssam * All rights reserved.
4195377Ssam *
5195377Ssam * Redistribution and use in source and binary forms, with or without
6195377Ssam * modification, are permitted provided that the following conditions
7195377Ssam * are met:
8195377Ssam * 1. Redistributions of source code must retain the above copyright
9195377Ssam *    notice, this list of conditions and the following disclaimer.
10195377Ssam * 2. Redistributions in binary form must reproduce the above copyright
11195377Ssam *    notice, this list of conditions and the following disclaimer in the
12195377Ssam *    documentation and/or other materials provided with the distribution.
13195377Ssam *
14195377Ssam * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15195377Ssam * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16195377Ssam * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17195377Ssam * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18195377Ssam * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19195377Ssam * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20195377Ssam * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21195377Ssam * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22195377Ssam * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23195377Ssam * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24195377Ssam *
25195377Ssam * $FreeBSD$
26195377Ssam */
27195377Ssam#ifndef _NET80211_IEEE80211_ACTION_H_
28195377Ssam#define _NET80211_IEEE80211_ACTION_H_
29195377Ssam
30195377Ssam/*
31195377Ssam * 802.11 send/recv action frame support.
32195377Ssam */
33195377Ssam
34195377Ssamstruct ieee80211_node;
35195377Ssamstruct ieee80211_frame;
36195377Ssam
37195377Ssamtypedef int ieee80211_send_action_func(struct ieee80211_node *,
38195377Ssam    int, int, void *);
39195377Ssamint	ieee80211_send_action_register(int cat, int act,
40195377Ssam		ieee80211_send_action_func *f);
41195377Ssamvoid	ieee80211_send_action_unregister(int cat, int act);
42195377Ssamint	ieee80211_send_action(struct ieee80211_node *, int, int, void *);
43195377Ssam
44195377Ssamtypedef int ieee80211_recv_action_func(struct ieee80211_node *,
45195377Ssam    const struct ieee80211_frame *, const uint8_t *, const uint8_t *);
46195377Ssamint	ieee80211_recv_action_register(int cat, int act,
47195377Ssam		ieee80211_recv_action_func *);
48195377Ssamvoid	ieee80211_recv_action_unregister(int cat, int act);
49195377Ssamint	ieee80211_recv_action(struct ieee80211_node *,
50195377Ssam		const struct ieee80211_frame *,
51195377Ssam		const uint8_t *, const uint8_t *);
52195377Ssam#endif /* _NET80211_IEEE80211_ACTION_H_ */
53