commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnumach ChangeLog linux/src/include/asm-i386/bi... [gnumach-1-branch]


From: Thomas Schwinge
Subject: gnumach ChangeLog linux/src/include/asm-i386/bi... [gnumach-1-branch]
Date: Fri, 09 Jun 2006 23:50:14 +0000

CVSROOT:        /cvsroot/hurd
Module name:    gnumach
Branch:         gnumach-1-branch
Changes by:     Thomas Schwinge <tschwinge>     06/06/09 23:50:14

Modified files:
        .              : ChangeLog 
        linux/src/include/asm-i386: bitops.h 
        linux/src/include/linux: module.h wait.h wireless.h 
Added files:
        linux/dev/include/asm-i386: uaccess.h 
        linux/dev/include/linux: pm.h threads.h 
        linux/src/include/linux: kcomp.h list.h symtab_begin.h 
                                 symtab_end.h 

Log message:
        2006-06-09  Stefan Siegl  <address@hidden>
        
                * linux/dev/include/asm-i386/uaccess.h: New dummy file.
                * linux/dev/include/linux/pm.h: Likewise.
                * linux/dev/include/linux/threads.h: Likewise.
                * linux/src/include/linux/symtab_begin.h: New file from Linux 
2.0.40.
                * linux/src/include/linux/symtab_end.h: Likewise.
                * linux/src/include/linux/module.h: Update from Linux 2.0.40 
with minor
                changes.
                * linux/src/include/linux/list.h: New file from Linux 2.2.26.
                * linux/src/include/linux/kcomp.h: Likewise with minor changes.
                * linux/src/include/linux/wait.h: Update from Linux 2.2.26.
                * linux/src/include/linux/wireless.h: Likewise.
                * linux/src/include/asm-i386/bitops.h [__KERNEL__] (ffs, 
hweight32)
                (hweight16, hweight8): Copy from Linux 2.2.26.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnumach/ChangeLog?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.128.2.80&r2=1.128.2.81
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/dev/include/asm-i386/uaccess.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/dev/include/linux/pm.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/dev/include/linux/threads.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/asm-i386/bitops.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1&r2=1.1.4.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/module.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1&r2=1.1.4.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/wait.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1&r2=1.1.4.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/wireless.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1&r2=1.1.4.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/kcomp.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/list.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/symtab_begin.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/linux/src/include/linux/symtab_end.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/hurd/gnumach/ChangeLog,v
retrieving revision 1.128.2.80
retrieving revision 1.128.2.81
diff -u -b -r1.128.2.80 -r1.128.2.81
--- ChangeLog   9 Jun 2006 19:08:11 -0000       1.128.2.80
+++ ChangeLog   9 Jun 2006 23:50:14 -0000       1.128.2.81
@@ -1,5 +1,19 @@
 2006-06-09  Stefan Siegl  <address@hidden>
 
+       * linux/dev/include/asm-i386/uaccess.h: New dummy file.
+       * linux/dev/include/linux/pm.h: Likewise.
+       * linux/dev/include/linux/threads.h: Likewise.
+       * linux/src/include/linux/symtab_begin.h: New file from Linux 2.0.40.
+       * linux/src/include/linux/symtab_end.h: Likewise.
+       * linux/src/include/linux/module.h: Update from Linux 2.0.40 with minor
+       changes.
+       * linux/src/include/linux/list.h: New file from Linux 2.2.26.
+       * linux/src/include/linux/kcomp.h: Likewise with minor changes.
+       * linux/src/include/linux/wait.h: Update from Linux 2.2.26.
+       * linux/src/include/linux/wireless.h: Likewise.
+       * linux/src/include/asm-i386/bitops.h [__KERNEL__] (ffs, hweight32)
+       (hweight16, hweight8): Copy from Linux 2.2.26.
+
        * kern/printf.c (_doprnt): Support printing of pointer addresses.
 
 2006-05-14  Roland McGrath  <address@hidden>

Index: linux/src/include/asm-i386/bitops.h
===================================================================
RCS file: /cvsroot/hurd/gnumach/linux/src/include/asm-i386/Attic/bitops.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -b -r1.1 -r1.1.4.1
--- linux/src/include/asm-i386/bitops.h 26 Apr 1999 05:55:41 -0000      1.1
+++ linux/src/include/asm-i386/bitops.h 9 Jun 2006 23:50:14 -0000       1.1.4.1
@@ -134,4 +134,34 @@
        return word;
 }
 
