#ifndef _CONNSTAT_H
#define _CONNSTAT_H
#include <sys/types.h>
#include <sys/socket.h>
#include <ofmt.h>
#include <sys/stropts.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct connstat_conn_attr_s {
struct sockaddr_storage ca_laddr;
struct sockaddr_storage ca_raddr;
int ca_lport;
int ca_rport;
int ca_state;
} connstat_conn_attr_t;
typedef struct conn_walk_state_s {
ofmt_handle_t cws_ofmt;
uint_t cws_flags;
connstat_conn_attr_t cws_filter;
} conn_walk_state_t;
#define CS_LOOPBACK 0x0001
#define CS_IPV4 0x0002
#define CS_IPV6 0x0004
#define CS_LADDR 0x0008
#define CS_RADDR 0x0010
#define CS_LPORT 0x0020
#define CS_RPORT 0x0040
#define CS_STATE 0x0080
#define CS_PARSABLE 0x0100
typedef ofmt_field_t *connstat_getfieldsfunc_t(void);
typedef void connstat_walkfunc_t(struct strbuf *, conn_walk_state_t *);
typedef struct connstat_proto_s {
char *csp_proto;
char *csp_default_fields;
int csp_miblevel;
int csp_mibv4name;
int csp_mibv6name;
connstat_getfieldsfunc_t *csp_getfields;
connstat_walkfunc_t *csp_v4walk;
connstat_walkfunc_t *csp_v6walk;
} connstat_proto_t;
boolean_t print_string(ofmt_arg_t *, char *, uint_t);
boolean_t print_uint16(ofmt_arg_t *, char *, uint_t);
boolean_t print_uint32(ofmt_arg_t *, char *, uint_t);
boolean_t print_uint64(ofmt_arg_t *, char *, uint_t);
#ifdef __cplusplus
}
#endif
#endif