From: Aleksandar Markovic <aleksandar.markovic@rt-rk.com> To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, amarkovic@wavecomp.com Subject: [PATCH v5 17/20] linux-user: Add support for FDGETFDCSTAT ioctl Date: Mon, 13 Jan 2020 21:34:40 +0100 Message-ID: <1578947683-21011-18-git-send-email-aleksandar.markovic@rt-rk.com> (raw) In-Reply-To: <1578947683-21011-1-git-send-email-aleksandar.markovic@rt-rk.com> From: Aleksandar Markovic <amarkovic@wavecomp.com> FDGETFDCSTAT's third agrument is a pointer to the structure: struct floppy_fdc_state { int spec1; int spec2; int dtr; unsigned char version; unsigned char dor; unsigned long address; unsigned int rawcmd:2; unsigned int reset:1; unsigned int need_configure:1; unsigned int perp_mode:2; unsigned int has_fifo:1; unsigned int driver_version; unsigned char track[4]; }; defined in Linux kernel header <linux/fd.h>. Since there is a fields of the structure of type 'unsigned long', there is a need to define "target_format_descr". Also, five fields rawcmd, reset, need_configure, perp_mode, and has_fifo are all just bitfields and are part od a single 'unsigned int' field. Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> --- linux-user/ioctls.h | 2 ++ linux-user/syscall_defs.h | 18 ++++++++++++++++++ linux-user/syscall_types.h | 12 ++++++++++++ 3 files changed, 32 insertions(+) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index e754a6b..d72cd76 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -122,6 +122,8 @@ IOCTL(FDSETMAXERRS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_floppy_max_errors))) IOCTL(FDGETMAXERRS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_floppy_max_errors))) IOCTL(FDRESET, 0, TYPE_NULL) + IOCTL(FDGETFDCSTAT, IOC_R, + MK_PTR(MK_STRUCT(STRUCT_target_floppy_fdc_state))) IOCTL(FDRAWCMD, 0, TYPE_NULL) IOCTL(FDTWADDLE, 0, TYPE_NULL) IOCTL(FDEJECT, 0, TYPE_NULL) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index d85ab46..225dcfb 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -897,6 +897,23 @@ struct target_pollfd { /* From <linux/fd.h> */ +struct target_floppy_fdc_state { + int spec1; /* spec1 value last used */ + int spec2; /* spec2 value last used */ + int dtr; + unsigned char version; /* FDC version code */ + unsigned char dor; + abi_long address; /* io address */ + unsigned int rawcmd:2; + unsigned int reset:1; + unsigned int need_configure:1; + unsigned int perp_mode:2; + unsigned int has_fifo:1; + unsigned int driver_version; /* version code for floppy driver */ + unsigned char track[4]; +}; + + #define TARGET_FDMSGON TARGET_IO(2, 0x45) #define TARGET_FDMSGOFF TARGET_IO(2, 0x46) #define TARGET_FDFMTBEG TARGET_IO(2, 0x47) @@ -907,6 +924,7 @@ struct target_pollfd { #define TARGET_FDSETMAXERRS TARGET_IOW(2, 0x4c, struct floppy_max_errors) #define TARGET_FDGETMAXERRS TARGET_IOR(2, 0x0e, struct floppy_max_errors) #define TARGET_FDRESET TARGET_IO(2, 0x54) +#define TARGET_FDGETFDCSTAT TARGET_IOR(2, 0x15, struct target_floppy_fdc_state) #define TARGET_FDRAWCMD TARGET_IO(2, 0x58) #define TARGET_FDTWADDLE TARGET_IO(2, 0x59) #define TARGET_FDEJECT TARGET_IO(2, 0x5a) diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h index 8ff78a6..a111c61 100644 --- a/linux-user/syscall_types.h +++ b/linux-user/syscall_types.h @@ -273,6 +273,18 @@ STRUCT(floppy_max_errors, TYPE_INT, /* recal */ TYPE_INT) /* reporting */ +STRUCT(target_floppy_fdc_state, + TYPE_INT, /* spec1 */ + TYPE_INT, /* spec2 */ + TYPE_INT, /* dtr */ + TYPE_CHAR, /* version */ + TYPE_CHAR, /* dor */ + TYPE_ULONG, /* address */ + TYPE_INT, /* bit field for rawcmd:2, reset:1, need_configure:1, */ + /* perp_mode:2, and has_fifo:1 */ + TYPE_INT, /* driver_version */ + MK_ARRAY(TYPE_CHAR, 4)) /* track */ + #if defined(CONFIG_USBFS) /* usb device ioctls */ STRUCT(usbdevfs_ctrltransfer, -- 2.7.4
next prev parent reply index Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-13 20:34 [PATCH v5 00/20] linux-user: Misc patches for 5.0 Aleksandar Markovic 2020-01-13 20:34 ` [PATCH v5 01/20] linux-user: Fix some constants in termbits.h Aleksandar Markovic 2020-01-14 14:16 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 02/20] linux-user: alpha: Update syscall numbers to kernel 5.5 rc3 level Aleksandar Markovic 2020-01-14 15:12 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 03/20] linux-user: m68k: " Aleksandar Markovic 2020-01-14 15:03 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 04/20] linux-user: microblaze: " Aleksandar Markovic 2020-01-14 15:06 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 05/20] linux-user: mips: " Aleksandar Markovic 2020-01-14 16:39 ` Laurent Vivier 2020-02-04 11:56 ` Aleksandar Markovic 2020-02-04 22:34 ` Laurent Vivier 2020-02-04 22:53 ` Aleksandar Markovic 2020-01-13 20:34 ` [PATCH v5 06/20] linux-user: x86_64: " Aleksandar Markovic 2020-01-14 15:16 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 07/20] linux-user: xtensa: " Aleksandar Markovic 2020-01-14 15:08 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 08/20] linux-user: xtensa: Remove unused constant TARGET_NR_syscall_count Aleksandar Markovic 2020-01-14 14:59 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 09/20] linux-user: Add support for FS_IOC_<GET|SET>VERSION ioctls Aleksandar Markovic 2020-01-14 14:21 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 10/20] linux-user: Add support for FS_IOC32_<GET|SET>FLAGS ioctls Aleksandar Markovic 2020-01-14 14:24 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 11/20] linux-user: Add support for FS_IOC32_<GET|SET>VERSION ioctls Aleksandar Markovic 2020-01-14 14:24 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 12/20] linux-user: Add support for FS_IOC_FS<GET|SET>XATTR ioctls Aleksandar Markovic 2020-01-14 14:29 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 13/20] linux-user: Add support for FITRIM ioctl Aleksandar Markovic 2020-01-14 14:32 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 14/20] linux-user: Add support for FIFREEZE and FITHAW ioctls Aleksandar Markovic 2020-01-14 14:34 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 15/20] linux-user: Add support for FD<SETEMSGTRESH|SETMAXERRS|GETMAXERRS> ioctls Aleksandar Markovic 2020-01-14 14:36 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 16/20] linux-user: Add support for FDFMT<BEG|TRK|END> ioctls Aleksandar Markovic 2020-01-14 14:38 ` Laurent Vivier 2020-01-13 20:34 ` Aleksandar Markovic [this message] 2020-01-14 14:42 ` [PATCH v5 17/20] linux-user: Add support for FDGETFDCSTAT ioctl Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 18/20] configure: Detect kcov support and introduce CONFIG_KCOV Aleksandar Markovic 2020-01-14 14:48 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 19/20] linux-user: Add support for KCOV_<ENABLE|DISABLE> ioctls Aleksandar Markovic 2020-01-14 14:49 ` Laurent Vivier 2020-01-13 20:34 ` [PATCH v5 20/20] linux-user: Add support for KCOV_INIT_TRACE ioctl Aleksandar Markovic 2020-01-14 14:53 ` Laurent Vivier
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=1578947683-21011-18-git-send-email-aleksandar.markovic@rt-rk.com \ --to=aleksandar.markovic@rt-rk.com \ --cc=amarkovic@wavecomp.com \ --cc=laurent@vivier.eu \ --cc=qemu-devel@nongnu.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
QEMU-Devel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git git clone --mirror https://lore.kernel.org/qemu-devel/2 qemu-devel/git/2.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \ qemu-devel@nongnu.org public-inbox-index qemu-devel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.nongnu.qemu-devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git