#ifndef _SYS_TYPES_H_
#define _SYS_TYPES_H_
#include <sys/featuretest.h>
#include <machine/types.h>
#include <machine/ansi.h>
#include <machine/int_types.h>
#include <sys/ansi.h>
#ifndef _BSD_INT8_T_
typedef __int8_t int8_t;
#define _BSD_INT8_T_
#endif
#ifndef _BSD_UINT8_T_
typedef __uint8_t uint8_t;
#define _BSD_UINT8_T_
#endif
#ifndef _BSD_INT16_T_
typedef __int16_t int16_t;
#define _BSD_INT16_T_
#endif
#ifndef _BSD_UINT16_T_
typedef __uint16_t uint16_t;
#define _BSD_UINT16_T_
#endif
#ifndef _BSD_INT32_T_
typedef __int32_t int32_t;
#define _BSD_INT32_T_
#endif
#ifndef _BSD_UINT32_T_
typedef __uint32_t uint32_t;
#define _BSD_UINT32_T_
#endif
#ifndef _BSD_INT64_T_
typedef __int64_t int64_t;
#define _BSD_INT64_T_
#endif
#ifndef _BSD_UINT64_T_
typedef __uint64_t uint64_t;
#define _BSD_UINT64_T_
#endif
typedef uint8_t u_int8_t;
typedef uint16_t u_int16_t;
typedef uint32_t u_int32_t;
typedef uint64_t u_int64_t;
#include <sys/stdint.h>
#if defined(_NETBSD_SOURCE)
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
#endif
typedef uint64_t u_quad_t;
typedef int64_t quad_t;
typedef quad_t * qaddr_t;
typedef int64_t longlong_t;
typedef uint64_t u_longlong_t;
typedef int64_t blkcnt_t;
typedef int32_t blksize_t;
#ifndef fsblkcnt_t
typedef __fsblkcnt_t fsblkcnt_t;
#define fsblkcnt_t __fsblkcnt_t
#endif
#ifndef fsfilcnt_t
typedef __fsfilcnt_t fsfilcnt_t;
#define fsfilcnt_t __fsfilcnt_t
#endif
#if !defined(_KERNEL) && !defined(_STANDALONE)
#ifndef caddr_t
typedef __caddr_t caddr_t;
#define caddr_t __caddr_t
#endif
#endif
#ifdef __daddr_t
typedef __daddr_t daddr_t;
#undef __daddr_t
#else
typedef int64_t daddr_t;
#endif
typedef uint64_t dev_t;
typedef uint32_t fixpt_t;
#ifndef gid_t
typedef __gid_t gid_t;
#define gid_t __gid_t
#endif
typedef uint32_t id_t;
#ifdef __ino_t
typedef __ino_t ino_t;
#undef __ino_t
#else
typedef uint64_t ino_t;
#endif
typedef long key_t;
#ifndef mode_t
typedef __mode_t mode_t;
#define mode_t __mode_t
#endif
#ifndef accmode_t
typedef __accmode_t accmode_t;
#define accmode_t __accmode_t
#endif
typedef uint32_t nlink_t;
#ifndef off_t
typedef __off_t off_t;
#define off_t __off_t
#endif
#ifndef pid_t
typedef __pid_t pid_t;
#define pid_t __pid_t
#endif
typedef int32_t lwpid_t;
typedef uint64_t rlim_t;
typedef int32_t segsz_t;
typedef int32_t swblk_t;
#ifndef uid_t
typedef __uid_t uid_t;
#define uid_t __uid_t
#endif
typedef int mqd_t;
typedef unsigned long cpuid_t;
typedef int psetid_t;
typedef volatile __cpu_simple_lock_nv_t __cpu_simple_lock_t;
#if defined(_KERNEL) || defined(_STANDALONE)
#include <sys/stdbool.h>
typedef int boolean_t;
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#endif
#if defined(_NETBSD_SOURCE)
#include <sys/endian.h>
#endif
#if defined(_KERNEL) || defined(_LIBC) || defined(_KMEMUSER)
union __semun {
int val;
struct semid_ds *buf;
unsigned short *array;
};
#endif
#if defined(_NETBSD_SOURCE)
#ifndef __OFF_T_SYSCALLS_DECLARED
#define __OFF_T_SYSCALLS_DECLARED
#ifndef _KERNEL
#include <sys/cdefs.h>
__BEGIN_DECLS
off_t lseek(int, off_t, int);
int ftruncate(int, off_t);
int truncate(const char *, off_t);
__END_DECLS
#endif
#endif
#endif
#if defined(_NETBSD_SOURCE)
typedef int32_t __devmajor_t, __devminor_t;
#define devmajor_t __devmajor_t
#define devminor_t __devminor_t
#define NODEVMAJOR (-1)
#define major(x) ((devmajor_t)(((uint32_t)(x) & 0x000fff00) >> 8))
#define minor(x) ((devminor_t)((((uint32_t)(x) & 0xfff00000) >> 12) | \
(((uint32_t)(x) & 0x000000ff) >> 0)))
#define makedev(x,y) ((dev_t)((((dev_t)(x) << 8) & 0x000fff00U) | \
(((dev_t)(y) << 12) & 0xfff00000U) | \
(((dev_t)(y) << 0) & 0x000000ffU)))
#endif
#ifdef _BSD_CLOCK_T_
typedef _BSD_CLOCK_T_ clock_t;
#undef _BSD_CLOCK_T_
#endif
#ifdef _BSD_PTRDIFF_T_
typedef _BSD_PTRDIFF_T_ ptrdiff_t;
#undef _BSD_PTRDIFF_T_
#endif
#ifdef _BSD_SIZE_T_
typedef _BSD_SIZE_T_ size_t;
#define _SIZE_T
#undef _BSD_SIZE_T_
#endif
#ifdef _BSD_SSIZE_T_
typedef _BSD_SSIZE_T_ ssize_t;
#undef _BSD_SSIZE_T_
#endif
#ifdef _BSD_TIME_T_
typedef _BSD_TIME_T_ time_t;
#undef _BSD_TIME_T_
#endif
#ifdef _BSD_CLOCKID_T_
typedef _BSD_CLOCKID_T_ clockid_t;
#undef _BSD_CLOCKID_T_
#endif
#ifdef _BSD_TIMER_T_
typedef _BSD_TIMER_T_ timer_t;
#undef _BSD_TIMER_T_
#endif
#ifdef _BSD_SUSECONDS_T_
typedef _BSD_SUSECONDS_T_ suseconds_t;
#undef _BSD_SUSECONDS_T_
#endif
#ifdef _BSD_USECONDS_T_
typedef _BSD_USECONDS_T_ useconds_t;
#undef _BSD_USECONDS_T_
#endif
#ifdef _NETBSD_SOURCE
#include <sys/fd_set.h>
#define NBBY 8
typedef struct kauth_cred *kauth_cred_t;
typedef int pri_t;
#endif
#if defined(__STDC__) && (defined(_KERNEL) || defined(_KMEMUSER))
struct lwp;
typedef struct lwp lwp_t;
struct __ucontext;
struct proc;
typedef struct proc proc_t;
struct pgrp;
struct rusage;
struct file;
typedef struct file file_t;
struct buf;
typedef struct buf buf_t;
struct tty;
struct uio;
#endif
#if defined(_KERNEL) || defined(_STANDALONE)
#define SET(t, f) ((t) |= (f))
#define ISSET(t, f) ((t) & (f))
#define CLR(t, f) ((t) &= ~(f))
#endif
#if !defined(_KERNEL) && !defined(_STANDALONE)
#if (_POSIX_C_SOURCE - 0L) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \
defined(_NETBSD_SOURCE)
#include <pthread_types.h>
#endif
#endif
#endif