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