types.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @file
System type declarations.
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License that accompanies this
distribution. The full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Copyright (c) 1990, 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
- Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
NetBSD: types.h,v 1.71.12.1 2007/09/27 13:40:47 xtraeme Exp
types.h 8.4 (Berkeley) 1/21/94
**/
#ifndef _SYS_TYPES_H_
#define _SYS_TYPES_H_
#include <sys/EfiCdefs.h>
/* Machine type dependent parameters. */
#include <machine/int_types.h>
#ifndef int8_t
#endif
#ifndef uint8_t
#endif
#ifndef int16_t
#endif
#ifndef uint16_t
typedef __uint16_t uint16_t;
#define uint16_t __uint16_t
#endif
#ifndef int32_t
#endif
#ifndef uint32_t
typedef __uint32_t uint32_t;
#define uint32_t __uint32_t
#endif
#ifndef int64_t
#endif
#ifndef uint64_t
typedef __uint64_t uint64_t;
#define uint64_t __uint64_t
#endif
#if defined(_NETBSD_SOURCE)
#endif
/*
* The types longlong_t and u_longlong_t exist for use with the
* Sun-derived XDR routines involving these types, and their usage
* in other contexts is discouraged. Further note that these types
* may not be equivalent to "long long" and "unsigned long long",
* they are only guaranteed to be signed and unsigned 64-bit types
* respectively. Portable programs that need 64-bit types should use
* the C99 types int64_t and uint64_t instead.
*/
#ifndef fsblkcnt_t
#define fsblkcnt_t __fsblkcnt_t
#endif
#ifndef fsfilcnt_t
#define fsfilcnt_t __fsfilcnt_t
#endif
#ifndef caddr_t
#endif
#ifdef __daddr_t
#else
#endif
#ifndef gid_t
#endif
#ifndef mode_t
#endif
#ifndef off_t
#endif
#ifndef pid_t
#endif
#ifndef uid_t
#endif
#if defined(_LIBC)
/*
* semctl(2)'s argument structure. This is here for the benefit of
* <sys/syscallargs.h>. It is not in the user's namespace in SUSv2.
* The SUSv2 semctl(2) takes variable arguments.
*/
union __semun {
int val; /* value for SETVAL */
unsigned short *array; /* array for GETALL & SETALL */
};
/* For the same reason as above */
#endif /* _LIBC */
/*
* These belong in EfiSysCall.h, but are also placed here to ensure that
* long arguments will be promoted to off_t if the program fails to
* include that header or explicitly cast them to off_t.
*/
#ifndef __OFF_T_SYSCALLS_DECLARED
#define __OFF_T_SYSCALLS_DECLARED
#endif /* __OFF_T_SYSCALLS_DECLARED */
#if defined(_NETBSD_SOURCE)
/* Major, minor numbers, dev_t's. */
(((x) & 0x000000ff) >> 0)))
(((y) << 12) & 0xfff00000) | \
(((y) << 0) & 0x000000ff)))
#endif
#if defined(_BSD_CLOCK_T_) && defined(_EFI_CLOCK_T)
typedef _EFI_CLOCK_T clock_t;
#endif
#ifdef _EFI_SIZE_T_
typedef _EFI_SIZE_T_ size_t;
#define _SIZE_T
#endif
#ifdef _BSD_SSIZE_T_
typedef _BSD_SSIZE_T_ ssize_t;
#endif
#if defined(_BSD_TIME_T_) && defined(_EFI_TIME_T)
typedef _EFI_TIME_T time_t;
#endif
#ifdef _BSD_CLOCKID_T_
typedef _BSD_CLOCKID_T_ clockid_t;
#endif
#ifdef _BSD_TIMER_T_
typedef _BSD_TIMER_T_ timer_t;
#endif
#ifdef _BSD_SUSECONDS_T_
typedef _BSD_SUSECONDS_T_ suseconds_t;
#endif
#ifdef _BSD_USECONDS_T_
typedef _BSD_USECONDS_T_ useconds_t;
#endif
#ifdef _NETBSD_SOURCE
typedef struct kauth_cred *kauth_cred_t;
#endif
#if 0
#if !defined(_KERNEL) && !defined(_STANDALONE)
defined(_NETBSD_SOURCE)
#include <pthread_types.h>
#endif
#endif
#endif /* if 0 */
#endif /* !_SYS_TYPES_H_ */