/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos72V src/bos/kernel/net/proto_uipc.h 1.41.9.12 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1988,2020 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)19 1.41.9.12 src/bos/kernel/net/proto_uipc.h, sysnet, bos72V, v2020_07B0 1/29/20 10:33:38 */ /* * COMPONENT_NAME: SYSNET * * FUNCTIONS: P * * * ORIGINS: 27,85 * * * (C) COPYRIGHT International Business Machines Corp. 1988,1993 * All Rights Reserved * Licensed Materials - Property of IBM * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* * * (c) Copyright 1991, OPEN SOFTWARE FOUNDATION, INC. * ALL RIGHTS RESERVED * */ /* * OSF/1 1.1 Snapshot 2 */ /* * Copyright (C) 1988,1989 Encore Computer Corporation. All Rights Reserved * * Property of Encore Computer Corporation. * This software is made available solely pursuant to the terms of * a software license agreement which governs its use. Unauthorized * duplication, distribution or sale are strictly prohibited. * */ #ifdef _KERNEL #ifndef _PROTO_UIPC #define _PROTO_UIPC #define PROTO(s) s #include #include #include #include #include #include /* cdli.h can include net_globals.h, which can include proto_net.h, * which will #undef PROTO */ #ifndef PROTO #define PROTO(s) s #endif /* Avoid scoping problems */ struct file; struct uio; struct ucred; struct stat; struct proc; struct socket; struct sockbuf; struct mbuf; struct mpool_debug; struct msghdr; struct unpcb; struct domain; struct domain_funnel; struct netopt; struct qos_socket_funcs; struct sndbufpool; /* domain.c */ int fasttimo_init PROTO((long *, struct netopt *)); void domaininit PROTO((void)); int domain_add PROTO((struct domain *)); int domain_del PROTO((struct domain *)); struct protosw *pffindtype PROTO((int, int)); struct protosw *pffindproto PROTO((int, int, int)); void pfctlinput PROTO((int, struct sockaddr *)); void pfreclaim PROTO((void)); void pfslowtimo PROTO((void)); void pffasttimo PROTO((void)); int pfslowsched PROTO((void)); int pffastsched PROTO((void)); long gethostid PROTO((void)); int sethostid PROTO((int)); int gethostname PROTO((char *, size_t)); int kgethostname PROTO((char *, int *)); int sethostname PROTO((char *, int)); int add_domain_af PROTO((struct domain *)); int del_domain_af PROTO((struct domain *)); int protosw_enable PROTO((struct protosw *)); int protosw_disable PROTO((struct protosw *)); int protosw6_enable PROTO((struct protosw *)); int protosw6_disable PROTO((struct protosw *)); /* log.c */ void bsdlog PROTO((int, char *, ...)); void bsdlog_no_console PROTO((int, char *, ...)); void bsdlog_reg PROTO((struct socket *)); void bsdlog_unreg PROTO((struct socket *)); int bsdlog_check PROTO((struct socket *so)); /* mbuf.c */ int thewall_init PROTO((long *, struct netopt *)); int sockthresh_init PROTO((long *, struct netopt *)); void mbinit PROTO((void)); caddr_t m_clalloc PROTO((struct mbuf *, int, int)); caddr_t m_clalloc_srad PROTO((struct mbuf *, int, int, sradid_t)); void mbufintr PROTO((void)); #undef m_retry struct mbuf * m_retry PROTO((int, int)); struct mbuf * m_retry_srad PROTO((int, int, sradid_t)); struct mbuf * m_retryhdr PROTO((int, int)); struct mbuf * m_retryhdr_srad PROTO((int, int, sradid_t)); struct mbuf * m_get PROTO((int, int)); struct mbuf * m_get_srad PROTO((int, int, sradid_t)); struct mbuf * m_get_cpu PROTO((int, int, cpu_t)); struct mbuf * m_gethdr PROTO((int, int)); struct mbuf * m_gethdr_srad PROTO((int, int, sradid_t)); struct mbuf * m_gethdr_cpu PROTO((int, int, cpu_t)); struct mbuf * m_getclr PROTO((int, int)); struct mbuf * m_getclr_srad PROTO((int, int, sradid_t)); struct mbuf * m_getclr_cpu PROTO((int, int, cpu_t)); struct mbuf * m_free PROTO((struct mbuf *)); void m_freem PROTO((struct mbuf *)); int m_leadingspace PROTO((struct mbuf *)); int m_trailingspace PROTO((struct mbuf *)); struct mbuf * m_prepend PROTO((struct mbuf *, int, int)); struct mbuf * m_prepend_srad PROTO((struct mbuf *, int, int, sradid_t)); struct mbuf * m_copym PROTO((struct mbuf *, int, int, int)); struct mbuf * m_copy2 PROTO((struct mbuf *, int, struct mbuf *)); struct mbuf * m_copym_srad PROTO((struct mbuf *, int, int, int, sradid_t)); struct mbuf * m_copym_from_pool PROTO((struct mpool_cache *, struct mbuf *, int, int, int)); void m_copydata PROTO((struct mbuf *, int, int, caddr_t)); void m_cat PROTO((struct mbuf *, struct mbuf *)); void m_adj PROTO((struct mbuf *, int)); struct mbuf * m_pullup PROTO((struct mbuf *, int)); struct mbuf * m_pullup_srad PROTO((struct mbuf *, int, sradid_t)); void m_freea PROTO((char *, char *)); struct mbuf * m_clattach PROTO((caddr_t, void (*)(), int32ulong64_t, int32caddr64_t, int)); struct mbuf * m_clattach_srad PROTO((caddr_t, void (*)(), int32ulong64_t, int32caddr64_t, int, sradid_t)); struct mbuf * m_getclustm PROTO((int, int, int)); struct mbuf * m_getclustm_srad PROTO((int, int, int, sradid_t)); struct mbuf * m_getclustm_cpu PROTO((int, int, int, cpu_t)); void m_reg PROTO((void *)); void m_dereg PROTO((void *)); int m_clgetm PROTO((struct mbuf *, int, int)); int m_clgetm_srad PROTO((struct mbuf *, int, int, sradid_t)); struct mbuf * m_collapse PROTO((struct mbuf *, u_int)); struct mbuf * m_collapse_srad PROTO((struct mbuf *, u_int, sradid_t)); void m_clrefrence PROTO((struct mbuf *, struct mbuf *)); void m_clunreference PROTO((struct mbuf *)); struct mbuf * m_copymext PROTO((struct mbuf *, int, int, int)); struct mbuf * m_copymext_srad PROTO((struct mbuf *, int, int, int, sradid_t)); ptrdiff_t m_ptr_to_offset PROTO((struct mbuf *, caddr_t)); caddr_t m_offset_to_ptr PROTO((struct mbuf *, ptrdiff_t)); int check_sock_thresh PROTO((void)); struct xmem * m_getxmemd PROTO((struct mbuf *)); struct mclust_pool * m_create_clustpool PROTO((int, int, int, int)); kerrno_t m_create_mpool PROTO((struct mclust_pool **, int, int, int, int, int)); kerrno_t m_create_mpool_w_bktcnt PROTO((struct mclust_pool **, int, int, int, int, int, int)); struct mbuf * m_get_from_clustpool PROTO((struct mclust_pool *)); struct mbuf * mpool_get PROTO((struct mclust_pool *, uint, ulong)); struct mbuf * mpool_get_nolock PROTO((struct mclust_pool *, uint)); void mpool_set_user_free PROTO((struct mclust_pool *, int(fp(struct mbuf *)))); void m_free_clustpool PROTO((struct mclust_pool *)); int mpool_grow PROTO((struct mclust_pool *, int, int)); int mpool_grow_block PROTO((struct mclust_pool *, ulong, int (), int, ulong)); void mpool_setid PROTO((struct mclust_pool *, ulong)); int mpool_shrink PROTO((struct mclust_pool *, int, struct mbuf **)); void kmem_unhide_clustpool_all PROTO((void)); void log_clust_traceback PROTO((struct mpool_debug *)); kerrno_t mclpCreate PROTO((struct mclust_pool **, int, int, int, int, int, sradid_t, char *)); kerrno_t mclpCreateBktcnt PROTO((struct mclust_pool **, int, int, int, int, int, sradid_t, char *, int)); void mclpDestroy PROTO((struct mclust_pool *)); int mclpGrow PROTO((struct mclust_pool *, int, int)); int mclpGrowBlock PROTO((struct mclust_pool *, ulong, int (), int, ulong)); int mclpShrink PROTO((struct mclust_pool *, int, struct mbuf **)); void mclpAttachBuffers PROTO((struct mclust_pool *, struct mclBkt *, int)); kerrno_t mclpClattach PROTO((struct mclust_pool *, struct mbuf *, int)); void mclpSetUserFree PROTO((struct mclust_pool *pool, int (fp()))); void mclpSetID PROTO((struct mclust_pool *, ulong)); struct mbuf * mclpGetBuf PROTO((struct mclust_pool *, uint, ulong)); void mclpFreeBuf PROTO((struct mbuf *m, ulong size, caddr_t)); struct mbuf * mclpMix PROTO((struct mbuf *, int)); int mclbGet PROTO((struct mclust_pool *, uint, struct mbuf **, struct mbuf **)); void mclbGetWait PROTO((struct mclust_pool *, uint, int, struct mbuf **, struct mbuf **)); void mclbPut PROTO((struct mclust_pool *, struct mbuf *)); kerrno_t mclpCreateBuckets PROTO((struct mclust_pool *, int, int)); void mclpHidePacketChain PROTO((struct mbuf *)); void mclpFreeChecks PROTO((struct mclust_pool *, struct mclBkt *, long , struct mbuf *)); void mclpHideCluster PROTO((struct mbuf *)); void mclpUnhideCluster PROTO((struct mbuf *, int)); void mclpHidePool PROTO((struct mclust_pool *)); /* pinmore.c */ void so_pin_more_stack PROTO((struct socket *)); /* proto.c */ int uipc_configure PROTO((void)); void uipc_sanity PROTO((void)); void uipc_unfunnel PROTO((struct domain_funnel *)); void uipc_funnel PROTO((struct domain_funnel *)); void uipc_funfrc PROTO((struct domain_funnel *)); /* rand.c */ uint tcprandom PROTO((void)); /* sf.c */ ssize_t send_file PROTO((int *, struct sf_parms *, uint_t)); void sf_trace PROTO((char *, ulong, ulong, ulong)); /* socket.c */ int k_getgroups PROTO((int, struct gidnode *)); int socreate PROTO((int, struct socket **, int, int)); int sobind PROTO((struct socket *, struct mbuf *)); int solisten PROTO((struct socket *, int)); void sodqfree PROTO((struct socket *)); void sofree PROTO((struct socket *)); void sofree2 PROTO((struct socket *)); int solockpair PROTO((struct socket *, struct socket *)); int sounlock PROTO((struct socket *)); boolean_t socket_try_lock PROTO((struct socket *)); int sodisconn PROTO((struct socket *)); int soclose PROTO((struct socket *)); int soabort PROTO((struct socket *)); int soaccept PROTO((struct socket *, struct mbuf *)); int soconnect PROTO((struct socket *, struct mbuf *)); int soeconnect PROTO((struct socket *, struct mbuf *, sec_labels_t *)); int soconnect2 PROTO((struct socket *, struct socket *)); int sodisconnect PROTO((struct socket *)); int sodisconnectreuse PROTO((struct socket *)); int sosend PROTO((struct socket *, struct mbuf *, struct uio *, struct mbuf *, struct mbuf *, int)); int soesend PROTO((struct socket *, struct mbuf *, struct uio *, struct mbuf *, struct mbuf *, int, struct net_secattr *)); int soreceive PROTO((struct socket *, struct mbuf **, struct uio *, struct mbuf **, struct mbuf **, int *)); int soereceive PROTO((struct socket *, struct mbuf **, struct uio *, struct mbuf **, struct mbuf **, int *, struct net_secattr *)); int soshutdown PROTO((struct socket *, int)); void sorflush PROTO((struct socket *)); void sopriv PROTO((struct socket *)); int sosetopt PROTO((struct socket *, int, int, struct mbuf *)); int sogetopt PROTO((struct socket *, int, int, struct mbuf **)); void _csignal PROTO((pid_t, int, uid_t, uid_t, int)); void queued_csignal PROTO((void)); void csignal PROTO((pid_t, int, uid_t, uid_t, int)); void sohasoutofband PROTO((struct socket *)); int sodequeue PROTO((struct socket *, struct socket **, struct mbuf **, int)); int sogetaddr PROTO((struct socket *, struct mbuf **, int, int)); int sosblock PROTO((struct sockbuf *, struct socket *)); void sbunlock PROTO((struct sockbuf *)); int socreategroup PROTO((int, struct socket **, int, int, int)); int k_soaccept PROTO((struct socket *, struct socket **, struct mbuf **, int, int)); void so_inprog PROTO((struct socket *)); int so_inprog2 PROTO((struct socket *)); void so_inprogdone PROTO((struct socket *)); void soputonfreelist PROTO((struct socket *)); struct protosw *isSmcrAvailable(void); /* socket2.c */ void soisconnecting PROTO((struct socket *)); void soisconnected PROTO((struct socket *)); void soisconnected_nowakeup PROTO((struct socket *)); void soisconnected_wakeup PROTO((struct socket *)); void soisdisconnecting PROTO((struct socket *)); void soisdisconnected PROTO((struct socket *)); void soiskerndisconnected PROTO((struct socket *)); struct socket * sonewsock_base PROTO((register struct socket *, int, int *)); struct socket * sonewsock PROTO((struct socket *, int)); void soqinsque PROTO((struct socket *, struct socket *, int)); int soqremque PROTO((struct socket *, int)); void socantsendmore PROTO((struct socket *)); void socantrcvmore PROTO((struct socket *)); void sosleep_timeout PROTO((struct trb *)); int sosbwait PROTO((struct sockbuf *, struct socket *)); int sosbwait_w_timeout PROTO((struct sockbuf *, struct socket *, struct timeval *)); int sosleep PROTO((struct socket *, caddr_t, int, int)); void sowakeup PROTO((struct socket *, struct sockbuf *)); int soqaio PROTO((struct socket *)); int sbwakeup PROTO((struct socket *, struct sockbuf *, int)); int sbpoll PROTO((struct socket *, struct sockbuf *)); int soreserve PROTO((struct socket *, u_long, u_long)); int sbreserve PROTO((struct sockbuf *, u_long)); void sbrelease PROTO((struct sockbuf *)); void sbappend PROTO((struct sockbuf *, struct mbuf *)); void sbappendrecord PROTO((struct sockbuf *, struct mbuf *)); void sbinsertoob PROTO((struct sockbuf *, struct mbuf *)); int sbappendaddr PROTO((struct sockbuf *, struct sockaddr *, struct mbuf *, struct mbuf *)); int sbappendcontrol PROTO((struct sockbuf *, struct mbuf *, struct mbuf *)); void sbcompress PROTO((struct sockbuf *, struct mbuf *, struct mbuf *)); void sbflush PROTO((struct sockbuf *)); void sbdrop PROTO((struct sockbuf *, int)); void sbdroprecord PROTO((struct sockbuf *)); int lock_socheck PROTO((struct socket *)); int unlock_socheck PROTO((struct socket *)); int lock_sbcheck PROTO((struct sockbuf *)); int unlock_sbcheck PROTO((struct sockbuf *)); int sbwait PROTO((struct sockbuf *)); struct socket * sonewconn1 PROTO((struct socket *, int)); int sb_max_init PROTO((long *, struct netopt *)); int somaxconn_init PROTO((long *, struct netopt *)); int tcptr_enable_init PROTO((long *, struct netopt *)); void soqosregister PROTO((struct qos_socket_funcs *)); void soaccessfailure PROTO((struct socket *)); void so_exit PROTO((void)); int sndbufpool_init PROTO((long *, struct netopt *)); void sndbufpool_init_cpu PROTO((cpu_t)); void sndbufpool_grow PROTO((void)); void sndbufpool_dr_cpu_add PROTO((cpu_t)); void sndbufpool_dr_cpu_remove PROTO((cpu_t)); void sndbufpool_timo_sched PROTO((void)); void sndbufpool_timo PROTO((void)); void sndbufpool_timer_init PROTO((void)); struct mbuf * m_get_from_sndpool PROTO((struct sndbufpool *, int)); void soiskernconnected PROTO((struct socket *)); /* sys_sock.c */ int soo_rw PROTO((struct file *, enum uio_rw, struct uio *, ext_t, file_secattr_t *)); int soo_read PROTO((struct file *, struct uio *, struct ucred *)); int soo_write PROTO((struct file *, struct uio *, struct ucred *)); int soo_ioctl PROTO((struct file *, int, caddr_t)); int soo_select PROTO((struct file *, int, ushort, ushort *, void (*)())); int soo_stat PROTO((struct file *, struct stat *)); int soo_close PROTO((struct file *)); struct netopt * find_netopt PROTO((char *)); int set_netopt PROTO((char *, long)); void soo_preclose PROTO((struct file *)); /* syscalls.c */ int connect PROTO((int, caddr_t, int)); int econnect PROTO((int, caddr_t, int, sec_labels_t *)); int connext PROTO((int, caddr_t, int)); int socket PROTO((int, int, int)); int bind PROTO((int, caddr_t, int)); int ebind PROTO((int, caddr_t, int, sec_labels_t *)); int bind2addrsel PROTO((int, const struct sockaddr *, socklen_t)); int _ebind2addrsel PROTO((int, const struct sockaddr *, socklen_t, sec_labels_t *)); short inet6_is_srcaddr PROTO((struct sockaddr_in6 *, uint32_t)); int listen PROTO((int, int)); int naccept PROTO((int, caddr_t, int *)); int accept PROTO((int, caddr_t, int *)); int eaccept PROTO((int, caddr_t, int *, sec_labels_t *)); int accept1 PROTO((int, caddr_t, int *, sec_labels_t *, int)); int _econnect PROTO((int, caddr_t, int, sec_labels_t *)); int _connext_restart PROTO((int, caddr_t, int)); int socketpair PROTO((int, int, int, int*)); int sendto PROTO((int, caddr_t, int, int, caddr_t, int)); int esendto PROTO((int, caddr_t, int, int, caddr_t, int, sec_labels_t *)); int _esendto PROTO((int, caddr_t, int, int, caddr_t, int, sec_labels_t *)); int send PROTO((int, caddr_t, int, int)); int esend PROTO((int, caddr_t, int, int, sec_labels_t *)); int _esend PROTO((int, caddr_t, int, int, sec_labels_t *)); int sendmsg PROTO((int, caddr_t, int)); int sendmmsg PROTO((int, struct mmsghdr *, unsigned int, int)); int esendmsg PROTO((int, caddr_t, int, sec_labels_t *)); int _esendmsg PROTO((int, caddr_t, int, sec_labels_t *)); int nsendmsg PROTO((int, caddr_t, int)); int ensendmsg PROTO((int, caddr_t, int, sec_labels_t *)); int _ensendmsg PROTO((int, caddr_t, int, sec_labels_t *)); int sendit PROTO((int, struct msghdr *, int)); int esendit PROTO((int, struct msghdr *, int, sec_labels_t *)); int recvfrom PROTO((int, caddr_t, int, int, caddr_t, int *)); int erecvfrom PROTO((int, caddr_t, int, int, caddr_t, int *, sec_labels_t *)); int nrecvfrom PROTO((int, caddr_t, int, int, caddr_t, int *)); int enrecvfrom PROTO((int, caddr_t, int, int, caddr_t, int *, sec_labels_t *)); int _enrecvfrom PROTO((int, caddr_t, int, int, caddr_t, int *, sec_labels_t *)); int recv PROTO((int, caddr_t, int, int)); int erecv PROTO((int, caddr_t, int, int, sec_labels_t *)); int _erecv PROTO((int, caddr_t, int, int, sec_labels_t *)); int recvmsg PROTO((int, struct omsghdr *, int)); int erecvmsg PROTO((int, struct omsghdr *, int, sec_labels_t *)); int _erecvmsg PROTO((int, struct omsghdr *, int, sec_labels_t *)); int nrecvmsg PROTO((int, struct msghdr *, int)); int enrecvmsg PROTO((int, struct msghdr *, int, sec_labels_t *)); int _enrecvmsg PROTO((int, struct msghdr *, int, sec_labels_t *)); int recvmmsg PROTO((int, struct mmsghdr *, unsigned int, int, struct timespec *)); int recvit PROTO((int, struct msghdr *, caddr_t)); int erecvit PROTO((int, struct msghdr *, caddr_t, sec_labels_t *, struct timeval *, int *)); int shutdown PROTO((int, int)); int setsockopt PROTO((int, int, int, caddr_t, int)); int getsockopt PROTO((int, int, int, caddr_t, int*)); int ngetsockname PROTO((int, caddr_t, int*)); int getsockname PROTO((int, caddr_t, int *)); int getsockname1 PROTO((int, caddr_t, int*, int)); int ngetpeername PROTO((int, caddr_t, int *)); int getpeername PROTO((int, caddr_t, int *)); int getpeername1 PROTO((int, caddr_t, int *, int)); int getpeereid PROTO((int, uid_t *, gid_t *)); void sockaddr_new PROTO((struct mbuf *)); void sockaddr_old PROTO((struct mbuf *)); int sockargs PROTO((struct mbuf **, caddr_t, int, int, sec_labels_t *)); int socksetup PROTO((int *, struct file **)); int getkerninfo PROTO((int, char *, int *, int32long64_t)); int socket_aio_dequeue PROTO((void)); int kinfo_read PROTO((int, caddr_t, int *, int32caddr64_t, int *, struct xmem *)); int kinfo_get_avenrun(caddr_t , int, int); int kinfo_get_ipl(caddr_t, int , int); int kinfo_get_tickadj(caddr_t , int , int); int kinfo_get_mbstat(caddr_t , int , int); int kinfo_get_rtstat(caddr_t , int , int); int kinfo_get_icmpstat(caddr_t , int , int); int kinfo_write PROTO((int, caddr_t, int *, int32caddr64_t, int *, struct xmem *)); int rmsock PROTO((struct socket *)); int splice PROTO((int, int, int)); int sctp_opt_info PROTO((int, uint32_t, int, void *, size_t *)); int sctp_peeloff PROTO((int, uint32_t *)); int ksodebug PROTO((int, struct socket *, short)); /* usrreq.c */ void uipc_init PROTO((void)); int uipc_usrreq PROTO((struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *)); int unp_attach PROTO((struct socket *)); void unp_detach PROTO((struct unpcb *)); int unp_bind PROTO((struct unpcb *, struct mbuf *)); int unp_connect PROTO((struct socket *, struct mbuf *)); int unp_connect2 PROTO((struct socket *, struct socket *)); void unp_disconnect PROTO((struct unpcb *)); void unp_abort PROTO((struct unpcb *)); void unp_shutdown PROTO((struct unpcb *)); void unp_drop PROTO((struct unpcb *, int)); void unp_drain PROTO((void)); int unp_externalize PROTO((struct mbuf *, struct socket *)); int unp_internalize PROTO((struct mbuf *)); void unp_dispose PROTO((struct mbuf *)); void unp_scan PROTO((struct mbuf *, void (*)(struct file *))); void unp_mark PROTO((struct file *)); void unp_discard PROTO((struct file *)); void uipc_slowtimo PROTO((void)); #undef PROTO #endif /* _PROTO_UIPC */ #endif /* _KERNEL */