CC3000HostDriver for device TI CC3000 some changes were made due to mbed compiler and the use of void*

Dependents:   CC3000Test

Committer:
dflet
Date:
Fri Aug 02 15:06:15 2013 +0000
Revision:
0:9cb694f00b7b
First commit TI CC3000HostDriver library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:9cb694f00b7b 1 /*****************************************************************************
dflet 0:9cb694f00b7b 2 *
dflet 0:9cb694f00b7b 3 * cc3000_common.c.c - CC3000 Host Driver Implementation.
dflet 0:9cb694f00b7b 4 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
dflet 0:9cb694f00b7b 5 *
dflet 0:9cb694f00b7b 6 * Redistribution and use in source and binary forms, with or without
dflet 0:9cb694f00b7b 7 * modification, are permitted provided that the following conditions
dflet 0:9cb694f00b7b 8 * are met:
dflet 0:9cb694f00b7b 9 *
dflet 0:9cb694f00b7b 10 * Redistributions of source code must retain the above copyright
dflet 0:9cb694f00b7b 11 * notice, this list of conditions and the following disclaimer.
dflet 0:9cb694f00b7b 12 *
dflet 0:9cb694f00b7b 13 * Redistributions in binary form must reproduce the above copyright
dflet 0:9cb694f00b7b 14 * notice, this list of conditions and the following disclaimer in the
dflet 0:9cb694f00b7b 15 * documentation and/or other materials provided with the
dflet 0:9cb694f00b7b 16 * distribution.
dflet 0:9cb694f00b7b 17 *
dflet 0:9cb694f00b7b 18 * Neither the name of Texas Instruments Incorporated nor the names of
dflet 0:9cb694f00b7b 19 * its contributors may be used to endorse or promote products derived
dflet 0:9cb694f00b7b 20 * from this software without specific prior written permission.
dflet 0:9cb694f00b7b 21 *
dflet 0:9cb694f00b7b 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
dflet 0:9cb694f00b7b 23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dflet 0:9cb694f00b7b 24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
dflet 0:9cb694f00b7b 25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
dflet 0:9cb694f00b7b 26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dflet 0:9cb694f00b7b 27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dflet 0:9cb694f00b7b 28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
dflet 0:9cb694f00b7b 29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
dflet 0:9cb694f00b7b 30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
dflet 0:9cb694f00b7b 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
dflet 0:9cb694f00b7b 32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dflet 0:9cb694f00b7b 33 *
dflet 0:9cb694f00b7b 34 *****************************************************************************/
dflet 0:9cb694f00b7b 35 //*****************************************************************************
dflet 0:9cb694f00b7b 36 //
dflet 0:9cb694f00b7b 37 //! \addtogroup common_api
dflet 0:9cb694f00b7b 38 //! @{
dflet 0:9cb694f00b7b 39 //
dflet 0:9cb694f00b7b 40 //*****************************************************************************
dflet 0:9cb694f00b7b 41 /******************************************************************************
dflet 0:9cb694f00b7b 42 *
dflet 0:9cb694f00b7b 43 * Include files
dflet 0:9cb694f00b7b 44 *
dflet 0:9cb694f00b7b 45 *****************************************************************************/
dflet 0:9cb694f00b7b 46 #include "cc3000_common.h"
dflet 0:9cb694f00b7b 47 #include "socket.h"
dflet 0:9cb694f00b7b 48 #include "wlan.h"
dflet 0:9cb694f00b7b 49 #include "evnt_handler.h"
dflet 0:9cb694f00b7b 50
dflet 0:9cb694f00b7b 51 //*****************************************************************************
dflet 0:9cb694f00b7b 52 //
dflet 0:9cb694f00b7b 53 //! __error__
dflet 0:9cb694f00b7b 54 //!
dflet 0:9cb694f00b7b 55 //! @param pcFilename - file name, where error occurred
dflet 0:9cb694f00b7b 56 //! @param ulLine - line number, where error occurred
dflet 0:9cb694f00b7b 57 //!
dflet 0:9cb694f00b7b 58 //! @return none
dflet 0:9cb694f00b7b 59 //!
dflet 0:9cb694f00b7b 60 //! @brief stub function for ASSERT macro
dflet 0:9cb694f00b7b 61 //
dflet 0:9cb694f00b7b 62 //*****************************************************************************
dflet 0:9cb694f00b7b 63 void
dflet 0:9cb694f00b7b 64 __error__(char *pcFilename, unsigned long ulLine)
dflet 0:9cb694f00b7b 65 {
dflet 0:9cb694f00b7b 66 //TODO full up function
dflet 0:9cb694f00b7b 67 }
dflet 0:9cb694f00b7b 68
dflet 0:9cb694f00b7b 69
dflet 0:9cb694f00b7b 70
dflet 0:9cb694f00b7b 71 //*****************************************************************************
dflet 0:9cb694f00b7b 72 //
dflet 0:9cb694f00b7b 73 //! UINT32_TO_STREAM_f
dflet 0:9cb694f00b7b 74 //!
dflet 0:9cb694f00b7b 75 //! @param p pointer to the new stream
dflet 0:9cb694f00b7b 76 //! @param u32 pointer to the 32 bit
dflet 0:9cb694f00b7b 77 //!
dflet 0:9cb694f00b7b 78 //! @return pointer to the new stream
dflet 0:9cb694f00b7b 79 //!
dflet 0:9cb694f00b7b 80 //! @brief This function is used for copying 32 bit to stream
dflet 0:9cb694f00b7b 81 //! while converting to little endian format.
dflet 0:9cb694f00b7b 82 //
dflet 0:9cb694f00b7b 83 //*****************************************************************************
dflet 0:9cb694f00b7b 84
dflet 0:9cb694f00b7b 85 unsigned char* UINT32_TO_STREAM_f (unsigned char *p, unsigned long u32)
dflet 0:9cb694f00b7b 86 {
dflet 0:9cb694f00b7b 87 *(p)++ = (unsigned char)(u32);
dflet 0:9cb694f00b7b 88 *(p)++ = (unsigned char)((u32) >> 8);
dflet 0:9cb694f00b7b 89 *(p)++ = (unsigned char)((u32) >> 16);
dflet 0:9cb694f00b7b 90 *(p)++ = (unsigned char)((u32) >> 24);
dflet 0:9cb694f00b7b 91 return p;
dflet 0:9cb694f00b7b 92 }
dflet 0:9cb694f00b7b 93
dflet 0:9cb694f00b7b 94 //*****************************************************************************
dflet 0:9cb694f00b7b 95 //
dflet 0:9cb694f00b7b 96 //! UINT16_TO_STREAM_f
dflet 0:9cb694f00b7b 97 //!
dflet 0:9cb694f00b7b 98 //! @param p pointer to the new stream
dflet 0:9cb694f00b7b 99 //! @param u32 pointer to the 16 bit
dflet 0:9cb694f00b7b 100 //!
dflet 0:9cb694f00b7b 101 //! @return pointer to the new stream
dflet 0:9cb694f00b7b 102 //!
dflet 0:9cb694f00b7b 103 //! @brief This function is used for copying 16 bit to stream
dflet 0:9cb694f00b7b 104 //! while converting to little endian format.
dflet 0:9cb694f00b7b 105 //
dflet 0:9cb694f00b7b 106 //*****************************************************************************
dflet 0:9cb694f00b7b 107
dflet 0:9cb694f00b7b 108 unsigned char* UINT16_TO_STREAM_f (unsigned char *p, unsigned short u16)
dflet 0:9cb694f00b7b 109 {
dflet 0:9cb694f00b7b 110 *(p)++ = (unsigned char)(u16);
dflet 0:9cb694f00b7b 111 *(p)++ = (unsigned char)((u16) >> 8);
dflet 0:9cb694f00b7b 112 return p;
dflet 0:9cb694f00b7b 113 }
dflet 0:9cb694f00b7b 114
dflet 0:9cb694f00b7b 115 //*****************************************************************************
dflet 0:9cb694f00b7b 116 //
dflet 0:9cb694f00b7b 117 //! STREAM_TO_UINT16_f
dflet 0:9cb694f00b7b 118 //!
dflet 0:9cb694f00b7b 119 //! @param p pointer to the stream
dflet 0:9cb694f00b7b 120 //! @param offset offset in the stream
dflet 0:9cb694f00b7b 121 //!
dflet 0:9cb694f00b7b 122 //! @return pointer to the new 16 bit
dflet 0:9cb694f00b7b 123 //!
dflet 0:9cb694f00b7b 124 //! @brief This function is used for copying received stream to
dflet 0:9cb694f00b7b 125 //! 16 bit in little endian format.
dflet 0:9cb694f00b7b 126 //
dflet 0:9cb694f00b7b 127 //*****************************************************************************
dflet 0:9cb694f00b7b 128
dflet 0:9cb694f00b7b 129 unsigned short STREAM_TO_UINT16_f(char* p, unsigned short offset)
dflet 0:9cb694f00b7b 130 {
dflet 0:9cb694f00b7b 131 return (unsigned short)((unsigned short)((unsigned short)
dflet 0:9cb694f00b7b 132 (*(p + offset + 1)) << 8) + (unsigned short)(*(p + offset)));
dflet 0:9cb694f00b7b 133 }
dflet 0:9cb694f00b7b 134
dflet 0:9cb694f00b7b 135 //*****************************************************************************
dflet 0:9cb694f00b7b 136 //
dflet 0:9cb694f00b7b 137 //! STREAM_TO_UINT32_f
dflet 0:9cb694f00b7b 138 //!
dflet 0:9cb694f00b7b 139 //! @param p pointer to the stream
dflet 0:9cb694f00b7b 140 //! @param offset offset in the stream
dflet 0:9cb694f00b7b 141 //!
dflet 0:9cb694f00b7b 142 //! @return pointer to the new 32 bit
dflet 0:9cb694f00b7b 143 //!
dflet 0:9cb694f00b7b 144 //! @brief This function is used for copying received stream to
dflet 0:9cb694f00b7b 145 //! 32 bit in little endian format.
dflet 0:9cb694f00b7b 146 //
dflet 0:9cb694f00b7b 147 //*****************************************************************************
dflet 0:9cb694f00b7b 148
dflet 0:9cb694f00b7b 149 unsigned long STREAM_TO_UINT32_f(char* p, unsigned short offset)
dflet 0:9cb694f00b7b 150 {
dflet 0:9cb694f00b7b 151 return (unsigned long)((unsigned long)((unsigned long)
dflet 0:9cb694f00b7b 152 (*(p + offset + 3)) << 24) + (unsigned long)((unsigned long)
dflet 0:9cb694f00b7b 153 (*(p + offset + 2)) << 16) + (unsigned long)((unsigned long)
dflet 0:9cb694f00b7b 154 (*(p + offset + 1)) << 8) + (unsigned long)(*(p + offset)));
dflet 0:9cb694f00b7b 155 }
dflet 0:9cb694f00b7b 156
dflet 0:9cb694f00b7b 157
dflet 0:9cb694f00b7b 158
dflet 0:9cb694f00b7b 159 //*****************************************************************************
dflet 0:9cb694f00b7b 160 //
dflet 0:9cb694f00b7b 161 // Close the Doxygen group.
dflet 0:9cb694f00b7b 162 //! @}
dflet 0:9cb694f00b7b 163 //
dflet 0:9cb694f00b7b 164 //*****************************************************************************
dflet 0:9cb694f00b7b 165