summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/file.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/file.h')
-rw-r--r--usr/src/uts/common/sys/file.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/usr/src/uts/common/sys/file.h b/usr/src/uts/common/sys/file.h
index 494840aff8..f402bc7079 100644
--- a/usr/src/uts/common/sys/file.h
+++ b/usr/src/uts/common/sys/file.h
@@ -18,20 +18,17 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
*/
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
#ifndef _SYS_FILE_H
#define _SYS_FILE_H
-#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 11.28 */
-
#include <sys/t_lock.h>
#ifdef _KERNEL
#include <sys/model.h>
@@ -61,7 +58,7 @@ extern "C" {
typedef struct file {
kmutex_t f_tlock; /* short term lock */
ushort_t f_flag;
- ushort_t f_pad; /* Explicit pad to 4 byte boundary */
+ ushort_t f_flag2; /* extra flags (FSEARCH, FEXEC) */
struct vnode *f_vnode; /* pointer to vnode structure */
offset_t f_offset; /* read/write character pointer */
struct cred *f_cred; /* credentials of user who opened it */
@@ -77,7 +74,7 @@ typedef struct fpollinfo {
struct fpollinfo *fp_next;
} fpollinfo_t;
-/* flags */
+/* f_flag */
#define FOPEN 0xffffffff
#define FREAD 0x01 /* <sys/aiocb.h> LIO_READ must be identical */
@@ -111,6 +108,11 @@ typedef struct fpollinfo {
#define FIGNORECASE 0x80000 /* request case-insensitive lookups */
#define FXATTRDIROPEN 0x100000 /* only opening hidden attribute directory */
+/* f_flag2 (open-only) */
+
+#define FSEARCH 0x200000 /* O_SEARCH = 0x200000 */
+#define FEXEC 0x400000 /* O_EXEC = 0x400000 */
+
#ifdef _KERNEL
/*
@@ -170,6 +172,7 @@ typedef struct fpollinfo {
*/
struct proc; /* forward reference for function prototype */
struct vnodeops;
+struct vattr;
extern file_t *getf(int);
extern void releasef(int);
@@ -199,6 +202,8 @@ extern void close_exec(uf_info_t *);
extern void clear_stale_fd(void);
extern void clear_active_fd(int);
extern void free_afd(afd_t *afd);
+extern int fgetstartvp(int, char *, struct vnode **);
+extern int fsetattrat(int, char *, int, struct vattr *);
extern int fisopen(struct vnode *);
extern void delfpollinfo(int);
extern void addfpollinfo(int);