bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH] rioctl: Use r not i group ioctl for SIOCADDRT/SIOCDELRT


From: Samuel Thibault
Subject: Re: [PATCH] rioctl: Use r not i group ioctl for SIOCADDRT/SIOCDELRT
Date: Thu, 22 Sep 2022 02:50:29 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Damien Zammit, le jeu. 22 sept. 2022 00:42:17 +0000, a ecrit:
> ---
>  hurd/iioctl.defs    | 12 ++--------
>  hurd/rioctl.defs    | 56 +++++++++++++++++++++++++++++++++++++++++++++
>  lwip/Makefile       |  3 ++-
>  lwip/iioctl-ops.c   |  5 ++--
>  lwip/main.c         |  2 ++
>  lwip/mig-mutate.h   |  1 +
>  pfinet/Makefile     |  3 ++-
>  pfinet/iioctl-ops.c |  4 ++--
>  pfinet/main.c       |  3 +++
>  pfinet/mig-mutate.h |  1 +
>  10 files changed, 74 insertions(+), 16 deletions(-)
>  create mode 100644 hurd/rioctl.defs
> 
> diff --git a/hurd/iioctl.defs b/hurd/iioctl.defs
> index c1007b2a..6b227899 100644
> --- a/hurd/iioctl.defs
> +++ b/hurd/iioctl.defs
> @@ -47,17 +47,9 @@ skip; skip; skip; skip; /* 0 1 2 3 unused */
>  skip; skip; skip; skip; /* 4 5 6 7 unused */
>  skip; skip;          /* 8 9 unused */
> 
> -/* 10 SIOCADDRT */
> -routine iioctl_siocaddrt (
> -     reqport: io_t;
> -     ifnam: ifname_t;
> -     route: srtentry_t);
> +skip; /* 10 SIOCADDRT (rioctl) */
> 
> -/* 11 SIOCDELRT */
> -routine iioctl_siocdelrt (
> -     reqport: io_t;
> -     ifnam: ifname_t;
> -     route: srtentry_t);
> +skip; /* 11 SIOCDELRT (rioctl) */
> 
>  /* 12 SIOCSIFADDR */
>  routine iioctl_siocsifaddr (
> diff --git a/hurd/rioctl.defs b/hurd/rioctl.defs
> new file mode 100644
> index 00000000..595eb7c2
> --- /dev/null
> +++ b/hurd/rioctl.defs
> @@ -0,0 +1,56 @@
> +/* Definitions for route ioctls
> +   Copyright (C) 2022 Free Software Foundation, Inc.
> +
> +This file is part of the GNU Hurd.
> +
> +The GNU Hurd is free software; you can redistribute it and/or modify
> +it under the terms of the GNU General Public License as published by
> +the Free Software Foundation; either version 2, or (at your option)
> +any later version.
> +
> +The GNU Hurd is distributed in the hope that it will be useful,
> +but WITHOUT ANY WARRANTY; without even the implied warranty of
> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +GNU General Public License for more details.
> +
> +You should have received a copy of the GNU General Public License
> +along with the GNU Hurd; see the file COPYING.  If not, write to
> +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
> +
> +
> +#include <hurd/hurd_types.defs>
> +
> +#ifdef RIOCTL_IMPORTS
> +RIOCTL_IMPORTS
> +#endif
> +
> +INTR_INTERFACE
> +
> +/* Ioctl class `r'; the subsystem is derived from calculations in
> +   <ioctls.h>. */
> +subsystem rioctl 148000; /* XXX */
> +
> +import <hurd/ioctl_types.h>; /* XXX */
> +
> +/* This is the first arg for a struct ifreq_something as specified by the
> +   definition of _IOT_ifreq_something in <net/if.h>.  */
> +type ifname_t = array[16] of char;   /* IFNAMSIZ is 16.  */
> +
> +/* This is the struct srtentry from <net/route.h>. */
> +type srtentry_t = struct[10] of int; /* sizeof(struct srtentry) is 40. */
> +
> +skip; skip; skip; skip; /* 0 1 2 3 unused */
> +skip; skip; skip; skip; /* 4 5 6 7 unused */
> +skip; skip;          /* 8 9 unused */
> +
> +/* 10 SIOCADDRT */
> +routine rioctl_siocaddrt (
> +     reqport: io_t;
> +     ifnam: ifname_t;
> +     route: srtentry_t);
> +
> +/* 11 SIOCDELRT */
> +routine rioctl_siocdelrt (
> +     reqport: io_t;
> +     ifnam: ifname_t;
> +     route: srtentry_t);
> diff --git a/lwip/Makefile b/lwip/Makefile
> index d0ddfd38..a048dc7d 100644
> --- a/lwip/Makefile
> +++ b/lwip/Makefile
> @@ -24,7 +24,7 @@ SRCS                = main.c io-ops.c socket-ops.c 
> pfinet-ops.c iioctl-ops.c port-objs.c \
>                 startup-ops.c options.c lwip-util.c startup.c
>  IFSRCS               = ifcommon.c hurdethif.c hurdloopif.c hurdtunif.c
>  MIGSRCS              = ioServer.c socketServer.c pfinetServer.c 
> iioctlServer.c \
> -               startup_notifyServer.c
> +               startup_notifyServer.c rioctlServer.c
>  OBJS         = $(patsubst %.S,%.o,$(patsubst %.c,%.o,\
>                 $(SRCS) $(IFSRCS) $(MIGSRCS)))
> 
> @@ -44,6 +44,7 @@ mig-sheader-prefix = lwip_
>  io-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
>  socket-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
>  iioctl-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
> +rioctl-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
> 
>  # cpp doesn't automatically make dependencies for -imacros dependencies. 
> argh.
>  lwip_io_S.h ioServer.c lwip_socket_S.h socketServer.c: mig-mutate.h
> diff --git a/lwip/iioctl-ops.c b/lwip/iioctl-ops.c
> index 4e285a49..14c4d585 100644
> --- a/lwip/iioctl-ops.c
> +++ b/lwip/iioctl-ops.c
> @@ -21,6 +21,7 @@
>  /* Ioctls for network device configuration */
> 
>  #include <lwip_iioctl_S.h>
> +#include <lwip_rioctl_S.h>
> 
>  #include <lwip/sockets.h>
>  #include <lwip/inet.h>
> @@ -163,7 +164,7 @@ siocsifXaddr (struct sock_user *user,
> 
>  /* 10 SIOCADDRT -- Add a network route */
>  kern_return_t
> -lwip_S_iioctl_siocaddrt (struct sock_user *user,
> +lwip_S_rioctl_siocaddrt (struct sock_user *user,
>                        const ifname_t ifnam,
>                        const struct srtentry route)
>  {
> @@ -172,7 +173,7 @@ lwip_S_iioctl_siocaddrt (struct sock_user *user,
> 
>  /* 11 SIOCDELRT -- Delete a network route */
>  kern_return_t
> -lwip_S_iioctl_siocdelrt (struct sock_user *user,
> +lwip_S_rioctl_siocdelrt (struct sock_user *user,
>                        const ifname_t ifnam,
>                        const struct srtentry route)
>  {
> diff --git a/lwip/main.c b/lwip/main.c
> index 373f3935..0d7c9d6b 100644
> --- a/lwip/main.c
> +++ b/lwip/main.c
> @@ -33,6 +33,7 @@
>  #include <lwip_socket_S.h>
>  #include <lwip_pfinet_S.h>
>  #include <lwip_iioctl_S.h>
> +#include <lwip_rioctl_S.h>
>  #include <lwip_startup_notify_S.h>
> 
>  #include <netif/hurdethif.h>
> @@ -136,6 +137,7 @@ lwip_demuxer (mach_msg_header_t * inp, mach_msg_header_t 
> * outp)
> 
>    if (routine || (routine = lwip_socket_server_routine (inp)) ||
>        (routine = lwip_pfinet_server_routine (inp)) ||
> +      (routine = lwip_rioctl_server_routine (inp)) ||
>        (routine = lwip_iioctl_server_routine (inp)) ||
>        (routine = lwip_startup_notify_server_routine (inp)))
>      {
> diff --git a/lwip/mig-mutate.h b/lwip/mig-mutate.h
> index 3ed89c55..ecc9ce11 100644
> --- a/lwip/mig-mutate.h
> +++ b/lwip/mig-mutate.h
> @@ -27,6 +27,7 @@
>  #define IO_DESTRUCTOR end_using_socket_port (sock_user_t)
>  #define IO_IMPORTS import "mig-decls.h";
>  #define IIOCTL_IMPORTS import "mig-decls.h";
> +#define RIOCTL_IMPORTS import "mig-decls.h";
> 
>  #define SOCKET_INTRAN sock_user_t begin_using_socket_port (socket_t)
>  #define SOCKET_INTRAN_PAYLOAD sock_user_t begin_using_socket_payload
> diff --git a/pfinet/Makefile b/pfinet/Makefile
> index 74cedcf6..a210a113 100644
> --- a/pfinet/Makefile
> +++ b/pfinet/Makefile
> @@ -87,7 +87,7 @@ SRCS                = sched.c timer-emul.c socket.c main.c 
> ethernet.c \
>                 kmem_cache.c stubs.c dummy.c tunnel.c pfinet-ops.c \
>                 iioctl-ops.c
>  MIGSRCS              = ioServer.c socketServer.c startup_notifyServer.c \
> -               pfinetServer.c iioctlServer.c
> +               pfinetServer.c iioctlServer.c rioctlServer.c
>  OBJS         = $(patsubst %.S,%.o,$(patsubst %.c,%.o,\
>                            $(LINUXSRCS) $(ARCHSRCS) $(SRCS) $(MIGSRCS)))
>  LINUXHDRS    = bitops.h capability.h delay.h errqueue.h etherdevice.h \
> @@ -142,6 +142,7 @@ asm/checksum.h: ../config.status
>  io-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
>  socket-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
>  iioctl-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
> +rioctl-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
> 
>  # cpp doesn't automatically make dependencies for -imacros dependencies. 
> argh.
>  io_S.h ioServer.c socket_S.h socketServer.c: mig-mutate.h
> diff --git a/pfinet/iioctl-ops.c b/pfinet/iioctl-ops.c
> index adf7bd82..7673f3a6 100644
> --- a/pfinet/iioctl-ops.c
> +++ b/pfinet/iioctl-ops.c
> @@ -363,7 +363,7 @@ siocsifXaddr (struct sock_user *user,
> 
>  /* 10 SIOCADDRT -- Add a network route */
>  kern_return_t
> -S_iioctl_siocaddrt (struct sock_user *user,
> +S_rioctl_siocaddrt (struct sock_user *user,
>                   const ifname_t ifnam,
>                   const struct srtentry route)
>  {
> @@ -388,7 +388,7 @@ S_iioctl_siocaddrt (struct sock_user *user,
> 
>  /* 11 SIOCDELRT -- Delete a network route */
>  kern_return_t
> -S_iioctl_siocdelrt (struct sock_user *user,
> +S_rioctl_siocdelrt (struct sock_user *user,
>                   const ifname_t ifnam,
>                   const struct srtentry route)
>  {
> diff --git a/pfinet/main.c b/pfinet/main.c
> index cb01e0bf..1df987f0 100644
> --- a/pfinet/main.c
> +++ b/pfinet/main.c
> @@ -84,6 +84,7 @@ extern struct argp pfinet_argp;
>  #include "socket_S.h"
>  #include "pfinet_S.h"
>  #include "iioctl_S.h"
> +#include "rioctl_S.h"
>  #include "startup_notify_S.h"
> 
>  int
> @@ -112,6 +113,7 @@ pfinet_demuxer (mach_msg_header_t *inp,
>        if ((routine = io_server_routine (inp)) ||
>            (routine = socket_server_routine (inp)) ||
>            (routine = pfinet_server_routine (inp)) ||
> +          (routine = rioctl_server_routine (inp)) ||
>            (routine = iioctl_server_routine (inp)) ||
>            (routine = NULL, trivfs_demuxer (inp, outp)) ||
>            (routine = startup_notify_server_routine (inp)))
> @@ -128,6 +130,7 @@ pfinet_demuxer (mach_msg_header_t *inp,
>        mig_routine_t routine;
>        if ((routine = socket_server_routine (inp)) ||
>            (routine = pfinet_server_routine (inp)) ||
> +          (routine = rioctl_server_routine (inp)) ||
>            (routine = iioctl_server_routine (inp)) ||
>            (routine = NULL, trivfs_demuxer (inp, outp)) ||
>            (routine = startup_notify_server_routine (inp)))
> diff --git a/pfinet/mig-mutate.h b/pfinet/mig-mutate.h
> index 2bc385b8..d470152f 100644
> --- a/pfinet/mig-mutate.h
> +++ b/pfinet/mig-mutate.h
> @@ -27,6 +27,7 @@
>  #define IO_DESTRUCTOR end_using_socket_port (sock_user_t)
>  #define IO_IMPORTS import "mig-decls.h";
>  #define IIOCTL_IMPORTS import "mig-decls.h";
> +#define RIOCTL_IMPORTS import "mig-decls.h";
> 
>  #define SOCKET_INTRAN sock_user_t begin_using_socket_port (socket_t)
>  #define SOCKET_INTRAN_PAYLOAD sock_user_t begin_using_socket_payload
> --
> 2.34.1
> 
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

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