p80211ioctl.h

Go to the documentation of this file.
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 */

Generated on Fri Jul 25 17:10:35 2008 for WifiScanner by  doxygen 1.5.5