types.h revision 1dc9e472e19acfe6dc7f41e429236e7eef7ceda1
11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*
21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * All rights reserved.
41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *
51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Redistribution and use in source and binary forms, with or without
61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * modification, are permitted provided that the following conditions
71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * are met:
81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *  * Redistributions of source code must retain the above copyright
91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *  * Redistributions in binary form must reproduce the above copyright
111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    notice, this list of conditions and the following disclaimer in
121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    the documentation and/or other materials provided with the
131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    distribution.
141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *
151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * SUCH DAMAGE.
271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */
281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _SYS_TYPES_H_
291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _SYS_TYPES_H_
301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define __need_size_t
321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define __need_ptrdiff_t
331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <stddef.h>
341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <stdint.h>
351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <sys/cdefs.h>
361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/posix_types.h>
381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <asm/types.h>
391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/types.h>
401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <machine/kernel.h>
411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __u32    __kernel_dev_t;
431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* be careful with __kernel_gid_t and __kernel_uid_t
451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * these are defined as 16-bit for legacy reason, but
461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * the kernel uses 32-bits instead.
471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *
481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 32-bit valuea are required for Android, so use
491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * __kernel_uid32_t and __kernel_gid32_t
501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */
511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_blkcnt_t    blkcnt_t;
531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_blksize_t   blksize_t;
541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_clock_t     clock_t;
551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_clockid_t   clockid_t;
561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_dev_t       dev_t;
571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_fsblkcnt_t  fsblkcnt_t;
581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_fsfilcnt_t  fsfilcnt_t;
591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_gid32_t     gid_t;
601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_id_t        id_t;
611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_ino_t       ino_t;
621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_key_t       key_t;
631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_mode_t      mode_t;
641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_nlink_t	 nlink_t;
651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _OFF_T_DEFINED_
661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_off_t       off_t;
671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_loff_t      loff_t;
681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef loff_t               off64_t;  /* GLibc-specific */
691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_pid_t		 pid_t;
711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* while POSIX wants these in <sys/types.h>, we
731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * declare then in <pthread.h> instead */
741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#if 0
751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_attr_t;
761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_cond_t;
771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_condattr_t;
781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_key_t;
791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_mutex_t;
801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_once_t;
811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_rwlock_t;
821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_rwlock_attr_t;
831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef  .... pthread_t;
841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _SIZE_T_DEFINED_
871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _SIZE_T_DEFINED_
881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef unsigned int  size_t;
891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* size_t is defined by the GCC-specific <stddef.h> */
921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _SSIZE_T_DEFINED_
931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _SSIZE_T_DEFINED_
941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef long int  ssize_t;
951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_suseconds_t  suseconds_t;
981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_time_t       time_t;
991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_uid32_t        uid_t;
1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef signed long           useconds_t;
1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_daddr_t	daddr_t;
1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_timer_t	timer_t;
1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_mqd_t		mqd_t;
1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef __kernel_caddr_t    caddr_t;
1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef unsigned int        uint_t;
1081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef unsigned int        uint;
1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* for some applications */
1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <sys/sysmacros.h>
1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifdef __BSD_VISIBLE
1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef	unsigned char	u_char;
1151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef	unsigned short	u_short;
1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef	unsigned int	u_int;
1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef	unsigned long	u_long;
1181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef uint32_t       u_int32_t;
1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef uint16_t       u_int16_t;
1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef uint8_t        u_int8_t;
1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef uint64_t       u_int64_t;
1231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
126