Re: git: 886fc1e80490 - main - protosw: provide prototypes for all protocol switch methods
Date: Fri, 12 Aug 2022 18:47:19 UTC
On 22. 8. 12., Larry Rosenman wrote:
> This broke the build
>
> In file included from sys_protosw.c:1:
> /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/protosw.h:82:43: error:
> type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int]
> typedef int pr_control_t(struct socket *, u_long, caddr_t, struct
> ifnet *,
> ^
> /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/protosw.h:82:51: error:
> type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int]
> typedef int pr_control_t(struct socket *, u_long, caddr_t, struct
> ifnet *,
> ^
> 2 errors generated.
> *** Error code 1
You can work around it with the attached patch for now.
Jung-uk Kim
> On 08/12/2022 10:32 am, Gleb Smirnoff wrote:
>> The branch main has been updated by glebius:
>>
>> URL:
>> https://cgit.FreeBSD.org/src/commit/?id=886fc1e80490fb03e72e306774766cbb2c733ac6
>>
>>
>> commit 886fc1e80490fb03e72e306774766cbb2c733ac6
>> Author: Gleb Smirnoff <glebius@FreeBSD.org>
>> AuthorDate: 2022-08-12 15:30:34 +0000
>> Commit: Gleb Smirnoff <glebius@FreeBSD.org>
>> CommitDate: 2022-08-12 15:30:34 +0000
>>
>> protosw: provide prototypes for all protocol switch methods
>>
>> Reviewed by: melifaro
>> Differential revision: https://reviews.freebsd.org/D36153
>> ---
>> sys/sys/protosw.h | 131
>> +++++++++++++++++++++++++++++++++---------------------
>> 1 file changed, 80 insertions(+), 51 deletions(-)
>>
>> diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
>> index 22e057e5691a..7c7eece83e78 100644
>> --- a/sys/sys/protosw.h
>> +++ b/sys/sys/protosw.h
>> @@ -60,13 +60,60 @@ struct sockopt;
>> * In retrospect, it would be a lot nicer to use an interface
>> * similar to the vnode VOP interface.
>> */
>> +struct ifnet;
>> +struct stat;
>> +struct ucred;
>> +struct uio;
>> +
>> /* USE THESE FOR YOUR PROTOTYPES ! */
>> -typedef int pr_input_t (struct mbuf **, int*, int);
>> -typedef void pr_ctlinput_t (int, struct sockaddr *, void *);
>> -typedef int pr_ctloutput_t (struct socket *, struct sockopt *);
>> -typedef void pr_fasttimo_t (void);
>> -typedef void pr_slowtimo_t (void);
>> -typedef void pr_drain_t (void);
>> +typedef int pr_input_t(struct mbuf **, int*, int);
>> +typedef void pr_ctlinput_t(int, struct sockaddr *, void *);
>> +typedef int pr_ctloutput_t(struct socket *, struct sockopt *);
>> +typedef void pr_fasttimo_t(void);
>> +typedef void pr_slowtimo_t(void);
>> +typedef void pr_drain_t(void);
>> +typedef void pr_abort_t(struct socket *);
>> +typedef int pr_accept_t(struct socket *, struct sockaddr **);
>> +typedef int pr_attach_t(struct socket *, int, struct thread *);
>> +typedef int pr_bind_t(struct socket *, struct sockaddr *, struct
>> thread *);
>> +typedef int pr_connect_t(struct socket *, struct sockaddr *,
>> + struct thread *);
>> +typedef int pr_connect2_t(struct socket *, struct socket *);
>> +typedef int pr_control_t(struct socket *, u_long, caddr_t, struct
>> ifnet *,
>> + struct thread *);
>> +typedef void pr_detach_t(struct socket *);
>> +typedef int pr_disconnect_t(struct socket *);
>> +typedef int pr_listen_t(struct socket *, int, struct thread *);
>> +typedef int pr_peeraddr_t(struct socket *, struct sockaddr **);
>> +typedef int pr_rcvd_t(struct socket *, int);
>> +typedef int pr_rcvoob_t(struct socket *, struct mbuf *, int);
>> +typedef enum {
>> + PRUS_OOB = 0x1,
>> + PRUS_EOF = 0x2,
>> + PRUS_MORETOCOME = 0x4,
>> + PRUS_NOTREADY = 0x8,
>> + PRUS_IPV6 = 0x10,
>> +} pr_send_flags_t;
>> +typedef int pr_send_t(struct socket *, int, struct mbuf *,
>> + struct sockaddr *, struct mbuf *, struct thread *);
>> +typedef int pr_ready_t(struct socket *, struct mbuf *, int);
>> +typedef int pr_sense_t(struct socket *, struct stat *);
>> +typedef int pr_shutdown_t(struct socket *);
>> +typedef int pr_flush_t(struct socket *, int);
>> +typedef int pr_sockaddr_t(struct socket *, struct sockaddr **);
>> +typedef int pr_sosend_t(struct socket *, struct sockaddr *, struct
>> uio *,
>> + struct mbuf *, struct mbuf *, int, struct thread *);
>> +typedef int pr_soreceive_t(struct socket *, struct sockaddr **,
>> + struct uio *, struct mbuf **, struct mbuf **, int *);
>> +typedef int pr_sopoll_t(struct socket *, int, struct ucred *,
>> + struct thread *);
>> +typedef void pr_sosetlabel_t(struct socket *);
>> +typedef void pr_close_t(struct socket *);
>> +typedef int pr_bindat_t(int, struct socket *, struct sockaddr *,
>> + struct thread *);
>> +typedef int pr_connectat_t(int, struct socket *, struct sockaddr *,
>> + struct thread *);
>> +typedef int pr_aio_queue_t(struct socket *, struct kaiocb *);
>>
>> struct protosw {
>> short pr_type; /* socket type used for */
>> @@ -181,51 +228,33 @@ struct uio;
>> * Some fields initialized to defaults if they are NULL.
>> */
>> struct pr_usrreqs {
>> - void (*pru_abort)(struct socket *so);
>> - int (*pru_accept)(struct socket *so, struct sockaddr **nam);
>> - int (*pru_attach)(struct socket *so, int proto, struct thread
>> *td);
>> - int (*pru_bind)(struct socket *so, struct sockaddr *nam,
>> - struct thread *td);
>> - int (*pru_connect)(struct socket *so, struct sockaddr *nam,
>> - struct thread *td);
>> - int (*pru_connect2)(struct socket *so1, struct socket *so2);
>> - int (*pru_control)(struct socket *so, u_long cmd, caddr_t data,
>> - struct ifnet *ifp, struct thread *td);
>> - void (*pru_detach)(struct socket *so);
>> - int (*pru_disconnect)(struct socket *so);
>> - int (*pru_listen)(struct socket *so, int backlog,
>> - struct thread *td);
>> - int (*pru_peeraddr)(struct socket *so, struct sockaddr **nam);
>> - int (*pru_rcvd)(struct socket *so, int flags);
>> - int (*pru_rcvoob)(struct socket *so, struct mbuf *m, int flags);
>> - int (*pru_send)(struct socket *so, int flags, struct mbuf *m,
>> - struct sockaddr *addr, struct mbuf *control,
>> - struct thread *td);
>> -#define PRUS_OOB 0x1
>> -#define PRUS_EOF 0x2
>> -#define PRUS_MORETOCOME 0x4
>> -#define PRUS_NOTREADY 0x8
>> -#define PRUS_IPV6 0x10
>> - int (*pru_ready)(struct socket *so, struct mbuf *m, int count);
>> - int (*pru_sense)(struct socket *so, struct stat *sb);
>> - int (*pru_shutdown)(struct socket *so);
>> - int (*pru_flush)(struct socket *so, int direction);
>> - int (*pru_sockaddr)(struct socket *so, struct sockaddr **nam);
>> - int (*pru_sosend)(struct socket *so, struct sockaddr *addr,
>> - struct uio *uio, struct mbuf *top, struct mbuf *control,
>> - int flags, struct thread *td);
>> - int (*pru_soreceive)(struct socket *so, struct sockaddr **paddr,
>> - struct uio *uio, struct mbuf **mp0, struct mbuf **controlp,
>> - int *flagsp);
>> - int (*pru_sopoll)(struct socket *so, int events,
>> - struct ucred *cred, struct thread *td);
>> - void (*pru_sosetlabel)(struct socket *so);
>> - void (*pru_close)(struct socket *so);
>> - int (*pru_bindat)(int fd, struct socket *so, struct sockaddr
>> *nam,
>> - struct thread *td);
>> - int (*pru_connectat)(int fd, struct socket *so,
>> - struct sockaddr *nam, struct thread *td);
>> - int (*pru_aio_queue)(struct socket *so, struct kaiocb *job);
>> + pr_abort_t *pru_abort;
>> + pr_accept_t *pru_accept;
>> + pr_attach_t *pru_attach;
>> + pr_bind_t *pru_bind;
>> + pr_connect_t *pru_connect;
>> + pr_connect2_t *pru_connect2;
>> + pr_control_t *pru_control;
>> + pr_detach_t *pru_detach;
>> + pr_disconnect_t *pru_disconnect;
>> + pr_listen_t *pru_listen;
>> + pr_peeraddr_t *pru_peeraddr;
>> + pr_rcvd_t *pru_rcvd;
>> + pr_rcvoob_t *pru_rcvoob;
>> + pr_send_t *pru_send;
>> + pr_ready_t *pru_ready;
>> + pr_sense_t *pru_sense;
>> + pr_shutdown_t *pru_shutdown;
>> + pr_flush_t *pru_flush;
>> + pr_sockaddr_t *pru_sockaddr;
>> + pr_sosend_t *pru_sosend;
>> + pr_soreceive_t *pru_soreceive;
>> + pr_sopoll_t *pru_sopoll;
>> + pr_sosetlabel_t *pru_sosetlabel;
>> + pr_close_t *pru_close;
>> + pr_bindat_t *pru_bindat;
>> + pr_connectat_t *pru_connectat;
>> + pr_aio_queue_t *pru_aio_queue;
>> };
>>
>> /*
>
>
>