NetBSD-5.0.2/sys/compat/irix/irix_types.h
/* $NetBSD: irix_types.h,v 1.18 2008/04/28 20:23:42 martin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Emmanuel Dreyfus.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _IRIX_TYPES_H_
#define _IRIX_TYPES_H_
#include <sys/types.h>
#include <compat/svr4/svr4_types.h>
#include <compat/svr4/svr4_signal.h>
/* From IRIX's <limits.h> */
#define IRIX_PATH_MAX 1024
#define IRIX_NAME_MAX 255
/* From IRIX's <sys/signal.h> */
typedef struct {
__uint32_t bits[4];
} irix_sigset_t;
/* From IRIX's <sys/types.h> */
typedef __int32_t irix_app32_int_t;
typedef __uint32_t irix_app32_ulong_t;
typedef __int32_t irix_app32_long_t;
typedef __uint64_t irix_app32_ulong_long_t;
typedef __int64_t irix_app32_long_long_t;
typedef __uint32_t irix_ino_t;
typedef __int32_t irix_off_t;
typedef __uint32_t irix_app32_ptr_t;
typedef __uint64_t irix_k_sigset_t;
#if 1 /* _MIPS_SZLONG == 32 */
typedef unsigned long irix_mode_t;
typedef unsigned long irix_dev_t;
typedef long irix_uid_t;
typedef long irix_gid_t;
typedef unsigned long irix_nlink_t;
typedef long irix_pid_t;
typedef long irix_time_t;
typedef unsigned int irix_size_t;
#endif
#if 0 /* _MIPS_SZLONG == 64 */
typedef __uint32_t irix_dev_t;
typedef __uint32_t irix_mode_t;
typedef __int32_t irix_uid_t;
typedef __int32_t irix_gid_t;
typedef __uint32_t irix_nlink_t;
typedef __int32_t irix_pid_t;
typedef int irix_time_t;
typedef unsigned long irix_size_t;
#endif
typedef __int32_t irix_blkcnt_t;
typedef __uint64_t irix_ino64_t;
typedef __int64_t irix_off64_t;
typedef __int64_t irix_blkcnt64_t;
/* From IRIX's <sys/ktypes.h> */
typedef irix_app32_long_long_t irix_irix5_n32_off_t;
typedef irix_app32_long_t irix_irix5_uid_t;
typedef irix_app32_long_t irix_irix5_clock_t;
typedef irix_app32_long_t irix_irix5_pid_t;
/* From IRIX's <sys/ktime.h> */
typedef irix_app32_long_t irix_irix5_time_t;
typedef struct irix_irix5_timespec {
irix_irix5_time_t tv_sec;
irix_app32_long_t tv_nsec;
} irix_irix5_timespec_t;
/* From IRIX's <sys/timespec.h> */
typedef struct irix___timespec {
irix_time_t tv_sec;
long tv_nsec;
} irix_timespec_t;
/* From IRIX's <sys/stat.h> */
#define IRIX__R3_STAT_VER 1
#define IRIX__STAT_VER 2
#define IRIX__STAT64_VER 3
struct irix_stat {
irix_dev_t ist_dev;
long ist_pad1[3];
irix_ino_t ist_ino;
irix_mode_t ist_mode;
irix_nlink_t ist_nlink;
irix_uid_t ist_uid;
irix_gid_t ist_gid;
irix_dev_t ist_rdev;
long ist_pad2[2];
irix_off_t ist_size;
long ist_pad3;
irix_timespec_t ist_atim;
irix_timespec_t ist_mtim;
irix_timespec_t ist_ctim;
long ist_blksize;
irix_blkcnt_t ist_blocks;
char ist_fstype[16];
long ist_projid;
long ist_pad4[7];
};
struct irix_stat64 {
irix_dev_t ist_dev;
long ist_pad1[3];
irix_ino64_t ist_ino;
irix_mode_t ist_mode;
irix_nlink_t ist_nlink;
irix_uid_t ist_uid;
irix_gid_t ist_gid;
irix_dev_t ist_rdev;
long ist_pad2[2];
irix_off64_t ist_size;
long ist_pad3;
irix_timespec_t ist_atim;
irix_timespec_t ist_mtim;
irix_timespec_t ist_ctim;
long ist_blksize;
irix_blkcnt64_t ist_blocks;
char ist_fstype[16];
long ist_projid;
long ist_pad4[7];
};
/* From IRIX's <sys/mount.h> */
typedef struct irix_mountid {
unsigned int ival[4];
} irix_mountid_t;
/* From IRIX's <sys/dirent.h> */
typedef struct irix_dirent {
irix_ino_t d_ino;
irix_off_t d_off;
unsigned short d_reclen;
char d_name[IRIX_NAME_MAX + 1];
} irix_dirent_t;
typedef struct irix_dirent64 {
irix_ino64_t d_ino;
irix_off64_t d_off;
unsigned short d_reclen;
char d_name[IRIX_NAME_MAX + 1];
} irix_dirent64_t;
/* From IRIX's <sys/utsname.h> */
#define IRIX_SYS_NMLN 257
struct irix_utsname {
char sysname[IRIX_SYS_NMLN];
char nodename[IRIX_SYS_NMLN];
char release[IRIX_SYS_NMLN];
char version[IRIX_SYS_NMLN];
char machine[IRIX_SYS_NMLN];
char m_type[IRIX_SYS_NMLN];
char base_rel[IRIX_SYS_NMLN];
char reserve5[IRIX_SYS_NMLN];
char reserve4[IRIX_SYS_NMLN];
char reserve3[IRIX_SYS_NMLN];
char reserve2[IRIX_SYS_NMLN];
char reserve1[IRIX_SYS_NMLN];
char reserve0[IRIX_SYS_NMLN];
};
#endif /* _IRIX_TYPES_H_ */