1 /* $NetBSD: linux32_types.h,v 1.15 2011/11/18 04:08:56 christos Exp $ */ 2 3 /*- 4 * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. All advertising materials mentioning features or use of this software 15 * must display the following acknowledgement: 16 * This product includes software developed by Emmanuel Dreyfus 17 * 4. The name of the author may not be used to endorse or promote 18 * products derived from this software without specific prior written 19 * permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE THE AUTHOR AND CONTRIBUTORS ``AS IS'' 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 * POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 #ifndef _LINUX32_TYPES_H 35 #define _LINUX32_TYPES_H 36 37 #ifdef __amd64__ 38 #include <compat/linux32/arch/amd64/linux32_types.h> 39 #endif 40 41 typedef uint16_t linux32_gid16_t; 42 typedef uint16_t linux32_uid16_t; 43 44 typedef netbsd32_pointer_t linux32_oldmmapp; 45 typedef netbsd32_pointer_t linux32_utsnamep; 46 typedef netbsd32_pointer_t linux32_stat64p; 47 typedef netbsd32_pointer_t linux32_statp; 48 typedef netbsd32_pointer_t linux32_statfsp; 49 typedef netbsd32_pointer_t linux32_statfs64p; 50 typedef netbsd32_pointer_t linux32_sigactionp_t; 51 typedef netbsd32_pointer_t linux32_sigsetp_t; 52 typedef netbsd32_pointer_t linux32___sysctlp_t; 53 typedef netbsd32_pointer_t linux32_direntp_t; 54 typedef netbsd32_pointer_t linux32_dirent64p_t; 55 typedef netbsd32_pointer_t linux32_timep_t; 56 typedef netbsd32_pointer_t linux32_tmsp_t; 57 typedef netbsd32_pointer_t linux32_sched_paramp_t; 58 typedef netbsd32_pointer_t linux32_utimbufp_t; 59 typedef netbsd32_pointer_t linux32_oldold_utsnamep_t; 60 typedef netbsd32_pointer_t linux32_uidp_t; 61 typedef netbsd32_pointer_t linux32_gidp_t; 62 typedef netbsd32_pointer_t linux32_uid16p_t; 63 typedef netbsd32_pointer_t linux32_gid16p_t; 64 typedef netbsd32_pointer_t linux32_oldselectp_t; 65 typedef netbsd32_pointer_t linux32_sysinfop_t; 66 typedef netbsd32_pointer_t linux32_oldutsnamep_t; 67 typedef netbsd32_pointer_t linux32_timespecp_t; 68 typedef netbsd32_pointer_t linux32_robust_list_headp_t; 69 typedef netbsd32_pointer_t linux32_robust_list_headpp_t; 70 typedef netbsd32_pointer_t linux32_sizep_t; 71 typedef netbsd32_pointer_t linux32_intp_t; 72 73 struct linux32_sysctl { 74 netbsd32_intp name; 75 int nlen; 76 netbsd32_voidp oldval; 77 netbsd32_size_tp oldlenp; 78 netbsd32_voidp newval; 79 netbsd32_size_t newlen; 80 unsigned int __unused0[4]; 81 }; 82 83 struct linux32_tms { 84 linux32_clock_t ltms32_utime; 85 linux32_clock_t ltms32_stime; 86 linux32_clock_t ltms32_cutime; 87 linux32_clock_t ltms32_cstime; 88 }; 89 90 struct linux32_oldselect { 91 int nfds; 92 netbsd32_fd_setp_t readfds; 93 netbsd32_fd_setp_t writefds; 94 netbsd32_fd_setp_t exceptfds; 95 netbsd32_timeval50p_t timeout; 96 }; 97 98 struct linux32_sysinfo { 99 netbsd32_long uptime; 100 netbsd32_u_long loads[3]; 101 netbsd32_u_long totalram; 102 netbsd32_u_long freeram; 103 netbsd32_u_long sharedram; 104 netbsd32_u_long bufferram; 105 netbsd32_u_long totalswap; 106 netbsd32_u_long freeswap; 107 unsigned short procs; 108 netbsd32_u_long totalbig; 109 netbsd32_u_long freebig; 110 unsigned int mem_unit; 111 char _f[20-2*sizeof(netbsd32_long)-sizeof(int)]; 112 }; 113 114 #define LINUX32_MAXNAMLEN 255 115 struct linux32_dirent { 116 linux32_ino_t d_ino; 117 linux32_off_t d_off; 118 u_short d_reclen; 119 char d_name[LINUX32_MAXNAMLEN + 2]; 120 }; 121 122 #endif /* !_LINUX32_TYPES_H */ 123