Headers types.h(3HEAD)
NAME
types.h, types - primitive system data types
SYNOPSIS
#include
DESCRIPTION
The data types defined in
are as follows: 32-bit Solaris
The data types listed below are defined in
for 32-bit Solaris.
typedef struct { int r[1]; } *physadr;typedef long clock_t;
typedef long daddr_t;
typedef char * caddr_t;
typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint;typedef unsigned long ulong_t;
typedef unsigned long ino_t;
typedef long uid_t;
typedef long gid_t;
typedef ulong_t nlink_t;
typedef ulong_t mode_t;
typedef short cnt_t;
typedef long time_t;
typedef int label_t[10];
typedef ulong_t dev_t;
typedef long off_t;
typedef long pid_t;
typedef long paddr_t;
typedef int key_t;
typedef unsigned char use_t;
typedef short sysid_t;
typedef short index_t;
typedef short lock_t;
typedef unsigned int size_t;
typedef long clock_t;
typedef long pid_t;
64-bit Solaris
The data types listed below are defined in
for 64-bit Solaris.
typedef long blkcnt_t
typedef long clock_t
typedef long daddr_t
typedef ulong_t dev_t
SunOS 5.11 Last change: 6 Oct 2004 1
Headers types.h(3HEAD)
typedef ulong_t fsblkcnt_t
typedef ulong_t fsfilcnt_t
typedef int gid_t
typedef int id_t
typedef long ino_t
typedef int key_t
typedef uint_t major_t
typedef uint_t minor_t
typedef uint_t mode_t
typedef uint_t nlink_t
typedef int pid_t
typedef ptrdiff_t intptr_t
typedef ulong_t rlim_t
typedef ulong_t size_t
typedef uint_t speed_t
typedef long ssize_t
typedef long suseconds_t
typedef uint_t tcflag_t
typedef long time_t
typedef int uid_t
typedef int wchar_t
Preprocessor SymbolsFor 32-bit programs, pointers and the C data types int and
long are all 32-bit quantities. For 64-bit programs,
pointers and the C data type long are defined as 64-bit
quantities.The preprocessor symbol _ILP32, made visible by the inclu-
sion of
, can be used with the preprocessor #ifdef construct to define sections of code that will be
compiled only as part of a 32-bit version of a given C pro-
gram.The preprocessor symbol _LP64 can be used in the same way to
define sections of code that will be compiled only as partof a 64-bit version of a given C program. See EXAMPLES.
This header incorporates definitions of other preprocessor symbols that can be useful when keeping code portable between different instruction set architectures._LITTLE_ENDIAN The natural byte order of the
_BIG_ENDIAN processor. A pointer to an int
points to the least/most signifi-
cant byte of that int.SunOS 5.11 Last change: 6 Oct 2004 2
Headers types.h(3HEAD)
_STACK_GROWS_UPWARD The processor specific direction
_STACK_GROWS_DOWNWARD of stack growth. A push onto the
stack increases/decreases the stack pointer, so it stores data at successively higher/lower addresses._CHAR_IS_UNSIGNED The C Compiler implements objects
_CHAR_IS_SIGNED of type char as unsigned or
signed respectively. This is really an implementation choiceof the compiler, but it is speci-
fied in the ABI and tends to be uniform across compilers for an instruction set architecture._CHAR_ALIGNMENT The ABI defines alignment
_SHORT_ALIGNMENT requirements of each of the prim-
_INT_ALIGNMENT itive object types. Some, if not
_LONG_ALIGNMENT all, might be hardware require-
_LONG_LONG_ALIGNMENT ments as well. The values are
_DOUBLE_ALIGNMENT expressed in bytes.
_LONG_DOUBLE_ALIGNMENT
_POINTER_ALIGNMENT
_FMLAOXA_TALAILGINGMNEMNETNT The most stringent alignment
requirement as specified by the ABI. Equal to the maximum of allthe above _XXX_ALIGNMENT values.
_LONG_LONG_ALIGNMENT_32 The 32-bit ABI supported by a
64-bit kernel may have different
alignment requirements for primi-
tive object types. The value of
this identifier is expressed in bytes.USAGE
The daddr_t type is used for disk addresses except in an
inode on disk. Times are encoded in seconds since 00:00:00 UTC, January 1, 1970. The major and minor parts of a device code specify kind and unit number of a device and areinstallation-dependent. Offsets are measured in bytes from
the beginning of a file.The label_t[] types are used to save the processor state
while another process is running.SunOS 5.11 Last change: 6 Oct 2004 3
Headers types.h(3HEAD)
EXAMPLES
Example 1 Use of preprocessor symbol _LP64.
In the following example, the preprocessor symbol _LP64
defines sections of code that will be compiled only as partof a 64-bit version of the given C program.
#include
...#ifdef _LP64
printf("The data model is LP64 in this environment\n");#else
#ifdef _ILP32
printf("The data model is ILP32 in this environment\n");#else
#error "Unknown data model!"
#endif
#endif
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
SEE ALSO
types32.h(3HEAD), attributes(5), standards(5)
SunOS 5.11 Last change: 6 Oct 2004 4