+#ifdef __KERNEL__
+
+/*
+ * ffs: find first bit set. This is defined the same way as
+ * the libc and compiler builtin ffs routines, therefore
+ * differs in spirit from the above ffz (man ffs).
+ */
+
+extern __inline__ int ffs(int x)
+{
+       int r;
+
+       __asm__("bsfl %1,%0\n\t"
+               "jnz 1f\n\t"
+               "movl $-1,%0\n"
+               "1:" : "=r" (r) : "g" (x));
+       return r+1;
+}
+
+/*
+ * hweightN: returns the hamming weight (i.e. the number
+ * of bits set) of a N-bit word
+ */
+
+#define hweight32(x) generic_hweight32(x)
+#define hweight16(x) generic_hweight16(x)
+#define hweight8(x) generic_hweight8(x)
+
+#endif /* __KERNEL__ */
+
 #endif /* _I386_BITOPS_H */

Index: linux/src/include/linux/module.h
===================================================================
RCS file: /cvsroot/hurd/gnumach/linux/src/include/linux/Attic/module.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -b -r1.1 -r1.1.4.1
--- linux/src/include/linux/module.h    26 Apr 1999 05:56:46 -0000      1.1
+++ linux/src/include/linux/module.h    9 Jun 2006 23:50:14 -0000       1.1.4.1
@@ -46,7 +46,7 @@
 struct internal_symbol {
        void *addr;
        const char *name;
-       };
+};
 
 struct symbol_table { /* received from "insmod" */
        int size; /* total, including string table!!! */
@@ -65,7 +65,7 @@
        struct symbol_table *symtab;
        const char *name;
        int size;                       /* size of module in pages */
-       void* addr;                     /* address of module */
+       void *addr;                     /* address of module */
        int state;
        void (*cleanup)(void);          /* cleanup routine */
 };
@@ -108,12 +108,6 @@
 #endif
 
 /* insert new symbol table */
-extern int register_symtab_from(struct symbol_table *, long *);
-extern void *get_module_symbol(char *, char *);
-#ifdef MODULE
-#define register_symtab(symtab) register_symtab_from(symtab, &mod_use_count_)
-#else
-#define register_symtab(symtab) register_symtab_from(symtab, 0)
-#endif
+#define register_symtab(symtab)
 
 #endif

Index: linux/src/include/linux/wait.h
===================================================================
RCS file: /cvsroot/hurd/gnumach/linux/src/include/linux/Attic/wait.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -b -r1.1 -r1.1.4.1
--- linux/src/include/linux/wait.h      26 Apr 1999 05:57:22 -0000      1.1
+++ linux/src/include/linux/wait.h      9 Jun 2006 23:50:14 -0000       1.1.4.1
@@ -4,16 +4,26 @@
 #define WNOHANG                0x00000001
 #define WUNTRACED      0x00000002
 
-#define __WCLONE       0x80000000
+#define __WALL         0x40000000      /* Wait on all children, regardless of 
type */
+#define __WCLONE       0x80000000      /* Wait only on non-SIGCHLD children */ 
 
 #ifdef __KERNEL__
 
+#include <asm/page.h>
+
 struct wait_queue {
        struct task_struct * task;
        struct wait_queue * next;
 };
 
+typedef struct wait_queue wait_queue_t;
+typedef struct wait_queue *wait_queue_head_t;
+
 #define WAIT_QUEUE_HEAD(x) ((struct wait_queue *)((x)-1))
