Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
[pandora-kernel.git] / drivers / staging / brcm80211 / include / bcmutils.h
index b534df6..b533159 100644 (file)
 #ifndef        _bcmutils_h_
 #define        _bcmutils_h_
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef BRCM_FULLMAC
-/* ctype replacement */
-#define _BCM_U 0x01            /* upper */
-#define _BCM_L 0x02            /* lower */
-#define _BCM_D 0x04            /* digit */
-#define _BCM_C 0x08            /* cntrl */
-#define _BCM_P 0x10            /* punct */
-#define _BCM_S 0x20            /* white space (space/lf/tab) */
-#define _BCM_X 0x40            /* hex digit */
-#define _BCM_SP        0x80            /* hard space (0x20) */
-
-       extern const unsigned char bcm_ctype[];
-#define bcm_ismask(x)  (bcm_ctype[(int)(unsigned char)(x)])
-
-#define bcm_isalnum(c) ((bcm_ismask(c)&(_BCM_U|_BCM_L|_BCM_D)) != 0)
-#define bcm_isalpha(c) ((bcm_ismask(c)&(_BCM_U|_BCM_L)) != 0)
-#define bcm_iscntrl(c) ((bcm_ismask(c)&(_BCM_C)) != 0)
-#define bcm_isdigit(c) ((bcm_ismask(c)&(_BCM_D)) != 0)
-#define bcm_isgraph(c) ((bcm_ismask(c)&(_BCM_P|_BCM_U|_BCM_L|_BCM_D)) != 0)
-#define bcm_islower(c) ((bcm_ismask(c)&(_BCM_L)) != 0)
-#define bcm_isprint(c) \
-       ((bcm_ismask(c)&(_BCM_P|_BCM_U|_BCM_L|_BCM_D|_BCM_SP)) != 0)
-#define bcm_ispunct(c) ((bcm_ismask(c)&(_BCM_P)) != 0)
-#define bcm_isspace(c) ((bcm_ismask(c)&(_BCM_S)) != 0)
-#define bcm_isupper(c) ((bcm_ismask(c)&(_BCM_U)) != 0)
-#define bcm_isxdigit(c)        ((bcm_ismask(c)&(_BCM_D|_BCM_X)) != 0)
-#define bcm_tolower(c) (bcm_isupper((c)) ? ((c) + 'a' - 'A') : (c))
-#define bcm_toupper(c) (bcm_islower((c)) ? ((c) + 'A' - 'a') : (c))
-#endif /* BRCM_FULLMAC */
-
 /* Buffer structure for collecting string-formatted data
 * using bcm_bprintf() API.
 * Use bcm_binit() to initialize before use
@@ -76,7 +42,7 @@ extern "C" {
 #define SPINWAIT(exp, us) { \
        uint countdown = (us) + 9; \
        while ((exp) && (countdown >= 10)) {\
-               OSL_DELAY(10); \
+               udelay(10); \
                countdown -= 10; \
        } \
 }
@@ -150,17 +116,11 @@ extern "C" {
 #else
        extern void pktq_pflush(osl_t *osh, struct pktq *pq, int prec,
                bool dir, ifpkt_cb_t fn, int arg);
-#endif
-#ifdef BRCM_FULLMAC
-/* Remove a specified packet from its queue */
-       extern bool pktq_pdel(struct pktq *pq, void *p, int prec);
 #endif /* BRCM_FULLMAC */
 
 /* operations on a set of precedences in packet queue */
 
-#ifdef BRCM_FULLMAC
        extern int pktq_mlen(struct pktq *pq, uint prec_bmp);
-#endif /* BRCM_FULLMAC */
        extern void *pktq_mdeq(struct pktq *pq, uint prec_bmp, int *prec_out);
 
 /* operations on packet queue as a whole */
