⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 types.h

📁 这是leon3处理器的交叉编译链
💻 H
字号:
/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*//*	  All Rights Reserved  	*//*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*//*	The copyright notice above does not evidence any   	*//*	actual or intended publication of such source code.	*//* * Copyright (c) 1996-1999 by Sun Microsystems, Inc. * All rights reserved. */#ifndef _SYS_TYPES_H#define	_SYS_TYPES_H#pragma ident	"@(#)types.h	1.65	99/11/15 SMI"#include <sys/isa_defs.h>#include <sys/feature_tests.h>/* * Machine dependent definitions moved to <sys/machtypes.h>. */#include <sys/machtypes.h>#ifdef	__cplusplusextern "C" {#endif/* * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had * to use them instead of int32_t and uint32_t because DEC had * shipped 64-bit wide. */typedef long		t_scalar_t;	/* historical versions */typedef unsigned long	t_uscalar_t;/* * POSIX Extensions */typedef	unsigned char	uchar_t;typedef	unsigned short	ushort_t;typedef	unsigned int	uint_t;typedef	unsigned long	ulong_t;typedef	char		*caddr_t;	/* ?<core address> type */typedef	long		daddr_t;	/* <disk address> type */typedef	short		cnt_t;		/* ?<count> type *//* * VM-related types */typedef	ulong_t		pfn_t;		/* page frame number */typedef	ulong_t		pgcnt_t;	/* number of pages */typedef	long		spgcnt_t;	/* signed number of pages */typedef	uchar_t		use_t;		/* use count for swap.  */typedef	short		sysid_t;typedef	short		index_t;typedef void		*timeout_id_t;	/* opaque handle from timeout(9F) */typedef void		*bufcall_id_t;	/* opaque handle from bufcall(9F) *//* * The size of off_t and related types depends on the setting of * _FILE_OFFSET_BITS.  (Note that other system headers define other types * related to those defined here.) * * If _LARGEFILE64_SOURCE is defined, variants of these types that are * explicitly 64 bits wide become available. */#ifndef _OFF_T#define	_OFF_T#if defined(_LP64) || _FILE_OFFSET_BITS == 32typedef long		off_t;		/* offsets within files */#elif _FILE_OFFSET_BITS == 64typedef longlong_t	off_t;		/* offsets within files */#endif#if defined(_LARGEFILE64_SOURCE)#ifdef _LP64typedef	off_t		off64_t;	/* offsets within files */#elsetypedef longlong_t	off64_t;	/* offsets within files */#endif#endif /* /* _LARGEFILE64_SOURCE */ */#endif /* /* _OFF_T */ */#if defined(_LP64) || _FILE_OFFSET_BITS == 32typedef ulong_t		ino_t;		/* expanded inode type	*/typedef long		blkcnt_t;	/* count of file blocks */typedef ulong_t		fsblkcnt_t;	/* count of file system blocks */typedef ulong_t		fsfilcnt_t;	/* count of files */#elif _FILE_OFFSET_BITS == 64typedef u_longlong_t	ino_t;		/* expanded inode type	*/typedef longlong_t	blkcnt_t;	/* count of file blocks */typedef u_longlong_t	fsblkcnt_t;	/* count of file system blocks */typedef u_longlong_t	fsfilcnt_t;	/* count of files */#endif#if defined(_LARGEFILE64_SOURCE)#ifdef _LP64typedef	ino_t		ino64_t;	/* expanded inode type */typedef	blkcnt_t	blkcnt64_t;	/* count of file blocks */typedef	fsblkcnt_t	fsblkcnt64_t;	/* count of file system blocks */typedef	fsfilcnt_t	fsfilcnt64_t;	/* count of files */#elsetypedef u_longlong_t	ino64_t;	/* expanded inode type	*/typedef longlong_t	blkcnt64_t;	/* count of file blocks */typedef u_longlong_t	fsblkcnt64_t;	/* count of file system blocks */typedef u_longlong_t	fsfilcnt64_t;	/* count of files */#endif#endif /* /* _LARGEFILE64_SOURCE */ */#ifdef _LP64typedef	int		blksize_t;	/* used for block sizes */#elsetypedef	long		blksize_t;	/* used for block sizes */#endif#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)typedef enum { _B_FALSE, _B_TRUE } boolean_t;#elsetypedef enum { B_FALSE, B_TRUE } boolean_t;#endif /* /* defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) */ *//* * The [u]pad64_t is to be used in structures such that those structures * may be accessed by code produced by compilation environments which don't * support a 64 bit integral datatype.  This intention is not to allow * use of these fields in such environments, but to maintain the alignment * and offsets of the structure. */#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)typedef int64_t		pad64_t;typedef	uint64_t	upad64_t;#elsetypedef union {	double   _d;	int32_t  _l[2];} pad64_t;typedef union {	double   _d;	uint32_t _l[2];} upad64_t;#endiftypedef	longlong_t	offset_t;typedef	u_longlong_t	u_offset_t;typedef u_longlong_t	len_t;typedef	longlong_t	diskaddr_t;/* * Definitions remaining from previous partial support for 64-bit file * offsets.  This partial support for devices greater than 2gb requires * compiler support for long long. */#ifdef _LONG_LONG_LTOHtypedef union {	offset_t	_f;	/* Full 64 bit offset value */	struct {		int32_t	_l;	/* lower 32 bits of offset value */		int32_t	_u;	/* upper 32 bits of offset value */	} _p;} lloff_t;#endif#ifdef _LONG_LONG_HTOLtypedef union {	offset_t	_f;	/* Full 64 bit offset value */	struct {		int32_t	_u;	/* upper 32 bits of offset value */		int32_t	_l;	/* lower 32 bits of offset value */	} _p;} lloff_t;#endif#ifdef _LONG_LONG_LTOHtypedef union {	diskaddr_t	_f;	/* Full 64 bit disk address value */	struct {		int32_t	_l;	/* lower 32 bits of disk address value */		int32_t	_u;	/* upper 32 bits of disk address value */	} _p;} lldaddr_t;#endif#ifdef _LONG_LONG_HTOLtypedef union {	diskaddr_t	_f;	/* Full 64 bit disk address value */	struct {		int32_t	_u;	/* upper 32 bits of disk address value */		int32_t	_l;	/* lower 32 bits of disk address value */	} _p;} lldaddr_t;#endiftypedef uint_t k_fltset_t;	/* kernel fault set type *//* * The following type is for various kinds of identifiers.  The * actual type must be the same for all since some system calls * (such as sigsend) take arguments that may be any of these * types.  The enumeration type idtype_t defined in sys/procset.h * is used to indicate what type of id is being specified. */#if defined(_LP64) || defined(_I32LPx)typedef int		id_t;		/* A process id,	*/					/* process group id,	*/					/* session id, 		*/					/* scheduling class id,	*/					/* user id, or group id */#elsetypedef	long		id_t;		/* (historical version) */#endif/* * Type useconds_t is an unsigned integral type capable of storing * values at least in the range of zero to 1,000,000. */typedef uint_t		useconds_t;	/* Time, in microseconds */#ifndef	_SUSECONDS_T#define	_SUSECONDS_Ttypedef long	suseconds_t;	/* signed # of microseconds */#endif /* /* _SUSECONDS_T */ *//* * Typedefs for dev_t components. */#if defined(_LP64) || defined(_I32LPx)typedef uint_t	major_t;	/* major part of device number */typedef uint_t	minor_t;	/* minor part of device number */#elsetypedef ulong_t	major_t;	/* (historical version) */typedef ulong_t	minor_t;	/* (historical version) */#endif/* * The data type of a thread priority. */typedef short	pri_t;/* * For compatibility reasons the following typedefs (prefixed o_) * can't grow regardless of the EFT definition. Although, * applications should not explicitly use these typedefs * they may be included via a system header definition. * WARNING: These typedefs may be removed in a future * release. *		ex. the definitions in s5inode.h remain small *			to preserve compatibility in the S5 *			file system type. */typedef	ushort_t o_mode_t;		/* old file attribute type */typedef short	o_dev_t;		/* old device type	*/typedef	ushort_t o_uid_t;		/* old UID type		*/typedef	o_uid_t	o_gid_t;		/* old GID type		*/typedef	short	o_nlink_t;		/* old file link type	*/typedef short	o_pid_t;		/* old process id type	*/typedef ushort_t o_ino_t;		/* old inode type	*//* * POSIX and XOPEN Declarations */typedef	int	key_t;			/* IPC key type		*/#if defined(_LP64) || defined(_I32LPx)typedef	uint_t	mode_t;			/* file attribute type	*/#elsetypedef	ulong_t	mode_t;			/* (historical version) */#endif#ifndef	_UID_T#define	_UID_T#if defined(_LP64) || defined(_I32LPx)typedef	int	uid_t;			/* UID type		*/#elsetypedef	long	uid_t;			/* (historical version) */#endif#endif /* /* _UID_T */ */typedef	uid_t	gid_t;			/* GID type		*//* * POSIX definitions are same as defined in thread.h and synch.h. * Any changes made to here should be reflected in corresponding * files as described in comments. */#ifndef SOLARIS_NPtypedef	unsigned int	pthread_t;	/* = thread_t in thread.h */typedef	unsigned int	pthread_key_t;	/* = thread_key_t in thread.h */typedef	struct	_pthread_mutex {		/* = mutex_t in synch.h */	struct {		uint16_t	__pthread_mutex_flag1;		uint8_t		__pthread_mutex_flag2;		uint8_t		__pthread_mutex_ceiling;		uint32_t 	__pthread_mutex_type;	} __pthread_mutex_flags;	union {		struct {			uint8_t	__pthread_mutex_pad[8];		} __pthread_mutex_lock64;		upad64_t __pthread_mutex_owner64;	} __pthread_mutex_lock;	upad64_t __pthread_mutex_data;} pthread_mutex_t;typedef	struct	_pthread_cond {		/* = cond_t in synch.h */	struct {		uint8_t		__pthread_cond_flag[4];		uint32_t 	__pthread_cond_type;	} __pthread_cond_flags;	upad64_t __pthread_cond_data;} pthread_cond_t;/* * UNIX 98 Extension */typedef	struct _pthread_rwlock {	/* = rwlock_t in synch.h */	int32_t		__pthread_rwlock_readers;	uint16_t	__pthread_rwlock_type;	uint16_t	__pthread_rwlock_magic;	upad64_t	__pthread_rwlock_pad1[3];	upad64_t	__pthread_rwlock_pad2[2];	upad64_t	__pthread_rwlock_pad3[2];} pthread_rwlock_t;/* * attributes for threads, dynamically allocated by library */typedef struct _pthread_attr {	void	*__pthread_attrp;} pthread_attr_t;/* * attributes for mutex, dynamically allocated by library */typedef struct _pthread_mutexattr {	void	*__pthread_mutexattrp;} pthread_mutexattr_t;/* * attributes for cond, dynamically allocated by library */typedef struct _pthread_condattr {	void	*__pthread_condattrp;} pthread_condattr_t;/* * pthread_once */typedef	struct	_once {	upad64_t	__pthread_once_pad[4];} pthread_once_t;/* * UNIX 98 Extensions * attributes for rwlock, dynamically allocated by library */typedef struct _pthread_rwlockattr {	void	*__pthread_rwlockattrp;} pthread_rwlockattr_t;#endiftypedef ulong_t	dev_t;			/* expanded device type */#if defined(_LP64) || defined(_I32LPx)typedef	uint_t nlink_t;			/* file link type	*/typedef int	pid_t;			/* process id type	*/#elsetypedef	ulong_t	nlink_t;		/* (historical version) */typedef	long	pid_t;			/* (historical version) */#endif#ifndef _SIZE_T#define	_SIZE_T#if defined(_LP64) || defined(_I32LPx)typedef	ulong_t	size_t;		/* size of something in bytes */#elsetypedef	uint_t	size_t;		/* (historical version) */#endif#endif /* /* _SIZE_T */ */#ifndef _SSIZE_T#define	_SSIZE_T#if defined(_LP64) || defined(_I32LPx)typedef long	ssize_t;	/* size of something in bytes or -1 */#elsetypedef int	ssize_t;	/* (historical version) */#endif#endif /* /* _SSIZE_T */ */#ifndef _TIME_T#define	_TIME_Ttypedef	long		time_t;	/* time of day in seconds */#endif /* /* _TIME_T */ */#ifndef _CLOCK_T#define	_CLOCK_Ttypedef	long		clock_t; /* relative time in a specified resolution */#endif /* /* ifndef _CLOCK_T */ */#ifndef _CLOCKID_T#define	_CLOCKID_Ttypedef	int	clockid_t;	/* clock identifier type */#endif /* /* ifndef _CLOCKID_T */ */#ifndef _TIMER_T#define	_TIMER_Ttypedef	int	timer_t;	/* timer identifier type */#endif /* /* ifndef _TIMER_T */ */#if defined(__EXTENSIONS__) || \	(!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))/* BEGIN CSTYLED */typedef	unsigned char	unchar;typedef	unsigned short	ushort;typedef	unsigned int	uint;typedef	unsigned long	ulong;/* END CSTYLED */#if defined(_KERNEL)#define	SHRT_MIN	(-32768)	/* min value of a "short int" */#define	SHRT_MAX	32767		/* max value of a "short int" */#define	USHRT_MAX	65535		/* max of "unsigned short int" */#define	INT_MIN		(-2147483647-1) /* min value of an "int" */#define	INT_MAX		2147483647	/* max value of an "int" */#define	UINT_MAX	4294967295U	/* max value of an "unsigned int" */#if defined(_LP64)#define	LONG_MIN	(-9223372036854775807L-1L)					/* min value of a "long int" */#define	LONG_MAX	9223372036854775807L					/* max value of a "long int" */#define	ULONG_MAX	18446744073709551615UL					/* max of "unsigned long int" */#else /* /* _ILP32 */ */#define	LONG_MIN	(-2147483647L-1L)					/* min value of a "long int" */#define	LONG_MAX	2147483647L	/* max value of a "long int" */#define	ULONG_MAX	4294967295UL	/* max of "unsigned long int" */#endif#endif /* /* defined(_KERNEL) */ */#define	P_MYPID	((pid_t)0)/* * The following is the value of type id_t to use to indicate the * caller's current id.  See procset.h for the type idtype_t * which defines which kind of id is being specified. */#define	P_MYID	(-1)#define	NOPID (pid_t)(-1)#ifndef NODEV#define	NODEV	(dev_t)(-1l)#ifdef _SYSCALL32#define	NODEV32	(dev32_t)(-1)#endif /* /* _SYSCALL32 */ */#endif /* /* NODEV */ *//* * The following value of type pfn_t is used to indicate * invalid page frame number. */#define	PFN_INVALID	((pfn_t)-1)/* BEGIN CSTYLED */typedef unsigned char	u_char;typedef unsigned short	u_short;typedef unsigned int	u_int;typedef unsigned long	u_long;typedef struct _quad { int val[2]; } quad_t;	/* used by UFS */typedef quad_t		quad;			/* used by UFS *//* END CSTYLED *//* * Nested include for BSD/sockets source compatibility. * (The select macros used to be defined here). */#include <sys/select.h>#endif /* /* defined(__EXTENSIONS__) || (!defined(_POSIX_C_SOURCE) && ... */ *//* * _VOID was defined to be either void or char but this is not * required because previous SunOS compilers have accepted the void * type. However, because many system header and source files use the * void keyword, the volatile keyword, and ANSI C function prototypes, * non-ANSI compilers cannot compile the system anyway. The _VOID macro * should therefore not be used and remains for source compatibility * only. *//* CSTYLED */#define	_VOID	void#ifdef	__cplusplus}#endif#endif /* /* _SYS_TYPES_H */ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -