From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 16382 invoked from network); 3 Sep 2020 11:24:43 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 3 Sep 2020 11:24:43 -0000 Received: (qmail 16297 invoked by uid 550); 3 Sep 2020 11:24:04 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 15942 invoked from network); 3 Sep 2020 11:24:00 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=qPdofeIXoxXn6 i0X/mKnO3hahFTjXNLkeAXVnImTiBE=; b=VjUwATgzBYLqf/Otsib3wEfUVs0T7 dwZIe/YTjZNwQXn16ZklYB6rdrMyb85ECy6L1z1ssczP7INESl5h2Rxr2RoFLMZg Nj2uS9Fi3g+EeX9MGS0UOjZ3b/sGIBuIO0UG3NfoDBd+CHPwdwZ5T9YqTg2yvHSW kPCZCVhf4V6aiTYoApwcNHAD5fyy4JhlWEG3pVSp+FvsDSFnpWjY1SHeGEdRrE8e Dnh8OE6ucWjberTdzZ0cuv+zxU4aOy3l5+VXdbLvtga0J3gLCNYEFS2u6mOSs1Nz SwcxSeD8tclUca5fQoWaKg+UAK7Y1q0d0prSrXdSdxTm9bWEzhYZALlPA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=qPdofeIXoxXn6i0X/mKnO3hahFTjXNLkeAXVnImTiBE=; b=dRermJxh 6+zWUJEqplslyYB68LEpEOdIORcmmJPTrYvdWDUKi0dwUL6wDDriGwBIhgM1R5P7 smnSzxspE4O7rKZNmRjnJ+BH0myfMWelKkW6ljlR+jI/yrMDMQFKzaenP2Np8lyN vwruJpI/qEMWUFWk1hBAJS+klJqWCcLl9VDLr3ND9iAbQh2DhZqjPAXJqLknD8og iU/wGeJsCscPGyXhsMM7Eb2SKrvzDTyrHlkfkXTA1Rdoq+2iXpPS61n1sq71uG27 aSbLOu++oqpodpoEf0uMgVniRvw8fM+Aio4VtncUd1/9XfYKcdFu5pwrIl3hGjzu 7vYv8GFSPyukEw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudeguddggedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomhepufhtvghfrghnucfqkdftvggrrhcuoehsohhrvggrrhesfhgr shhtmhgrihhlrdgtohhmqeenucggtffrrghtthgvrhhnpeegueehieeifeehleevgfdvfe fgtefhhedtieduhfegiefhtdfghfdtteeijeelveenucfkphepvddtledriedrudehgedr feegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsh horhgvrghrsehfrghsthhmrghilhdrtghomh X-ME-Proxy: From: Stefan O'Rear To: musl@lists.openwall.com Cc: Stefan O'Rear Date: Thu, 3 Sep 2020 07:23:00 -0400 Message-Id: <20200903112309.102601-6-sorear@fastmail.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200903112309.102601-1-sorear@fastmail.com> References: <20200903112309.102601-1-sorear@fastmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [PATCH 05/14] Add src/internal/statx.h We need to make internal syscalls to SYS_statx when SYS_fstatat is not available without changing the musl API. --- src/internal/statx.h | 28 ++++++++++++++++++++++++++++ src/stat/fstatat.c | 28 ++-------------------------- 2 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 src/internal/statx.h diff --git a/src/internal/statx.h b/src/internal/statx.h new file mode 100644 index 00000000..46b16f62 --- /dev/null +++ b/src/internal/statx.h @@ -0,0 +1,28 @@ +struct statx { + uint32_t stx_mask; + uint32_t stx_blksize; + uint64_t stx_attributes; + uint32_t stx_nlink; + uint32_t stx_uid; + uint32_t stx_gid; + uint16_t stx_mode; + uint16_t pad1; + uint64_t stx_ino; + uint64_t stx_size; + uint64_t stx_blocks; + uint64_t stx_attributes_mask; + struct { + int64_t tv_sec; + uint32_t tv_nsec; + int32_t pad; + } stx_atime, stx_btime, stx_ctime, stx_mtime; + uint32_t stx_rdev_major; + uint32_t stx_rdev_minor; + uint32_t stx_dev_major; + uint32_t stx_dev_minor; + uint64_t spare[14]; +}; + +#define STATX_TYPE 0x001U +#define STATX_SIZE 0x200U +#define STATX_BASIC_STATS 0x7ffU diff --git a/src/stat/fstatat.c b/src/stat/fstatat.c index de165b5c..230a83fc 100644 --- a/src/stat/fstatat.c +++ b/src/stat/fstatat.c @@ -7,37 +7,13 @@ #include #include "syscall.h" #include "kstat.h" - -struct statx { - uint32_t stx_mask; - uint32_t stx_blksize; - uint64_t stx_attributes; - uint32_t stx_nlink; - uint32_t stx_uid; - uint32_t stx_gid; - uint16_t stx_mode; - uint16_t pad1; - uint64_t stx_ino; - uint64_t stx_size; - uint64_t stx_blocks; - uint64_t stx_attributes_mask; - struct { - int64_t tv_sec; - uint32_t tv_nsec; - int32_t pad; - } stx_atime, stx_btime, stx_ctime, stx_mtime; - uint32_t stx_rdev_major; - uint32_t stx_rdev_minor; - uint32_t stx_dev_major; - uint32_t stx_dev_minor; - uint64_t spare[14]; -}; +#include "statx.h" static int fstatat_statx(int fd, const char *restrict path, struct stat *restrict st, int flag) { struct statx stx; - int ret = __syscall(SYS_statx, fd, path, flag, 0x7ff, &stx); + int ret = __syscall(SYS_statx, fd, path, flag, STATX_BASIC_STATS, &stx); if (ret) return ret; *st = (struct stat){ -- 2.25.4