@@ -180,11 +140,6 @@ extern "C" {
 
        extern void pktq_init(struct pktq *pq, int num_prec, int max_len);
 /* prec_out may be NULL if caller is not interested in return value */
-#ifdef BRCM_FULLMAC
-       extern void *pktq_deq(struct pktq *pq, int *prec_out);
-       extern void *pktq_deq_tail(struct pktq *pq, int *prec_out);
-       extern void *pktq_peek(struct pktq *pq, int *prec_out);
-#endif /* BRCM_FULLMAC */
        extern void *pktq_peek_tail(struct pktq *pq, int *prec_out);
 #ifdef BRCM_FULLMAC
        extern void pktq_flush(osl_t *osh, struct pktq *pq, bool dir);
@@ -195,56 +150,21 @@ extern "C" {
 
 /* externs */
 /* packet */
-#ifdef BRCM_FULLMAC
-       extern uint pktcopy(osl_t *osh, void *p, uint offset, int len,
-                           unsigned char *buf);
        extern uint pktfrombuf(osl_t *osh, void *p, uint offset, int len,
                               unsigned char *buf);
-       extern void *pktlast(osl_t *osh, void *p);
        extern uint pktsegcnt(osl_t *osh, void *p);
-#endif /* BRCM_FULLMAC */
        extern uint pkttotlen(osl_t *osh, void *p);
 
-/* Get priority from a packet and pass it back in scb (or equiv) */
-       extern uint pktsetprio(void *pkt, bool update_vtag);
-#define        PKTPRIO_VDSCP   0x100   /* DSCP prio found after VLAN tag */
-#define        PKTPRIO_VLAN    0x200   /* VLAN prio found */
-#define        PKTPRIO_UPD     0x400   /* DSCP used to update VLAN prio */
-#define        PKTPRIO_DSCP    0x800   /* DSCP prio found */
-
-#ifdef BRCM_FULLMAC
-/* string */
-       extern int BCMROMFN(bcm_atoi) (char *s);
-       extern unsigned long BCMROMFN(bcm_strtoul) (char *cp, char **endp, uint base);
-       extern char *BCMROMFN(bcmstrstr) (char *haystack, char *needle);
-       extern char *BCMROMFN(bcmstrcat) (char *dest, const char *src);
-       extern char *BCMROMFN(bcmstrncat) (char *dest, const char *src,
-                                          uint size);
-       extern unsigned long wchar2ascii(char *abuf, unsigned short *wbuf, unsigned short wbuflen,
-                                unsigned long abuflen);
-       char *bcmstrtok(char **string, const char *delimiters, char *tokdelim);
-       int bcmstricmp(const char *s1, const char *s2);
-       int bcmstrnicmp(const char *s1, const char *s2, int cnt);
-#endif
 /* ethernet address */
-       extern char *bcm_ether_ntoa(const struct ether_addr *ea, char *buf);
-       extern int BCMROMFN(bcm_ether_atoe) (char *p, struct ether_addr *ea);
+       extern int bcm_ether_atoe(char *p, struct ether_addr *ea);
 
 /* ip address */
        struct ipv4_addr;
        extern char *bcm_ip_ntoa(struct ipv4_addr *ia, char *buf);
 
-#ifdef BRCM_FULLMAC
-/* delay */
-       extern void bcm_mdelay(uint ms);
-#endif
 /* variable access */
        extern char *getvar(char *vars, const char *name);
        extern int getintvar(char *vars, const char *name);
-#ifdef BRCM_FULLMAC
-       extern int getintvararray(char *vars, const char *name, u8 index);
-       extern uint getgpiopin(char *vars, char *pin_name, uint def_pin);
-#endif
 #ifdef BCMDBG
        extern void prpkt(const char *msg, osl_t *osh, void *p0);
 #endif                         /* BCMDBG */
@@ -258,11 +178,6 @@ extern "C" {
 #define bcmprinttslogs()
 #define bcmprinttstamp(us)
 
-#ifdef BRCM_FULLLMAC
-       extern char *bcm_nvram_vars(uint *length);
-       extern int bcm_nvram_cache(void *sih);
-#endif
-
 /* Support for sharing code across in-driver iovar implementations.
  * The intent is that a driver use this structure to map iovar names
  * to its (private) iovar identifiers, and the lookup function to
@@ -293,18 +208,10 @@ extern "C" {
 
 /* flags are per-driver based on driver attributes */
 
-#ifdef BRCM_FULLMAC
        extern const bcm_iovar_t *bcm_iovar_lookup(const bcm_iovar_t *table,
                                                   const char *name);
-#endif
        extern int bcm_iovar_lencheck(const bcm_iovar_t *table, void *arg,
                                      int len, bool set);
-#ifdef BRCM_FULLMAC
-#if defined(BCMDBG)
-       extern int bcm_format_ssid(char *buf, const unsigned char ssid[],
-                                  uint ssid_len);
-#endif
-#endif /* BRCM_FULLMAC */
 
 /* Base type definitions */
 #define IOVT_VOID      0       /* no value (implictly set only) */
@@ -449,27 +356,8 @@ extern "C" {
 #define        ABS(a)                  (((a) < 0) ? -(a) : (a))
 #endif                         /* ABS */
 
-#ifndef MIN
-#define        MIN(a, b)               (((a) < (b)) ? (a) : (b))
-#endif                         /* MIN */
-
-#ifndef MAX
-#define        MAX(a, b)               (((a) > (b)) ? (a) : (b))
-#endif                         /* MAX */
-
 #define CEIL(x, y)             (((x) + ((y)-1)) / (y))
-#define        ROUNDUP(x, y)           ((((x)+((y)-1))/(y))*(y))
-#define        ISALIGNED(a, x)         (((a) & ((x)-1)) == 0)
-#define ALIGN_ADDR(addr, boundary) (void *)(((uintptr)(addr) + (boundary) - 1) \
-       & ~((boundary) - 1))
 #define        ISPOWEROF2(x)           ((((x)-1)&(x)) == 0)
-#define VALID_MASK(mask)       (!((mask) & ((mask) + 1)))
-#ifndef OFFSETOF
-#define        OFFSETOF(type, member)  ((uint)(uintptr)&((type *)0)->member)
-#endif                         /* OFFSETOF */
-#ifndef ARRAYSIZE
-#define ARRAYSIZE(a)           (sizeof(a)/sizeof(a[0]))
-#endif
 
 /* bit map related macros */
 #ifndef setbit
@@ -531,7 +419,6 @@ extern "C" {
 /* Check that bcm_tlv_t fits into the given buflen */
 #define bcm_valid_tlv(elt, buflen) ((buflen) >= 2 && (int)(buflen) >= (int)(2 + (elt)->len))
 
-/* buffer length for ethernet address from bcm_ether_ntoa() */
 #define ETHER_ADDR_STR_LEN     18      /* 18-bytes of Ethernet address buffer length */
 
 /* crypto utility function */
@@ -542,7 +429,7 @@ extern "C" {
 #ifdef __i386__
                           1 ||
 #endif
-                          (((uintptr) src1 | (uintptr) src2 | (uintptr) dst) &
+                          (((unsigned long) src1 | (unsigned long) src2 | (unsigned long) dst) &
                            3) == 0) {
                        /* ARM CM3 rel time: 1229 (727 if alignment check could be omitted) */
                        /* x86 supports unaligned.  This version runs 6x-9x faster on x86. */
@@ -568,53 +455,32 @@ extern "C" {
 
 /* externs */
 /* crc */
-       extern u8 BCMROMFN(hndcrc8) (u8 *p, uint nbytes, u8 crc);
-       extern u16 BCMROMFN(hndcrc16) (u8 *p, uint nbytes, u16 crc);
+       extern u8 hndcrc8(u8 *p, uint nbytes, u8 crc);
+       extern u16 hndcrc16(u8 *p, uint nbytes, u16 crc);
 /* format/print */
 #if defined(BCMDBG)
        extern int bcm_format_flags(const bcm_bit_desc_t *bd, u32 flags,
                                    char *buf, int len);
        extern int bcm_format_hex(char *str, const void *bytes, int len);
 #endif
-#ifdef BRCM_FULLMAC
-#ifdef BCMDBG
-       extern void deadbeef(void *p, uint len);
-#endif
-       extern const char *bcm_crypto_algo_name(uint algo);
-#endif /* BRCM_FULLMAC */
        extern char *bcm_chipname(uint chipid, char *buf, uint len);
-#ifdef BRCM_FULLMAC
-       extern char *bcm_brev_str(u32 brev, char *buf);
-       extern void printbig(char *buf);
-#endif /* BRCM_FULLMAC */
        extern void prhex(const char *msg, unsigned char *buf, uint len);
 
-#ifdef BRCM_FULLMAC
-/* IE parsing */
-       extern bcm_tlv_t *BCMROMFN(bcm_next_tlv) (bcm_tlv_t *elt, int *buflen);
-       extern bcm_tlv_t *BCMROMFN(bcm_parse_ordered_tlvs) (void *buf,
-                                                           int buflen,
-                                                           uint key);
-#endif
-       extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs) (void *buf, int buflen,
+       extern bcm_tlv_t *bcm_parse_tlvs(void *buf, int buflen,
                                                    uint key);
-#ifdef BRCM_FULLMAC
 /* bcmerror */
        extern const char *bcmerrorstr(int bcmerror);
-#endif
 
 /* multi-bool data type: set of bools, mbool is true if any is set */
        typedef u32 mbool;
 #define mboolset(mb, bit)              ((mb) |= (bit)) /* set one bool */
 #define mboolclr(mb, bit)              ((mb) &= ~(bit))        /* clear one bool */
-#define mboolisset(mb, bit)            (((mb) & (bit)) != 0)   /* TRUE if one bool is set */
+#define mboolisset(mb, bit)            (((mb) & (bit)) != 0)   /* true if one bool is set */
 #define        mboolmaskset(mb, mask, val)     ((mb) = (((mb) & ~(mask)) | (val)))
 
-#ifdef BRCM_FULLMAC
 /* power conversion */
-       extern u16 BCMROMFN(bcm_qdbm_to_mw) (u8 qdbm);
-       extern u8 BCMROMFN(bcm_mw_to_qdbm) (u16 mw);
-#endif
+       extern u16 bcm_qdbm_to_mw(u8 qdbm);
+       extern u8 bcm_mw_to_qdbm(u16 mw);
 
 /* generic datastruct to help dump routines */
        struct fielddesc {
@@ -623,28 +489,14 @@ extern "C" {
                u32 len;
        };
 
-#ifdef BRCM_FULLMAC
        extern void bcm_binit(struct bcmstrbuf *b, char *buf, uint size);
        extern int bcm_bprintf(struct bcmstrbuf *b, const char *fmt, ...);
-       extern void bcm_inc_bytes(unsigned char *num, int num_bytes, u8 amount);
-       extern int bcm_cmp_bytes(unsigned char *arg1, unsigned char *arg2, u8 nbytes);
-       extern void bcm_print_bytes(char *name, const unsigned char *cdata, int len);
-#endif
 
        typedef u32(*bcmutl_rdreg_rtn) (void *arg0, uint arg1,
                                           u32 offset);
-#ifdef BRCM_FULLMAC
-       extern uint bcmdumpfields(bcmutl_rdreg_rtn func_ptr, void *arg0,
-                                 uint arg1, struct fielddesc *str, char *buf,
-                                 u32 bufsize);
 
        extern uint bcm_mkiovar(char *name, char *data, uint datalen, char *buf,
                                uint len);
-#endif
-       extern uint BCMROMFN(bcm_bitcount) (u8 *bitmap, uint bytelength);
-
-#ifdef __cplusplus
-}
-#endif
+       extern uint bcm_bitcount(u8 *bitmap, uint bytelength);
 
 #endif                         /* _bcmutils_h_ */