#ifndef _INET_SDP_ITF_H
#define _INET_SDP_ITF_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
#define SDP_ITF_VER 1
typedef struct sdp_upcalls_s {
void * (*su_newconn)(void *parenthandle, void *connind);
void (*su_connected)(void *handle);
void (*su_disconnected)(void *handle, int error);
void (*su_connfailed)(void *handle, int error);
int (*su_recv)(void *handle, mblk_t *mp, int flags);
void (*su_xmitted)(void *handle, int writeable);
void (*su_urgdata)(void *handle);
void (*su_ordrel)(void *handle);
} sdp_upcalls_t;
typedef struct sdp_sockbuf_limits_s {
int sbl_rxbuf;
int sbl_rxlowat;
int sbl_txbuf;
int sbl_txlowat;
} sdp_sockbuf_limits_t;
struct sdp_conn_struct_t;
extern int sdp_bind(struct sdp_conn_struct_t *conn, struct sockaddr *addr,
socklen_t addrlen);
extern void sdp_close(struct sdp_conn_struct_t *conn);
extern int sdp_connect(struct sdp_conn_struct_t *conn,
const struct sockaddr *dst, socklen_t addrlen);
extern struct sdp_conn_struct_t *sdp_create(void *newhandle,
struct sdp_conn_struct_t *parent, int family, int flags,
const sdp_upcalls_t *su, sdp_sockbuf_limits_t *sbl, cred_t *cr,
int *error);
extern int sdp_disconnect(struct sdp_conn_struct_t *conn, int flags);
extern int sdp_shutdown(struct sdp_conn_struct_t *conn, int flag);
extern int sdp_polldata(struct sdp_conn_struct_t *conn, int flag);
extern int sdp_get_opt(struct sdp_conn_struct_t *conn, int level, int opt,
void *opts, socklen_t *optlen);
extern int sdp_getpeername(struct sdp_conn_struct_t *conn,
struct sockaddr *addr, socklen_t *addrlen);
extern int sdp_getsockname(struct sdp_conn_struct_t *conn,
struct sockaddr *addr, socklen_t *addrlen);
extern int sdp_itf_ver(int);
extern int sdp_listen(struct sdp_conn_struct_t *conn, int backlog);
extern int sdp_send(struct sdp_conn_struct_t *conn, struct msghdr *msg,
size_t size, int flags, struct uio *uiop);
extern int sdp_recv(struct sdp_conn_struct_t *conn, struct msghdr *msg,
size_t size, int flags, struct uio *uiop);
extern int sdp_set_opt(struct sdp_conn_struct_t *conn, int level, int opt,
const void *opts, socklen_t optlen);
extern int sdp_ioctl(struct sdp_conn_struct_t *conn, int cmd, int32_t *value,
struct cred *cr);
#define SDP_CAN_BLOCK 0x01
#define SDP_READ 0x01
#define SDP_XMIT 0x02
#endif
#define SDP_NODELAY 0x01
#ifdef __cplusplus
}
#endif
#endif