1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 297ac7350SAmit Arora #ifndef _FALLOC_H_ 397ac7350SAmit Arora #define _FALLOC_H_ 497ac7350SAmit Arora 5607ca46eSDavid Howells #include <uapi/linux/falloc.h> 697ac7350SAmit Arora 73e63cbb1SAnkit Jain 83e63cbb1SAnkit Jain /* 93e63cbb1SAnkit Jain * Space reservation ioctls and argument structure 103e63cbb1SAnkit Jain * are designed to be compatible with the legacy XFS ioctls. 113e63cbb1SAnkit Jain */ 123e63cbb1SAnkit Jain struct space_resv { 133e63cbb1SAnkit Jain __s16 l_type; 143e63cbb1SAnkit Jain __s16 l_whence; 153e63cbb1SAnkit Jain __s64 l_start; 163e63cbb1SAnkit Jain __s64 l_len; /* len == 0 means until end of file */ 173e63cbb1SAnkit Jain __s32 l_sysid; 183e63cbb1SAnkit Jain __u32 l_pid; 193e63cbb1SAnkit Jain __s32 l_pad[4]; /* reserved area */ 203e63cbb1SAnkit Jain }; 213e63cbb1SAnkit Jain 223e63cbb1SAnkit Jain #define FS_IOC_RESVSP _IOW('X', 40, struct space_resv) 23*837a6e7fSChristoph Hellwig #define FS_IOC_UNRESVSP _IOW('X', 41, struct space_resv) 243e63cbb1SAnkit Jain #define FS_IOC_RESVSP64 _IOW('X', 42, struct space_resv) 25*837a6e7fSChristoph Hellwig #define FS_IOC_UNRESVSP64 _IOW('X', 43, struct space_resv) 26*837a6e7fSChristoph Hellwig #define FS_IOC_ZERO_RANGE _IOW('X', 57, struct space_resv) 273e63cbb1SAnkit Jain 28dd46c787SNamjae Jeon #define FALLOC_FL_SUPPORTED_MASK (FALLOC_FL_KEEP_SIZE | \ 29dd46c787SNamjae Jeon FALLOC_FL_PUNCH_HOLE | \ 30dd46c787SNamjae Jeon FALLOC_FL_COLLAPSE_RANGE | \ 31dd46c787SNamjae Jeon FALLOC_FL_ZERO_RANGE | \ 3271be6b49SDarrick J. Wong FALLOC_FL_INSERT_RANGE | \ 3371be6b49SDarrick J. Wong FALLOC_FL_UNSHARE_RANGE) 34dd46c787SNamjae Jeon 35011da44bSAl Viro /* on ia32 l_start is on a 32-bit boundary */ 36011da44bSAl Viro #if defined(CONFIG_X86_64) 37011da44bSAl Viro struct space_resv_32 { 38011da44bSAl Viro __s16 l_type; 39011da44bSAl Viro __s16 l_whence; 40011da44bSAl Viro __s64 l_start __attribute__((packed)); 41011da44bSAl Viro /* len == 0 means until end of file */ 42011da44bSAl Viro __s64 l_len __attribute__((packed)); 43011da44bSAl Viro __s32 l_sysid; 44011da44bSAl Viro __u32 l_pid; 45011da44bSAl Viro __s32 l_pad[4]; /* reserve area */ 46011da44bSAl Viro }; 47011da44bSAl Viro 48011da44bSAl Viro #define FS_IOC_RESVSP_32 _IOW ('X', 40, struct space_resv_32) 4997eeb4d9SLinus Torvalds #define FS_IOC_UNRESVSP_32 _IOW ('X', 41, struct space_resv_32) 50011da44bSAl Viro #define FS_IOC_RESVSP64_32 _IOW ('X', 42, struct space_resv_32) 5197eeb4d9SLinus Torvalds #define FS_IOC_UNRESVSP64_32 _IOW ('X', 43, struct space_resv_32) 5297eeb4d9SLinus Torvalds #define FS_IOC_ZERO_RANGE_32 _IOW ('X', 57, struct space_resv_32) 53011da44bSAl Viro 54011da44bSAl Viro #endif 55011da44bSAl Viro 5697ac7350SAmit Arora #endif /* _FALLOC_H_ */ 57