filio.h revision 986fd29a0dc13f7608ef7f508f6e700bd7bc2720
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#ifndef _SYS_FILIO_H
40#define	_SYS_FILIO_H
41
42#pragma ident	"%Z%%M%	%I%	%E% SMI"
43
44/*
45 * General file ioctl definitions.
46 */
47
48#include <sys/ioccom.h>
49
50#ifdef	__cplusplus
51extern "C" {
52#endif
53
54#define	FIOCLEX		_IO('f', 1)		/* set exclusive use on fd */
55#define	FIONCLEX	_IO('f', 2)		/* remove exclusive use */
56/* another local */
57#define	FIONREAD	_IOR('f', 127, int)	/* get # bytes to read */
58#define	FIONBIO		_IOW('f', 126, int)	/* set/clear non-blocking i/o */
59#define	FIOASYNC	_IOW('f', 125, int)	/* set/clear async i/o */
60#define	FIOSETOWN	_IOW('f', 124, int)	/* set owner */
61#define	FIOGETOWN	_IOR('f', 123, int)	/* get owner */
62
63/*
64 * ioctl's for Online: DiskSuite.
65 * WARNING - the support for these ioctls may be withdrawn
66 * in future OS releases.
67 */
68#define	_FIOLFS		_IO('f', 64)		/* file system lock */
69#define	_FIOLFSS	_IO('f', 65)		/* file system lock status */
70#define	_FIOFFS		_IO('f', 66)		/* file system flush */
71#define	_FIOAI		_FIOOBSOLETE67		/* get allocation info is */
72#define	_FIOOBSOLETE67	_IO('f', 67)		/* obsolete and unsupported */
73#define	_FIOSATIME	_IO('f', 68)		/* set atime */
74#define	_FIOSDIO	_IO('f', 69)		/* set delayed io */
75#define	_FIOGDIO	_IO('f', 70)		/* get delayed io */
76#define	_FIOIO		_IO('f', 71)		/* inode open */
77#define	_FIOISLOG	_IO('f', 72)		/* disksuite/ufs protocol */
78#define	_FIOISLOGOK	_IO('f', 73)		/* disksuite/ufs protocol */
79#define	_FIOLOGRESET	_IO('f', 74)		/* disksuite/ufs protocol */
80
81/*
82 * Contract-private ioctl()
83 */
84#define	_FIOISBUSY	_IO('f', 75)		/* networker/ufs protocol */
85#define	_FIODIRECTIO	_IO('f', 76)		/* directio */
86#define	_FIOTUNE	_IO('f', 77)		/* tuning */
87
88/*
89 * WARNING: These 'f' ioctls are also defined in sys/fs/cachefs_fs.h
90 * It currently defines 78-86.
91 */
92
93/*
94 * Internal Logging UFS
95 */
96#define	_FIOLOGENABLE	_IO('f', 87)		/* logging/ufs protocol */
97#define	_FIOLOGDISABLE	_IO('f', 88)		/* logging/ufs protocol */
98
99/*
100 * File system snapshot ioctls (see sys/fs/ufs_snap.h)
101 * (there is another snapshot ioctl, _FIOSNAPSHOTCREATE_MULTI,
102 * defined farther down in this file.)
103 */
104#define	_FIOSNAPSHOTCREATE	_IO('f', 89)	/* create a snapshot */
105#define	_FIOSNAPSHOTDELETE	_IO('f', 90)	/* delete a snapshot */
106
107/*
108 * Return the current superblock of size SBSIZE
109 */
110#define	_FIOGETSUPERBLOCK	_IO('f', 91)
111
112/*
113 * Contract private ioctl
114 */
115#define	_FIOGETMAXPHYS		_IO('f', 92)
116
117/*
118 * TSufs support
119 */
120#define	_FIO_SET_LUFS_DEBUG	_IO('f', 93) /* set lufs_debug */
121#define	_FIO_SET_LUFS_ERROR	_IO('f', 94) /* set a lufs error */
122#define	_FIO_GET_TOP_STATS	_IO('f', 95) /* get lufs tranaction stats */
123
124/*
125 * create a snapshot with multiple backing files
126 */
127#define	_FIOSNAPSHOTCREATE_MULTI	_IO('f', 96)
128
129/*
130 * handle lseek SEEK_DATA and SEEK_HOLE for holey file knowledge
131 */
132#define	_FIO_SEEK_DATA		_IO('f', 97) /* SEEK_DATA */
133#define	_FIO_SEEK_HOLE		_IO('f', 98) /* SEEK_HOLE */
134
135/*
136 * boot archive compression
137 */
138#define	_FIO_COMPRESSED		_IO('f', 99) /* mark file as compressed */
139
140#ifdef	__cplusplus
141}
142#endif
143
144#endif	/* _SYS_FILIO_H */
145