+#define DECLARE_WAITQUEUE(wait, current)       struct wait_queue wait = { 
current, NULL }
+#define DECLARE_WAIT_QUEUE_HEAD(wait)          wait_queue_head_t wait
+#define init_waitqueue_head(x)                 *(x)=NULL
+#define init_waitqueue_entry(q,p)              ((q)->task)=(p)
 
 static inline void init_waitqueue(struct wait_queue **q)
 {

Index: linux/src/include/linux/wireless.h
===================================================================
RCS file: /cvsroot/hurd/gnumach/linux/src/include/linux/Attic/wireless.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -b -r1.1 -r1.1.4.1
--- linux/src/include/linux/wireless.h  26 Apr 1999 05:57:23 -0000      1.1
+++ linux/src/include/linux/wireless.h  9 Jun 2006 23:50:14 -0000       1.1.4.1
@@ -1,9 +1,9 @@
 /*
  * This file define a set of standard wireless extensions
  *
- * Version :   4       12.2.97
+ * Version :   9       16.10.99
  *
- * Authors :   Jean Tourrilhes - HPLB - <address@hidden>
+ * Authors :   Jean Tourrilhes - HPL - <address@hidden>
  */
 
 #ifndef _LINUX_WIRELESS_H
@@ -63,7 +63,7 @@
  * (there is some stuff that will be added in the future...)
  * I just plan to increment with each new version.
  */
-#define WIRELESS_EXT   5
+#define WIRELESS_EXT   10
 
 /*
  * Changes :
@@ -82,26 +82,55 @@
  * --------
  *     - Missing encoding definitions in range
  *     - Access points stuff
+ *
+ * V5 to V6
+ * --------
+ *     - 802.11 support (ESSID ioctls)
+ *
+ * V6 to V7
+ * --------
+ *     - define IW_ESSID_MAX_SIZE and IW_MAX_AP
+ *
+ * V7 to V8
+ * --------
+ *     - Changed my e-mail address
+ *     - More 802.11 support (nickname, rate, rts, frag)
+ *     - List index in frequencies
+ *
+ * V8 to V9
+ * --------
+ *     - Support for 'mode of operation' (ad-hoc, managed...)
+ *     - Support for unicast and multicast power saving
+ *     - Change encoding to support larger tokens (>64 bits)
+ *     - Updated iw_params (disable, flags) and use it for NWID
+ *     - Extracted iw_point from iwreq for clarity
+ *
+ * V9 to V10
+ * ---------
+ *     - Add PM capability to range structure
+ *     - Add PM modifier : MAX/MIN/RELATIVE
+ *     - Add encoding option : IW_ENCODE_NOKEY
+ *     - Add TxPower ioctls (work like TxRate)
  */
 
 /* -------------------------- IOCTL LIST -------------------------- */
 
 /* Basic operations */
-#define SIOCSIWNAME    0x8B00          /* Unused ??? */
-#define SIOCGIWNAME    0x8B01          /* get name */
-#define SIOCSIWNWID    0x8B02          /* set network id */
+#define SIOCSIWNAME    0x8B00          /* Unused */
+#define SIOCGIWNAME    0x8B01          /* get name == wireless protocol */
+#define SIOCSIWNWID    0x8B02          /* set network id (the cell) */
 #define SIOCGIWNWID    0x8B03          /* get network id */
-#define SIOCSIWFREQ    0x8B04          /* set channel/frequency */
-#define SIOCGIWFREQ    0x8B05          /* get channel/frequency */
-#define SIOCSIWENCODE  0x8B06          /* set encoding info */
-#define SIOCGIWENCODE  0x8B07          /* get encoding info */
-#define SIOCSIWSENS    0x8B08          /* set sensitivity */
-#define SIOCGIWSENS    0x8B09          /* get sensitivity */
+#define SIOCSIWFREQ    0x8B04          /* set channel/frequency (Hz) */
+#define SIOCGIWFREQ    0x8B05          /* get channel/frequency (Hz) */
+#define SIOCSIWMODE    0x8B06          /* set operation mode */
+#define SIOCGIWMODE    0x8B07          /* get operation mode */
+#define SIOCSIWSENS    0x8B08          /* set sensitivity (dBm) */
+#define SIOCGIWSENS    0x8B09          /* get sensitivity (dBm) */
 
 /* Informative stuff */
-#define SIOCSIWRANGE   0x8B0A          /* Unused ??? */
+#define SIOCSIWRANGE   0x8B0A          /* Unused */
 #define SIOCGIWRANGE   0x8B0B          /* Get range of parameters */
-#define SIOCSIWPRIV    0x8B0C          /* Unused ??? */
+#define SIOCSIWPRIV    0x8B0C          /* Unused */
 #define SIOCGIWPRIV    0x8B0D          /* get private ioctl interface info */
 
 /* Mobile IP support */
@@ -109,15 +138,43 @@
 #define SIOCGIWSPY     0x8B11          /* get spy info (quality of link) */
 
 /* Access Point manipulation */
-#define SIOCSIWAP      0x8B14          /* set access point hardware addresses 
*/
-#define SIOCGIWAP      0x8B15          /* get access point hardware addresses 
*/
+#define SIOCSIWAP      0x8B14          /* set access point MAC addresses */
+#define SIOCGIWAP      0x8B15          /* get access point MAC addresses */
 #define SIOCGIWAPLIST  0x8B17          /* get list of access point in range */
 
+/* 802.11 specific support */
+#define SIOCSIWESSID   0x8B1A          /* set ESSID (network name) */
+#define SIOCGIWESSID   0x8B1B          /* get ESSID */
+#define SIOCSIWNICKN   0x8B1C          /* set node name/nickname */
+#define SIOCGIWNICKN   0x8B1D          /* get node name/nickname */
+/* As the ESSID and NICKN are strings up to 32 bytes long, it doesn't fit
+ * within the 'iwreq' structure, so we need to use the 'data' member to
+ * point to a string in user space, like it is done for RANGE...
+ * The "flags" member indicate if the ESSID is active or not (promiscuous).
+ */
+
+/* Other parameters usefull in 802.11 and some other devices */
+#define SIOCSIWRATE    0x8B20          /* set default bit rate (bps) */
+#define SIOCGIWRATE    0x8B21          /* get default bit rate (bps) */
+#define SIOCSIWRTS     0x8B22          /* set RTS/CTS threshold (bytes) */
+#define SIOCGIWRTS     0x8B23          /* get RTS/CTS threshold (bytes) */
+#define SIOCSIWFRAG    0x8B24          /* set fragmentation thr (bytes) */
+#define SIOCGIWFRAG    0x8B25          /* get fragmentation thr (bytes) */
+#define SIOCSIWTXPOW   0x8B26          /* set transmit power (dBm) */
+#define SIOCGIWTXPOW   0x8B27          /* get transmit power (dBm) */
+
+/* Encoding stuff (scrambling, hardware security, WEP...) */
+#define SIOCSIWENCODE  0x8B2A          /* set encoding token & mode */
+#define SIOCGIWENCODE  0x8B2B          /* get encoding token & mode */
+/* Power saving stuff (power management, unicast and multicast) */
+#define SIOCSIWPOWER   0x8B2C          /* set Power Management settings */
+#define SIOCGIWPOWER   0x8B2D          /* get Power Management settings */
+
 /* ------------------------- IOCTL STUFF ------------------------- */
 
 /* The first and the last (range) */
 #define SIOCIWFIRST    0x8B00
-#define SIOCIWLAST     0x8B17
+#define SIOCIWLAST     0x8B30
 
 /* Even : get (world access), odd : set (root access) */
 #define IW_IS_SET(cmd) (!((cmd) & 0x1))
@@ -154,23 +211,105 @@
  * don't increase this constant and don't fill the frequency list.
  * The user will be able to set by channel anyway... */
 
+/* Maximum bit rates in the range struct */
+#define IW_MAX_BITRATES                8
+
+/* Maximum tx powers in the range struct */
+#define IW_MAX_TXPOWER         8
+
 /* Maximum of address that you may set with SPY */
 #define IW_MAX_SPY             8
 
+/* Maximum of address that you may get in the
+   list of access points in range */
+#define IW_MAX_AP              8
+
+/* Maximum size of the ESSID and NICKN strings */
+#define IW_ESSID_MAX_SIZE      32
+
+/* Modes of operation */
+#define IW_MODE_AUTO   0       /* Let the driver decides */
+#define IW_MODE_ADHOC  1       /* Single cell network */
+#define IW_MODE_INFRA  2       /* Multi cell network, roaming, ... */
+#define IW_MODE_MASTER 3       /* Synchronisation master or Access Point */
+#define IW_MODE_REPEAT 4       /* Wireless Repeater (forwarder) */
+#define IW_MODE_SECOND 5       /* Secondary master/repeater (backup) */
+
+/* Maximum number of size of encoding token available
+ * they are listed in the range structure */
+#define IW_MAX_ENCODING_SIZES  8
+
+/* Maximum size of the encoding token in bytes */
+#define IW_ENCODING_TOKEN_MAX  32      /* 256 bits (for now) */
+
+/* Flags for encoding (along with the token) */
+#define IW_ENCODE_INDEX                0x00FF  /* Token index (if needed) */
+#define IW_ENCODE_FLAGS                0xFF00  /* Flags defined below */
+#define IW_ENCODE_MODE         0xF000  /* Modes defined below */
+#define IW_ENCODE_DISABLED     0x8000  /* Encoding disabled */
+#define IW_ENCODE_ENABLED      0x0000  /* Encoding enabled */
+#define IW_ENCODE_RESTRICTED   0x4000  /* Refuse non-encoded packets */
+#define IW_ENCODE_OPEN         0x2000  /* Accept non-encoded packets */
+#define IW_ENCODE_NOKEY         0x0800  /* Key is write only, so not present */
+
+/* Power management flags available (along with the value, if any) */
+#define IW_POWER_ON            0x0000  /* No details... */
+#define IW_POWER_TYPE          0xF000  /* Type of parameter */
+#define IW_POWER_PERIOD                0x1000  /* Value is a period/duration 
of  */
+#define IW_POWER_TIMEOUT       0x2000  /* Value is a timeout (to go asleep) */
+#define IW_POWER_MODE          0x0F00  /* Power Management mode */
+#define IW_POWER_UNICAST_R     0x0100  /* Receive only unicast messages */
+#define IW_POWER_MULTICAST_R   0x0200  /* Receive only multicast messages */
+#define IW_POWER_ALL_R         0x0300  /* Receive all messages though PM */
+#define IW_POWER_FORCE_S       0x0400  /* Force PM procedure for sending 
unicast */
+#define IW_POWER_REPEATER      0x0800  /* Repeat broadcast messages in PM 
period */
+#define IW_POWER_MODIFIER      0x000F  /* Modify a parameter */
+#define IW_POWER_MIN           0x0001  /* Value is a minimum  */
+#define IW_POWER_MAX           0x0002  /* Value is a maximum */
+#define IW_POWER_RELATIVE      0x0004  /* Value is not in seconds/ms/us */
+
+/* Transmit Power flags available */
+#define IW_TXPOW_DBM           0x0000  /* Value is in dBm */
+#define IW_TXPOW_MWATT         0x0001  /* Value is in mW */
+
 /****************************** TYPES ******************************/
 
 /* --------------------------- SUBTYPES --------------------------- */
 /*
+ *     Generic format for most parameters that fit in an int
+ */
+struct iw_param
+{
+  __s32                value;          /* The value of the parameter itself */
+  __u8         fixed;          /* Hardware should not use auto select */
+  __u8         disabled;       /* Disable the feature */
+  __u16                flags;          /* Various specifc flags (if any) */
+};
+
+/*
+ *     For all data larger than 16 octets, we need to use a
+ *     pointer to memory alocated in user space.
+ */
+struct iw_point
+{
+  caddr_t      pointer;        /* Pointer to the data  (in user space) */
+  __u16                length;         /* number of fields or size in bytes */
+  __u16                flags;          /* Optional params */
+};
+
+/*
  *     A frequency
- *     For numbers lower than 10^9, we encode the number in 'mant' and
- *     set 'exp' to 0
- *     For number greater than 10^9, we divide it by a power of 10.
- *     The power of 10 is in 'exp', the result is in 'mant'.
+ *     For numbers lower than 10^9, we encode the number in 'm' and
+ *     set 'e' to 0
+ *     For number greater than 10^9, we divide it by the lowest power
+ *     of 10 to get 'm' lower than 10^9, with 'm'= f / (10^'e')...
+ *     The power of 10 is in 'e', the result of the division is in 'm'.
  */
 struct iw_freq
 {
        __u32           m;              /* Mantissa */
        __u16           e;              /* Exponent */
+       __u8            i;              /* List index (when in range struct) */
 };
 
 /*
@@ -178,7 +317,7 @@
  */
 struct iw_quality
 {
-       __u8            qual;           /* link quality (SNR or better...) */
+       __u8            qual;           /* link quality (%retries, SNR or 
better...) */
        __u8            level;          /* signal level */
        __u8            noise;          /* noise level */
        __u8            updated;        /* Flags to know if updated */
@@ -195,25 +334,14 @@
        __u32           misc;           /* Others cases */
 };
 
-/*
- *     Encoding information (setting and so on)
- *     Encoding might be hardware encryption, scrambing or others
- */
-struct iw_encoding
-{
-  __u8 method;                 /* Algorithm number / key used */
-  __u64        code;                   /* Data/key used for algorithm */
-};
-
-
 /* ------------------------ WIRELESS STATS ------------------------ */
 /*
  * Wireless statistics (used for /proc/net/wireless)
  */
 struct iw_statistics
 {
-       __u8            status;         /* Status
-                                        * - device dependant for now */
+       __u16           status;         /* Status
+                                        * - device dependent for now */
 
        struct iw_quality       qual;           /* Quality of the link
                                                 * (instant/mean/max) */
@@ -234,7 +362,7 @@
 {
        union
        {
-               char    ifrn_name[IFNAMSIZ];    /* if name, e.g. "en0" */
+               char    ifrn_name[IFNAMSIZ];    /* if name, e.g. "eth0" */
        } ifr_ifrn;
 
        /* Data part */
@@ -245,29 +373,25 @@
                /* Name : used to verify the presence of  wireless extensions.
                 * Name of the protocol/provider... */
 
-               struct          /* network id (or domain) : used to */
-               {               /* create logical channels on the air */
-                       __u32   nwid;           /* value */
-                       __u8    on;             /* active/unactive nwid */
-               }       nwid;
-
+               struct iw_point essid;  /* Extended network name */
+               struct iw_param nwid;   /* network id (or domain - the cell) */
                struct iw_freq  freq;   /* frequency or channel :
                                         * 0-1000 = channel
                                         * > 1000 = frequency in Hz */
 
-               struct iw_encoding      encoding;       /* Encoding stuff */
+               struct iw_param sens;           /* signal level threshold */
+               struct iw_param bitrate;        /* default bit rate */
+               struct iw_param txpower;        /* default transmit power */
+               struct iw_param rts;            /* RTS threshold threshold */
+               struct iw_param frag;           /* Fragmentation threshold */
+               __u32           mode;           /* Operation mode */
 
-               __u32   sensitivity;            /* signal level threshold */
+               struct iw_point encoding;       /* Encoding stuff : tokens */
+               struct iw_param power;          /* PM duration/timeout */
 
                struct sockaddr ap_addr;        /* Access point address */
 
-               struct          /* For all data bigger than 16 octets */
-               {
-                       caddr_t pointer;        /* Pointer to the data
-                                                * (in user space) */
-                       __u16   length;         /* fields or byte size */
-                       __u16   flags;          /* Unused */
-               }       data;
+               struct iw_point data;           /* Other large parameters */
        }       u;
 };
 
@@ -285,6 +409,12 @@
 {
        /* Informative stuff (to choose between different interface) */
        __u32           throughput;     /* To give an idea... */
+       /* In theory this value should be the maximum benchmarked
+        * TCP/IP throughput, because with most of these devices the
+        * bit rate is meaningless (overhead an co) to estimate how
+        * fast the connection will go and pick the fastest one.
+        * I suggest people to play with Netperf or any benchmark...
+        */
 
        /* NWID (or domain id) */
        __u32           min_nwid;       /* Minimal NWID we are able to set */
@@ -297,13 +427,41 @@
        /* Note : this frequency list doesn't need to fit channel numbers */
 
        /* signal level threshold range */
-       __u32   sensitivity;
+       __s32   sensitivity;
 
        /* Quality of link & SNR stuff */
        struct iw_quality       max_qual;       /* Quality of the link */
 
+       /* Rates */
+       __u8            num_bitrates;   /* Number of entries in the list */
+       __s32           bitrate[IW_MAX_BITRATES];       /* list, in bps */
+
+       /* RTS threshold */
+       __s32           min_rts;        /* Minimal RTS threshold */
+       __s32           max_rts;        /* Maximal RTS threshold */
+
+       /* Frag threshold */
+       __s32           min_frag;       /* Minimal frag threshold */
+       __s32           max_frag;       /* Maximal frag threshold */
+
+       /* Power Management duration & timeout */
+       __s32           min_pmp;        /* Minimal PM period */
+       __s32           max_pmp;        /* Maximal PM period */
+       __s32           min_pmt;        /* Minimal PM timeout */
+       __s32           max_pmt;        /* Maximal PM timeout */
+       __u16           pmp_flags;      /* How to decode max/min PM period */
+       __u16           pmt_flags;      /* How to decode max/min PM timeout */
+       __u16           pm_capa;        /* What PM options are supported */
+
        /* Encoder stuff */
-       struct iw_encoding      max_encoding;   /* Encoding max range */
+       __u16   encoding_size[IW_MAX_ENCODING_SIZES];   /* Different token 
sizes */
+       __u8    num_encoding_sizes;     /* Number of entry in the list */
+       __u8    max_encoding_tokens;    /* Max number of tokens */
+
+       /* Transmit power */
+       __u16           txpower_capa;   /* What options are supported */
+       __u8            num_txpower;    /* Number of entries in the list */
+       __s32           txpower[IW_MAX_TXPOWER];        /* list, in bps */
 };
 
 /*

Index: linux/dev/include/asm-i386/uaccess.h
===================================================================
RCS file: linux/dev/include/asm-i386/uaccess.h
diff -N linux/dev/include/asm-i386/uaccess.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/dev/include/asm-i386/uaccess.h        9 Jun 2006 23:50:14 -0000       
1.1.2.1
@@ -0,0 +1 @@
+/* Dummy file.  */

Index: linux/dev/include/linux/pm.h
===================================================================
RCS file: linux/dev/include/linux/pm.h
diff -N linux/dev/include/linux/pm.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/dev/include/linux/pm.h        9 Jun 2006 23:50:14 -0000       1.1.2.1
@@ -0,0 +1 @@
+/* Dummy file.  */

Index: linux/dev/include/linux/threads.h
===================================================================
RCS file: linux/dev/include/linux/threads.h
diff -N linux/dev/include/linux/threads.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/dev/include/linux/threads.h   9 Jun 2006 23:50:14 -0000       1.1.2.1
@@ -0,0 +1 @@
+/* Dummy file.  */

Index: linux/src/include/linux/kcomp.h
===================================================================
RCS file: linux/src/include/linux/kcomp.h
diff -N linux/src/include/linux/kcomp.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/src/include/linux/kcomp.h     9 Jun 2006 23:50:14 -0000       1.1.2.1
@@ -0,0 +1,54 @@
+/*
+ * Kernel compatibility glue to allow USB compile on 2.2.x kernels
+ */
+
+#include <linux/list.h>
+#include <linux/sched.h>
+#include <linux/netdevice.h>
+#include <linux/pagemap.h>
+
+#define __exit
+
+#define pci_enable_device(x)                   0
+
+#define page_address(x)                                (x | PAGE_OFFSET)
+
+#define        TTY_DRIVER_NO_DEVFS                     0
+
+#define        net_device                      device
+#define dev_kfree_skb_irq(a)           dev_kfree_skb(a, FREE_WRITE)
+#define netif_wake_queue(dev)          do { clear_bit(0, &dev->tbusy); 
mark_bh(NET_BH); } while(0)
+#define netif_stop_queue(dev)          test_and_set_bit(0, &dev->tbusy)
+#define netif_start_queue(dev)         do { dev->tbusy = 0; dev->interrupt = 
0; dev->start = 1; } while (0)
+#define netif_queue_stopped(dev)       dev->tbusy
+#define netif_running(dev)             dev->start
+
+/* hot-(un)plugging stuff */
+static inline int netif_device_present(struct net_device *dev)
+{
+       return  test_bit(0, &dev->start);
+}
+
+static inline void netif_device_detach(struct net_device *dev)
+{
+       if ( test_and_clear_bit(0, &dev->start) )
+               netif_stop_queue(dev);
+}
+
+static inline void netif_device_attach(struct net_device *dev)
+{
+       if ( !test_and_set_bit(0, &dev->start) )
+               netif_wake_queue(dev);
+}
+
+#define NET_XMIT_SUCCESS       0
+#define NET_XMIT_DROP          1
+#define NET_XMIT_CN            2
+
+#define IORESOURCE_IO                  1
+#define pci_resource_start(dev,bar) \
+(((dev)->base_address[(bar)] & PCI_BASE_ADDRESS_SPACE) ? \
+ ((dev)->base_address[(bar)] & PCI_BASE_ADDRESS_IO_MASK) : \
+ ((dev)->base_address[(bar)] & PCI_BASE_ADDRESS_MEM_MASK))
+#define pci_resource_flags(dev, i)     (dev->base_address[i] & IORESOURCE_IO)
+

