Home | History | Annotate | Download | only in src
      1 /****************************************************************************
      2 **+-----------------------------------------------------------------------+**
      3 **|                                                                       |**
      4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
      5 **| All rights reserved.                                                  |**
      6 **|                                                                       |**
      7 **| Redistribution and use in source and binary forms, with or without    |**
      8 **| modification, are permitted provided that the following conditions    |**
      9 **| are met:                                                              |**
     10 **|                                                                       |**
     11 **|  * Redistributions of source code must retain the above copyright     |**
     12 **|    notice, this list of conditions and the following disclaimer.      |**
     13 **|  * Redistributions in binary form must reproduce the above copyright  |**
     14 **|    notice, this list of conditions and the following disclaimer in    |**
     15 **|    the documentation and/or other materials provided with the         |**
     16 **|    distribution.                                                      |**
     17 **|  * Neither the name Texas Instruments nor the names of its            |**
     18 **|    contributors may be used to endorse or promote products derived    |**
     19 **|    from this software without specific prior written permission.      |**
     20 **|                                                                       |**
     21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     32 **|                                                                       |**
     33 **+-----------------------------------------------------------------------+**
     34 ****************************************************************************/
     35 
     36 
     37 #include <linux/errno.h>
     38 #include <linux/string.h>
     39 
     40 #include "arch_ti.h"
     41 #include "osTIType.h"
     42 #include "osApi.h"
     43 #include "ioctl_init.h"
     44 
     45 #include "802_11Defs.h"
     46 #include "mlmeApi.h"
     47 
     48 /****************************************************************************/
     49 /*                                                                          */
     50 /*              Definition of Constants                                     */
     51 /*                                                                          */
     52 /****************************************************************************/
     53 #define SIZEOF_DOT11_MGMT_HEADER 0x18
     54 #define SIZEOF_MLME_FRAME_INFO   0x60
     55 #ifdef EXC_MODULE_INCLUDED
     56 #define SIZEOF_BEACON_FRM        0x57
     57 #else
     58 #define SIZEOF_BEACON_FRM        0x53
     59 #endif
     60 #define SIZEOF_ELEMENT_HDR       0x02
     61 #define SIZEOF_MGMT_FRAME        0x920
     62 #define SIZEOF_ASSOC_RSP_TYPE    0x26
     63 #define SIZEOF_AUTH_MSG_TYPE     0x0a
     64 #define SIZEOF_DEATUH_MSG_TYPE   0x02
     65 #define SIZEOF_DISASSOC_MSG_TYPE 0x02
     66 
     67 #define CHECK_STRUCT_SIZE(_type,_size) \
     68 { \
     69   if (sizeof(_type) != _size) \
     70   { \
     71         print_info(KERN_INFO"\n.... ERROR in size of %s struct 0x%08x  should be 0x%08x.....\n", \
     72                  #_type, (int)sizeof(_type),(int)_size); \
     73         rc = -EINVAL; \
     74   } \
     75 }
     76 
     77 /************************************************************************
     78  *                        packed_strct_tst                                                              *
     79  ************************************************************************
     80 DESCRIPTION: Used to test structures for the correct packed size
     81 
     82 INPUT:      Void
     83 
     84 OUTPUT:         Print Debug statements if the structures are not the expected size
     85 
     86 RETURN:    0=success
     87            -EINVAL - failure
     88 
     89 ************************************************************************/
     90 int packed_struct_tst (void)
     91 {
     92    int rc = 0;
     93    print_info("\nTIWLAN: Testing sizes of packed structures...\n");
     94    CHECK_STRUCT_SIZE(dot11_mgmtHeader_t, SIZEOF_DOT11_MGMT_HEADER);
     95    CHECK_STRUCT_SIZE(dot11_eleHdr_t, SIZEOF_ELEMENT_HDR);
     96    CHECK_STRUCT_SIZE(beacon_probeRsp_t, SIZEOF_BEACON_FRM);
     97    CHECK_STRUCT_SIZE(assocRsp_t, SIZEOF_ASSOC_RSP_TYPE );
     98    CHECK_STRUCT_SIZE(authMsg_t, SIZEOF_AUTH_MSG_TYPE);
     99    CHECK_STRUCT_SIZE(deAuth_t,  SIZEOF_DEATUH_MSG_TYPE);
    100    CHECK_STRUCT_SIZE(disAssoc_t, SIZEOF_DISASSOC_MSG_TYPE);
    101    CHECK_STRUCT_SIZE(dot11_mgmtFrame_t, SIZEOF_MGMT_FRAME);
    102    CHECK_STRUCT_SIZE(mlmeFrameInfo_t,SIZEOF_MLME_FRAME_INFO);
    103    print_info("TIWLAN: packet structure size test %s\n", rc?"failed":"passed");
    104 
    105    return rc;
    106 }
    107