Path: blob/master/tools/testing/selftests/filesystems/statmount/statmount.h
26302 views
/* SPDX-License-Identifier: GPL-2.0 */12#ifndef __STATMOUNT_H3#define __STATMOUNT_H45#include <stdint.h>6#include <linux/mount.h>7#include <asm/unistd.h>89#ifndef __NR_statmount10#if defined __alpha__11#define __NR_statmount 56712#elif defined _MIPS_SIM13#if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */14#define __NR_statmount 445715#endif16#if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */17#define __NR_statmount 645718#endif19#if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */20#define __NR_statmount 545721#endif22#else23#define __NR_statmount 45724#endif25#endif2627#ifndef __NR_listmount28#if defined __alpha__29#define __NR_listmount 56830#elif defined _MIPS_SIM31#if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */32#define __NR_listmount 445833#endif34#if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */35#define __NR_listmount 645836#endif37#if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */38#define __NR_listmount 545839#endif40#else41#define __NR_listmount 45842#endif43#endif4445static inline int statmount(uint64_t mnt_id, uint64_t mnt_ns_id, uint64_t mask,46struct statmount *buf, size_t bufsize,47unsigned int flags)48{49struct mnt_id_req req = {50.size = MNT_ID_REQ_SIZE_VER0,51.mnt_id = mnt_id,52.param = mask,53};5455if (mnt_ns_id) {56req.size = MNT_ID_REQ_SIZE_VER1;57req.mnt_ns_id = mnt_ns_id;58}5960return syscall(__NR_statmount, &req, buf, bufsize, flags);61}6263static inline ssize_t listmount(uint64_t mnt_id, uint64_t mnt_ns_id,64uint64_t last_mnt_id, uint64_t list[], size_t num,65unsigned int flags)66{67struct mnt_id_req req = {68.size = MNT_ID_REQ_SIZE_VER0,69.mnt_id = mnt_id,70.param = last_mnt_id,71};7273if (mnt_ns_id) {74req.size = MNT_ID_REQ_SIZE_VER1;75req.mnt_ns_id = mnt_ns_id;76}7778return syscall(__NR_listmount, &req, list, num, flags);79}8081#endif /* __STATMOUNT_H */828384