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