| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- /******************************************************************************
- *
- * Copyright(c) 2007 - 2017 Realtek Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- *****************************************************************************/
- #ifndef __BASIC_TYPES_H__
- #define __BASIC_TYPES_H__
- #define SUCCESS 0
- #define FAIL (-1)
- #ifndef TRUE
- #define _TRUE 1
- #else
- #define _TRUE TRUE
- #endif
- #ifndef FALSE
- #define _FALSE 0
- #else
- #define _FALSE FALSE
- #endif
- #ifdef PLATFORM_WINDOWS
- typedef signed char s8;
- typedef unsigned char u8;
- typedef signed short s16;
- typedef unsigned short u16;
- typedef signed long s32;
- typedef unsigned long u32;
- typedef unsigned int uint;
- typedef signed int sint;
- typedef signed long long s64;
- typedef unsigned long long u64;
- #ifdef NDIS50_MINIPORT
- #define NDIS_MAJOR_VERSION 5
- #define NDIS_MINOR_VERSION 0
- #endif
- #ifdef NDIS51_MINIPORT
- #define NDIS_MAJOR_VERSION 5
- #define NDIS_MINOR_VERSION 1
- #endif
- typedef NDIS_PROC proc_t;
- typedef LONG atomic_t;
- #endif
- #ifdef PLATFORM_LINUX
- #include <linux/version.h>
- #include <linux/types.h>
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
- #include <linux/utsname.h>
- #define IN
- #define OUT
- #define VOID void
- #define NDIS_OID uint
- #define NDIS_STATUS uint
- typedef signed int sint;
- #ifndef PVOID
- typedef void *PVOID;
- /* #define PVOID (void *) */
- #endif
- #define UCHAR u8
- #define USHORT u16
- #define UINT u32
- #define ULONG u32
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19))
- typedef _Bool bool;
- enum {
- false = 0,
- true = 1
- };
- #endif
- typedef void (*proc_t)(void *);
- typedef __kernel_size_t SIZE_T;
- typedef __kernel_ssize_t SSIZE_T;
- #define FIELD_OFFSET(s, field) ((SSIZE_T)&((s *)(0))->field)
- #define u1Byte u8
- #define pu1Byte u8*
- #define u2Byte u16
- #define pu2Byte u16*
- #define u4Byte u32
- #define pu4Byte u32*
- #define u8Byte u64
- #define pu8Byte u64*
- #define s1Byte s8
- #define ps1Byte s8*
- #define s2Byte s16
- #define ps2Byte s16*
- #define s4Byte s32
- #define ps4Byte s32*
- #define s8Byte s64
- #define ps8Byte s64*
- #define UCHAR u8
- #define USHORT u16
- #define UINT u32
- #define ULONG u32
- #define PULONG u32*
- #endif
- #ifdef PLATFORM_FREEBSD
- typedef signed char s8;
- typedef unsigned char u8;
- typedef signed short s16;
- typedef unsigned short u16;
- typedef signed int s32;
- typedef unsigned int u32;
- typedef unsigned int uint;
- typedef signed int sint;
- typedef long atomic_t;
- typedef signed long long s64;
- typedef unsigned long long u64;
- #define IN
- #define OUT
- #define VOID void
- #define NDIS_OID uint
- #define NDIS_STATUS uint
- #ifndef PVOID
- typedef void *PVOID;
- /* #define PVOID (void *) */
- #endif
- typedef u32 dma_addr_t;
- #define UCHAR u8
- #define USHORT u16
- #define UINT u32
- #define ULONG u32
- typedef void (*proc_t)(void *);
- typedef unsigned int __kernel_size_t;
- typedef int __kernel_ssize_t;
- typedef __kernel_size_t SIZE_T;
- typedef __kernel_ssize_t SSIZE_T;
- #define FIELD_OFFSET(s, field) ((SSIZE_T)&((s *)(0))->field)
- #endif
- #define MEM_ALIGNMENT_OFFSET (sizeof (SIZE_T))
- #define MEM_ALIGNMENT_PADDING (sizeof(SIZE_T) - 1)
- #define SIZE_PTR SIZE_T
- #define SSIZE_PTR SSIZE_T
- /*
- * Continuous bits starting from least significant bit
- * Example:
- * BIT_LEN_MASK_32(0) => 0x00000000
- * BIT_LEN_MASK_32(1) => 0x00000001
- * BIT_LEN_MASK_32(2) => 0x00000003
- * BIT_LEN_MASK_32(32) => 0xFFFFFFFF
- */
- #define BIT_LEN_MASK_32(__BitLen) ((u32)(0xFFFFFFFF >> (32 - (__BitLen))))
- #define BIT_LEN_MASK_16(__BitLen) ((u16)(0xFFFF >> (16 - (__BitLen))))
- #define BIT_LEN_MASK_8(__BitLen) ((u8)(0xFF >> (8 - (__BitLen))))
- /*
- * Continuous bits starting from least significant bit
- * Example:
- * BIT_OFFSET_LEN_MASK_32(0, 2) => 0x00000003
- * BIT_OFFSET_LEN_MASK_32(16, 2) => 0x00030000
- */
- #define BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) ((u32)(BIT_LEN_MASK_32(__BitLen) << (__BitOffset)))
- #define BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) ((u16)(BIT_LEN_MASK_16(__BitLen) << (__BitOffset)))
- #define BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) ((u8)(BIT_LEN_MASK_8(__BitLen) << (__BitOffset)))
- /*
- * Convert LE data to host byte order
- */
- #define EF1Byte (u8)
- #define EF2Byte le16_to_cpu
- #define EF4Byte le32_to_cpu
- /*
- * Read LE data from memory to host byte order
- */
- #define ReadLE4Byte(_ptr) le32_to_cpu(*((u32 *)(_ptr)))
- #define ReadLE2Byte(_ptr) le16_to_cpu(*((u16 *)(_ptr)))
- #define ReadLE1Byte(_ptr) (*((u8 *)(_ptr)))
- /*
- * Read BE data from memory to host byte order
- */
- #define ReadBEE4Byte(_ptr) be32_to_cpu(*((u32 *)(_ptr)))
- #define ReadBE2Byte(_ptr) be16_to_cpu(*((u16 *)(_ptr)))
- #define ReadBE1Byte(_ptr) (*((u8 *)(_ptr)))
- /*
- * Write host byte order data to memory in LE order
- */
- #define WriteLE4Byte(_ptr, _val) ((*((u32 *)(_ptr))) = cpu_to_le32(_val))
- #define WriteLE2Byte(_ptr, _val) ((*((u16 *)(_ptr))) = cpu_to_le16(_val))
- #define WriteLE1Byte(_ptr, _val) ((*((u8 *)(_ptr))) = ((u8)(_val)))
- /*
- * Write host byte order data to memory in BE order
- */
- #define WriteBE4Byte(_ptr, _val) ((*((u32 *)(_ptr))) = cpu_to_be32(_val))
- #define WriteBE2Byte(_ptr, _val) ((*((u16 *)(_ptr))) = cpu_to_be16(_val))
- #define WriteBE1Byte(_ptr, _val) ((*((u8 *)(_ptr))) = ((u8)(_val)))
- /*
- * Return 4-byte value in host byte ordering from 4-byte pointer in litten-endian system.
- */
- #define LE_P4BYTE_TO_HOST_4BYTE(__pStart) (le32_to_cpu(*((u32 *)(__pStart))))
- #define LE_P2BYTE_TO_HOST_2BYTE(__pStart) (le16_to_cpu(*((u16 *)(__pStart))))
- #define LE_P1BYTE_TO_HOST_1BYTE(__pStart) ((*((u8 *)(__pStart))))
- /*
- * Return 4-byte value in host byte ordering from 4-byte pointer in big-endian system.
- */
- #define BE_P4BYTE_TO_HOST_4BYTE(__pStart) (be32_to_cpu(*((u32 *)(__pStart))))
- #define BE_P2BYTE_TO_HOST_2BYTE(__pStart) (be16_to_cpu(*((u16 *)(__pStart))))
- #define BE_P1BYTE_TO_HOST_1BYTE(__pStart) ((*((u8 *)(__pStart))))
- /*
- * Translate subfield (continuous bits in little-endian) of 4-byte value in LE byte to
- * 4-byte value in host byte ordering.
- */
- #define LE_BITS_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
- ((LE_P4BYTE_TO_HOST_4BYTE(__pStart) >> (__BitOffset)) & BIT_LEN_MASK_32(__BitLen))
- #define LE_BITS_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
- ((LE_P2BYTE_TO_HOST_2BYTE(__pStart) >> (__BitOffset)) & BIT_LEN_MASK_16(__BitLen))
- #define LE_BITS_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
- ((LE_P1BYTE_TO_HOST_1BYTE(__pStart) >> (__BitOffset)) & BIT_LEN_MASK_8(__BitLen))
- /*
- * Translate subfield (continuous bits in big-endian) of 4-byte value in BE byte to
- * 4-byte value in host byte ordering.
- */
- #define BE_BITS_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
- ((BE_P4BYTE_TO_HOST_4BYTE(__pStart) >> (__BitOffset)) & BIT_LEN_MASK_32(__BitLen))
- #define BE_BITS_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
- ((BE_P2BYTE_TO_HOST_2BYTE(__pStart) >> (__BitOffset)) & BIT_LEN_MASK_16(__BitLen))
- #define BE_BITS_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
- ((BE_P1BYTE_TO_HOST_1BYTE(__pStart) >> (__BitOffset)) & BIT_LEN_MASK_8(__BitLen))
- /*
- * Mask subfield (continuous bits in little-endian) of 4-byte value in LE byte oredering
- * and return the result in 4-byte value in host byte ordering.
- */
- #define LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
- (LE_P4BYTE_TO_HOST_4BYTE(__pStart) & (~BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen)))
- #define LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
- (LE_P2BYTE_TO_HOST_2BYTE(__pStart) & (~BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen)))
- #define LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
- (LE_P1BYTE_TO_HOST_1BYTE(__pStart) & ((u8)(~BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen))))
- /*
- * Mask subfield (continuous bits in big-endian) of 4-byte value in BE byte oredering
- * and return the result in 4-byte value in host byte ordering.
- */
- #define BE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
- (BE_P4BYTE_TO_HOST_4BYTE(__pStart) & (~BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen)))
- #define BE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
- (BE_P2BYTE_TO_HOST_2BYTE(__pStart) & (~BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen)))
- #define BE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
- (BE_P1BYTE_TO_HOST_1BYTE(__pStart) & (~BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen)))
- /*
- * Set subfield of little-endian 4-byte value to specified value.
- */
- #define SET_BITS_TO_LE_4BYTE(__pStart, __BitOffset, __BitLen, __Value) \
- do { \
- if (__BitOffset == 0 && __BitLen == 32) \
- WriteLE4Byte(__pStart, __Value); \
- else { \
- WriteLE4Byte(__pStart, \
- LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
- | \
- ((((u32)__Value) & BIT_LEN_MASK_32(__BitLen)) << (__BitOffset)) \
- ); \
- } \
- } while (0)
- #define SET_BITS_TO_LE_2BYTE(__pStart, __BitOffset, __BitLen, __Value) \
- do { \
- if (__BitOffset == 0 && __BitLen == 16) \
- WriteLE2Byte(__pStart, __Value); \
- else { \
- WriteLE2Byte(__pStart, \
- LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
- | \
- ((((u16)__Value) & BIT_LEN_MASK_16(__BitLen)) << (__BitOffset)) \
- ); \
- } \
- } while (0)
- #define SET_BITS_TO_LE_1BYTE(__pStart, __BitOffset, __BitLen, __Value) \
- do { \
- if (__BitOffset == 0 && __BitLen == 8) \
- WriteLE1Byte(__pStart, __Value); \
- else { \
- WriteLE1Byte(__pStart, \
- LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
- | \
- ((((u8)__Value) & BIT_LEN_MASK_8(__BitLen)) << (__BitOffset)) \
- ); \
- } \
- } while (0)
- /*
- * Set subfield of big-endian 4-byte value to specified value.
- */
- #define SET_BITS_TO_BE_4BYTE(__pStart, __BitOffset, __BitLen, __Value) \
- do { \
- if (__BitOffset == 0 && __BitLen == 32) \
- WriteBE4Byte(__pStart, __Value); \
- else { \
- WriteBE4Byte(__pStart, \
- BE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
- | \
- ((((u32)__Value) & BIT_LEN_MASK_32(__BitLen)) << (__BitOffset)) \
- ); \
- } \
- } while (0)
- #define SET_BITS_TO_BE_2BYTE(__pStart, __BitOffset, __BitLen, __Value) \
- do { \
- if (__BitOffset == 0 && __BitLen == 16) \
- WriteBE2Byte(__pStart, __Value); \
- else { \
- WriteBE2Byte(__pStart, \
- BE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
- | \
- ((((u16)__Value) & BIT_LEN_MASK_16(__BitLen)) << (__BitOffset)) \
- ); \
- } \
- } while (0)
- #define SET_BITS_TO_BE_1BYTE(__pStart, __BitOffset, __BitLen, __Value) \
- do { \
- if (__BitOffset == 0 && __BitLen == 8) \
- WriteBE1Byte(__pStart, __Value); \
- else { \
- WriteBE1Byte(__pStart, \
- BE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
- | \
- ((((u8)__Value) & BIT_LEN_MASK_8(__BitLen)) << (__BitOffset)) \
- ); \
- } \
- } while (0)
- /* Get the N-bytes aligment offset from the current length */
- #define N_BYTE_ALIGMENT(__Value, __Aligment) ((__Aligment == 1) ? (__Value) : (((__Value + __Aligment - 1) / __Aligment) * __Aligment))
- typedef unsigned char BOOLEAN, *PBOOLEAN, boolean;
- #define TEST_FLAG(__Flag, __testFlag) (((__Flag) & (__testFlag)) != 0)
- #define SET_FLAG(__Flag, __setFlag) ((__Flag) |= __setFlag)
- #define CLEAR_FLAG(__Flag, __clearFlag) ((__Flag) &= ~(__clearFlag))
- #define CLEAR_FLAGS(__Flag) ((__Flag) = 0)
- #define TEST_FLAGS(__Flag, __testFlags) (((__Flag) & (__testFlags)) == (__testFlags))
- #endif /* __BASIC_TYPES_H__ */
|