|
|
1.1 root 1: /* (-lgl
2: * COHERENT Version 4.1.0
3: * Copyright (c) 1982, 1993 by Mark Williams Company.
4: * All rights reserved. May not be copied without permission.
5: -lgl) */
6: /*
7: * /usr/include/sys/stat.h
8: * Revised Sun Jun 20 1993 for POSIX.1, prototypes -- NB
9: */
10:
11: #ifndef __SYS_STAT_H__
12: #define __SYS_STAT_H__
13:
14: #include <common/ccompat.h>
15:
16: #if _POSIX_SOURCE || _DDI_DKI
17:
18: #include <common/__time.h>
19: #include <common/__off.h>
20: #include <common/_fsize.h>
21: #include <common/_uid.h>
22:
23: #else
24:
25: #include <common/_time.h>
26: #include <sys/types.h>
27:
28: #endif
29:
30: #include <common/_imode.h>
31:
32: /*
33: * Structure returned by stat () and fstat () system calls.
34: */
35:
36: struct stat {
37: __dev_t st_dev; /* Device */
38: __ino_t st_ino; /* Inode number */
39: __mode_t st_mode; /* Mode */
40: __nlink_t st_nlink; /* Link count */
41: __uid_t st_uid; /* User id */
42: __gid_t st_gid; /* Group id */
43: __dev_t __NON_POSIX (st_rdev);
44: /* Real device */
45: __off_t st_size; /* Size */
46: __time_t st_atime; /* Access time */
47: __time_t st_mtime; /* Modify time */
48: __time_t st_ctime; /* Change time */
49: };
50:
51: /*
52: * Mode macros. Note that the following definitions are required to be
53: * macros, but are /not/ constrained to be integral constant expressions
54: * suitable for use in #if-expressions.
55: */
56:
57: #define S_IFMT __IFMT /* Type */
58: #define S_IFDIR __IFDIR /* Directory */
59: #define S_IFCHR __IFCHR /* Character special */
60: #define S_IFPIP __IFPIP /* Pipe */
61: #define S_IFIFO __IFFIFO /* Pipe */
62: #define S_IFBLK __IFBLK /* Block special */
63: #define S_IFREG __IFREG /* Regular */
64:
65: #define S_IFSOCK 0xC000 /* Socket -- UNIMPLEMENTED */
66: #define S_IFMPC 0x3000 /* Multiplexed character special */
67: #define S_IFMPB 0x7000 /* Multiplexed block special */
68:
69: #define S_ISUID __ISUID /* Set user id on execution */
70: #define S_ISGID __ISGID /* Set group id on execution */
71: #define S_ISVTX __ISVTX /* Save swapped text even after use */
72:
73: #define S_IREAD __IREAD /* Read permission, owner */
74: #define S_IWRITE __IWRITE /* Write permission, owner */
75: #define S_IEXEC __IEXEC /* Execute/search permission, owner */
76: #define S_IRWXU __IRWXU /* RWX permission, owner */
77: #define S_IRUSR __IRUSR /* Read permission, owner */
78: #define S_IWUSR __IWUSR /* Write permission, owner */
79: #define S_IXUSR __IXUSR /* Execute/search permission, owner */
80: #define S_IRWXG __IRWXG /* RWX permission, group */
81: #define S_IRGRP __IRGRP /* Read permission, group */
82: #define S_IWGRP __IWGRP /* Write permission, group */
83: #define S_IXGRP __IXGRP /* Execute/search permission, group */
84: #define S_IRWXO __IRWXO /* RWX permission, other */
85: #define S_IROTH __IROTH /* Read permission, other */
86: #define S_IWOTH __IWOTH /* Write permission, other */
87: #define S_IXOTH __IXOTH /* Execute/search permission, other */
88:
89: /* Mode test macros. */
90:
91: #define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
92: #define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
93: #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
94: #define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
95: #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
96: #define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
97:
98: __EXTERN_C_BEGIN__
99:
100: int chmod __PROTO ((__CONST__ char * _path,
101: __mode_t _mode));
102: int mkdir __PROTO ((__CONST__ char * _path,
103: __mode_t _mode));
104: int fstat __PROTO ((int _fildes, struct stat * _buf));
105: int stat __PROTO ((__CONST__ char * _path,
106: struct stat * _buf));
107: __mode_t umask __PROTO ((__mode_t _mask));
108:
109: #if 0 /* not supported */
110: int mkfifo __PROTO ((__CONST__ char * _path,
111: __mode_t _mode));
112: #endif
113:
114: __EXTERN_C_END__
115:
116:
117: #if ! _DDI_DKI
118:
119: /*
120: * Nonexistent device.
121: * Must compare correctly with dev_t, which is an unsigned short in the old
122: * Coherent device-driver system.
123: */
124:
125: #ifndef NODEV
126: # define NODEV ((__dev_t) -1)
127: #endif
128:
129:
130: /*
131: * Functions.
132: */
133: #define major(dev) (((dev) >> 8) & 0xFF)
134: #define minor(dev) ((dev) & 0xFF)
135: #define makedev(m1, m2) ((__dev_t) (((m1) << 8) | (m2)))
136:
137: #endif /* ! _DDI_DKI */
138:
139: #endif /* ! defined (__SYS_STAT_H__) */
140:
141: /* end of sys/stat.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.