linux/include/linux/falloc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _FALLOC_H_
   3#define _FALLOC_H_
   4
   5#include <uapi/linux/falloc.h>
   6
   7
   8/*
   9 * Space reservation ioctls and argument structure
  10 * are designed to be compatible with the legacy XFS ioctls.
  11 */
  12struct space_resv {
  13        __s16           l_type;
  14        __s16           l_whence;
  15        __s64           l_start;
  16        __s64           l_len;          /* len == 0 means until end of file */
  17        __s32           l_sysid;
  18        __u32           l_pid;
  19        __s32           l_pad[4];       /* reserved area */
  20};
  21
  22#define FS_IOC_RESVSP           _IOW('X', 40, struct space_resv)
  23#define FS_IOC_UNRESVSP         _IOW('X', 41, struct space_resv)
  24#define FS_IOC_RESVSP64         _IOW('X', 42, struct space_resv)
  25#define FS_IOC_UNRESVSP64       _IOW('X', 43, struct space_resv)
  26#define FS_IOC_ZERO_RANGE       _IOW('X', 57, struct space_resv)
  27
  28#define FALLOC_FL_SUPPORTED_MASK        (FALLOC_FL_KEEP_SIZE |          \
  29                                         FALLOC_FL_PUNCH_HOLE |         \
  30                                         FALLOC_FL_COLLAPSE_RANGE |     \
  31                                         FALLOC_FL_ZERO_RANGE |         \
  32                                         FALLOC_FL_INSERT_RANGE |       \
  33                                         FALLOC_FL_UNSHARE_RANGE)
  34
  35/* on ia32 l_start is on a 32-bit boundary */
  36#if defined(CONFIG_X86_64)
  37struct space_resv_32 {
  38        __s16           l_type;
  39        __s16           l_whence;
  40        __s64           l_start __attribute__((packed));
  41                        /* len == 0 means until end of file */
  42        __s64           l_len __attribute__((packed));
  43        __s32           l_sysid;
  44        __u32           l_pid;
  45        __s32           l_pad[4];       /* reserve area */
  46};
  47
  48#define FS_IOC_RESVSP_32        _IOW ('X', 40, struct space_resv_32)
  49#define FS_IOC_UNRESVSP_32      _IOW ('X', 41, struct space_resv_32)
  50#define FS_IOC_RESVSP64_32      _IOW ('X', 42, struct space_resv_32)
  51#define FS_IOC_UNRESVSP64_32    _IOW ('X', 43, struct space_resv_32)
  52#define FS_IOC_ZERO_RANGE_32    _IOW ('X', 57, struct space_resv_32)
  53
  54#endif
  55
  56#endif /* _FALLOC_H_ */
  57