Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) // SPDX-License-Identifier: GPL-2.0+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Copyright (C) 2017 Oracle.  All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * Author: Darrick J. Wong <darrick.wong@oracle.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #ifndef __EXT4_FSMAP_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #define	__EXT4_FSMAP_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct fsmap;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) /* internal fsmap representation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct ext4_fsmap {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	struct list_head	fmr_list;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	dev_t		fmr_device;	/* device id */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	uint32_t	fmr_flags;	/* mapping flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	uint64_t	fmr_physical;	/* device offset of segment */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	uint64_t	fmr_owner;	/* owner id */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	uint64_t	fmr_length;	/* length of segment, blocks */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct ext4_fsmap_head {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	uint32_t	fmh_iflags;	/* control flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	uint32_t	fmh_oflags;	/* output flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	unsigned int	fmh_count;	/* # of entries in array incl. input */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	unsigned int	fmh_entries;	/* # of entries filled in (output). */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	struct ext4_fsmap fmh_keys[2];	/* low and high keys */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) void ext4_fsmap_from_internal(struct super_block *sb, struct fsmap *dest,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 		struct ext4_fsmap *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) void ext4_fsmap_to_internal(struct super_block *sb, struct ext4_fsmap *dest,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 		struct fsmap *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) /* fsmap to userspace formatter - copy to user & advance pointer */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) int ext4_getfsmap(struct super_block *sb, struct ext4_fsmap_head *head,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 		ext4_fsmap_format_t formatter, void *arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define EXT4_QUERY_RANGE_ABORT		1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define EXT4_QUERY_RANGE_CONTINUE	0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) /*	fmr_owner special values for FS_IOC_GETFSMAP; some share w/ XFS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define EXT4_FMR_OWN_FREE	FMR_OWN_FREE      /* free space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define EXT4_FMR_OWN_UNKNOWN	FMR_OWN_UNKNOWN   /* unknown owner */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define EXT4_FMR_OWN_FS		FMR_OWNER('X', 1) /* static fs metadata */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define EXT4_FMR_OWN_LOG	FMR_OWNER('X', 2) /* journalling log */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define EXT4_FMR_OWN_INODES	FMR_OWNER('X', 5) /* inodes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define EXT4_FMR_OWN_GDT	FMR_OWNER('f', 1) /* group descriptors */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define EXT4_FMR_OWN_RESV_GDT	FMR_OWNER('f', 2) /* reserved gdt blocks */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define EXT4_FMR_OWN_BLKBM	FMR_OWNER('f', 3) /* inode bitmap */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define EXT4_FMR_OWN_INOBM	FMR_OWNER('f', 4) /* block bitmap */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #endif /* __EXT4_FSMAP_H__ */