ngpcb
static void ng_detach_common(struct ngpcb *pcbp, int type);
static int ng_connect_data(struct sockaddr *nam, struct ngpcb *pcbp);
static int ng_connect_cntl(struct sockaddr *nam, struct ngpcb *pcbp);
static int ng_bind(struct sockaddr *nam, struct ngpcb *pcbp);
static int ship_msg(struct ngpcb *pcbp, struct ng_mesg *msg,
LIST_HEAD(, ngpcb) ngsocklist;
#define sotongpcb(so) ((struct ngpcb *)(so)->so_pcb)
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *pcbp;
struct ngpcb *pcbp;
struct ngpcb *pcbp;
ng_detach_common(struct ngpcb *pcbp, int which)
ng_connect_data(struct sockaddr *nam, struct ngpcb *pcbp)
ng_connect_cntl(struct sockaddr *nam, struct ngpcb *pcbp)
ng_bind(struct sockaddr *nam, struct ngpcb *pcbp)
ship_msg(struct ngpcb *pcbp, struct ng_mesg *msg, struct sockaddr_ng *addr)
struct ngpcb *const pcbp = sockdata->ctlsock;
struct ngpcb *const pcbp = sockdata->datasock;
struct ngpcb *const dpcbp = sockdata->datasock;
struct ngpcb *const pcbp = sockdata->ctlsock;
LIST_ENTRY(ngpcb) socks; /* linked list of sockets */
struct ngpcb *datasock; /* optional data socket */
struct ngpcb *ctlsock; /* optional control socket */
struct ngpcb *const dpcbp = priv->datasock;
struct ngpcb *const pcbp = priv->ctlsock;
static void ng_detach_common(struct ngpcb *pcbp, int type);
static int ng_connect_data(struct sockaddr *nam, struct ngpcb *pcbp);
static int ng_bind(struct sockaddr *nam, struct ngpcb *pcbp);
#define sotongpcb(so) ((struct ngpcb *)(so)->so_pcb)
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *const pcbp = sotongpcb(so);
struct ngpcb *pcbp;
struct ngpcb *pcbp;
struct ngpcb *pcbp;
pcbp = kmalloc(sizeof(struct ngpcb), M_PCB, M_WAITOK | M_ZERO);
ng_detach_common(struct ngpcb *pcbp, int which)
ng_connect_data(struct sockaddr *nam, struct ngpcb *pcbp)
ng_bind(struct sockaddr *nam, struct ngpcb *pcbp)
struct ngpcb *const pcbp = priv->ctlsock;
struct ngpcb *const pcbp = priv->datasock;
LIST_ENTRY(ngpcb) socks; /* linked list of sockets */
struct ngpcb *datasock; /* optional data socket */
struct ngpcb *ctlsock; /* optional control socket */
kread((u_long)this, (char *)&ngpcb, sizeof(ngpcb));
next = LIST_NEXT(&ngpcb, socks);
kread((u_long)ngpcb.ng_socket, (char *)&sockb, sizeof(sockb));
if (strcmp(name, "ctrl") == 0 && ngpcb.type != NG_CONTROL)
if (strcmp(name, "data") == 0 && ngpcb.type != NG_DATA)
if (ngpcb.sockdata == 0) /* unconnected data socket */
kread((u_long)ngpcb.sockdata, (char *)&info, sizeof(info));
struct ngpcb *this, *next;
struct ngpcb ngpcb;