1*23213Smckusick /* 2*23213Smckusick * Copyright (c) 1982 Regents of the University of California. 3*23213Smckusick * All rights reserved. The Berkeley software License Agreement 4*23213Smckusick * specifies the terms and conditions for redistribution. 5*23213Smckusick * 6*23213Smckusick * @(#)ns_pcb.h 6.2 (Berkeley) 06/08/85 7*23213Smckusick */ 821490Ssklower 921490Ssklower /* 1021490Ssklower * Ns protocol interface control block. 1121490Ssklower */ 1221490Ssklower struct nspcb { 1321490Ssklower struct nspcb *nsp_next; /* doubly linked list */ 1421490Ssklower struct nspcb *nsp_prev; 1521490Ssklower struct nspcb *nsp_head; 1621490Ssklower struct socket *nsp_socket; /* back pointer to socket */ 1721490Ssklower struct ns_addr nsp_faddr; /* destination address */ 1821490Ssklower struct ns_addr nsp_laddr; /* socket's address */ 1921490Ssklower caddr_t nsp_pcb; /* protocol specific stuff */ 2021490Ssklower struct route nsp_route; /* routing information */ 2121490Ssklower union ns_net nsp_lastnet; /* validate cached route for dg socks*/ 2221490Ssklower long nsp_notify_param; /* extra info passed via ns_pcbnotify*/ 2321490Ssklower short nsp_flags; 2421490Ssklower u_char nsp_dpt; /* default packet type for idp_output*/ 2521490Ssklower u_char nsp_rpt; /* last received packet type by 2621490Ssklower idp_input() */ 2721490Ssklower }; 2821490Ssklower 2921490Ssklower /* possible flags */ 3021490Ssklower 3121490Ssklower #define NSP_IN_ABORT 0x1 /* calling abort through socket */ 3221490Ssklower #define NSP_RAWIN 0x2 /* show headers on input */ 3321490Ssklower #define NSP_RAWOUT 0x4 /* show header on output */ 3421490Ssklower 3521490Ssklower #define NS_WILDCARD 1 3621490Ssklower 3721490Ssklower #define nsp_lport nsp_laddr.x_port 3821490Ssklower #define nsp_fport nsp_faddr.x_port 3921490Ssklower 4021490Ssklower #define sotonspcb(so) ((struct nspcb *)((so)->so_pcb)) 4121490Ssklower 4221490Ssklower /* 4321490Ssklower * Nominal space allocated to a ns socket. 4421490Ssklower */ 4521490Ssklower #define NSSNDQ 2048 4621490Ssklower #define NSRCVQ 2048 4721490Ssklower 4821490Ssklower 4921490Ssklower #ifdef KERNEL 5021490Ssklower extern struct nspcb nspcb; /* head of list */ 5121490Ssklower extern struct nspcb *ns_pcblookup(); 5221490Ssklower #endif 53