111394Sswallace/*	$NetBSD: ibcs2_stat.h,v 1.2 1994/10/26 02:53:03 cgd Exp $	*/
2139799Simp/* $FreeBSD$ */
311394Sswallace
4139799Simp/*-
511394Sswallace * Copyright (c) 1994 Scott Bartram
611394Sswallace * All rights reserved.
711394Sswallace *
811394Sswallace * Redistribution and use in source and binary forms, with or without
911394Sswallace * modification, are permitted provided that the following conditions
1011394Sswallace * are met:
1111394Sswallace * 1. Redistributions of source code must retain the above copyright
1211394Sswallace *    notice, this list of conditions and the following disclaimer.
1311394Sswallace * 2. Redistributions in binary form must reproduce the above copyright
1411394Sswallace *    notice, this list of conditions and the following disclaimer in the
1511394Sswallace *    documentation and/or other materials provided with the distribution.
1611394Sswallace * 3. All advertising materials mentioning features or use of this software
1711394Sswallace *    must display the following acknowledgement:
1811394Sswallace *      This product includes software developed by Scott Bartram.
1911394Sswallace * 4. The name of the author may not be used to endorse or promote products
2011394Sswallace *    derived from this software without specific prior written permission
2111394Sswallace *
2211394Sswallace * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2311394Sswallace * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
2411394Sswallace * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
2511394Sswallace * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
2611394Sswallace * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2711394Sswallace * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2811394Sswallace * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2911394Sswallace * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3011394Sswallace * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3111394Sswallace * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3211394Sswallace */
3311394Sswallace
3411394Sswallace#ifndef	_IBCS2_STAT_H
3511394Sswallace#define	_IBCS2_STAT_H
3611394Sswallace
3711397Sswallace#include <i386/ibcs2/ibcs2_types.h>
3811394Sswallace
3911394Sswallacestruct ibcs2_stat {
4011394Sswallace	ibcs2_dev_t	st_dev;
4111394Sswallace	ibcs2_ino_t	st_ino;
4211394Sswallace	ibcs2_mode_t	st_mode;
4311394Sswallace	ibcs2_nlink_t	st_nlink;
4411394Sswallace	ibcs2_uid_t	st_uid;
4511394Sswallace	ibcs2_gid_t	st_gid;
4611394Sswallace	ibcs2_dev_t	st_rdev;
4711394Sswallace	ibcs2_off_t	st_size;
4811394Sswallace	ibcs2_time_t	st_atim;
4911394Sswallace	ibcs2_time_t	st_mtim;
5011394Sswallace	ibcs2_time_t	st_ctim;
5111394Sswallace};
5211394Sswallace
5311394Sswallace#define ibcs2_stat_len	(sizeof(struct ibcs2_stat))
5411394Sswallace
5511394Sswallace#define IBCS2_S_IFMT		0xf000
5611394Sswallace#define IBCS2_S_IFIFO		0x1000
5711394Sswallace#define IBCS2_S_IFCHR		0x2000
5811394Sswallace#define IBCS2_S_IFDIR		0x4000
5911394Sswallace#define IBCS2_S_IFBLK		0x6000
6011394Sswallace#define IBCS2_S_IFREG		0x8000
6111394Sswallace#define IBCS2_S_IFSOCK		0xc000
6211394Sswallace
6311394Sswallace#define IBCS2_S_IFNAM		0x5000
6411394Sswallace#define IBCS2_S_IFLNK		0xa000
6511394Sswallace
6611394Sswallace#define IBCS2_S_ISUID		0x0800
6711394Sswallace#define IBCS2_S_ISGID		0x0400
6811394Sswallace#define IBCS2_S_ISVTX		0x0200
6911394Sswallace
7011394Sswallace#define IBCS2_S_IRWXU		0x01c0
7111394Sswallace#define IBCS2_S_IRUSR		0x0100
7211394Sswallace#define IBCS2_S_IWUSR		0x0080
7311394Sswallace#define IBCS2_S_IXUSR		0x0040
7411394Sswallace#define IBCS2_S_IRWXG		0x0038
7511394Sswallace#define IBCS2_S_IRGRP		0x0020
7611394Sswallace#define IBCS2_S_IWGRP		0x000f
7711394Sswallace#define IBCS2_S_IXGRP		0x0008
7811394Sswallace#define IBCS2_S_IRWXO		0x0007
7911394Sswallace#define IBCS2_S_IROTH		0x0004
8011394Sswallace#define IBCS2_S_IWOTH		0x0002
8111394Sswallace#define IBCS2_S_IXOTH		0x0001
8211394Sswallace
8311394Sswallace#define IBCS2_S_ISFIFO(mode)	(((mode) & IBCS2_S_IFMT) == IBCS2_S_IFIFO)
8411394Sswallace#define IBCS2_S_ISCHR(mode)	(((mode) & IBCS2_S_IFMT) == IBCS2_S_IFCHR)
8511394Sswallace#define IBCS2_S_ISDIR(mode)	(((mode) & IBCS2_S_IFMT) == IBCS2_S_IFDIR)
8611394Sswallace#define IBCS2_S_ISBLK(mode)	(((mode) & IBCS2_S_IFMT) == IBCS2_S_IFBLK)
8711394Sswallace#define IBCS2_S_ISREG(mode)	(((mode) & IBCS2_S_IFMT) == IBCS2_S_IFREG)
8811394Sswallace#define IBCS2_S_ISSOCK(mode)	(((mode) & IBCS2_S_IFMT) == IBCS2_S_IFSOCK)
8911394Sswallace
9011394Sswallace#endif /* _IBCS2_STAT_H */
91