Index: linux/src/include/linux/list.h
===================================================================
RCS file: linux/src/include/linux/list.h
diff -N linux/src/include/linux/list.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/src/include/linux/list.h      9 Jun 2006 23:50:14 -0000       1.1.2.1
@@ -0,0 +1,112 @@
+#ifndef _LINUX_LIST_H
+#define _LINUX_LIST_H
+
+#ifdef __KERNEL__
+
+/*
+ * Simple doubly linked list implementation.
+ *
+ * Some of the internal functions ("__xxx") are useful when
+ * manipulating whole lists rather than single entries, as
+ * sometimes we already know the next/prev entries and we can
+ * generate better code by using them directly rather than
+ * using the generic single-entry routines.
+ */
+
+struct list_head {
+       struct list_head *next, *prev;
+};
+
+#define LIST_HEAD_INIT(name) { &(name), &(name) }
+
+#define LIST_HEAD(name) \
+       struct list_head name = { &name, &name }
+
+#define INIT_LIST_HEAD(ptr) do { \
+       (ptr)->next = (ptr); (ptr)->prev = (ptr); \
+} while (0)
+
+/*
+ * Insert a new entry between two known consecutive entries. 
+ *
+ * This is only for internal list manipulation where we know
+ * the prev/next entries already!
+ */
+static __inline__ void __list_add(struct list_head * new,
+       struct list_head * prev,
+       struct list_head * next)
+{
+       next->prev = new;
+       new->next = next;
+       new->prev = prev;
+       prev->next = new;
+}
+
+/*
+ * Insert a new entry after the specified head..
+ */
+static __inline__ void list_add(struct list_head *new, struct list_head *head)
+{
+       __list_add(new, head, head->next);
+}
+
+/*
+ * Insert a new entry at the tail
+ */
+static __inline__ void list_add_tail(struct list_head *new, struct list_head 
*head)
+{
+       __list_add(new, head->prev, head);
+}
+
+/*
+ * Delete a list entry by making the prev/next entries
+ * point to each other.
+ *
+ * This is only for internal list manipulation where we know
+ * the prev/next entries already!
+ */
+static __inline__ void __list_del(struct list_head * prev,
+                                 struct list_head * next)
+{
+       next->prev = prev;
+       prev->next = next;
+}
+
+static __inline__ void list_del(struct list_head *entry)
+{
+       __list_del(entry->prev, entry->next);
+}
+
+static __inline__ int list_empty(struct list_head *head)
+{
+       return head->next == head;
+}
+
+/*
+ * Splice in "list" into "head"
+ */
+static __inline__ void list_splice(struct list_head *list, struct list_head 
*head)
+{
+       struct list_head *first = list->next;
+
+       if (first != list) {
+               struct list_head *last = list->prev;
+               struct list_head *at = head->next;
+
+               first->prev = head;
+               head->next = first;
+
+               last->next = at;
+               at->prev = last;
+       }
+}
+
+#define list_entry(ptr, type, member) \
+       ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
+
+#define list_for_each(pos, head) \
+        for (pos = (head)->next; pos != (head); pos = pos->next)
+
+#endif /* __KERNEL__ */
+
+#endif

