122851890Sopenharmony_ci/****************************************************************************
222851890Sopenharmony_ci ****************************************************************************
322851890Sopenharmony_ci ***
422851890Sopenharmony_ci ***   This header was automatically generated from a Linux kernel header
522851890Sopenharmony_ci ***   of the same name, to make information necessary for userspace to
622851890Sopenharmony_ci ***   call into the kernel available to libc.  It contains only constants,
722851890Sopenharmony_ci ***   structures, and macros generated from the original header, and thus,
822851890Sopenharmony_ci ***   contains no copyrightable information.
922851890Sopenharmony_ci ***
1022851890Sopenharmony_ci ***   To edit the content of this header, modify the corresponding
1122851890Sopenharmony_ci ***   source file (e.g. under external/kernel-headers/original/) then
1222851890Sopenharmony_ci ***   run bionic/libc/kernel/tools/update_all.py
1322851890Sopenharmony_ci ***
1422851890Sopenharmony_ci ***   Any manual change here will be lost the next time this script will
1522851890Sopenharmony_ci ***   be run. You've been warned!
1622851890Sopenharmony_ci ***
1722851890Sopenharmony_ci ****************************************************************************
1822851890Sopenharmony_ci ****************************************************************************/
1922851890Sopenharmony_ci#ifndef _LINUX_FSMAP_H
2022851890Sopenharmony_ci#define _LINUX_FSMAP_H
2122851890Sopenharmony_ci#include <linux/types.h>
2222851890Sopenharmony_cistruct fsmap {
2322851890Sopenharmony_ci  __u32 fmr_device;
2422851890Sopenharmony_ci  __u32 fmr_flags;
2522851890Sopenharmony_ci  __u64 fmr_physical;
2622851890Sopenharmony_ci  __u64 fmr_owner;
2722851890Sopenharmony_ci  __u64 fmr_offset;
2822851890Sopenharmony_ci  __u64 fmr_length;
2922851890Sopenharmony_ci  __u64 fmr_reserved[3];
3022851890Sopenharmony_ci};
3122851890Sopenharmony_cistruct fsmap_head {
3222851890Sopenharmony_ci  __u32 fmh_iflags;
3322851890Sopenharmony_ci  __u32 fmh_oflags;
3422851890Sopenharmony_ci  __u32 fmh_count;
3522851890Sopenharmony_ci  __u32 fmh_entries;
3622851890Sopenharmony_ci  __u64 fmh_reserved[6];
3722851890Sopenharmony_ci  struct fsmap fmh_keys[2];
3822851890Sopenharmony_ci  struct fsmap fmh_recs[];
3922851890Sopenharmony_ci};
4022851890Sopenharmony_ci#define FMH_IF_VALID 0
4122851890Sopenharmony_ci#define FMH_OF_DEV_T 0x1
4222851890Sopenharmony_ci#define FMR_OF_PREALLOC 0x1
4322851890Sopenharmony_ci#define FMR_OF_ATTR_FORK 0x2
4422851890Sopenharmony_ci#define FMR_OF_EXTENT_MAP 0x4
4522851890Sopenharmony_ci#define FMR_OF_SHARED 0x8
4622851890Sopenharmony_ci#define FMR_OF_SPECIAL_OWNER 0x10
4722851890Sopenharmony_ci#define FMR_OF_LAST 0x20
4822851890Sopenharmony_ci#define FMR_OWNER(type,code) (((__u64) type << 32) | ((__u64) code & 0xFFFFFFFFULL))
4922851890Sopenharmony_ci#define FMR_OWNER_TYPE(owner) ((__u32) ((__u64) owner >> 32))
5022851890Sopenharmony_ci#define FMR_OWNER_CODE(owner) ((__u32) (((__u64) owner & 0xFFFFFFFFULL)))
5122851890Sopenharmony_ci#define FMR_OWN_FREE FMR_OWNER(0, 1)
5222851890Sopenharmony_ci#define FMR_OWN_UNKNOWN FMR_OWNER(0, 2)
5322851890Sopenharmony_ci#define FMR_OWN_METADATA FMR_OWNER(0, 3)
5422851890Sopenharmony_ci#define FS_IOC_GETFSMAP _IOWR('X', 59, struct fsmap_head)
5522851890Sopenharmony_ci#endif
56