1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
27 /* All Rights Reserved */
28
29 /*
30 * University Copyright- Copyright (c) 1982, 1986, 1988
31 * The Regents of the University of California
32 * All Rights Reserved
33 *
34 * University Acknowledgment- Portions of this document are derived from
35 * software developed by the University of California, Berkeley, and its
36 * contributors.
37 */
38
39 /*
40 * Copyright (c) 2013 by Delphix. All rights reserved.
41 */
42
43 #ifndef _SYS_FILIO_H
44 #define _SYS_FILIO_H
45
46 /*
47 * General file ioctl definitions.
48 */
49
50 #include <sys/ioccom.h>
51
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55
56 #define FIOCLEX _IO('f', 1) /* set exclusive use on fd */
57 #define FIONCLEX _IO('f', 2) /* remove exclusive use */
58 /* another local */
59 #define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
60 #define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
61 #define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
62 #define FIOSETOWN _IOW('f', 124, int) /* set owner */
63 #define FIOGETOWN _IOR('f', 123, int) /* get owner */
64
65 /*
66 * ioctl's for Online: DiskSuite.
67 * WARNING - the support for these ioctls may be withdrawn
68 * in future OS releases.
69 */
70 #define _FIOLFS _IO('f', 64) /* file system lock */
71 #define _FIOLFSS _IO('f', 65) /* file system lock status */
72 #define _FIOFFS _IO('f', 66) /* file system flush */
73 #define _FIOAI _FIOOBSOLETE67 /* get allocation info is */
74 #define _FIOOBSOLETE67 _IO('f', 67) /* obsolete and unsupported */
75 #define _FIOSATIME _IO('f', 68) /* set atime */
76 #define _FIOSDIO _IO('f', 69) /* set delayed io */
77 #define _FIOGDIO _IO('f', 70) /* get delayed io */
78 #define _FIOIO _IO('f', 71) /* inode open */
79 #define _FIOISLOG _IO('f', 72) /* disksuite/ufs protocol */
80 #define _FIOISLOGOK _IO('f', 73) /* disksuite/ufs protocol */
81 #define _FIOLOGRESET _IO('f', 74) /* disksuite/ufs protocol */
82
83 /*
84 * Contract-private ioctl()
85 */
86 #define _FIOISBUSY _IO('f', 75) /* networker/ufs protocol */
87 #define _FIODIRECTIO _IO('f', 76) /* directio */
88 #define _FIOTUNE _IO('f', 77) /* tuning */
89
90 /*
91 * WARNING: These 'f' ioctls are also defined in sys/fs/cachefs_fs.h
92 * It currently defines 78-86.
93 */
94
95 /*
96 * Internal Logging UFS
97 */
98 #define _FIOLOGENABLE _IO('f', 87) /* logging/ufs protocol */
99 #define _FIOLOGDISABLE _IO('f', 88) /* logging/ufs protocol */
100
101 /*
102 * File system snapshot ioctls (see sys/fs/ufs_snap.h)
103 * (there is another snapshot ioctl, _FIOSNAPSHOTCREATE_MULTI,
104 * defined farther down in this file.)
105 */
106 #define _FIOSNAPSHOTCREATE _IO('f', 89) /* create a snapshot */
107 #define _FIOSNAPSHOTDELETE _IO('f', 90) /* delete a snapshot */
108
109 /*
110 * Return the current superblock of size SBSIZE
111 */
112 #define _FIOGETSUPERBLOCK _IO('f', 91)
113
114 /*
115 * Contract private ioctl
116 */
117 #define _FIOGETMAXPHYS _IO('f', 92)
118
119 /*
120 * TSufs support
121 */
122 #define _FIO_SET_LUFS_DEBUG _IO('f', 93) /* set lufs_debug */
123 #define _FIO_SET_LUFS_ERROR _IO('f', 94) /* set a lufs error */
124 #define _FIO_GET_TOP_STATS _IO('f', 95) /* get lufs tranaction stats */
125
126 /*
127 * create a snapshot with multiple backing files
128 */
129 #define _FIOSNAPSHOTCREATE_MULTI _IO('f', 96)
130
131 /*
132 * handle lseek SEEK_DATA and SEEK_HOLE for holey file knowledge
133 */
134 #define _FIO_SEEK_DATA _IO('f', 97) /* SEEK_DATA */
135 #define _FIO_SEEK_HOLE _IO('f', 98) /* SEEK_HOLE */
136
137 /*
138 * boot archive compression
139 */
140 #define _FIO_COMPRESSED _IO('f', 99) /* mark file as compressed */
141
142 /*
143 * Expose fill information through ioctl
144 */
145 #define _FIO_COUNT_FILLED _IO('f', 100) /* count holes in a file */
146
147 #ifdef __cplusplus
148 }
149 #endif
150
151 #endif /* _SYS_FILIO_H */