Define basic types and OS configuration for your port


Defines

#define subtime_t   uint16_t
#define LT_INLINE   static inline
#define TRPORT_INF_TIME   {~0 , ~0 }
#define TIROS_REGISTER_PASSING
#define ILLEGAL_STACK   ((osstkptr_t) ~0)
#define ILLEGAL_ADDR   ((osptr_t) ~0)

Typedefs

typedef unsigned char uint8_t
typedef char int8_t
typedef unsigned short uint16_t
typedef short int16_t
typedef unsigned long uint32_t
typedef long int32_t
typedef unsigned int osword_t
typedef void * osptr_t
typedef osword_tosstkptr_t
typedef void(*) osfnptr_t (void *)
typedef unsigned int osptrword_t


Define Documentation

#define subtime_t   uint16_t

Define the type field used for subunits in the time structure.

Definition at line 103 of file template/tr_port.h.

#define LT_INLINE   static inline

Do you want the time functions inlined ?

Definition at line 105 of file template/tr_port.h.

#define TRPORT_INF_TIME   {~0 , ~0 }

Define the value of infinite time for this port.

Definition at line 115 of file template/tr_port.h.

#define TIROS_REGISTER_PASSING

Will you be using register passing? This is an optimization and may be difficult on some platforms.

In that case, comment this out.

Definition at line 121 of file template/tr_port.h.

#define ILLEGAL_STACK   ((osstkptr_t) ~0)

Create a definition for an invalid stack pointer.

Definition at line 157 of file template/tr_port.h.

#define ILLEGAL_ADDR   ((osptr_t) ~0)

Create a definition for an illegal memory address.

Definition at line 159 of file template/tr_port.h.


Typedef Documentation

typedef unsigned char uint8_t

Define the different integer types.

or include a header file such as stdint.h that already has these defined.

Definition at line 91 of file template/tr_port.h.

typedef unsigned int osword_t

Basic type for the hardware word.

An 8 bit system would have an 8-bit integer, a 16-bit system would have a 16 bit integer, etc. On a system with stdint.h, this could be uintptr_t

Definition at line 127 of file template/tr_port.h.

typedef void* osptr_t

Type to use for generic pointer.

Pointer types: Separate pointer types are defined for a generic pointer, stack pointer, and function pointer. On many architectures, this may be the same. However, there may be a need to keep this different on some hardware. For example, on an 8051, the generic pointer may be set to refer to the IDATA memory, while the stack pointer may be set to XDATA (which takes more bytes for address storage). Other hardware with interesting addressing such as a 20-bit address or a 23-bit address may need to keep these different types of pointers separate

Definition at line 141 of file template/tr_port.h.

typedef osword_t* osstkptr_t

Type to use for stack pointer.

Definition at line 144 of file template/tr_port.h.

typedef void(* ) osfnptr_t(void *)

Type to use for a function pointer.

Definition at line 147 of file template/tr_port.h.

typedef unsigned int osptrword_t

This is an integer type that can fully represent osptr_t.

If a pointer takes two bytes of storage, then a 16 bit integer should be used, if it takes 3 bytes of storage, then a 32 bit integer should be used, etc. If your system has a <stdint.h> file, then this could be of type uintptr_t (defined in stdint.h)

Definition at line 154 of file template/tr_port.h.


TiROS User Manual: Last Updated on Fri Jul 20 10:52:24 2007