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