Module Name: src
Committed By: jdolecek
Date: Mon Sep 24 21:08:08 UTC 2018
Modified Files:
src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h
Log Message:
add support for DIOCGSTRATEGY and DIOCSSTRATEGY
To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/sys/compat/netbsd32/netbsd32_ioctl.c
cvs rdiff -u -r1.61 -r1.62 src/sys/compat/netbsd32/netbsd32_ioctl.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/netbsd32/netbsd32_ioctl.c
diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.93 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.94
--- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.93 Mon Sep 3 16:29:29 2018
+++ src/sys/compat/netbsd32/netbsd32_ioctl.c Mon Sep 24 21:08:08 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_ioctl.c,v 1.93 2018/09/03 16:29:29 riastradh Exp $ */
+/* $NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $ */
/*
* Copyright (c) 1998, 2001 Matthew R. Green
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.93 2018/09/03 16:29:29 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ntp.h"
@@ -536,6 +536,17 @@ netbsd32_to_devrescanargs(
}
static inline void
+netbsd32_to_disk_strategy(
+ const struct netbsd32_disk_strategy *s32p,
+ struct disk_strategy *p,
+ u_long cmd)
+{
+ memcpy(p->dks_name, s32p->dks_name, sizeof(p->dks_name));
+ p->dks_param = NETBSD32PTR64(s32p->dks_param);
+ p->dks_paramlen = s32p->dks_paramlen;
+}
+
+static inline void
netbsd32_to_dkwedge_list(
const struct netbsd32_dkwedge_list *s32p,
struct dkwedge_list *p,
@@ -990,6 +1001,17 @@ netbsd32_from_devrescanargs(
}
static inline void
+netbsd32_from_disk_strategy(
+ const struct disk_strategy *p,
+ struct netbsd32_disk_strategy *s32p,
+ u_long cmd)
+{
+ memcpy(s32p->dks_name, p->dks_name, sizeof(p->dks_name));
+ NETBSD32PTR32(s32p->dks_param, p->dks_param);
+ s32p->dks_paramlen = p->dks_paramlen;
+}
+
+static inline void
netbsd32_from_dkwedge_list(
const struct dkwedge_list *p,
struct netbsd32_dkwedge_list *s32p,
@@ -1457,6 +1479,10 @@ netbsd32_ioctl(struct lwp *l, const stru
case DRVGETEVENT32:
IOCTL_STRUCT_CONV_TO(DRVGETEVENT, plistref);
+ case DIOCGSTRATEGY32:
+ IOCTL_STRUCT_CONV_TO(DIOCGSTRATEGY, disk_strategy);
+ case DIOCSSTRATEGY32:
+ IOCTL_STRUCT_CONV_TO(DIOCSSTRATEGY, disk_strategy);
case DIOCLWEDGES32:
IOCTL_STRUCT_CONV_TO(DIOCLWEDGES, dkwedge_list);
Index: src/sys/compat/netbsd32/netbsd32_ioctl.h
diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.61 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.62
--- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.61 Thu Sep 6 06:41:59 2018
+++ src/sys/compat/netbsd32/netbsd32_ioctl.h Mon Sep 24 21:08:08 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_ioctl.h,v 1.61 2018/09/06 06:41:59 maxv Exp $ */
+/* $NetBSD: netbsd32_ioctl.h,v 1.62 2018/09/24 21:08:08 jdolecek Exp $ */
/*
* Copyright (c) 1998, 2001 Matthew R. Green
@@ -612,3 +612,11 @@ struct netbsd32_dkwedge_list {
#define DIOCLWEDGES32 _IOWR('d', 124, struct netbsd32_dkwedge_list)
+struct netbsd32_disk_strategy {
+ char dks_name[DK_STRATEGYNAMELEN]; /* name of strategy */
+ netbsd32_charp dks_param; /* notyet; should be NULL */
+ netbsd32_size_t dks_paramlen; /* notyet; should be 0 */
+} __packed;
+
+#define DIOCGSTRATEGY32 _IOR('d', 125, struct netbsd32_disk_strategy)
+#define DIOCSSTRATEGY32 _IOW('d', 126, struct netbsd32_disk_strategy)