blob: a973a7b1bfe2544a9f03451ac5efceb3bb2e6f24 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
2 * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28/******************************************************************************
29* wlan_nlink_srv.h
30*
31* wlan_nlink_srv is used to RX/TX Netlink messages from user space to kernel
32* modules and vice versa. Kernel modules must register a message handler for a
33* message type so that the wlan_nlink_srv can invoke the corresponding msg handler
34* whenever a Netlink message of a particular type has been received from an
35* application. In the opposite direction, wlan_nlink_srv provides a mechanism
36* which kernel modules can use to send Netlink messages to applications.
37*
38******************************************************************************/
39
40#ifndef WLAN_NLINK_SRV_H
41#define WLAN_NLINK_SRV_H
42
43#include <linux/skbuff.h>
44#include <net/netlink.h>
45#include <wlan_nlink_common.h>
46
47#define INVALID_PID -1
48#define NLINK_MAX_CALLBACKS (WLAN_NL_MSG_MAX - WLAN_NL_MSG_BASE)
49
50typedef int (*nl_srv_msg_callback)(struct sk_buff *skb);
51
52int nl_srv_init(void);
53void nl_srv_exit(void);
54int nl_srv_register(tWlanNlModTypes msg_type, nl_srv_msg_callback msg_handler);
55int nl_srv_unregister(tWlanNlModTypes msg_type,
56 nl_srv_msg_callback msg_handler);
57int nl_srv_ucast(struct sk_buff *skb, int dst_pid, int flag);
58int nl_srv_bcast(struct sk_buff *skb);
59int nl_srv_is_initialized(void);
60#endif