bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH hurd 1/3] pfinet and pci-arbiter: update server handlers to r


From: Samuel Thibault
Subject: Re: [PATCH hurd 1/3] pfinet and pci-arbiter: update server handlers to return kern_return_t to fix -Werror=enum-int-mismatch warnings
Date: Fri, 29 Dec 2023 17:40:54 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Flavio Cruz, le ven. 29 déc. 2023 11:12:09 -0500, a ecrit:
> ---
>  pci-arbiter/pci-ops.c | 10 +++----
>  pfinet/iioctl-ops.c   | 10 +++----
>  pfinet/io-ops.c       | 64 +++++++++++++++++++++----------------------
>  pfinet/main.c         |  2 +-
>  pfinet/pfinet-ops.c   |  4 +--
>  pfinet/socket-ops.c   | 32 +++++++++++-----------
>  pfinet/tunnel.c       | 24 ++++++++--------
>  7 files changed, 73 insertions(+), 73 deletions(-)
> 
> diff --git a/pci-arbiter/pci-ops.c b/pci-arbiter/pci-ops.c
> index 2f9f529..bbe43f3 100644
> --- a/pci-arbiter/pci-ops.c
> +++ b/pci-arbiter/pci-ops.c
> @@ -78,7 +78,7 @@ calculate_ndevs (struct iouser *user)
>   *
>   * `*datalen' is updated.
>   */
> -error_t
> +kern_return_t
>  S_pci_conf_read (struct protid * master, int reg, char **data,
>                mach_msg_type_number_t * datalen, vm_size_t amount)
>  {
> @@ -127,7 +127,7 @@ S_pci_conf_read (struct protid * master, int reg, char 
> **data,
>  }
>  
>  /* Write `datalen' bytes from `data'. `amount' is updated. */
> -error_t
> +kern_return_t
>  S_pci_conf_write (struct protid * master, int reg, const char *data, 
> mach_msg_type_number_t datalen,
>                 vm_size_t * amount)
>  {
> @@ -165,7 +165,7 @@ S_pci_conf_write (struct protid * master, int reg, const 
> char *data, mach_msg_ty
>  }
>  
>  /* Write in `amount' the number of devices allowed for the user. */
> -error_t
> +kern_return_t
>  S_pci_get_ndevs (struct protid * master, mach_msg_type_number_t * amount)
>  {
>    /* This RPC may only be addressed to the root node */
> @@ -181,7 +181,7 @@ S_pci_get_ndevs (struct protid * master, 
> mach_msg_type_number_t * amount)
>   * Return in `data' the information about the available memory
>   * regions in the given device.
>   */
> -error_t
> +kern_return_t
>  S_pci_get_dev_regions (struct protid * master, char **data, 
> mach_msg_type_number_t * datalen)
>  {
>    error_t err;
> @@ -232,7 +232,7 @@ S_pci_get_dev_regions (struct protid * master, char 
> **data, mach_msg_type_number
>  /*
>   * Return in `data' the information about the expansion rom of the given 
> device
>   */
> -error_t
> +kern_return_t
>  S_pci_get_dev_rom (struct protid * master, char **data, 
> mach_msg_type_number_t * datalen)
>  {
>    error_t err;
> diff --git a/pfinet/iioctl-ops.c b/pfinet/iioctl-ops.c
> index 7673f3a..dc1abea 100644
> --- a/pfinet/iioctl-ops.c
> +++ b/pfinet/iioctl-ops.c
> @@ -519,7 +519,7 @@ SIOCGIF (brdaddr, BRDADDR);
>  SIOCGIF (netmask, NETMASK);
>  
>  /* 39 SIOCGIFHWADDR -- Get the hardware address of a network interface.  */
> -error_t
> +kern_return_t
>  S_iioctl_siocgifhwaddr (struct sock_user *user,
>                       ifname_t ifname,
>                       sockaddr_t *addr)
> @@ -544,7 +544,7 @@ S_iioctl_siocgifhwaddr (struct sock_user *user,
>  }
>  
>  /* 51 SIOCGIFMTU -- Get mtu of a network interface.  */
> -error_t
> +kern_return_t
>  S_iioctl_siocgifmtu (struct sock_user *user,
>                    ifname_t ifnam,
>                    int *mtu)
> @@ -564,7 +564,7 @@ S_iioctl_siocgifmtu (struct sock_user *user,
>  }
>  
>  /* 51 SIOCSIFMTU -- Set mtu of a network interface.  */
> -error_t
> +kern_return_t
>  S_iioctl_siocsifmtu (struct sock_user *user,
>                    const ifname_t ifnam,
>                    int mtu)
> @@ -598,7 +598,7 @@ S_iioctl_siocsifmtu (struct sock_user *user,
>  }
>  
>  /* 100 SIOCGIFINDEX -- Get index number of a network interface.  */
> -error_t
> +kern_return_t
>  S_iioctl_siocgifindex (struct sock_user *user,
>                      ifname_t ifnam,
>                      int *index)
> @@ -618,7 +618,7 @@ S_iioctl_siocgifindex (struct sock_user *user,
>  }
>  
>  /* 101 SIOCGIFNAME -- Get name of a network interface from index number.  */
> -error_t
> +kern_return_t
>  S_iioctl_siocgifname (struct sock_user *user,
>                     ifname_t ifnam,
>                     int *index)
> diff --git a/pfinet/io-ops.c b/pfinet/io-ops.c
> index e1a6608..818f113 100644
> --- a/pfinet/io-ops.c
> +++ b/pfinet/io-ops.c
> @@ -34,7 +34,7 @@
>  #include <mach/notify.h>
>  #include <sys/mman.h>
>  
> -error_t
> +kern_return_t
>  S_io_write (struct sock_user *user,
>           const_data_t data,
>           mach_msg_type_number_t datalen,
> @@ -67,7 +67,7 @@ S_io_write (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_read (struct sock_user *user,
>          data_t *data,
>          mach_msg_type_number_t *datalen,
> @@ -124,7 +124,7 @@ S_io_read (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_seek (struct sock_user *user,
>          off_t offset,
>          int whence,
> @@ -133,7 +133,7 @@ S_io_seek (struct sock_user *user,
>    return user ? ESPIPE : EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_readable (struct sock_user *user,
>              vm_size_t *amount)
>  {
> @@ -183,7 +183,7 @@ S_io_readable (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_set_all_openmodes (struct sock_user *user,
>                       int bits)
>  {
> @@ -199,7 +199,7 @@ S_io_set_all_openmodes (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_get_openmodes (struct sock_user *user,
>                   int *bits)
>  {
> @@ -223,7 +223,7 @@ S_io_get_openmodes (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_set_some_openmodes (struct sock_user *user,
>                        int bits)
>  {
> @@ -237,7 +237,7 @@ S_io_set_some_openmodes (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_clear_some_openmodes (struct sock_user *user,
>                          int bits)
>  {
> @@ -313,7 +313,7 @@ io_select_common (struct sock_user *user,
>    return ret;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_select (struct sock_user *user,
>            mach_port_t reply,
>            mach_msg_type_name_t reply_type,
> @@ -322,7 +322,7 @@ S_io_select (struct sock_user *user,
>    return io_select_common (user, reply, reply_type, NULL, select_type);
>  }
>  
> -error_t
> +kern_return_t
>  S_io_select_timeout (struct sock_user *user,
>                    mach_port_t reply,
>                    mach_msg_type_name_t reply_type,
> @@ -332,7 +332,7 @@ S_io_select_timeout (struct sock_user *user,
>    return io_select_common (user, reply, reply_type, &ts, select_type);
>  }
>  
> -error_t
> +kern_return_t
>  S_io_stat (struct sock_user *user,
>          struct stat *st)
>  {
> @@ -351,7 +351,7 @@ S_io_stat (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_reauthenticate (struct sock_user *user,
>                    mach_port_t rend)
>  {
> @@ -435,7 +435,7 @@ S_io_reauthenticate (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_restrict_auth (struct sock_user *user,
>                   mach_port_t *newobject,
>                   mach_msg_type_name_t *newobject_type,
> @@ -472,7 +472,7 @@ S_io_restrict_auth (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_duplicate (struct sock_user *user,
>               mach_port_t *newobject,
>               mach_msg_type_name_t *newobject_type)
> @@ -490,7 +490,7 @@ S_io_duplicate (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_identity (struct sock_user *user,
>              mach_port_t *id,
>              mach_msg_type_name_t *idtype,
> @@ -525,7 +525,7 @@ S_io_identity (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_revoke (struct sock_user *user)
>  {
>    /* XXX maybe we should try */
> @@ -534,7 +534,7 @@ S_io_revoke (struct sock_user *user)
>  
>  
>  
> -error_t
> +kern_return_t
>  S_io_async (struct sock_user *user,
>           mach_port_t notify,
>           mach_port_t *id,
> @@ -543,21 +543,21 @@ S_io_async (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_mod_owner (struct sock_user *user,
>               pid_t owner)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_get_owner (struct sock_user *user,
>               pid_t *owner)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_get_icky_async_id (struct sock_user *user,
>                       mach_port_t *id,
>                       mach_msg_type_name_t *idtype)
> @@ -565,7 +565,7 @@ S_io_get_icky_async_id (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_server_version (struct sock_user *user,
>                    string_t name,
>                    int *major,
> @@ -575,7 +575,7 @@ S_io_server_version (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_pathconf (struct sock_user *user,
>              int name,
>              int *value)
> @@ -585,7 +585,7 @@ S_io_pathconf (struct sock_user *user,
>  
>  
>  
> -error_t
> +kern_return_t
>  S_io_map (struct sock_user *user,
>         mach_port_t *rdobj,
>         mach_msg_type_name_t *rdobj_type,
> @@ -595,7 +595,7 @@ S_io_map (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_map_cntl (struct sock_user *user,
>              mach_port_t *obj,
>              mach_msg_type_name_t *obj_type)
> @@ -603,25 +603,25 @@ S_io_map_cntl (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_get_conch (struct sock_user *user)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_release_conch (struct sock_user *user)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_eofnotify (struct sock_user *user)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_prenotify (struct sock_user *user,
>               vm_offset_t start,
>               vm_offset_t end)
> @@ -629,7 +629,7 @@ S_io_prenotify (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_postnotify (struct sock_user *user,
>                vm_offset_t start,
>                vm_offset_t end)
> @@ -637,19 +637,19 @@ S_io_postnotify (struct sock_user *user,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_readnotify (struct sock_user *user)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_readsleep (struct sock_user *user)
>  {
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_io_sigio (struct sock_user *user)
>  {
>    return EOPNOTSUPP;
> diff --git a/pfinet/main.c b/pfinet/main.c
> index 7d85c46..cd50950 100644
> --- a/pfinet/main.c
> +++ b/pfinet/main.c
> @@ -146,7 +146,7 @@ pfinet_demuxer (mach_msg_header_t *inp,
>  
>  /* The system is going down; destroy all the extant port rights.  That
>     will cause net channels and such to close promptly.  */
> -error_t
> +kern_return_t
>  S_startup_dosync (mach_port_t handle)
>  {
>    struct port_info *inpi = ports_lookup_port (pfinet_bucket, handle,
> diff --git a/pfinet/pfinet-ops.c b/pfinet/pfinet-ops.c
> index 29c9a65..fab5757 100644
> --- a/pfinet/pfinet-ops.c
> +++ b/pfinet/pfinet-ops.c
> @@ -47,7 +47,7 @@ extern int dev_ifconf(char *arg);
>  /* Return the list of devices in the format provided by SIOCGIFCONF
>     in IFR, but don't return more then AMOUNT bytes. If AMOUNT is
>     negative, there is no limit.  */
> -error_t
> +kern_return_t
>  S_pfinet_siocgifconf (io_t port,
>                     vm_size_t amount,
>                     data_t *ifr,
> @@ -118,7 +118,7 @@ get_routing_table(int start, int count, ifrtreq_t *routes)
>  /* Return the routing table as a series of ifrtreq_t structs
>     in routes, but don't return more then AMOUNT number of them.
>     If AMOUNT is -1, we get the full table. */
> -error_t
> +kern_return_t
>  S_pfinet_getroutes (io_t port,
>                   vm_size_t amount,
>                   data_t *routes,
> diff --git a/pfinet/socket-ops.c b/pfinet/socket-ops.c
> index f6dc2b7..8a5b67d 100644
> --- a/pfinet/socket-ops.c
> +++ b/pfinet/socket-ops.c
> @@ -34,7 +34,7 @@
>  #include <net/sock.h>
>  
>  
> -error_t
> +kern_return_t
>  S_socket_create (struct trivfs_protid *master,
>                int sock_type,
>                int protocol,
> @@ -104,7 +104,7 @@ S_socket_create (struct trivfs_protid *master,
>  
>  
>  /* Listen on a socket. */
> -error_t
> +kern_return_t
>  S_socket_listen (struct sock_user *user, int queue_limit)
>  {
>    error_t err;
> @@ -120,7 +120,7 @@ S_socket_listen (struct sock_user *user, int queue_limit)
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_accept (struct sock_user *user,
>                mach_port_t *new_port,
>                mach_msg_type_name_t *new_port_type,
> @@ -174,7 +174,7 @@ S_socket_accept (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_connect (struct sock_user *user,
>                 struct sock_addr *addr)
>  {
> @@ -202,7 +202,7 @@ S_socket_connect (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_bind (struct sock_user *user,
>              struct sock_addr *addr)
>  {
> @@ -226,7 +226,7 @@ S_socket_bind (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_name (struct sock_user *user,
>              mach_port_t *addr_port,
>              mach_msg_type_name_t *addr_port_name)
> @@ -241,7 +241,7 @@ S_socket_name (struct sock_user *user,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_peername (struct sock_user *user,
>                  mach_port_t *addr_port,
>                  mach_msg_type_name_t *addr_port_name)
> @@ -259,7 +259,7 @@ S_socket_peername (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_connect2 (struct sock_user *user1,
>                  struct sock_user *user2)
>  {
> @@ -289,7 +289,7 @@ S_socket_connect2 (struct sock_user *user1,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_create_address (mach_port_t server,
>                        int sockaddr_type,
>                        const_data_t data,
> @@ -325,7 +325,7 @@ S_socket_create_address (mach_port_t server,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_fabricate_address (mach_port_t server,
>                           int sockaddr_type,
>                           mach_port_t *addr_port,
> @@ -334,7 +334,7 @@ S_socket_fabricate_address (mach_port_t server,
>    return EOPNOTSUPP;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_whatis_address (struct sock_addr *addr,
>                        int *type,
>                        data_t *data,
> @@ -353,7 +353,7 @@ S_socket_whatis_address (struct sock_addr *addr,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_shutdown (struct sock_user *user,
>                  int direction)
>  {
> @@ -370,7 +370,7 @@ S_socket_shutdown (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_getopt (struct sock_user *user,
>                int level,
>                int option,
> @@ -399,7 +399,7 @@ S_socket_getopt (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_setopt (struct sock_user *user,
>                int level,
>                int option,
> @@ -426,7 +426,7 @@ S_socket_setopt (struct sock_user *user,
>    return err;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_send (struct sock_user *user,
>              struct sock_addr *addr,
>              int flags,
> @@ -472,7 +472,7 @@ S_socket_send (struct sock_user *user,
>      return (error_t)-sent;
>  }
>  
> -error_t
> +kern_return_t
>  S_socket_recv (struct sock_user *user,
>              mach_port_t *addrport,
>              mach_msg_type_name_t *addrporttype,
> diff --git a/pfinet/tunnel.c b/pfinet/tunnel.c
> index b519ebd..4301d05 100644
> --- a/pfinet/tunnel.c
> +++ b/pfinet/tunnel.c
> @@ -287,7 +287,7 @@ void (*trivfs_protid_destroy_hook) (struct trivfs_protid 
> *) = pi_destroy_hook;
>  /* Read data from an IO object.  If offset is -1, read from the object
>     maintained file pointer.  If the object is not seekable, offset is
>     ignored.  The amount desired to be read is in AMOUNT.  */
> -error_t
> +kern_return_t
>  trivfs_S_io_read (struct trivfs_protid *cred,
>                    mach_port_t reply, mach_msg_type_name_t reply_type,
>                    data_t *data, mach_msg_type_number_t *data_len,
> @@ -365,7 +365,7 @@ trivfs_S_io_read (struct trivfs_protid *cred,
>     object at a time; servers implement congestion control by delaying
>     responses to io_write.  Servers may drop data (returning ENOBUFS)
>     if they receive more than one write when not prepared for it.  */
> -error_t
> +kern_return_t
>  trivfs_S_io_write (struct trivfs_protid *cred,
>                     mach_port_t reply,
>                     mach_msg_type_name_t replytype,
> @@ -526,7 +526,7 @@ io_select_common (struct trivfs_protid *cred,
>      }
>  }
>  
> -error_t
> +kern_return_t
>  trivfs_S_io_select (struct trivfs_protid *cred,
>                      mach_port_t reply,
>                      mach_msg_type_name_t reply_type,
> @@ -535,7 +535,7 @@ trivfs_S_io_select (struct trivfs_protid *cred,
>    return io_select_common (cred, reply, reply_type, NULL, type);
>  }
>  
> -error_t
> +kern_return_t
>  trivfs_S_io_select_timeout (struct trivfs_protid *cred,
>                           mach_port_t reply,
>                           mach_msg_type_name_t reply_type,
> @@ -546,7 +546,7 @@ trivfs_S_io_select_timeout (struct trivfs_protid *cred,
>  }
>  
>  /* Change current read/write offset */
> -error_t
> +kern_return_t
>  trivfs_S_io_seek (struct trivfs_protid *cred,
>                    mach_port_t reply, mach_msg_type_name_t reply_type,
>                    off_t offs, int whence, off_t *new_offs)
> @@ -563,7 +563,7 @@ trivfs_S_io_seek (struct trivfs_protid *cred,
>  /* Change the size of the file.  If the size increases, new blocks are
>     zero-filled.  After successful return, it is safe to reference mapped
>     areas of the file up to NEW_SIZE.  */
> -error_t
> +kern_return_t
>  trivfs_S_file_set_size (struct trivfs_protid *cred,
>                          mach_port_t reply, mach_msg_type_name_t reply_type,
>                          off_t size)
> @@ -582,7 +582,7 @@ trivfs_S_file_set_size (struct trivfs_protid *cred,
>     will tell you which of O_READ, O_WRITE, and O_EXEC the object can
>     be used for.  The O_ASYNC bit affects icky async I/O; good async
>     I/O is done through io_async which is orthogonal to these calls. */
> -error_t
> +kern_return_t
>  trivfs_S_io_set_all_openmodes(struct trivfs_protid *cred,
>                                mach_port_t reply,
>                                mach_msg_type_name_t reply_type,
> @@ -597,7 +597,7 @@ trivfs_S_io_set_all_openmodes(struct trivfs_protid *cred,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  trivfs_S_io_set_some_openmodes (struct trivfs_protid *cred,
>                                  mach_port_t reply,
>                                  mach_msg_type_name_t reply_type,
> @@ -612,7 +612,7 @@ trivfs_S_io_set_some_openmodes (struct trivfs_protid 
> *cred,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  trivfs_S_io_clear_some_openmodes (struct trivfs_protid *cred,
>                                    mach_port_t reply,
>                                    mach_msg_type_name_t reply_type,
> @@ -627,7 +627,7 @@ trivfs_S_io_clear_some_openmodes (struct trivfs_protid 
> *cred,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  trivfs_S_io_get_owner (struct trivfs_protid *cred,
>                         mach_port_t reply,
>                         mach_msg_type_name_t reply_type,
> @@ -643,7 +643,7 @@ trivfs_S_io_get_owner (struct trivfs_protid *cred,
>    return 0;
>  }
>  
> -error_t
> +kern_return_t
>  trivfs_S_io_mod_owner (struct trivfs_protid *cred,
>                         mach_port_t reply, mach_msg_type_name_t reply_type,
>                         pid_t owner)
> @@ -665,7 +665,7 @@ trivfs_S_io_mod_owner (struct trivfs_protid *cred,
>     implement io_map but not io_map_cntl.  Some objects do not provide
>     mapping; they will set none of the ports and return an error.  Such
>     objects can still be accessed by io_read and io_write.  */
> -error_t
> +kern_return_t
>  trivfs_S_io_map (struct trivfs_protid *cred,
>                mach_port_t reply,
>                mach_msg_type_name_t replyPoly,
> -- 
> 2.39.2
> 
> 

-- 
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]