Index: linux/src/include/linux/symtab_begin.h
===================================================================
RCS file: linux/src/include/linux/symtab_begin.h
diff -N linux/src/include/linux/symtab_begin.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/src/include/linux/symtab_begin.h      9 Jun 2006 23:50:14 -0000       
1.1.2.1
@@ -0,0 +1,45 @@
+#include <linux/linkage.h>
+
+#ifdef MODVERSIONS
+# undef _set_ver
+# undef X
+/*
+ * These two macros _will_ get enough arguments from the X* macros
+ * since "sym" expands to "symaddr, symstr" from the #define in *.ver
+ */
+# define _basic_version(symaddr,symstr)  symaddr, symstr
+# define _alias_version(really,symaddr,symstr)  (void *) & really , symstr
+
+# ifndef __GENKSYMS__
+#  ifdef MODULE
+#    define _set_ver(sym,ver) \
+       (void *) & sym ## _R ## ver, SYMBOL_NAME_STR(sym) "_R" #ver
+#  else /* !MODULE */
+#    define _set_ver(sym,ver) \
+       (void *) & sym, SYMBOL_NAME_STR(sym) "_R" #ver
+#  endif /* !MODULE */
+#  define X(sym) { _basic_version(sym) }
+/*
+ * For _really_ stacked modules:
+ *
+ * Use "Xalias(local_symbol, symbol_from_other_module)"
+ * to make subsequent modules really use "local_symbol"
+ * when they think that they are using "symbol_from_other_module"
+ *
+ * The "aliasing" module can still use "symbol_from_other_module",
+ * but can now replace and/or modify the behaviour of that symbol.
+ */
+#  define Xalias(really,sym) { _alias_version(really,sym) }
+# endif /* !__GENKSYMS__ */
+#else /* !MODVERSIONS */
+# define X(sym) { (void *) & sym, SYMBOL_NAME_STR(sym)}
+# define Xalias(really,sym) { (void *) & really, SYMBOL_NAME_STR(sym)}
+#endif /* MODVERSIONS */
+/*
+ * Some symbols always need to be unversioned.  This includes
+ * compiler generated calls to functions.
+ */
+#define XNOVERS(sym) { (void *) & sym, SYMBOL_NAME_STR(sym)}
+
+#define EMPTY {0,0}
+       0, 0, 0, {

Index: linux/src/include/linux/symtab_end.h
===================================================================
RCS file: linux/src/include/linux/symtab_end.h
diff -N linux/src/include/linux/symtab_end.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ linux/src/include/linux/symtab_end.h        9 Jun 2006 23:50:14 -0000       
1.1.2.1
@@ -0,0 +1,15 @@
+#ifdef MODVERSIONS
+#undef _set_ver
+#if defined(MODULE) && !defined(__GENKSYMS__)
+#define _set_ver(sym,vers) sym ## _R ## vers
+#else
+#define _set_ver(a,b) a
+#endif
+#endif /* MODVERSIONS */
+#undef X
+#undef EMPTY
+        /* mark end of table, last entry above ended with a comma! */
+        { (void *)0, (char *)0 }
+       },
+       /* no module refs, insmod will take care of that instead! */
+       { { (struct module *)0, (struct module_ref *)0 } }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]