1/* 2 * windows_types.h 3 * 4 * Copyright(c) 1998 - 2009 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 * inc/windows_types.h 37 * 38 */ 39 40#ifndef _WINDOWS_TYPES_H 41#define _WINDOWS_TYPES_H 42 43#include "tidef.h" 44#include "ioctl_init.h" 45 46/*typedef TI_BOOL TI_BOOL, *PBOOLEAN;*/ 47typedef TI_UINT16 USHORT, *PUSHORT; 48typedef char CHAR; 49typedef const char * LPCSTR; 50 51#define IN 52#define OUT 53#define NDIS_MAX_STRING_LEN 361 54 55typedef struct _STRING { 56 USHORT Length; 57 USHORT MaximumLength; 58 TI_INT8* Buffer; 59} ANSI_STRING, *PANSI_STRING, UNICODE_STRING, *PUNICODE_STRING; 60 61typedef ANSI_STRING NDIS_STRING, *PNDIS_STRING; 62typedef void * NDIS_HANDLE; 63typedef int NDIS_STATUS, *PNDIS_STATUS; 64 65 66typedef TI_UINT32 NDIS_OID, *PNDIS_OID; 67#define PCI_TYPE0_ADDRESSES 6 68#define PCI_TYPE1_ADDRESSES 2 69/*typedef LARGE_INTEGER NDIS_PHYSICAL_ADDRESS; */ 70typedef void* *PDEVICE_OBJECT, *PDRIVER_OBJECT; 71typedef TI_UINT32 NDIS_MINIPORT_INTERRUPT, NDIS_MINIPORT_TIMER, NDIS_SPIN_LOCK; 72typedef TI_UINT32 PNDIS_PACKET, *PPNDIS_PACKET; 73 74typedef enum _NDIS_PARAMETER_TYPE { 75 NdisParameterInteger, 76 NdisParameterHexInteger, 77 NdisParameterString, 78 NdisParameterMultiString, 79 NdisParameterBinary 80} NDIS_PARAMETER_TYPE, *PNDIS_PARAMETER_TYPE; 81 82typedef struct { 83 USHORT Length; 84 void* Buffer; 85} BINARY_DATA; 86 87typedef struct _NDIS_CONFIGURATION_PARAMETER { 88 NDIS_PARAMETER_TYPE ParameterType; 89 union { 90 TI_UINT32 IntegerData; 91 NDIS_STRING StringData; 92 BINARY_DATA BinaryData; 93 } ParameterData; 94 char StringBuffer[NDIS_MAX_STRING_LEN]; 95} NDIS_CONFIGURATION_PARAMETER, *PNDIS_CONFIGURATION_PARAMETER; 96 97typedef TI_UINT32 NTSTATUS; 98 99#ifndef NDIS_STATUS_SUCCESS 100# define NDIS_STATUS_SUCCESS ((NDIS_STATUS)0x00000000L) 101# define NDIS_STATUS_PENDING ((NDIS_STATUS)0x00000103L) 102# define NDIS_STATUS_RESET_END ((NDIS_STATUS)0x40010005L) 103# define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION ((NDIS_STATUS)0x40010012L) 104# define NDIS_STATUS_FAILURE ((NDIS_STATUS)0xC0000001L) 105# define NDIS_STATUS_ADAPTER_NOT_FOUND ((NDIS_STATUS)0xC0010006L) 106# define NDIS_STATUS_INVALID_LENGTH ((NDIS_STATUS)0xC0010014L) 107# define NDIS_STATUS_BUFFER_TOO_SHORT ((NDIS_STATUS)0xC0010016L) 108# define NDIS_STATUS_INVALID_OID ((NDIS_STATUS)0xC0010017L) 109#endif /* NDIS_STATUS_SUCCESS */ 110 111#define STATUS_SUCCESS 0 112#define STATUS_INVALID_PARAMETER -1 113 114#define NdisZeroMemory(p, size) os_memoryZero( NULL, p, size ) 115#define NdisMoveMemory(d, s, size) os_memoryCopy( NULL, d, s, size ) 116 117NDIS_STATUS NdisUnicodeStringToAnsiString( IN OUT PANSI_STRING DestinationString, 118 IN PUNICODE_STRING SourceString ); 119void NdisReadConfiguration( OUT PNDIS_STATUS Status, OUT PNDIS_CONFIGURATION_PARAMETER *ParameterValue, 120 IN NDIS_HANDLE ConfigurationHandle, IN PNDIS_STRING Keyword, IN NDIS_PARAMETER_TYPE ParameterType ); 121void NdisWriteConfiguration( OUT PNDIS_STATUS Status, IN NDIS_HANDLE ConfigurationHandle, 122 IN PNDIS_STRING Keyword, IN PNDIS_CONFIGURATION_PARAMETER ParameterValue ); 123 124typedef struct _NDIS_PACKET_POOL { 125 NDIS_SPIN_LOCK SpinLock; 126 struct _NDIS_PACKET *FreeList; 127 TI_UINT32 PacketLength; 128 TI_UINT8 Buffer[1]; 129} NDIS_PACKET_POOL, * PNDIS_PACKET_POOL; 130 131typedef enum _NDIS_802_11_STATUS_TYPE 132{ 133 Ndis802_11StatusType_Authentication, 134 Ndis802_11StatusTypeMax /* not a real type, defined as an upper bound*/ 135} NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE; 136 137typedef TI_UINT8 NDIS_802_11_MAC_ADDRESS[6]; 138 139typedef struct _NDIS_802_11_STATUS_INDICATION 140{ 141 NDIS_802_11_STATUS_TYPE StatusType; 142} NDIS_802_11_STATUS_INDICATION, *PNDIS_802_11_STATUS_INDICATION; 143 144typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST 145{ 146 TI_UINT32 Length; /* Length of structure*/ 147 NDIS_802_11_MAC_ADDRESS Bssid; 148 TI_UINT32 Flags; 149} NDIS_802_11_AUTHENTICATION_REQUEST, *PNDIS_802_11_AUTHENTICATION_REQUEST; 150 151typedef TI_INT32 NDIS_802_11_RSSI; /* in dBm*/ 152 153typedef struct _NDIS_802_11_TEST 154{ 155 TI_UINT32 Length; 156 TI_UINT32 Type; 157 union { 158 struct _AuthenticationEvent { 159 NDIS_802_11_STATUS_INDICATION Status; 160 NDIS_802_11_AUTHENTICATION_REQUEST Request[1]; 161 } AuthenticationEvent; 162 NDIS_802_11_RSSI RssiTrigger; 163 }; 164} NDIS_802_11_TEST, *PNDIS_802_11_TEST; 165 166/* Added new encryption types*/ 167/* Also aliased typedef to new name*/ 168typedef enum _NDIS_802_11_WEP_STATUS 169{ 170 Ndis802_11WEPEnabled, 171 Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, 172 Ndis802_11WEPDisabled, 173 Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, 174 Ndis802_11WEPKeyAbsent, 175 Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, 176 Ndis802_11WEPNotSupported, 177 Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, 178 Ndis802_11Encryption2Enabled, 179 Ndis802_11Encryption2KeyAbsent, 180 Ndis802_11Encryption3Enabled, 181 Ndis802_11Encryption3KeyAbsent 182} NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, 183 NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS; 184 185#ifdef TI_DBG 186#ifdef __KERNEL__ 187#define DbgPrint printk 188#else 189#define DbgPrint printf 190#endif 191#else 192#define DbgPrint 193#endif 194 195#endif /* _WINDOWS_TYPES_H */ 196