#ifndef _SYS_TYPES_H_
#define _SYS_TYPES_H_
#include <sys/cdefs.h>
#include <machine/endian.h>
#include <sys/_types.h>
#include <sys/_offsetof.h>
#include <sys/_pthreadtypes.h>
#if __BSD_VISIBLE
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
#ifndef _KERNEL
typedef unsigned short ushort;
typedef unsigned int uint;
#endif
#endif
#include <sys/_stdint.h>
typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;
typedef __uint64_t u_quad_t;
typedef __int64_t quad_t;
typedef quad_t * qaddr_t;
typedef char * caddr_t;
typedef const char * c_caddr_t;
#ifndef _BLKSIZE_T_DECLARED
typedef __blksize_t blksize_t;
#define _BLKSIZE_T_DECLARED
#endif
typedef __cpuwhich_t cpuwhich_t;
typedef __cpulevel_t cpulevel_t;
typedef __cpusetid_t cpusetid_t;
#ifndef _BLKCNT_T_DECLARED
typedef __blkcnt_t blkcnt_t;
#define _BLKCNT_T_DECLARED
#endif
#ifndef _CLOCK_T_DECLARED
typedef __clock_t clock_t;
#define _CLOCK_T_DECLARED
#endif
#ifndef _CLOCKID_T_DECLARED
typedef __clockid_t clockid_t;
#define _CLOCKID_T_DECLARED
#endif
typedef __critical_t critical_t;
typedef __daddr_t daddr_t;
#ifndef _DEV_T_DECLARED
typedef __dev_t dev_t;
#define _DEV_T_DECLARED
#endif
#ifndef _FFLAGS_T_DECLARED
typedef __fflags_t fflags_t;
#define _FFLAGS_T_DECLARED
#endif
typedef __fixpt_t fixpt_t;
#ifndef _FSBLKCNT_T_DECLARED
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
#define _FSBLKCNT_T_DECLARED
#endif
#ifndef _GID_T_DECLARED
typedef __gid_t gid_t;
#define _GID_T_DECLARED
#endif
#ifndef _IN_ADDR_T_DECLARED
typedef __uint32_t in_addr_t;
#define _IN_ADDR_T_DECLARED
#endif
#ifndef _IN_PORT_T_DECLARED
typedef __uint16_t in_port_t;
#define _IN_PORT_T_DECLARED
#endif
#ifndef _ID_T_DECLARED
typedef __id_t id_t;
#define _ID_T_DECLARED
#endif
#ifndef _INO_T_DECLARED
typedef __ino_t ino_t;
#define _INO_T_DECLARED
#endif
#ifndef _KEY_T_DECLARED
typedef __key_t key_t;
#define _KEY_T_DECLARED
#endif
#ifndef _LWPID_T_DECLARED
typedef __lwpid_t lwpid_t;
#define _LWPID_T_DECLARED
#endif
#ifndef _MODE_T_DECLARED
typedef __mode_t mode_t;
#define _MODE_T_DECLARED
#endif
#ifndef _ACCMODE_T_DECLARED
typedef __accmode_t accmode_t;
#define _ACCMODE_T_DECLARED
#endif
#ifndef _NLINK_T_DECLARED
typedef __nlink_t nlink_t;
#define _NLINK_T_DECLARED
#endif
#ifndef _OFF_T_DECLARED
typedef __off_t off_t;
#define _OFF_T_DECLARED
#endif
#ifndef _OFF64_T_DECLARED
typedef __off64_t off64_t;
#define _OFF64_T_DECLARED
#endif
#ifndef _PID_T_DECLARED
typedef __pid_t pid_t;
#define _PID_T_DECLARED
#endif
typedef __register_t register_t;
#ifndef _RLIM_T_DECLARED
typedef __rlim_t rlim_t;
#define _RLIM_T_DECLARED
#endif
typedef __sbintime_t sbintime_t;
typedef __segsz_t segsz_t;
#ifndef _SIZE_T_DECLARED
typedef __size_t size_t;
#define _SIZE_T_DECLARED
#endif
#ifndef _SSIZE_T_DECLARED
typedef __ssize_t ssize_t;
#define _SSIZE_T_DECLARED
#endif
#ifndef _SUSECONDS_T_DECLARED
typedef __suseconds_t suseconds_t;
#define _SUSECONDS_T_DECLARED
#endif
#ifndef _TIME_T_DECLARED
typedef __time_t time_t;
#define _TIME_T_DECLARED
#endif
#ifndef _TIMER_T_DECLARED
typedef __timer_t timer_t;
#define _TIMER_T_DECLARED
#endif
#ifndef _MQD_T_DECLARED
typedef __mqd_t mqd_t;
#define _MQD_T_DECLARED
#endif
typedef __u_register_t u_register_t;
#ifndef _UID_T_DECLARED
typedef __uid_t uid_t;
#define _UID_T_DECLARED
#endif
#ifndef _USECONDS_T_DECLARED
typedef __useconds_t useconds_t;
#define _USECONDS_T_DECLARED
#endif
#ifndef _CAP_IOCTL_T_DECLARED
#define _CAP_IOCTL_T_DECLARED
typedef unsigned long cap_ioctl_t;
#endif
#ifndef _CAP_RIGHTS_T_DECLARED
#define _CAP_RIGHTS_T_DECLARED
struct cap_rights;
typedef struct cap_rights cap_rights_t;
#endif
typedef __uint64_t kpaddr_t;
typedef __uint64_t kvaddr_t;
typedef __uint64_t ksize_t;
typedef __int64_t kssize_t;
typedef __vm_offset_t vm_offset_t;
typedef __uint64_t vm_ooffset_t;
typedef __vm_paddr_t vm_paddr_t;
typedef __uint64_t vm_pindex_t;
typedef __vm_size_t vm_size_t;
typedef __rman_res_t rman_res_t;
typedef __register_t syscallarg_t;
#ifdef _KERNEL
typedef unsigned int boolean_t;
typedef struct _device *device_t;
typedef __intfptr_t intfptr_t;
typedef __uint32_t intrmask_t;
typedef __uintfptr_t uintfptr_t;
typedef __uint64_t uoff_t;
typedef char vm_memattr_t;
typedef struct vm_page *vm_page_t;
#endif
#if defined(_KERNEL) || defined(_STANDALONE)
#if !defined(__bool_true_false_are_defined) && !defined(__cplusplus)
#define __bool_true_false_are_defined 1
#if __STDC_VERSION__ < 202311L
#define false 0
#define true 1
typedef _Bool bool;
#endif
#endif
#endif
#include <sys/bitcount.h>
#if __BSD_VISIBLE
#ifndef _STANDALONE
#include <sys/select.h>
#endif
#define major(d) __major(d)
static __inline int
__major(dev_t _d)
{
return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff));
}
#define minor(d) __minor(d)
static __inline int
__minor(dev_t _d)
{
return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff));
}
#define makedev(M, m) __makedev((M), (m))
static __inline dev_t
__makedev(int _Major, int _Minor)
{
return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff));
}
#if (defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 13))
#define __enum_uint8_decl(name) enum enum_ ## name ## _uint8 : uint8_t
#define __enum_uint8(name) enum enum_ ## name ## _uint8
#else
#define __enum_uint8_decl(name) enum __attribute__((packed)) enum_ ## name ## _uint8
#define __enum_uint8(name) enum __attribute__((packed)) enum_ ## name ## _uint8
#endif
#ifndef _KERNEL
__BEGIN_DECLS
#ifndef _FTRUNCATE_DECLARED
#define _FTRUNCATE_DECLARED
int ftruncate(int, off_t);
#endif
#ifndef _LSEEK_DECLARED
#define _LSEEK_DECLARED
off_t lseek(int, off_t, int);
#endif
#ifndef _MMAP_DECLARED
#define _MMAP_DECLARED
void * mmap(void *, size_t, int, int, int, off_t);
#endif
#ifndef _TRUNCATE_DECLARED
#define _TRUNCATE_DECLARED
int truncate(const char *, off_t);
#endif
__END_DECLS
#endif
#endif
#endif