From: Warner Losh <imp@bsdimp.com>
To: qemu-devel@nongnu.org
Cc: Reinoud Zandijk <reinoud@netbsd.org>,
Warner Losh <imp@bsdimp.com>, Ryo ONODERA <ryoon@netbsd.org>,
Kyle Evans <kevans@freebsd.org>, Stacey Son <sson@FreeBSD.org>,
Karim Taha <kariem.taha2.7@gmail.com>,
Richard Henderson <richard.henderson@linaro.org>
Subject: [PULL 10/36] bsd-user: Add structs target_freebsd11_{nstat,statfs}
Date: Mon, 28 Aug 2023 17:37:55 -0600 [thread overview]
Message-ID: <20230828233821.43074-11-imp@bsdimp.com> (raw)
In-Reply-To: <20230828233821.43074-1-imp@bsdimp.com>
From: Stacey Son <sson@FreeBSD.org>
Add structs target_freebsd11_nstat and target_freebsd11_statfs to
bsd-user/syscall_defs.h
Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
---
bsd-user/syscall_defs.h | 64 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h
index bd04b30a560..51d8ff0dd8e 100644
--- a/bsd-user/syscall_defs.h
+++ b/bsd-user/syscall_defs.h
@@ -250,6 +250,70 @@ struct target_stat {
uint64_t st_spare[10];
};
+
+/* struct nstat is the same as stat above but without the st_lspare field */
+struct target_freebsd11_nstat {
+ uint32_t st_dev; /* inode's device */
+ uint32_t st_ino; /* inode's number */
+ int16_t st_mode; /* inode protection mode */
+ int16_t st_nlink; /* number of hard links */
+ uint32_t st_uid; /* user ID of the file's owner */
+ uint32_t st_gid; /* group ID of the file's group */
+ uint32_t st_rdev; /* device type */
+ struct target_freebsd_timespec st_atim; /* time last accessed */
+ struct target_freebsd_timespec st_mtim; /* time last data modification */
+ struct target_freebsd_timespec st_ctim; /* time last file status change */
+ int64_t st_size; /* file size, in bytes */
+ int64_t st_blocks; /* blocks allocated for file */
+ uint32_t st_blksize; /* optimal blocksize for I/O */
+ uint32_t st_flags; /* user defined flags for file */
+ uint32_t st_gen; /* file generation number */
+ struct target_freebsd_timespec st_birthtim; /* time of file creation */
+ /*
+ * Explicitly pad st_birthtim to 16 bytes so that the size of
+ * struct stat is backwards compatible. We use bitfields instead
+ * of an array of chars so that this doesn't require a C99 compiler
+ * to compile if the size of the padding is 0. We use 2 bitfields
+ * to cover up to 64 bits on 32-bit machines. We assume that
+ * CHAR_BIT is 8...
+ */
+ unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec));
+ unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec));
+} __packed;
+
+/*
+ * sys/mount.h
+ */
+
+/* filesystem id type */
+typedef struct target_freebsd_fsid { int32_t val[2]; } target_freebsd_fsid_t;
+
+/* filesystem statistics */
+struct target_freebsd11_statfs {
+ uint32_t f_version; /* structure version number */
+ uint32_t f_type; /* type of filesystem */
+ uint64_t f_flags; /* copy of mount exported flags */
+ uint64_t f_bsize; /* filesystem fragment size */
+ uint64_t f_iosize; /* optimal transfer block size */
+ uint64_t f_blocks; /* total data blocks in filesystem */
+ uint64_t f_bfree; /* free blocks in filesystem */
+ int64_t f_bavail; /* free blocks avail to non-superuser */
+ uint64_t f_files; /* total file nodes in filesystem */
+ int64_t f_ffree; /* free nodes avail to non-superuser */
+ uint64_t f_syncwrites; /* count of sync writes since mount */
+ uint64_t f_asyncwrites; /* count of async writes since mount */
+ uint64_t f_syncreads; /* count of sync reads since mount */
+ uint64_t f_asyncreads; /* count of async reads since mount */
+ uint64_t f_spare[10]; /* unused spare */
+ uint32_t f_namemax; /* maximum filename length */
+ uint32_t f_owner; /* user that mounted the filesystem */
+ target_freebsd_fsid_t f_fsid; /* filesystem id */
+ char f_charspare[80]; /* spare string space */
+ char f_fstypename[16]; /* filesys type name */
+ char f_mntfromname[88]; /* mount filesystem */
+ char f_mntonname[88]; /* dir on which mounted*/
+};
+
#define safe_syscall0(type, name) \
type safe_##name(void) \
{ \
--
2.41.0
next prev parent reply other threads:[~2023-08-28 23:43 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-28 23:37 [PULL 00/36] 2023q3 bsd user patches Warner Losh
2023-08-28 23:37 ` [PULL 01/36] bsd-user: Remove ELF_START_MMAP and image_info.start_mmap Warner Losh
2023-08-28 23:37 ` [PULL 02/36] bsd-user: Remove image_info.mmap Warner Losh
2023-08-28 23:37 ` [PULL 03/36] bsd-user: Remove image_info.start_brk Warner Losh
2023-08-28 23:37 ` [PULL 04/36] bsd-user: Move _WANT_FREEBSD macros to include/qemu/osdep.h Warner Losh
2023-08-28 23:37 ` [PULL 05/36] bsd-user: Disable clang warnings Warner Losh
2023-08-28 23:37 ` [PULL 06/36] bsd-user; Update the definitions of __put_user and __get_user macros Warner Losh
2023-08-28 23:37 ` [PULL 07/36] bsd-user: Declarations of h2t and t2h conversion functions Warner Losh
2023-08-28 23:37 ` [PULL 08/36] bsd-user: Add struct target_freebsd11_stat to bsd-user/syscall_defs Warner Losh
2023-08-28 23:37 ` [PULL 09/36] bsd-user: Add struct target_stat to bsd-user/syscall_defs.h Warner Losh
2023-08-28 23:37 ` Warner Losh [this message]
2023-08-28 23:37 ` [PULL 11/36] bsd-user: Add struct target_statfs Warner Losh
2023-08-28 23:37 ` [PULL 12/36] bsd-user: Add struct target_freebsd_fhandle and fcntl flags Warner Losh
2023-08-28 23:37 ` [PULL 13/36] bsd-user: Define safe_fcntl macro in bsd-user/syscall_defs.h Warner Losh
2023-08-28 23:37 ` [PULL 14/36] bsd-user: Rename target_freebsd_time_t to target_time_t Warner Losh
2023-08-28 23:38 ` [PULL 15/36] bsd-user: Implement h2t_freebsd11_stat h2t_freebsd_nstat Warner Losh
2023-08-28 23:38 ` [PULL 16/36] bsd-user: Implement h2t_freebsd_fhandle t2h_freebsd_fhandle Warner Losh
2023-08-28 23:38 ` [PULL 17/36] bsd-user: Implement h2t_freebds11_statfs Warner Losh
2023-08-28 23:38 ` [PULL 18/36] bsd-user: Implement target_to_host_fcntl_cmd Warner Losh
2023-08-28 23:38 ` [PULL 19/36] bsd-uesr: Implement h2t_freebsd_stat and h2t_freebsd_statfs functions Warner Losh
2023-08-28 23:38 ` [PULL 20/36] bsd-user: Implement stat related syscalls Warner Losh
2023-08-28 23:38 ` [PULL 21/36] bsd-user: Implement statfh " Warner Losh
2023-08-28 23:38 ` [PULL 22/36] bsd-user: Implement statfs " Warner Losh
2023-08-28 23:38 ` [PULL 23/36] bsd-user: Implement getdents " Warner Losh
2023-08-28 23:38 ` [PULL 24/36] bsd-user: Implement stat " Warner Losh
2023-08-28 23:38 ` [PULL 25/36] bsd-user: Implement freebsd11 " Warner Losh
2023-08-28 23:38 ` [PULL 26/36] bsd-user: Implement freebsd11 fstat and fhstat " Warner Losh
2023-08-28 23:38 ` [PULL 27/36] bsd-user: Implement freebsd11 statfs " Warner Losh
2023-08-28 23:38 ` [PULL 28/36] bsd-user: Implement freebsd11 getdirents " Warner Losh
2023-08-28 23:38 ` [PULL 29/36] bsd-user: Implement freebsd11 netbsd stat " Warner Losh
2023-08-28 23:38 ` [PULL 30/36] bsd-user: Implement do_freebsd_realpathat syscall Warner Losh
2023-08-28 23:38 ` [PULL 31/36] bsd-user: Add os-stat.c to the build Warner Losh
2023-08-28 23:38 ` [PULL 32/36] bsd-user: Add glue for the freebsd11_stat syscalls Warner Losh
2023-08-28 23:38 ` [PULL 33/36] bsd-user: Add glue for getfh and related syscalls Warner Losh
2023-08-28 23:38 ` [PULL 34/36] bsd-user: Add glue for statfs related system calls Warner Losh
2023-08-28 23:38 ` [PULL 35/36] bsd-user: Add getdents and fcntl " Warner Losh
2023-08-28 23:38 ` [PULL 36/36] bsd-user: Add missing break after do_bsd_preadv Warner Losh
2023-08-29 13:50 ` [PULL 00/36] 2023q3 bsd user patches Stefan Hajnoczi
2023-08-29 15:32 ` Warner Losh
2023-08-29 17:30 ` Peter Maydell
2023-08-29 18:38 ` Warner Losh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230828233821.43074-11-imp@bsdimp.com \
--to=imp@bsdimp.com \
--cc=kariem.taha2.7@gmail.com \
--cc=kevans@freebsd.org \
--cc=qemu-devel@nongnu.org \
--cc=reinoud@netbsd.org \
--cc=richard.henderson@linaro.org \
--cc=ryoon@netbsd.org \
--cc=sson@FreeBSD.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.