bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SIOCGIFHWADDR support for pfinet


From: Marco Gerards
Subject: SIOCGIFHWADDR support for pfinet
Date: Tue, 03 Aug 2004 16:03:11 +0200
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

Hi,

On debian-hurd someone noticed SIOCGIFHWADDR does not exist for
GNU/Hurd.  I have included the required patches for the Hurd and glibc
with this email.  Or can someone suggest a better way to read the
hardware address?

Thanks,
Marco



2004-08-03  Marco Gerards  <metgerards@student.han.nl>

        * sysdeps/mach/hurd/bits/ioctls.h (SIOCGIFHWADDR): New macro.


Index: sysdeps/mach/hurd/bits/ioctls.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/mach/hurd/bits/ioctls.h,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 ioctls.h
--- sysdeps/mach/hurd/bits/ioctls.h     6 Jul 2001 04:55:58 -0000       1.7
+++ sysdeps/mach/hurd/bits/ioctls.h     3 Aug 2004 13:55:34 -0000
@@ -226,6 +226,7 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_
 #define        SIOCSIFADDR     _IOW('i', 12, struct ifreq)     /* set ifnet 
address */
 #define        OSIOCGIFADDR    _IOWR('i',13, struct ifreq)     /* get ifnet 
address */
 #define        SIOCGIFADDR     _IOWR('i',33, struct ifreq)     /* get ifnet 
address */
+#define        SIOCGIFHWADDR   _IOWR('i',39, struct ifreq)     /* get 
hwaddress */
 #define        SIOCSIFDSTADDR  _IOW('i', 14, struct ifreq)     /* set p-p 
address */
 #define        OSIOCGIFDSTADDR _IOWR('i',15, struct ifreq)     /* get p-p 
address */
 #define        SIOCGIFDSTADDR  _IOWR('i',34, struct ifreq)     /* get p-p 
address */



2004-08-03  Marco Gerards  <metgerards@student.han.nl>

        * iioctl.defs (iioctl_siocgifhwaddr): New RPC.

Index: iioctl.defs
===================================================================
RCS file: /cvsroot/hurd/hurd/hurd/iioctl.defs,v
retrieving revision 1.1
diff -u -p -r1.1 iioctl.defs
--- iioctl.defs 11 Jan 2001 22:28:29 -0000      1.1
+++ iioctl.defs 3 Aug 2004 13:12:34 -0000
@@ -131,7 +131,14 @@ routine iioctl_siocgifnetmask (
        inout ifnam: ifname_t;
        inout netmask: sockaddr_t);
 
-skip; skip; skip; skip; /* 38, 39, 40, 41 unused */
+skip; /* 38 SIOCGARP -- Not implemented yet */
+
+routine iioctl_siocgifhwaddr (
+       reqport: io_t;
+       inout ifnam: ifname_t;
+       inout netmask: sockaddr_t);
+
+skip; skip; /* 40, 41 unused */
 skip; skip; skip; skip; /* 42, 43, 44, 45 unused */
 skip; skip; skip; skip; /* 46, 47, 48, 49 unused */
 skip; /* 50 unused */



2004-08-03  Marco Gerards  <metgerards@student.han.nl>

        * iioctl-ops.c (S_iioctl_siocgifhwaddr): New function.


Index: iioctl-ops.c
===================================================================
RCS file: /cvsroot/hurd/hurd/pfinet/iioctl-ops.c,v
retrieving revision 1.2
diff -u -p -r1.2 iioctl-ops.c
--- iioctl-ops.c        17 Jan 2001 01:37:51 -0000      1.2
+++ iioctl-ops.c        3 Aug 2004 13:11:45 -0000
@@ -361,3 +361,28 @@ S_iioctl_siocgifname (io_t port,
 
   return err;
 }
+
+error_t
+S_iioctl_siocgifhwaddr (io_t port,
+                       ifname_t ifname,
+                       sockaddr_t *addr)
+{
+  error_t err = 0;
+  struct device *dev;
+
+  if (!port)
+    return EOPNOTSUPP;
+
+  dev = get_dev (ifname);
+  if (!dev)
+    err = ENODEV;
+  else
+    {
+      memcpy (addr->sa_data, dev->dev_addr, MAX_ADDR_LEN);
+      addr->sa_family = dev->type;
+
+    }
+  
+  __mutex_unlock (&global_lock);
+  return err;
+}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]