/******************************************************************************/ /* */ /* star_dundee_types.h */ /* */ /* This file contains the definitions of common types used by STAR-Dundee */ /* drivers and APIs. */ /* */ /* IMPORTANT NOTE: If you are experiencing compilation errors indicating */ /* that U8 is already defined, for example, please add the */ /* following line to your code prior to including this */ /* file: */ /* #define NO_STAR_TYPES */ /* Alternatively you can compile your code with a flag of */ /* -DNO_STAR_TYPES. */ /* */ /* Version 1.0, March 22nd 2007 */ /* */ /* Version 1.0 - March 22nd 2007 */ /* =========== */ /* Initial version. */ /* */ /* Copyright (c) 2007, Stuart Mills, */ /* STAR-Dundee */ /* c/o School of Computing, */ /* University of Dundee, */ /* Dundee, DD1 4HN, */ /* Scotland, UK. */ /* e-mail: stuart@star-dundee.com */ /* */ /******************************************************************************/ #ifndef STAR_DUNDEE_TYPES #define STAR_DUNDEE_TYPES typedef void *star_device_handle; #ifndef NO_STAR_TYPES #if (defined(__linux__) || defined(LINUX) || defined(__LINUX__)) && \ defined(__KERNEL__) #include /* Define U8, U16 and U32 in the Linux kernel */ typedef u8 U8; typedef u16 U16; typedef u32 U32; #else #include /* Define U8 */ #if (UCHAR_MAX == 0xff) typedef unsigned char U8; #elif (UINT_MAX == 0xff) typedef unsigned int U8; #else #error "No valid definition of U8 available" #endif /* Define U16 */ #if (USHRT_MAX == 0xffff) typedef unsigned short U16; #elif (UINT_MAX == 0xffff) typedef unsigned int U16; #elif (UCHAR_MAX == 0xffff) typedef unsigned char U16; #else #error "No valid definition of U16 available" #endif /* Define U32 */ #if (UINT_MAX == 0xffffffff) typedef unsigned int U32; #elif (ULONG_MAX == 0xffffffff) typedef unsigned long U32; #elif (USHRT_MAX == 0xffffffff) typedef unsigned short U32; #elif (UCHAR_MAX == 0xffffffff) typedef unsigned char U32; #else #error "No valid definition of U32 available" #endif #endif /* Linux kernel test */ #endif /* NO_STAR_TYPES */ #endif /* STAR_DUNDEE_TYPES */