##// END OF EJS Templates
changes on the gresb class, object ready for usage in the rmapplugin
changes on the gresb class, object ready for usage in the rmapplugin

File last commit:

r0:081a6eb3cced default
r7:7c1589fec151 default
Show More
star-dundee_types.h
161 lines | 3.9 KiB | text/x-c | CLexer
/**
* \file star-dundee_types.h
* \brief Definitions of STAR-Dundee commonly used types.
* \author Stuart Mills\n
* STAR-Dundee\n
* c/o School of Computing\n
* University of Dundee\n
* Dundee, DD1 4HN\n
* Scotland, UK\n
* e-mail: support@star-dundee.com
*
* This file contains the definitions of common types used by STAR-Dundee
* software drivers and APIs.
*
* <b>IMPORTANT NOTE:</b>
* \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:\n
* <code>\#define NO_STAR_TYPES</code>\n
* Alternatively you can compile your code with a flag of
* <code>-DNO_STAR_TYPES</code>.\n
*
* \version 1.1 - August 22nd 2011\n
* Removed star_device_handle, not required by STAR-System.\n\n
*
* \version 1.0 - March 22nd 2007\n
* Initial version.\n\n
*
* Copyright &copy; 2009 STAR-Dundee Ltd
*/
/**
* \defgroup STARDundeeTypes STAR-Dundee Types
* This section contains the definitions of types used in STAR-Dundee software
* drivers and APIs.
*/
/**
* \def TRUE
* \ingroup STARDundeeTypes
* A value that can be used to represent the boolean value of true.
*/
/**
* \def FALSE
* \ingroup STARDundeeTypes
* A value that can be used to represent the boolean value of false.
*/
/**
* \typedef U8
* \ingroup STARDundeeTypes
* A type that can be used to represent an unsigned 8-bit number.
*/
/**
* \typedef U16
* \ingroup STARDundeeTypes
* A type that can be used to represent an unsigned 16-bit number.
*/
/**
* \typedef U32
* \ingroup STARDundeeTypes
* A type that can be used to represent an unsigned 32-bit number.
*/
/**
* \typedef REGISTER
* \ingroup STARDundeeTypes
* A type that can be used to represent a 4-byte register.
*/
#ifndef STAR_DUNDEE_TYPES
#define STAR_DUNDEE_TYPES
/* Define TRUE and FALSE */
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef NO_STAR_TYPES
#if (defined(__linux__) || defined(LINUX) || defined(__LINUX__) || \
defined(__CYGWIN__)) && defined(__KERNEL__)
#include <linux/types.h>
/* Define U8, U16 and U32 in the Linux kernel */
#ifndef U8
typedef u8 U8;
#endif
#ifndef U16
typedef u16 U16;
#endif
#ifndef U32
typedef u32 U32;
#endif
#else
#include <limits.h>
/* Define U8 */
#ifndef 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
#endif
/* Define U16 */
#ifndef 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
#endif
/* Define U32 */
#ifndef 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
#endif /* Linux kernel test */
#endif /* NO_STAR_TYPES */
/* Define REGISTER */
#ifndef REGISTER
typedef U32 REGISTER;
#endif
#endif /* STAR_DUNDEE_TYPES */