00001 /* src/include/wlan/p80211ioctl.h 00002 * 00003 * Declares constants and types for the p80211 ioctls 00004 * 00005 * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. 00006 * -------------------------------------------------------------------- 00007 * 00008 * linux-wlan 00009 * 00010 * The contents of this file are subject to the Mozilla Public 00011 * License Version 1.1 (the "License"); you may not use this file 00012 * except in compliance with the License. You may obtain a copy of 00013 * the License at http://www.mozilla.org/MPL/ 00014 * 00015 * Software distributed under the License is distributed on an "AS 00016 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 00017 * implied. See the License for the specific language governing 00018 * rights and limitations under the License. 00019 * 00020 * Alternatively, the contents of this file may be used under the 00021 * terms of the GNU Public License version 2 (the "GPL"), in which 00022 * case the provisions of the GPL are applicable instead of the 00023 * above. If you wish to allow the use of your version of this file 00024 * only under the terms of the GPL and not to allow others to use 00025 * your version of this file under the MPL, indicate your decision 00026 * by deleting the provisions above and replace them with the notice 00027 * and other provisions required by the GPL. If you do not delete 00028 * the provisions above, a recipient may use your version of this 00029 * file under either the MPL or the GPL. 00030 * 00031 * -------------------------------------------------------------------- 00032 * 00033 * Inquiries regarding the linux-wlan Open Source project can be 00034 * made directly to: 00035 * 00036 * AbsoluteValue Systems Inc. 00037 * info@linux-wlan.com 00038 * http://www.linux-wlan.com 00039 * 00040 * -------------------------------------------------------------------- 00041 * 00042 * Portions of the development of this software were funded by 00043 * Intersil Corporation as part of PRISM(R) chipset product development. 00044 * 00045 * -------------------------------------------------------------------- 00046 * 00047 * While this file is called 'ioctl' is purpose goes a little beyond 00048 * that. This file defines the types and contants used to implement 00049 * the p80211 request/confirm/indicate interfaces on Linux. The 00050 * request/confirm interface is, in fact, normally implemented as an 00051 * ioctl. The indicate interface on the other hand, is implemented 00052 * using the Linux 'netlink' interface. 00053 * 00054 * The reason I say that request/confirm is 'normally' implemented 00055 * via ioctl is that we're reserving the right to be able to send 00056 * request commands via the netlink interface. This will be necessary 00057 * if we ever need to send request messages when there aren't any 00058 * wlan network devices present (i.e. sending a message that only p80211 00059 * cares about. 00060 * -------------------------------------------------------------------- 00061 */ 00062 00063 00064 #ifndef _P80211IOCTL_H 00065 #define _P80211IOCTL_H 00066 00067 /*================================================================*/ 00068 /* Constants */ 00069 00070 /*----------------------------------------------------------------*/ 00071 /* p80211 ioctl "request" codes. See argument 2 of ioctl(2). */ 00072 00073 #define P80211_IFTEST (SIOCDEVPRIVATE + 0) 00074 #define P80211_IFREQ (SIOCDEVPRIVATE + 1) 00075 00076 /*----------------------------------------------------------------*/ 00077 /* Magic number, a quick test to see we're getting the desired struct */ 00078 00079 #define P80211_IOCTL_MAGIC (0x4a2d464dUL) 00080 00081 /*----------------------------------------------------------------*/ 00082 /* Netlink protocol numbers for the indication interface */ 00083 00084 #define P80211_NL_SOCK_IND NETLINK_USERSOCK 00085 00086 /*----------------------------------------------------------------*/ 00087 /* Netlink multicast bits for different types of messages */ 00088 00089 #define P80211_NL_MCAST_GRP_MLME BIT0 /* Local station messages */ 00090 #define P80211_NL_MCAST_GRP_SNIFF BIT1 /* Sniffer messages */ 00091 #define P80211_NL_MCAST_GRP_DIST BIT2 /* Distribution system messages */ 00092 00093 /*================================================================*/ 00094 /* Macros */ 00095 00096 00097 /*================================================================*/ 00098 /* Types */ 00099 00100 /*----------------------------------------------------------------*/ 00101 /* A ptr to the following structure type is passed as the third */ 00102 /* argument to the ioctl system call when issuing a request to */ 00103 /* the p80211 module. */ 00104 00105 typedef struct p80211ioctl_req 00106 { 00107 char name[WLAN_DEVNAMELEN_MAX]; 00108 caddr_t data; 00109 UINT32 magic; 00110 UINT16 len; 00111 UINT32 result; 00112 } __WLAN_ATTRIB_PACK__ p80211ioctl_req_t; 00113 00114 00115 /*================================================================*/ 00116 /* Extern Declarations */ 00117 00118 00119 /*================================================================*/ 00120 /* Function Declarations */ 00121 00122 00123 #endif /* _P80211IOCTL_H */