/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* bos72Q src/bos/kernel/sys/kern_socket.h 1.3                            */
/*                                                                        */
/* Licensed Materials - Property of IBM                                   */
/*                                                                        */
/* Restricted Materials of IBM                                            */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2010,2019              */
/* 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                                                     */
/* @(#)84       1.3  src/bos/kernel/sys/kern_socket.h, sysuipc, bos72Q, q2019_13A4 2/6/19 00:40:45 */
#ifndef _SYS_KERN_SOCKET_H_
#define _SYS_KERN_SOCKET_H_

#include <sys/types.h>
#include <sys/mbuf.h>
#include <sys/socket.h>

#ifdef __cplusplus
extern "C" {
#endif

/*
 * Data structure
 */
struct kern_socket;
typedef struct kern_socket  *ksocket_t;

/*
 * Functions prototypes
 */
int  kern_socreate (int, ksocket_t *, int, int);
int  kern_sobind (ksocket_t, struct sockaddr *);
int  kern_soconnect (ksocket_t, struct sockaddr *);
int  kern_solisten (ksocket_t, int);
int  kern_soaccept (ksocket_t, ksocket_t *, struct mbuf **, int);
int  kern_sogetopt (ksocket_t, int, int, struct mbuf **);
int  kern_sosetopt (ksocket_t, int, int, struct mbuf *);
int  kern_soreserve (ksocket_t, uint64_t, uint64_t);
int  kern_soshutdown (ksocket_t, int);
int  kern_soclose (ksocket_t);
int  kern_soreceive (ksocket_t, struct mbuf **, long, 
			struct mbuf **, struct mbuf **, int *);
int  kern_sosend (ksocket_t, struct sockaddr *, 
			struct mbuf *, struct mbuf *, int);

#ifdef __cplusplus
}
#endif

#endif /* _SYS_KERN_SOCKET_H_ */
