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 */