[PATCH v9] Implement decoding of statx syscall

Dmitry V. Levin ldv at altlinux.org
Wed Apr 12 13:28:19 UTC 2017


On Sat, Mar 18, 2017 at 06:19:07PM +0300, Victor Krapivensky wrote:
[...]

Note that a few more statx bits and pieces have seeped into v4.11:

> diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
> index 62960d2..73165b8 100644
> --- a/linux/x86_64/syscallent.h
> +++ b/linux/x86_64/syscallent.h
> @@ -330,3 +330,4 @@
>  [329] = { 4,	TM|SI,		SEN(pkey_mprotect),		"pkey_mprotect"		},
>  [330] = { 2,	0,		SEN(pkey_alloc),		"pkey_alloc"		},
>  [331] = { 1,	0,		SEN(pkey_free),			"pkey_free"		},
> +[332] = { 5,	TD|TF,		SEN(statx),			"statx"			},

statx has been wired up for mips, s390*, arm, aarch64, hppa, powerpc*,
m68k, and xtensa.
Linux commit v4.11-rc4~18^2~2 has wired up a generic statx syscall, too.

> +typedef struct {
> +	uint32_t stx_mask; /* What results were written [uncond] */
> +	uint32_t stx_blksize; /* Preferred general I/O size [uncond] */
> +	uint64_t stx_attributes; /* Flags conveying information about the file
> +	                            [uncond] */
> +
> +	uint32_t stx_nlink; /* Number of hard links */
> +	uint32_t stx_uid; /* User ID of owner */
> +	uint32_t stx_gid; /* Group ID of owner */
> +	uint16_t stx_mode; /* File mode */
> +	uint16_t reserved0[1];
> +
> +	uint64_t stx_ino; /* Inode number */
> +	uint64_t stx_size; /* File size */
> +	uint64_t stx_blocks; /* Number of 512-byte blocks allocated */
> +	uint64_t reserved1[1];

Linux commit v4.11-rc6~5^2^2 has turned this reserved field into
stx_attributes_mask.

> diff --git a/xlat/statx_masks.in b/xlat/statx_masks.in
> new file mode 100644
> index 0000000..d18dd25
> --- /dev/null
> +++ b/xlat/statx_masks.in
> @@ -0,0 +1,15 @@
> +STATX_ALL		0x00000fffU
> +STATX_BASIC_STATS	0x000007ffU
> +
> +STATX_TYPE		0x00000001U
> +STATX_MODE		0x00000002U
> +STATX_NLINK		0x00000004U
> +STATX_UID		0x00000008U
> +STATX_GID		0x00000010U
> +STATX_ATIME		0x00000020U
> +STATX_MTIME		0x00000040U
> +STATX_CTIME		0x00000080U
> +STATX_INO		0x00000100U
> +STATX_SIZE		0x00000200U
> +STATX_BLOCKS		0x00000400U
> +STATX_BTIME		0x00000800U

Linux commit v4.11-rc6~5^2^2~1 has added STATX__RESERVED bit.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170412/a94137f1/attachment.bin>


More information about the Strace-devel mailing list