Module Name:    src
Committed By:   roy
Date:           Sun May 31 22:19:41 UTC 2015

Modified Files:
        src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h

Log Message:
Add support for PPPOEGETPARMS and PPPOESETPARMS.


To generate a diff of this commit:
cvs rdiff -u -r1.76 -r1.77 src/sys/compat/netbsd32/netbsd32_ioctl.c
cvs rdiff -u -r1.50 -r1.51 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.76 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.77
--- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.76	Sun May 31 22:16:16 2015
+++ src/sys/compat/netbsd32/netbsd32_ioctl.c	Sun May 31 22:19:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_ioctl.c,v 1.76 2015/05/31 22:16:16 roy Exp $	*/
+/*	$NetBSD: netbsd32_ioctl.c,v 1.77 2015/05/31 22:19:41 roy Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -31,8 +31,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.76 2015/05/31 22:16:16 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.77 2015/05/31 22:19:41 roy Exp $");
 
+#include "pppoe.h"
 #include "sppp.h"
 
 #include <sys/param.h>
@@ -67,6 +68,9 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_ioc
 #include <net/if.h>
 #include <net/route.h>
 
+#if NPPPOE > 0
+#include <net/if_pppoe.h>
+#endif
 #if NSPPP > 0
 #include <net/if_sppp.h>
 #endif
@@ -165,6 +169,21 @@ netbsd32_to_ifmediareq(struct netbsd32_i
 	p->ifm_ulist = (int *)NETBSD32PTR64(s32p->ifm_ulist);
 }
 
+#if NPPPOE > 0
+static inline void
+netbsd32_to_pppoediscparms(struct netbsd32_pppoediscparms *s32p,
+    struct pppoediscparms *p, u_long cmd)
+{
+
+	memcpy(p->ifname, s32p->ifname, sizeof p->ifname);
+	memcpy(p->eth_ifname, s32p->eth_ifname, sizeof p->eth_ifname);
+	p->ac_name = (char *)NETBSD32PTR64(s32p->ac_name);
+	p->ac_name_len = s32p->ac_name_len;
+	p->service_name = (char *)NETBSD32PTR64(s32p->service_name);
+	p->service_name_len = s32p->service_name_len;
+}
+#endif
+
 #if NSPPP > 0
 static inline void
 netbsd32_to_spppauthcfg(struct netbsd32_spppauthcfg *s32p,
@@ -529,6 +548,21 @@ netbsd32_from_ifmediareq(struct ifmediar
 #endif
 }
 
+#if NPPPOE > 0
+static inline void
+netbsd32_from_pppoediscparms(struct pppoediscparms *p,
+    struct netbsd32_pppoediscparms *s32p, u_long cmd)
+{
+
+	memcpy(s32p->ifname, p->ifname, sizeof s32p->ifname);
+	memcpy(s32p->eth_ifname, p->eth_ifname, sizeof s32p->eth_ifname);
+	NETBSD32PTR32(s32p->ac_name, p->ac_name);
+	s32p->ac_name_len = p->ac_name_len;
+	NETBSD32PTR32(s32p->service_name, p->service_name);
+	s32p->service_name_len = p->service_name_len;
+}
+#endif
+
 #if NSPPP > 0
 static inline void
 netbsd32_from_spppauthcfg(struct spppauthcfg *p,
@@ -1090,6 +1124,12 @@ netbsd32_ioctl(struct lwp *l, const stru
 	case SIOCGIFMEDIA32:
 		IOCTL_STRUCT_CONV_TO(SIOCGIFMEDIA, ifmediareq);
 
+#if NPPPOE > 0
+	case PPPOESETPARMS32:
+		IOCTL_STRUCT_CONV_TO(PPPOESETPARMS, pppoediscparms);
+	case PPPOEGETPARMS32:
+		IOCTL_STRUCT_CONV_TO(PPPOEGETPARMS, pppoediscparms);
+#endif
 #if NSPPP > 0
 	case SPPPGETAUTHCFG32:
 		IOCTL_STRUCT_CONV_TO(SPPPGETAUTHCFG, spppauthcfg);

Index: src/sys/compat/netbsd32/netbsd32_ioctl.h
diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.50 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.51
--- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.50	Sun May 31 22:16:16 2015
+++ src/sys/compat/netbsd32/netbsd32_ioctl.h	Sun May 31 22:19:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_ioctl.h,v 1.50 2015/05/31 22:16:16 roy Exp $	*/
+/*	$NetBSD: netbsd32_ioctl.h,v 1.51 2015/05/31 22:19:41 roy Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -426,6 +426,18 @@ struct netbsd32_ifmediareq {
 /* from <sys/sockio.h> */
 #define	SIOCGIFMEDIA32	_IOWR('i', 54, struct netbsd32_ifmediareq) /* get net media */
 
+/* from net/if_pppoe.h */
+struct netbsd32_pppoediscparms {
+	char	ifname[IFNAMSIZ];	/* pppoe interface name */
+	char	eth_ifname[IFNAMSIZ];	/* external ethernet interface name */
+	netbsd32_charp ac_name;		/* access concentrator name (or NULL) */
+	netbsd32_size_t	ac_name_len;		/* on write: length of buffer for ac_name */
+	netbsd32_charp service_name;	/* service name (or NULL) */
+	netbsd32_size_t	service_name_len;	/* on write: length of buffer for service name */
+};
+#define	PPPOESETPARMS32	_IOW('i', 110, struct netbsd32_pppoediscparms)
+#define	PPPOEGETPARMS32	_IOWR('i', 111, struct netbsd32_pppoediscparms)
+
 /* from net/if_sppp.h */
 struct netbsd32_spppauthcfg {
 	char	ifname[IFNAMSIZ];	/* pppoe interface name */

Reply via email to