| Tristan Ye | 9df5778 | 2010-03-02 13:59:42 +0800 | [diff] [blame] | 1 | /* -*- mode: c; c-basic-offset: 8; -*- | 
 | 2 |  * vim: noexpandtab sw=8 ts=8 sts=0: | 
 | 3 |  * | 
 | 4 |  * ocfs2_ioctl.h | 
 | 5 |  * | 
 | 6 |  * Defines OCFS2 ioctls. | 
 | 7 |  * | 
 | 8 |  * Copyright (C) 2010 Oracle.  All rights reserved. | 
 | 9 |  * | 
 | 10 |  * This program is free software; you can redistribute it and/or | 
 | 11 |  * modify it under the terms of the GNU General Public | 
 | 12 |  * License, version 2, as published by the Free Software Foundation. | 
 | 13 |  * | 
 | 14 |  * This program is distributed in the hope that it will be useful, | 
 | 15 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 | 16 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 | 17 |  * General Public License for more details. | 
 | 18 |  */ | 
 | 19 |  | 
 | 20 | #ifndef OCFS2_IOCTL_H | 
 | 21 | #define OCFS2_IOCTL_H | 
 | 22 |  | 
 | 23 | /* | 
 | 24 |  * ioctl commands | 
 | 25 |  */ | 
| Tao Ma | 0000b86 | 2010-09-19 13:42:29 +0800 | [diff] [blame] | 26 | #define OCFS2_IOC_GETFLAGS	FS_IOC_GETFLAGS | 
 | 27 | #define OCFS2_IOC_SETFLAGS	FS_IOC_SETFLAGS | 
 | 28 | #define OCFS2_IOC32_GETFLAGS	FS_IOC32_GETFLAGS | 
 | 29 | #define OCFS2_IOC32_SETFLAGS	FS_IOC32_SETFLAGS | 
| Tristan Ye | 9df5778 | 2010-03-02 13:59:42 +0800 | [diff] [blame] | 30 |  | 
 | 31 | /* | 
 | 32 |  * Space reservation / allocation / free ioctls and argument structure | 
 | 33 |  * are designed to be compatible with XFS. | 
 | 34 |  * | 
 | 35 |  * ALLOCSP* and FREESP* are not and will never be supported, but are | 
 | 36 |  * included here for completeness. | 
 | 37 |  */ | 
 | 38 | struct ocfs2_space_resv { | 
 | 39 | 	__s16		l_type; | 
 | 40 | 	__s16		l_whence; | 
 | 41 | 	__s64		l_start; | 
 | 42 | 	__s64		l_len;		/* len == 0 means until end of file */ | 
 | 43 | 	__s32		l_sysid; | 
 | 44 | 	__u32		l_pid; | 
 | 45 | 	__s32		l_pad[4];	/* reserve area			    */ | 
 | 46 | }; | 
 | 47 |  | 
 | 48 | #define OCFS2_IOC_ALLOCSP		_IOW ('X', 10, struct ocfs2_space_resv) | 
 | 49 | #define OCFS2_IOC_FREESP		_IOW ('X', 11, struct ocfs2_space_resv) | 
 | 50 | #define OCFS2_IOC_RESVSP		_IOW ('X', 40, struct ocfs2_space_resv) | 
 | 51 | #define OCFS2_IOC_UNRESVSP	_IOW ('X', 41, struct ocfs2_space_resv) | 
 | 52 | #define OCFS2_IOC_ALLOCSP64	_IOW ('X', 36, struct ocfs2_space_resv) | 
 | 53 | #define OCFS2_IOC_FREESP64	_IOW ('X', 37, struct ocfs2_space_resv) | 
 | 54 | #define OCFS2_IOC_RESVSP64	_IOW ('X', 42, struct ocfs2_space_resv) | 
 | 55 | #define OCFS2_IOC_UNRESVSP64	_IOW ('X', 43, struct ocfs2_space_resv) | 
 | 56 |  | 
 | 57 | /* Used to pass group descriptor data when online resize is done */ | 
 | 58 | struct ocfs2_new_group_input { | 
 | 59 | 	__u64 group;		/* Group descriptor's blkno. */ | 
 | 60 | 	__u32 clusters;		/* Total number of clusters in this group */ | 
 | 61 | 	__u32 frees;		/* Total free clusters in this group */ | 
 | 62 | 	__u16 chain;		/* Chain for this group */ | 
 | 63 | 	__u16 reserved1; | 
 | 64 | 	__u32 reserved2; | 
 | 65 | }; | 
 | 66 |  | 
 | 67 | #define OCFS2_IOC_GROUP_EXTEND	_IOW('o', 1, int) | 
 | 68 | #define OCFS2_IOC_GROUP_ADD	_IOW('o', 2,struct ocfs2_new_group_input) | 
 | 69 | #define OCFS2_IOC_GROUP_ADD64	_IOW('o', 3,struct ocfs2_new_group_input) | 
 | 70 |  | 
 | 71 | /* Used to pass 2 file names to reflink. */ | 
 | 72 | struct reflink_arguments { | 
 | 73 | 	__u64 old_path; | 
 | 74 | 	__u64 new_path; | 
 | 75 | 	__u64 preserve; | 
 | 76 | }; | 
 | 77 | #define OCFS2_IOC_REFLINK	_IOW('o', 4, struct reflink_arguments) | 
 | 78 |  | 
 | 79 | #endif /* OCFS2_IOCTL_H */ |