aboutsummaryrefslogtreecommitdiff
path: root/sys/netccitt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netccitt')
-rw-r--r--sys/netccitt/ccitt_proto.c18
-rw-r--r--sys/netccitt/hd_debug.c8
-rw-r--r--sys/netccitt/hd_input.c55
-rw-r--r--sys/netccitt/hd_output.c25
-rw-r--r--sys/netccitt/hd_subr.c33
-rw-r--r--sys/netccitt/hd_timer.c3
-rw-r--r--sys/netccitt/hd_var.h16
-rw-r--r--sys/netccitt/hdlc.h8
-rw-r--r--sys/netccitt/if_x25subr.c96
-rw-r--r--sys/netccitt/pk.h6
-rw-r--r--sys/netccitt/pk_acct.c6
-rw-r--r--sys/netccitt/pk_debug.c18
-rw-r--r--sys/netccitt/pk_input.c83
-rw-r--r--sys/netccitt/pk_output.c24
-rw-r--r--sys/netccitt/pk_subr.c215
-rw-r--r--sys/netccitt/pk_timer.c5
-rw-r--r--sys/netccitt/pk_usrreq.c61
-rw-r--r--sys/netccitt/pk_var.h85
-rw-r--r--sys/netccitt/x25.h6
l---------sys/netccitt/x25_sockaddr.h1
-rw-r--r--sys/netccitt/x25acct.h6
-rw-r--r--sys/netccitt/x25err.h6
22 files changed, 473 insertions, 311 deletions
diff --git a/sys/netccitt/ccitt_proto.c b/sys/netccitt/ccitt_proto.c
index e40572348437..bad486931753 100644
--- a/sys/netccitt/ccitt_proto.c
+++ b/sys/netccitt/ccitt_proto.c
@@ -36,10 +36,11 @@
* SUCH DAMAGE.
*
* from: @(#)ccitt_proto.c 7.5 (Berkeley) 8/30/90
- * $Id: ccitt_proto.c,v 1.2 1993/10/16 19:46:33 rgrimes Exp $
+ * $Id: ccitt_proto.c,v 1.3 1993/12/19 00:52:12 wollman Exp $
*/
#define HDLC
#include "param.h"
+#include "systm.h"
#include "socket.h"
#include "protosw.h"
#include "domain.h"
@@ -58,12 +59,21 @@ extern struct domain ccittdomain;
#endif
#ifdef XE
-int xe_output (), xe_ctlinput (), xe_init(), xe_timer();
+int xe_output ();
+void xe_ctlinput ();
+void xe_init();
+void xe_timer();
#endif
#ifdef HDLC
-int hd_output (), hd_ctlinput (), hd_init (), hd_timer ();
+int hd_output ();
+void hd_ctlinput ();
+void hd_init ();
+void hd_timer ();
#endif
-int pk_usrreq (), pk_timer (), pk_init (), pk_ctloutput ();
+int pk_usrreq ();
+void pk_timer ();
+int pk_ctloutput ();
+void pk_init ();
struct protosw ccittsw[] = {
#ifdef XE
diff --git a/sys/netccitt/hd_debug.c b/sys/netccitt/hd_debug.c
index 0da19c0068df..09a44de9472f 100644
--- a/sys/netccitt/hd_debug.c
+++ b/sys/netccitt/hd_debug.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)hd_debug.c 7.5 (Berkeley) 5/29/91
- * $Id: hd_debug.c,v 1.2 1993/10/16 19:46:34 rgrimes Exp $
+ * $Id: hd_debug.c,v 1.3 1993/11/25 01:34:16 wollman Exp $
*/
#include "param.h"
@@ -68,9 +68,11 @@ struct hdlctrace {
int lasttracelogged, freezetrace;
#endif
+void
hd_trace (hdp, direction, frame)
-struct hdcb *hdp;
-register struct Hdlc_frame *frame;
+ struct hdcb *hdp;
+ int direction;
+ register struct Hdlc_frame *frame;
{
register char *s;
register int nr, pf, ns, i;
diff --git a/sys/netccitt/hd_input.c b/sys/netccitt/hd_input.c
index 1c4cb365b30f..771c295896f1 100644
--- a/sys/netccitt/hd_input.c
+++ b/sys/netccitt/hd_input.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* From: @(#)hd_input.c 7.7 (Berkeley) 5/29/91
- * $Id: hd_input.c,v 1.2 1993/09/09 23:20:21 rgrimes Exp $
+ * $Id: hd_input.c,v 1.3 1993/11/25 01:34:18 wollman Exp $
*/
#include "param.h"
@@ -58,13 +58,13 @@
/*
* forward references
*/
-static
+static void
frame_reject (struct hdcb *hdp, int rejectcode, struct Hdlc_iframe *frame);
-static
+static void
rej_routine (struct hdcb *hdp, int rejnr);
-static
+static void
free_iframes (struct hdcb *hdp, int *nr, int finalbit);
/*
@@ -74,6 +74,7 @@ free_iframes (struct hdcb *hdp, int *nr, int finalbit);
* completed reading a frame.
*/
+void
hdintr ()
{
register struct mbuf *m;
@@ -128,9 +129,10 @@ hdintr ()
pkintr ();
}
+int
process_rxframe (hdp, fbuf)
-register struct hdcb *hdp;
-register struct mbuf *fbuf;
+ register struct hdcb *hdp;
+ register struct mbuf *fbuf;
{
register int queued = FALSE, frametype, pf;
register struct Hdlc_frame *frame;
@@ -326,10 +328,11 @@ register struct mbuf *fbuf;
return (queued);
}
+int
process_iframe (hdp, fbuf, frame)
-register struct hdcb *hdp;
-struct mbuf *fbuf;
-register struct Hdlc_iframe *frame;
+ register struct hdcb *hdp;
+ struct mbuf *fbuf;
+ register struct Hdlc_iframe *frame;
{
register int nr = frame -> nr,
ns = frame -> ns,
@@ -454,11 +457,11 @@ int rear,
* condition Y (frame length error) are handled elsewhere.
*/
-static
+static void
frame_reject (hdp, rejectcode, frame)
-struct hdcb *hdp;
-int rejectcode;
-struct Hdlc_iframe *frame;
+ struct hdcb *hdp;
+ int rejectcode;
+ struct Hdlc_iframe *frame;
{
register struct Frmr_frame *frmr = &hd_frmr;
@@ -502,10 +505,11 @@ struct Hdlc_iframe *frame;
* frames is done here.
*/
+void
process_sframe (hdp, frame, frametype)
-register struct hdcb *hdp;
-register struct Hdlc_sframe *frame;
-int frametype;
+ register struct hdcb *hdp;
+ register struct Hdlc_sframe *frame;
+ int frametype;
{
register int nr = frame -> nr, pf = frame -> pf, pollbit = 0;
@@ -559,8 +563,9 @@ int frametype;
bool
valid_nr (hdp, nr, finalbit)
-register struct hdcb *hdp;
-register int finalbit;
+ register struct hdcb *hdp;
+ int nr;
+ register int finalbit;
{
/* Make sure it really does acknowledge something. */
if (hdp->hd_lastrxnr == nr)
@@ -604,10 +609,10 @@ register int finalbit;
* It then resets the Send State Variable V(S) to accomplish this.
*/
-static
+static void
rej_routine (hdp, rejnr)
-register struct hdcb *hdp;
-register int rejnr;
+ register struct hdcb *hdp;
+ register int rejnr;
{
register int anchor;
@@ -648,11 +653,11 @@ register int rejnr;
* when a previously written iframe is acknowledged.
*/
-static
+static void
free_iframes (hdp, nr, finalbit)
-register struct hdcb *hdp;
-int *nr;
-register int finalbit;
+ register struct hdcb *hdp;
+ int *nr;
+ register int finalbit;
{
register int i, k;
diff --git a/sys/netccitt/hd_output.c b/sys/netccitt/hd_output.c
index 6fab4656f1be..793dcb2b66ab 100644
--- a/sys/netccitt/hd_output.c
+++ b/sys/netccitt/hd_output.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)hd_output.c 7.6 (Berkeley) 5/29/91
- * $Id: hd_output.c,v 1.2 1993/10/16 19:46:36 rgrimes Exp $
+ * $Id: hd_output.c,v 1.3 1993/11/25 01:34:20 wollman Exp $
*/
#include "param.h"
@@ -64,9 +64,10 @@
* by the input and control routines of the HDLC layer.
*/
+void
hd_output (hdp, m0)
-register struct hdcb *hdp;
-struct mbuf *m0;
+ register struct hdcb *hdp;
+ struct mbuf *m0;
{
struct x25config *xcp;
register struct mbuf *m = m0;
@@ -100,8 +101,9 @@ struct mbuf *m0;
hd_start (hdp);
}
+void
hd_start (hdp)
-register struct hdcb *hdp;
+ register struct hdcb *hdp;
{
register struct mbuf *m;
@@ -141,10 +143,11 @@ register struct hdcb *hdp;
* of old frames is required.
*/
+void
hd_send_iframe (hdp, buf, poll_bit)
-register struct hdcb *hdp;
-register struct mbuf *buf;
-int poll_bit;
+ register struct hdcb *hdp;
+ register struct mbuf *buf;
+ int poll_bit;
{
register struct Hdlc_iframe *iframe;
struct mbuf *m;
@@ -192,9 +195,10 @@ int poll_bit;
SET_TIMER (hdp);
}
+void
hd_ifoutput(hdp, m)
-register struct mbuf *m;
-register struct hdcb *hdp;
+ register struct mbuf *m;
+ register struct hdcb *hdp;
{
/*
* Queue message on interface, and start output if interface
@@ -222,8 +226,9 @@ register struct hdcb *hdp;
* received an acknowledgement for a iframe.
*/
+void
hd_resend_iframe (hdp)
-register struct hdcb *hdp;
+ register struct hdcb *hdp;
{
if (hdp->hd_retxcnt++ < hd_n2) {
diff --git a/sys/netccitt/hd_subr.c b/sys/netccitt/hd_subr.c
index 014f046d432d..d72b10669755 100644
--- a/sys/netccitt/hd_subr.c
+++ b/sys/netccitt/hd_subr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)hd_subr.c 7.6 (Berkeley) 5/29/91
- * $Id: hd_subr.c,v 1.2 1993/10/16 19:46:37 rgrimes Exp $
+ * $Id: hd_subr.c,v 1.3 1993/11/25 01:34:21 wollman Exp $
*/
#include "param.h"
@@ -55,14 +55,17 @@
#include "hd_var.h"
#include "x25.h"
+void
hd_init ()
{
hdintrq.ifq_maxlen = IFQ_MAXLEN;
}
+int
hd_ctlinput (prc, addr)
-struct sockaddr *addr;
+ int prc;
+ struct sockaddr *addr;
{
register struct x25config *xcp = (struct x25config *)addr;
register struct hdcb *hdp;
@@ -125,8 +128,9 @@ struct sockaddr *addr;
return (0);
}
+void
hd_initvars (hdp)
-register struct hdcb *hdp;
+ register struct hdcb *hdp;
{
register struct mbuf *m;
register int i;
@@ -151,9 +155,10 @@ register struct hdcb *hdp;
hdp->hd_condition = 0;
}
+int
hd_decode (hdp, frame)
-register struct hdcb *hdp;
-struct Hdlc_frame *frame;
+ register struct hdcb *hdp;
+ struct Hdlc_frame *frame;
{
register int frametype = ILLEGAL;
register struct Hdlc_iframe *iframe = (struct Hdlc_iframe *) frame;
@@ -216,9 +221,10 @@ struct Hdlc_frame *frame;
* Only supervisory or unnumbered frames are processed.
*/
+void
hd_writeinternal (hdp, frametype, pf)
-register struct hdcb *hdp;
-register int frametype, pf;
+ register struct hdcb *hdp;
+ register int frametype, pf;
{
register struct mbuf *buf;
struct Hdlc_frame *frame;
@@ -315,9 +321,10 @@ struct hdtxq *q;
return (m);
}
+void
hd_append (q, m)
-register struct hdtxq *q;
-register struct mbuf *m;
+ register struct hdtxq *q;
+ register struct mbuf *m;
{
m -> m_act = NULL;
@@ -328,8 +335,9 @@ register struct mbuf *m;
q -> tail = m;
}
+void
hd_flush (ifp)
-struct ifnet *ifp;
+ struct ifnet *ifp;
{
register struct mbuf *m;
register int s;
@@ -344,9 +352,10 @@ struct ifnet *ifp;
}
}
+void
hd_message (hdp, msg)
-struct hdcb *hdp;
-char *msg;
+ struct hdcb *hdp;
+ const char *msg;
{
char *format_ntn ();
diff --git a/sys/netccitt/hd_timer.c b/sys/netccitt/hd_timer.c
index fc68b147f82d..88c8987788ef 100644
--- a/sys/netccitt/hd_timer.c
+++ b/sys/netccitt/hd_timer.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)hd_timer.c 7.4 (Berkeley) 5/29/91
- * $Id: hd_timer.c,v 1.2 1993/10/16 19:46:40 rgrimes Exp $
+ * $Id: hd_timer.c,v 1.3 1993/11/25 01:34:22 wollman Exp $
*/
#include "param.h"
@@ -71,6 +71,7 @@ int hd_n2 = N2;
* amount - if expired then process the event.
*/
+void
hd_timer ()
{
register struct hdcb *hdp;
diff --git a/sys/netccitt/hd_var.h b/sys/netccitt/hd_var.h
index b87e8da8f0d3..df87eb6cf21a 100644
--- a/sys/netccitt/hd_var.h
+++ b/sys/netccitt/hd_var.h
@@ -36,9 +36,12 @@
* SUCH DAMAGE.
*
* from: @(#)hd_var.h 7.4 (Berkeley) 5/29/91
- * $Id: hd_var.h,v 1.2 1993/10/16 19:46:41 rgrimes Exp $
+ * $Id: hd_var.h,v 1.4 1993/11/25 01:34:22 wollman Exp $
*/
+#ifndef _NETCCITT_HD_VAR_H_
+#define _NETCCITT_HD_VAR_H_ 1
+
/*
*
* hdlc control block
@@ -105,4 +108,13 @@ struct ifqueue hdintrq; /* hdlc packet input queue */
int hd_t1; /* timer T1 value */
int hd_t3; /* RR send timer */
int hd_n2; /* frame retransmission limit */
-#endif
+
+extern void process_sframe(struct hdcb *, struct Hdlc_sframe *, int);
+extern void hd_start(struct hdcb *);
+extern void hd_send_iframe(struct hdcb *, struct mbuf *, int);
+extern void hd_writeinternal(struct hdcb *, int, int);
+extern void hd_flush(struct ifnet *);
+extern void hd_message(struct hdcb *, const char *);
+
+#endif /* KERNEL */
+#endif /* _NETCCITT_HD_VAR_H_ */
diff --git a/sys/netccitt/hdlc.h b/sys/netccitt/hdlc.h
index 7faa6f51bb1d..313154df9ba4 100644
--- a/sys/netccitt/hdlc.h
+++ b/sys/netccitt/hdlc.h
@@ -36,9 +36,12 @@
* SUCH DAMAGE.
*
* from: @(#)hdlc.h 7.4 (Berkeley) 5/6/91
- * $Id: hdlc.h,v 1.2 1993/10/16 19:46:43 rgrimes Exp $
+ * $Id: hdlc.h,v 1.3 1993/11/07 17:47:24 wollman Exp $
*/
+#ifndef _NETCCITT_HDLC_H_
+#define _NETCCITT_HDLC_H_ 1
+
#ifndef ORDER4
#define FALSE 0
#define TRUE 1
@@ -152,6 +155,9 @@ struct Hdlc_frame {
#define TX 0
#define RX 1
+#ifdef KERNEL
bool range_check ();
bool valid_nr ();
struct mbuf *hd_remove ();
+#endif /* KERNEL */
+#endif /* _NETCCITT_HDLC_H_ */
diff --git a/sys/netccitt/if_x25subr.c b/sys/netccitt/if_x25subr.c
index ac2095b4ed90..511369646a69 100644
--- a/sys/netccitt/if_x25subr.c
+++ b/sys/netccitt/if_x25subr.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)if_x25subr.c 7.14 (Berkeley) 6/26/91
- * $Id: if_x25subr.c,v 1.2 1993/10/16 19:46:44 rgrimes Exp $
+ * $Id: if_x25subr.c,v 1.5 1993/12/20 14:58:35 wollman Exp $
*/
#include "param.h"
@@ -115,8 +115,10 @@ register struct rtentry *rt;
}
return lx;
}
+
+void
x25_lxfree(lx)
-register struct llinfo_x25 *lx;
+ register struct llinfo_x25 *lx;
{
register struct rtentry *rt = lx->lx_rt;
register struct pklcd *lcp = lx->lx_lcd;
@@ -136,9 +138,10 @@ register struct llinfo_x25 *lx;
/*
* Process a x25 packet as datagram;
*/
+void
x25_ifinput(lcp, m)
-struct pklcd *lcp;
-register struct mbuf *m;
+ struct pklcd *lcp;
+ register struct mbuf *m;
{
struct llinfo_x25 *lx = (struct llinfo_x25 *)lcp->lcd_upnext;
register struct ifnet *ifp;
@@ -200,9 +203,11 @@ register struct mbuf *m;
}
splx(s);
}
+
+void
x25_connect_callback(lcp, m)
-register struct pklcd *lcp;
-register struct mbuf *m;
+ register struct pklcd *lcp;
+ register struct mbuf *m;
{
register struct llinfo_x25 *lx = (struct llinfo_x25 *)lcp->lcd_upnext;
if (m == 0)
@@ -228,13 +233,13 @@ register struct mbuf *m;
#define SA(p) ((struct sockaddr *)(p))
#define RT(p) ((struct rtentry *)(p))
+void
x25_dgram_incoming(lcp, m0)
-register struct pklcd *lcp;
-struct mbuf *m0;
+ register struct pklcd *lcp;
+ struct mbuf *m0;
{
register struct rtentry *rt, *nrt;
register struct mbuf *m = m0->m_next; /* m0 has calling sockaddr_x25 */
- int x25_rtrequest();
rt = rtalloc1(SA(&lcp->lcd_faddr), 0);
if (rt == 0) {
@@ -262,21 +267,22 @@ refuse: lcp->lcd_upper = 0;
/*
* X.25 output routine.
*/
+int
x25_ifoutput(ifp, m0, dst, rt)
-struct ifnet *ifp;
-struct mbuf *m0;
-struct sockaddr *dst;
-register struct rtentry *rt;
+ struct ifnet *ifp;
+ struct mbuf *m0;
+ struct sockaddr *dst;
+ register struct rtentry *rt;
{
register struct mbuf *m = m0;
register struct llinfo_x25 *lx;
struct pklcd *lcp;
int s, error = 0;
-int plen;
-for (plen = 0; m; m = m->m_next)
- plen += m->m_len;
-m = m0;
+ int plen;
+ for (plen = 0; m; m = m->m_next)
+ plen += m->m_len;
+ m = m0;
if ((ifp->if_flags & IFF_UP) == 0)
senderr(ENETDOWN);
@@ -328,7 +334,7 @@ next_circuit:
if (dst->sa_family == AF_INET &&
ifp->if_type == IFT_X25DDN &&
rt->rt_gateway->sa_family != AF_CCITT)
- x25_ddnip_to_ccitt(dst, rt);
+ x25_ddnip_to_ccitt((struct sockaddr_in *)dst, rt);
if (rt->rt_gateway->sa_family != AF_CCITT) {
if ((rt->rt_flags & RTF_XRESOLVE) == 0)
senderr(EHOSTUNREACH);
@@ -376,8 +382,9 @@ next_circuit:
/*
* Simpleminded timer routine.
*/
+void
x25_iftimeout(ifp)
-struct ifnet *ifp;
+ struct ifnet *ifp;
{
register struct pkcb *pkcb = 0;
register struct pklcd **lcpp, *lcp;
@@ -399,9 +406,11 @@ struct ifnet *ifp;
* This routine gets called when validating additions of new routes
* or deletions of old ones.
*/
+void
x25_rtrequest(cmd, rt, dst)
-register struct rtentry *rt;
-struct sockaddr *dst;
+ int cmd;
+ register struct rtentry *rt;
+ struct sockaddr *dst;
{
register struct llinfo_x25 *lx = (struct llinfo_x25 *)rt->rt_llinfo;
register struct sockaddr_x25 *sa =(struct sockaddr_x25 *)rt->rt_gateway;
@@ -432,7 +441,8 @@ struct sockaddr *dst;
if (lcp->lcd_ceaddr &&
Bcmp(rt->rt_gateway, lcp->lcd_ceaddr,
lcp->lcd_ceaddr->x25_len) != 0) {
- x25_rtinvert(RTM_DELETE, lcp->lcd_ceaddr, rt);
+ x25_rtinvert(RTM_DELETE,
+ (struct sockaddr *)lcp->lcd_ceaddr, rt);
lcp->lcd_upper = 0;
pk_disconnect(lcp);
}
@@ -443,9 +453,11 @@ struct sockaddr *dst;
int x25_dont_rtinvert = 0;
+void
x25_rtinvert(cmd, sa, rt)
-register struct sockaddr *sa;
-register struct rtentry *rt;
+ int cmd;
+ register struct sockaddr *sa;
+ register struct rtentry *rt;
{
struct rtentry *rt2 = 0;
/*
@@ -496,9 +508,10 @@ union imp_addr {
* The following is totally bogus and here only to preserve
* the IP to X.25 translation.
*/
+void
x25_ddnip_to_ccitt(src, rt)
-struct sockaddr_in *src;
-register struct rtentry *rt;
+ struct sockaddr_in *src;
+ register struct rtentry *rt;
{
register struct sockaddr_x25 *dst = (struct sockaddr_x25 *)rt->rt_gateway;
union imp_addr imp_addr;
@@ -548,9 +561,11 @@ register struct rtentry *rt;
* This is a utility routine to be called by x25 devices when a
* call request is honored with the intent of starting datagram forwarding.
*/
+void
x25_dg_rtinit(dst, ia, af)
-struct sockaddr_x25 *dst;
-register struct x25_ifaddr *ia;
+ struct sockaddr_x25 *dst;
+ register struct x25_ifaddr *ia;
+ int af;
{
struct sockaddr *sa = 0;
struct rtentry *rt;
@@ -603,7 +618,7 @@ register struct x25_ifaddr *ia;
imp_no = temp & 0xff;
break;
default:
- return (0L);
+ return;
}
imp_addr.ip = my_addr;
if ((imp_addr.imp.s_net & 0x80) == 0x00) {
@@ -627,7 +642,7 @@ register struct x25_ifaddr *ia;
* This uses the X25 routing table to do inverse
* lookup of x25 address to sockaddr.
*/
- if (rt = rtalloc1(dst, 0)) {
+ if (rt = rtalloc1((struct sockaddr *)dst, 0)) {
sa = rt->rt_gateway;
rt->rt_refcnt--;
}
@@ -655,6 +670,7 @@ struct sockaddr_x25 x25_dgmask = {
int x25_startproto = 1;
struct radix_tree_head *x25_rnhead;
+void
pk_init()
{
/*
@@ -674,18 +690,19 @@ pk_init()
struct x25_dgproto {
u_char spi;
u_char spilen;
- int (*f)();
+ void (*f)(struct pklcd *, struct mbuf *);
} x25_dgprototab[] = {
#if defined(ISO) && defined(TPCONS)
-{ 0x0, 0, tp_incoming},
+{ 0x0, 0, (void (*)(struct pklcd *, struct mbuf *))tp_incoming},
#endif
{ 0xcc, 1, x25_dgram_incoming},
{ 0xcd, 1, x25_dgram_incoming},
{ 0x81, 1, x25_dgram_incoming},
};
+int
pk_user_protolisten(info)
-register u_char *info;
+ register u_char *info;
{
register struct x25_dgproto *dp = x25_dgprototab
+ ((sizeof x25_dgprototab) / (sizeof *dp));
@@ -713,9 +730,10 @@ gotspi: if (info[1])
* routing entry. If freshly allocated, it glues back the vc from
* the rtentry to the socket.
*/
+int
pk_rtattach(so, m0)
-register struct socket *so;
-struct mbuf *m0;
+ register struct socket *so;
+ struct mbuf *m0;
{
register struct pklcd *lcp = (struct pklcd *)so->so_pcb;
register struct mbuf *m = m0;
@@ -774,9 +792,11 @@ struct mbuf *m0;
}
return 0;
}
+
+void
x25_rtattach(lcp0, rt)
-register struct pklcd *lcp0;
-struct rtentry *rt;
+ register struct pklcd *lcp0;
+ struct rtentry *rt;
{
register struct llinfo_x25 *lx = (struct llinfo_x25 *)rt->rt_llinfo;
register struct pklcd *lcp;
@@ -789,7 +809,7 @@ struct rtentry *rt;
} else {
lx = x25_lxalloc(rt);
if (lx == 0)
- return ENOBUFS;
+ return;
}
}
lx->lx_lcd = lcp = lcp0;
diff --git a/sys/netccitt/pk.h b/sys/netccitt/pk.h
index cd0d34c13389..afccb374d219 100644
--- a/sys/netccitt/pk.h
+++ b/sys/netccitt/pk.h
@@ -36,9 +36,12 @@
* SUCH DAMAGE.
*
* from: @(#)pk.h 7.8 (Berkeley) 4/30/91
- * $Id: pk.h,v 1.2 1993/10/16 19:46:46 rgrimes Exp $
+ * $Id: pk.h,v 1.3 1993/11/07 17:47:25 wollman Exp $
*/
+#ifndef _NETCCITT_PK_H_
+#define _NETCCITT_PK_H_ 1
+
/*
*
* X.25 Packet Level Definitions:
@@ -191,3 +194,4 @@ struct mbuf *pk_template ();
#define DIAG_TYPE 14 * MAXSTATES
#define INVALID_PACKET 15 * MAXSTATES
#define DELETE_PACKET INVALID_PACKET
+#endif /* _NETCCITT_PK_H_ */
diff --git a/sys/netccitt/pk_acct.c b/sys/netccitt/pk_acct.c
index c2b0789bbd0c..d7f31809fd82 100644
--- a/sys/netccitt/pk_acct.c
+++ b/sys/netccitt/pk_acct.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_acct.c 7.6 (Berkeley) 6/26/91
- * $Id: pk_acct.c,v 1.2 1993/10/16 19:46:47 rgrimes Exp $
+ * $Id: pk_acct.c,v 1.3 1993/11/25 01:34:27 wollman Exp $
*/
#include "param.h"
@@ -62,6 +62,7 @@ struct vnode *pkacctp;
* Turn on packet accounting
*/
+int
pk_accton (path)
char *path;
{
@@ -95,8 +96,9 @@ pk_accton (path)
* Write a record on the accounting file.
*/
+void
pk_acct (lcp)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
{
register struct vnode *vp;
register struct sockaddr_x25 *sa;
diff --git a/sys/netccitt/pk_debug.c b/sys/netccitt/pk_debug.c
index 0436dbb60fe2..a1f67de77b4d 100644
--- a/sys/netccitt/pk_debug.c
+++ b/sys/netccitt/pk_debug.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_debug.c 7.7 (Berkeley) 5/9/91
- * $Id: pk_debug.c,v 1.2 1993/10/16 19:46:48 rgrimes Exp $
+ * $Id: pk_debug.c,v 1.4 1993/12/19 00:52:17 wollman Exp $
*/
#include "param.h"
@@ -53,13 +53,13 @@
#include "pk.h"
#include "pk_var.h"
-char *pk_state[] = {
+const char *const pk_state[] = {
"Listen", "Ready", "Received-Call",
"Sent-Call", "Data-Transfer","Received-Clear",
"Sent-Clear",
};
-char *pk_name[] = {
+const char *const pk_name[] = {
"Call", "Call-Conf", "Clear",
"Clear-Conf", "Data", "Intr", "Intr-Conf",
"Rr", "Rnr", "Reset", "Reset-Conf",
@@ -67,10 +67,11 @@ char *pk_name[] = {
"Invalid"
};
+void
pk_trace (xcp, m, dir)
-struct x25config *xcp;
-register struct mbuf *m;
-char *dir;
+ struct x25config *xcp;
+ register struct mbuf *m;
+ const char *dir;
{
register char *s;
struct x25_packet *xp = mtod(m, struct x25_packet *);
@@ -91,9 +92,10 @@ char *dir;
printf ("\n");
}
+void
mbuf_cache(c, m)
-register struct mbuf_cache *c;
-struct mbuf *m;
+ register struct mbuf_cache *c;
+ struct mbuf *m;
{
register struct mbuf **mp;
diff --git a/sys/netccitt/pk_input.c b/sys/netccitt/pk_input.c
index fccb75606069..1445bed6ce14 100644
--- a/sys/netccitt/pk_input.c
+++ b/sys/netccitt/pk_input.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_input.c 7.14 (Berkeley) 7/16/91
- * $Id: pk_input.c,v 1.2 1993/10/16 19:46:50 rgrimes Exp $
+ * $Id: pk_input.c,v 1.5 1993/12/19 00:52:18 wollman Exp $
*/
#include "param.h"
@@ -101,13 +101,14 @@ caddr_t llnext;
return (pkp);
}
+int
pk_resize (pkp)
-register struct pkcb *pkp;
+ register struct pkcb *pkp;
{
struct pklcd *dev_lcp = 0;
struct x25config *xcp = pkp -> pk_xcp;
if (pkp -> pk_chan &&
- (pkp -> pk_maxlcn != xcp -> xc_maxlcn)) {
+ ((u_long)pkp -> pk_maxlcn != (u_long)xcp -> xc_maxlcn)) {
pk_restart (pkp, X25_RESTART_NETWORK_CONGESTION);
dev_lcp = pkp -> pk_chan[0];
free ((caddr_t)pkp -> pk_chan, M_IFADDR);
@@ -144,8 +145,10 @@ register struct pkcb *pkp;
* becomes operational, is reset, or when the link goes down.
*/
+int
pk_ctlinput (code, pkp)
-register struct pkcb *pkp;
+ int code;
+ register struct pkcb *pkp;
{
@@ -167,11 +170,13 @@ register struct pkcb *pkp;
}
return (0);
}
+
struct ifqueue pkintrq;
/*
* This routine is called if there are semi-smart devices that do HDLC
* in hardware and want to queue the packet and call level 3 directly
*/
+void
pkintr ()
{
register struct mbuf *m;
@@ -210,8 +215,9 @@ struct mbuf_cache pk_input_cache = {0 };
*
*/
+void
pk_input (m)
-register struct mbuf *m;
+ register struct mbuf *m;
{
register struct x25_packet *xp;
register struct pklcd *lcp;
@@ -255,7 +261,7 @@ register struct mbuf *m;
/* send response on lcd 0's output queue */
lcp = pkp -> pk_chan[0];
lcp -> lcd_template = pk_template (lcn, X25_CLEAR_CONFIRM);
- pk_output (lcp);
+ pk_output (lcp, 0);
m_freem (m);
return;
}
@@ -317,7 +323,7 @@ register struct mbuf *m;
case CLEAR + DATA_TRANSFER:
lcp -> lcd_state = RECEIVED_CLEAR;
lcp -> lcd_template = pk_template (lcp -> lcd_lcn, X25_CLEAR_CONFIRM);
- pk_output (lcp);
+ pk_output (lcp, 0);
pk_clearcause (pkp, xp);
if (lcp -> lcd_upper) {
MCHTYPE(m, MT_CONTROL);
@@ -455,7 +461,7 @@ register struct mbuf *m;
break;
lcp -> lcd_intrdata = xp -> packet_data;
lcp -> lcd_template = pk_template (lcp -> lcd_lcn, X25_INTERRUPT_CONFIRM);
- pk_output (lcp);
+ pk_output (lcp, 0);
m -> m_data += PKHEADERLN;
m -> m_len -= PKHEADERLN;
m -> m_pkthdr.len -= PKHEADERLN;
@@ -493,7 +499,7 @@ register struct mbuf *m;
}
if (lcp -> lcd_rnr_condition == TRUE)
lcp -> lcd_rnr_condition = FALSE;
- pk_output (lcp);
+ pk_output (lcp, 0);
break;
/*
@@ -528,7 +534,7 @@ register struct mbuf *m;
lcp -> lcd_rsn = MODULUS - 1;
lcp -> lcd_template = pk_template (lcp -> lcd_lcn, X25_RESET_CONFIRM);
- pk_output (lcp);
+ pk_output (lcp, 0);
pk_flush(lcp);
if (so == 0)
@@ -544,7 +550,7 @@ register struct mbuf *m;
case RESET_CONF + DATA_TRANSFER:
if (lcp -> lcd_reset_condition) {
lcp -> lcd_reset_condition = FALSE;
- pk_output (lcp);
+ pk_output (lcp, 0);
}
else
pk_procerror (RESET, lcp, "unexpected packet", 32);
@@ -581,7 +587,7 @@ register struct mbuf *m;
pk_restartcause (pkp, xp);
pkp -> pk_chan[0] -> lcd_template = pk_template (0,
X25_RESTART_CONFIRM);
- pk_output (pkp -> pk_chan[0]);
+ pk_output (pkp -> pk_chan[0], 0);
}
break;
@@ -623,10 +629,10 @@ register struct mbuf *m;
m_freem (m);
}
-static
+static void
prune_dnic(from, to, dnicname, xcp)
-char *from, *to, *dnicname;
-register struct x25config *xcp;
+ char *from, *to, *dnicname;
+ register struct x25config *xcp;
{
register char *cp1 = from, *cp2 = from;
if (xcp->xc_prepnd0 && *cp1 == '0') {
@@ -642,10 +648,11 @@ copyrest:
for (cp1 = dnicname; *cp2 = *cp1++;)
cp2++;
}
-/* static */
+
+static void
pk_simple_bsd (from, to, lower, len)
-register octet *from, *to;
-register len, lower;
+ register octet *from, *to;
+ register len, lower;
{
register int c;
while (--len >= 0) {
@@ -659,11 +666,12 @@ register len, lower;
*to = 0;
}
-/*static octet * */
+static void
pk_from_bcd (a, iscalling, sa, xcp)
-register struct x25_calladdr *a;
-register struct sockaddr_x25 *sa;
-register struct x25config *xcp;
+ register struct x25_calladdr *a;
+ int iscalling;
+ register struct sockaddr_x25 *sa;
+ register struct x25config *xcp;
{
octet buf[MAXADDRLN+1];
octet *cp;
@@ -689,15 +697,15 @@ register struct x25config *xcp;
bcopy ((caddr_t)buf, (caddr_t)sa -> x25_addr, count + 1);
}
-static
+static void
save_extra(m0, fp, so)
-struct mbuf *m0;
-octet *fp;
-struct socket *so;
+ struct mbuf *m0;
+ octet *fp;
+ struct socket *so;
{
- register struct mbuf *m;
+ register struct mbuf *m = 0;
struct cmsghdr cmsghdr;
- if (m = m_copym (m, 0, (int)M_COPYALL)) {
+ if (m = m_copym (m, 0, (int)M_COPYALL, M_DONTWAIT)) {
int off = fp - mtod (m0, octet *);
int len = m->m_pkthdr.len - off + sizeof (cmsghdr);
cmsghdr.cmsg_len = len;
@@ -719,9 +727,10 @@ struct socket *so;
* sockets awaiting connections.
*/
+void
pk_incoming_call (pkp, m0)
-struct mbuf *m0;
-struct pkcb *pkp;
+ struct pkcb *pkp;
+ struct mbuf *m0;
{
register struct pklcd *lcp = 0, *l;
register struct sockaddr_x25 *sa;
@@ -748,8 +757,10 @@ struct pkcb *pkp;
((a -> called_addrlen + a -> calling_addrlen + 1) / 2));
u += *u + 1;
udlen = min (16, ((octet *)xp) + len - u);
+#if 0
if (udlen < 0)
udlen = 0;
+#endif
pk_from_bcd (a, 1, sa, pkp -> pk_xcp); /* get calling address */
pk_parse_facilities (facp, sa);
bcopy ((caddr_t)u, sa -> x25_udata, udlen);
@@ -819,7 +830,7 @@ struct pkcb *pkp;
lcp -> lcd_flags &= ~X25_DBIT;
}
if (so) {
- pk_output (lcp);
+ pk_output (lcp, 0);
soisconnected (so);
if (so -> so_options & SO_OOBINLINE)
save_extra(m0, facp, so);
@@ -859,9 +870,10 @@ struct pkcb *pkp;
pk_clear (lcp, 0, 1);
}
+void
pk_call_accepted (lcp, m)
-struct pklcd *lcp;
-struct mbuf *m;
+ struct pklcd *lcp;
+ struct mbuf *m;
{
register struct x25_calladdr *ap;
register octet *fcp;
@@ -885,9 +897,10 @@ struct mbuf *m;
lcp -> lcd_upper(lcp, m);
}
+void
pk_parse_facilities (fcp, sa)
-register octet *fcp;
-register struct sockaddr_x25 *sa;
+ register octet *fcp;
+ register struct sockaddr_x25 *sa;
{
register octet *maxfcp;
diff --git a/sys/netccitt/pk_output.c b/sys/netccitt/pk_output.c
index e907c4dd785d..8b217179a6e5 100644
--- a/sys/netccitt/pk_output.c
+++ b/sys/netccitt/pk_output.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_output.c 7.10 (Berkeley) 5/29/91
- * $Id: pk_output.c,v 1.2 1993/10/16 19:46:51 rgrimes Exp $
+ * $Id: pk_output.c,v 1.4 1993/12/19 00:52:19 wollman Exp $
*/
#include "param.h"
@@ -54,10 +54,17 @@
#include "pk_var.h"
struct mbuf_cache pk_output_cache = {0 };
-struct mbuf *nextpk ();
+static struct mbuf *nextpk (struct pklcd *);
-pk_output (lcp)
-register struct pklcd *lcp;
+/*
+ * The `n' argument is just there to make if_x25subr.c happy. We
+ * don't actually do anything with it, although meybe we should.
+ * All the other code passes in a null pointer.
+ */
+int
+pk_output (lcp, n)
+ register struct pklcd *lcp;
+ struct mbuf *n;
{
register struct x25_packet *xp;
register struct mbuf *m;
@@ -65,7 +72,7 @@ register struct pklcd *lcp;
if (lcp == 0 || pkp == 0) {
printf ("pk_output: zero arg\n");
- return;
+ return -1;
}
while ((m = nextpk (lcp)) != NULL) {
@@ -166,7 +173,7 @@ register struct pklcd *lcp;
default:
m_freem (m);
- return;
+ return 0;
}
/* Trace the packet. */
@@ -177,6 +184,7 @@ register struct pklcd *lcp;
mbuf_cache(&pk_output_cache, m);
(*pkp -> pk_lloutput) (pkp -> pk_llnext, m);
}
+ return 0;
}
/*
@@ -184,9 +192,9 @@ register struct pklcd *lcp;
* packet is composed of one or more mbufs.
*/
-struct mbuf *
+static struct mbuf *
nextpk (lcp)
-struct pklcd *lcp;
+ struct pklcd *lcp;
{
register struct mbuf *m, *n;
struct socket *so = lcp -> lcd_so;
diff --git a/sys/netccitt/pk_subr.c b/sys/netccitt/pk_subr.c
index 6b4c98772e88..f8da003dc027 100644
--- a/sys/netccitt/pk_subr.c
+++ b/sys/netccitt/pk_subr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_subr.c 7.16 (Berkeley) 6/6/91
- * $Id: pk_subr.c,v 1.2 1993/10/16 19:46:53 rgrimes Exp $
+ * $Id: pk_subr.c,v 1.5 1993/12/19 00:52:20 wollman Exp $
*/
#include "param.h"
@@ -48,6 +48,7 @@
#include "errno.h"
#include "time.h"
#include "kernel.h"
+#include "machine/stdarg.h"
#include "../net/if.h"
@@ -74,7 +75,6 @@ struct socket *so;
{
register struct pklcd *lcp;
register int error = ENOBUFS;
- int pk_output();
MALLOC(lcp, struct pklcd *, sizeof (*lcp), M_PCB, M_NOWAIT);
if (lcp) {
@@ -101,8 +101,9 @@ struct socket *so;
* Disconnect X.25 protocol from socket.
*/
+void
pk_disconnect (lcp)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
{
register struct socket *so = lcp -> lcd_so;
register struct pklcd *l, *p;
@@ -145,8 +146,9 @@ register struct pklcd *lcp;
* connection and internal descriptors. Wake up any sleepers.
*/
+void
pk_close (lcp)
-struct pklcd *lcp;
+ struct pklcd *lcp;
{
register struct socket *so = lcp -> lcd_so;
@@ -157,7 +159,7 @@ struct pklcd *lcp;
so -> so_pcb = 0;
soisdisconnected (so);
- /* sofree (so); /* gak!!! you can't do that here */
+ /* sofree (so);*/ /* gak!!! you can't do that here */
}
/*
@@ -206,9 +208,10 @@ int lcn, type;
* state.
*/
+void
pk_restart (pkp, restart_cause)
-register struct pkcb *pkp;
-int restart_cause;
+ register struct pkcb *pkp;
+ int restart_cause;
{
register struct mbuf *m;
register struct pklcd *lcp;
@@ -239,7 +242,7 @@ int restart_cause;
m -> m_pkthdr.len = m -> m_len += 2;
mtod (m, struct x25_packet *) -> packet_data = 0; /* DTE only */
mtod (m, octet *)[4] = restart_cause;
- pk_output (lcp);
+ pk_output (lcp, 0);
}
@@ -247,8 +250,9 @@ int restart_cause;
* This procedure frees up the Logical Channel Descripter.
*/
+void
pk_freelcd (lcp)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
{
if (lcp == NULL)
return;
@@ -268,9 +272,10 @@ register struct pklcd *lcp;
* Call User Data field.
*/
+int
pk_bind (lcp, nam)
-struct pklcd *lcp;
-struct mbuf *nam;
+ struct pklcd *lcp;
+ struct mbuf *nam;
{
register struct pkcb *pkp;
register struct pklcd *pp;
@@ -316,8 +321,9 @@ struct mbuf *nam;
/*
* Include a bound control block in the list of listeners.
*/
+int
pk_listen (lcp)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
{
register struct pklcd **pp;
@@ -341,8 +347,11 @@ register struct pklcd *lcp;
/*
* Include a listening control block for the benefit of other protocols.
*/
+int
pk_protolisten (spi, spilen, callee)
-int (*callee) ();
+ int spi;
+ int spilen;
+ void (*callee) ();
{
register struct pklcd *lcp = pk_attach ((struct socket *)0);
register struct mbuf *nam;
@@ -375,10 +384,11 @@ int (*callee) ();
* by the remote DTE.
*/
+void
pk_assoc (pkp, lcp, sa)
-register struct pkcb *pkp;
-register struct pklcd *lcp;
-register struct sockaddr_x25 *sa;
+ register struct pkcb *pkp;
+ register struct pklcd *lcp;
+ register struct sockaddr_x25 *sa;
{
lcp -> lcd_pkp = pkp;
@@ -400,11 +410,12 @@ register struct sockaddr_x25 *sa;
lcp -> lcd_stime = time.tv_sec;
}
+int
pk_connect (lcp, sa)
-register struct pklcd *lcp;
-register struct sockaddr_x25 *sa;
+ register struct pklcd *lcp;
+ register struct sockaddr_x25 *sa;
{
- register struct pkcb *pkp;
+ register struct pkcb *pkp = 0;
if (sa -> x25_addr[0] == '\0')
return (EDESTADDRREQ);
@@ -449,10 +460,11 @@ struct bcdinfo {
* address, facilities fields and the user data field.
*/
+void
pk_callrequest (lcp, sa, xcp)
-struct pklcd *lcp;
-register struct sockaddr_x25 *sa;
-register struct x25config *xcp;
+ struct pklcd *lcp;
+ register struct sockaddr_x25 *sa;
+ register struct x25config *xcp;
{
register struct x25_calladdr *a;
register struct mbuf *m = lcp -> lcd_template;
@@ -480,9 +492,11 @@ register struct x25config *xcp;
m_copyback (m, m -> m_pkthdr.len, sa -> x25_udlen, sa -> x25_udata);
}
+void
pk_build_facilities (m, sa, type)
-register struct mbuf *m;
-struct sockaddr_x25 *sa;
+ register struct mbuf *m;
+ struct sockaddr_x25 *sa;
+ int type;
{
register octet *cp;
register octet *fcp;
@@ -516,10 +530,11 @@ struct sockaddr_x25 *sa;
m -> m_pkthdr.len = (m -> m_len += *cp + 1);
}
+int
to_bcd (b, sa, xcp)
-register struct bcdinfo *b;
-struct sockaddr_x25 *sa;
-register struct x25config *xcp;
+ register struct bcdinfo *b;
+ struct sockaddr_x25 *sa;
+ register struct x25config *xcp;
{
register char *x = sa -> x25_addr;
unsigned start = b -> posn;
@@ -558,8 +573,9 @@ register struct x25config *xcp;
* search is from the highest number to lowest number (DTE).
*/
+int
pk_getlcn (pkp)
-register struct pkcb *pkp;
+ register struct pkcb *pkp;
{
register int i;
@@ -576,9 +592,11 @@ register struct pkcb *pkp;
* This procedure sends a CLEAR request packet. The lc state is
* set to "SENT_CLEAR".
*/
-
+void
pk_clear (lcp, diagnostic, abortive)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
+ int diagnostic;
+ int abortive;
{
register struct mbuf *m = pk_template (lcp -> lcd_lcn, X25_CLEAR);
@@ -597,7 +615,7 @@ register struct pklcd *lcp;
struct sockbuf *sb = so ? & so -> so_snd : & lcp -> lcd_sb;
sbappendrecord (sb, m);
}
- pk_output (lcp);
+ pk_output (lcp, 0);
}
@@ -606,8 +624,11 @@ register struct pklcd *lcp;
* inward data flow, if the current state changes (blocked ==> open or
* vice versa), or if forced to generate one. One forces RNR's to ack data.
*/
+void
pk_flowcontrol (lcp, inhibit, forced)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
+ int inhibit;
+ int forced;
{
inhibit = (inhibit != 0);
if (lcp == 0 || lcp -> lcd_state != DATA_TRANSFER ||
@@ -616,7 +637,7 @@ register struct pklcd *lcp;
lcp -> lcd_rxrnr_condition = inhibit;
lcp -> lcd_template =
pk_template (lcp -> lcd_lcn, inhibit ? X25_RNR : X25_RR);
- pk_output (lcp);
+ pk_output (lcp, 0);
}
/*
@@ -624,9 +645,10 @@ register struct pklcd *lcp;
* virtual circuit.
*/
-static
+static void
pk_reset (lcp, diagnostic)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
+ int diagnostic;
{
register struct mbuf *m;
register struct socket *so = lcp -> lcd_so;
@@ -650,7 +672,7 @@ register struct pklcd *lcp;
m -> m_pkthdr.len = m -> m_len += 2;
mtod (m, struct x25_packet *) -> packet_data = 0;
mtod (m, octet *)[4] = diagnostic;
- pk_output (lcp);
+ pk_output (lcp, 0);
}
@@ -659,8 +681,9 @@ register struct pklcd *lcp;
* virtual circuit.
*/
+void
pk_flush (lcp)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
{
register struct socket *so;
@@ -685,10 +708,12 @@ register struct pklcd *lcp;
/*
* This procedure handles all local protocol procedure errors.
*/
-
+void
pk_procerror (error, lcp, errstr, diagnostic)
-register struct pklcd *lcp;
-char *errstr;
+ int error;
+ register struct pklcd *lcp;
+ const char *errstr;
+ int diagnostic;
{
pk_message (lcp -> lcd_lcn, lcp -> lcd_pkp -> pk_xcp, errstr);
@@ -712,10 +737,10 @@ char *errstr;
* and process the P(R) values received in the DATA, RR OR RNR
* packets.
*/
-
+int
pk_ack (lcp, pr)
-struct pklcd *lcp;
-unsigned pr;
+ struct pklcd *lcp;
+ unsigned pr;
{
register struct socket *so = lcp -> lcd_so;
@@ -750,9 +775,9 @@ unsigned pr;
* This procedure decodes the X.25 level 3 packet returning a
* code to be used in switchs or arrays.
*/
-
+int
pk_decode (xp)
-register struct x25_packet *xp;
+ register struct x25_packet *xp;
{
register int type;
@@ -843,10 +868,10 @@ register struct x25_packet *xp;
* A restart packet has been received. Print out the reason
* for the restart.
*/
-
+void
pk_restartcause (pkp, xp)
-struct pkcb *pkp;
-register struct x25_packet *xp;
+ struct pkcb *pkp;
+ register struct x25_packet *xp;
{
register struct x25config *xcp = pkp -> pk_xcp;
register int lcn = LCN(xp);
@@ -878,10 +903,10 @@ int Reset_cause[] = {
/*
* A reset packet has arrived. Return the cause to the user.
*/
-
+void
pk_resetcause (pkp, xp)
-struct pkcb *pkp;
-register struct x25_packet *xp;
+ struct pkcb *pkp;
+ register struct x25_packet *xp;
{
register struct pklcd *lcp =
pkp -> pk_chan[LCN(xp)];
@@ -890,8 +915,9 @@ register struct x25_packet *xp;
if (code > MAXRESETCAUSE)
code = 7; /* EXRNCG */
- pk_message(LCN(xp), lcp -> lcd_pkp, "reset code 0x%x, diagnostic 0x%x",
- xp -> packet_data, 4[(u_char *)xp]);
+ pk_message(LCN(xp), (struct x25config *)lcp -> lcd_pkp,
+ "reset code 0x%x, diagnostic 0x%x",
+ xp -> packet_data, 4[(u_char *)xp]);
if (lcp -> lcd_so)
lcp -> lcd_so -> so_error = Reset_cause[code];
@@ -908,10 +934,10 @@ int Clear_cause[] = {
/*
* A clear packet has arrived. Return the cause to the user.
*/
-
+void
pk_clearcause (pkp, xp)
-struct pkcb *pkp;
-register struct x25_packet *xp;
+ struct pkcb *pkp;
+ register struct x25_packet *xp;
{
register struct pklcd *lcp =
pkp -> pk_chan[LCN(xp)];
@@ -932,10 +958,11 @@ register struct x25config *xcp;
}
/* VARARGS1 */
-pk_message (lcn, xcp, fmt, a1, a2, a3, a4, a5, a6)
-struct x25config *xcp;
-char *fmt;
+void
+pk_message (int lcn, struct x25config *xcp, const char *fmt, ...)
{
+ va_list args;
+ va_start(args, fmt);
if (lcn)
if (pkcbhead -> pk_next)
@@ -948,13 +975,17 @@ char *fmt;
else
printf ("X.25: ");
- printf (fmt, a1, a2, a3, a4, a5, a6);
- printf ("\n");
+ printf ("%r\n", fmt, args);
+ va_end(args);
}
+int
pk_fragment (lcp, m0, qbit, mbit, wait)
-struct mbuf *m0;
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
+ struct mbuf *m0;
+ int qbit;
+ int mbit;
+ int wait;
{
register struct mbuf *m = m0;
register struct x25_packet *xp;
@@ -1013,61 +1044,3 @@ abort:
return ENOBUFS;
}
-struct mbuf *
-m_split (m0, len0, wait)
-register struct mbuf *m0;
-int len0;
-{
- register struct mbuf *m, *n;
- unsigned len = len0, remain;
-
- for (m = m0; m && len > m -> m_len; m = m -> m_next)
- len -= m -> m_len;
- if (m == 0)
- return (0);
- remain = m -> m_len - len;
- if (m0 -> m_flags & M_PKTHDR) {
- MGETHDR(n, wait, m0 -> m_type);
- if (n == 0)
- return (0);
- n -> m_pkthdr.rcvif = m0 -> m_pkthdr.rcvif;
- n -> m_pkthdr.len = m0 -> m_pkthdr.len - len0;
- m0 -> m_pkthdr.len = len0;
- if (m -> m_flags & M_EXT)
- goto extpacket;
- if (remain > MHLEN) {
- /* m can't be the lead packet */
- MH_ALIGN(n, 0);
- n -> m_next = m_split (m, len, wait);
- if (n -> m_next == 0) {
- (void) m_free (n);
- return (0);
- } else
- return (n);
- } else
- MH_ALIGN(n, remain);
- } else if (remain == 0) {
- n = m -> m_next;
- m -> m_next = 0;
- return (n);
- } else {
- MGET(n, wait, m -> m_type);
- if (n == 0)
- return (0);
- M_ALIGN(n, remain);
- }
-extpacket:
- if (m -> m_flags & M_EXT) {
- n -> m_flags |= M_EXT;
- n -> m_ext = m -> m_ext;
- mclrefcnt[mtocl (m -> m_ext.ext_buf)]++;
- n -> m_data = m -> m_data + len;
- } else {
- bcopy (mtod (m, caddr_t) + len, mtod (n, caddr_t), remain);
- }
- n -> m_len = remain;
- m -> m_len = len;
- n -> m_next = m -> m_next;
- m -> m_next = 0;
- return (n);
-}
diff --git a/sys/netccitt/pk_timer.c b/sys/netccitt/pk_timer.c
index 34a3a73407d7..e90f7b235a31 100644
--- a/sys/netccitt/pk_timer.c
+++ b/sys/netccitt/pk_timer.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_timer.c 7.5 (Berkeley) 5/29/91
- * $Id: pk_timer.c,v 1.2 1993/10/16 19:46:55 rgrimes Exp $
+ * $Id: pk_timer.c,v 1.4 1993/12/19 00:52:23 wollman Exp $
*/
#include "param.h"
@@ -60,9 +60,10 @@
int pk_t20 = 18 * PR_SLOWHZ; /* restart timer */
int pk_t21 = 20 * PR_SLOWHZ; /* call timer */
/* XXX pk_t22 is never used */
-int pk_t22 = 18 * PR_SLOWHZ; /* reset timer */
+/*int pk_t22 = 18 * PR_SLOWHZ;*/ /* reset timer */
int pk_t23 = 18 * PR_SLOWHZ; /* clear timer */
+void
pk_timer ()
{
register struct pkcb *pkp;
diff --git a/sys/netccitt/pk_usrreq.c b/sys/netccitt/pk_usrreq.c
index 335364192fdd..3d9d0d322114 100644
--- a/sys/netccitt/pk_usrreq.c
+++ b/sys/netccitt/pk_usrreq.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)pk_usrreq.c 7.16 (Berkeley) 6/27/91
- * $Id: pk_usrreq.c,v 1.3 1993/10/16 19:46:56 rgrimes Exp $
+ * $Id: pk_usrreq.c,v 1.5 1993/12/19 00:52:23 wollman Exp $
*/
#include "param.h"
@@ -60,10 +60,10 @@
* forward references
*/
-static
+static void
old_to_new (struct mbuf *m);
-static
+static void
new_to_old (struct mbuf *m);
/*
@@ -77,11 +77,12 @@ new_to_old (struct mbuf *m);
*
*/
+int
pk_usrreq (so, req, m, nam, control)
-struct socket *so;
-int req;
-register struct mbuf *m, *nam;
-struct mbuf *control;
+ struct socket *so;
+ int req;
+ register struct mbuf *m, *nam;
+ struct mbuf *control;
{
register struct pklcd *lcp = (struct pklcd *) so -> so_pcb;
register int error = 0;
@@ -305,12 +306,12 @@ release:
* other X.25 level 2 driver, have the ifp -> if_ioctl routine
* assign pk_start to ia -> ia_start when called with SIOCSIFCONF_X25.
*/
-/* ARGSUSED */
+int
pk_start (lcp)
-register struct pklcd *lcp;
+ register struct pklcd *lcp;
{
- pk_output (lcp);
- return (0); /* XXX pk_output should return a value */
+ pk_output (lcp, 0);
+ return 0;
}
#ifndef _offsetof
@@ -321,17 +322,18 @@ _offsetof(struct sockaddr_x25, x25_addr[0]),
0, -1};
/*ARGSUSED*/
+int
pk_control (so, cmd, data, ifp)
-struct socket *so;
-int cmd;
-caddr_t data;
-register struct ifnet *ifp;
+ struct socket *so;
+ int cmd;
+ caddr_t data;
+ register struct ifnet *ifp;
{
register struct ifreq_x25 *ifr = (struct ifreq_x25 *)data;
register struct ifaddr *ifa = 0;
register struct x25_ifaddr *ia = 0;
struct pklcd *dev_lcp = 0;
- int error, s, old_maxlcn;
+ int error = 0, s, old_maxlcn;
unsigned n;
/*
@@ -396,7 +398,8 @@ register struct ifnet *ifp;
ia -> ia_start = pk_start;
s = splimp();
if (ifp -> if_ioctl)
- error = (*ifp -> if_ioctl)(ifp, SIOCSIFCONF_X25, ifa);
+ error = (*ifp -> if_ioctl)(ifp, SIOCSIFCONF_X25,
+ (caddr_t)ifa);
if (error)
ifp -> if_flags &= ~IFF_UP;
else
@@ -411,10 +414,11 @@ register struct ifnet *ifp;
}
}
+int
pk_ctloutput (cmd, so, level, optname, mp)
-struct socket *so;
-struct mbuf **mp;
-int cmd, level, optname;
+ struct socket *so;
+ struct mbuf **mp;
+ int cmd, level, optname;
{
register struct mbuf *m = *mp;
register struct pklcd *lcp = (struct pklcd *) so -> so_pcb;
@@ -460,9 +464,9 @@ int cmd, level, optname;
* socket address to the new style
*/
-static
+static void
old_to_new (m)
-register struct mbuf *m;
+ register struct mbuf *m;
{
register struct x25_sockaddr *oldp;
register struct sockaddr_x25 *newp;
@@ -502,9 +506,9 @@ register struct mbuf *m;
* socket address to the old style
*/
-static
+static void
new_to_old (m)
-register struct mbuf *m;
+ register struct mbuf *m;
{
register struct x25_sockaddr *oldp;
register struct sockaddr_x25 *newp;
@@ -534,9 +538,9 @@ register struct mbuf *m;
m -> m_len = sizeof (*oldp);
}
-
+int
pk_checksockaddr (m)
-struct mbuf *m;
+ struct mbuf *m;
{
register struct sockaddr_x25 *sa = mtod (m, struct sockaddr_x25 *);
register char *cp;
@@ -554,9 +558,10 @@ struct mbuf *m;
return (0);
}
+int
pk_send (lcp, m)
-struct pklcd *lcp;
-register struct mbuf *m;
+ struct pklcd *lcp;
+ register struct mbuf *m;
{
int mqbit = 0, error = 0;
register struct x25_packet *xp;
diff --git a/sys/netccitt/pk_var.h b/sys/netccitt/pk_var.h
index 4d17981faf2a..771b6f081326 100644
--- a/sys/netccitt/pk_var.h
+++ b/sys/netccitt/pk_var.h
@@ -36,10 +36,13 @@
* SUCH DAMAGE.
*
* from: @(#)pk_var.h 7.11 (Berkeley) 5/29/91
- * $Id: pk_var.h,v 1.2 1993/10/16 19:46:58 rgrimes Exp $
+ * $Id: pk_var.h,v 1.5 1993/12/19 00:52:25 wollman Exp $
*/
+#ifndef _NETCCITT_PK_VAR_H_
+#define _NETCCITT_PK_VAR_H_ 1
+
/*
*
* X.25 Logical Channel Descriptor
@@ -51,7 +54,8 @@ struct pklcd {
struct pklcd_q *q_forw; /* debugging chain */
struct pklcd_q *q_back; /* debugging chain */
} lcd_q;
- int (*lcd_upper)(); /* switch to socket vs datagram vs ...*/
+ void (*lcd_upper)(struct pklcd *, struct mbuf *);
+ /* switch to socket vs datagram vs ...*/
caddr_t lcd_upnext; /* reference for lcd_upper() */
int (*lcd_send)(); /* if X.25 front end, direct connect */
caddr_t lcd_downnext; /* reference for lcd_send() */
@@ -121,7 +125,7 @@ struct x25_ifaddr {
#define ia_flags ia_ifa.ifa_flags
struct x25config ia_xc; /* network specific configuration */
#define ia_maxlcn ia_xc.xc_maxlcn
- int (*ia_start) (); /* connect, confirm method */
+ int (*ia_start) (struct pklcd *); /* connect, confirm method */
struct sockaddr_x25 ia_dstaddr; /* reserve space for route dst */
};
@@ -168,8 +172,77 @@ struct mbuf_cache {
#if defined(KERNEL) && defined(CCITT)
struct pkcb *pkcbhead; /* head of linked list of networks */
struct pklcd *pk_listenhead;
-struct pklcd *pk_attach();
-extern char *pk_name[], *pk_state[];
-int pk_t20, pk_t21, pk_t22, pk_t23;
+struct sockaddr_in;
+struct sockaddr_x25;
+
+extern void x25_connect_callback(struct pklcd *, struct mbuf *);
+extern void x25_rtrequest(int, struct rtentry *, struct sockaddr *);
+extern void x25_rtinvert(int, struct sockaddr *, struct rtentry *);
+extern void x25_ddnip_to_ccitt(struct sockaddr_in *, struct rtentry *);
+extern void x25_rtattach(struct pklcd *, struct rtentry *);
+
+/* From pk_subr.c: */
+extern struct pklcd *pk_attach(struct socket *);
+extern void pk_disconnect(struct pklcd *);
+extern void pk_close(struct pklcd *);
+extern struct mbuf *pk_template(int, int);
+extern void pk_restart(struct pkcb *, int);
+extern void pk_freelcd(struct pklcd *);
+extern int pk_bind(struct pklcd *, struct mbuf *);
+extern int pk_listen(struct pklcd *);
+extern int pk_protolisten(int, int, void (*)(/* XXX */));
+extern void pk_assoc(struct pkcb *, struct pklcd *, struct sockaddr_x25 *);
+extern int pk_connect(struct pklcd *, struct sockaddr_x25 *);
+extern void pk_callrequest(struct pklcd *, struct sockaddr_x25 *, struct x25config *);
+extern void pk_build_facilities(struct mbuf *, struct sockaddr_x25 *, int);
+extern int pk_getlcn(struct pkcb *);
+extern void pk_clear(struct pklcd *, int, int);
+extern void pk_flowcontrol(struct pklcd *, int, int);
+extern void pk_flush(struct pklcd *);
+extern void pk_procerror(int, struct pklcd *, const char *, int);
+extern int pk_ack(struct pklcd *, unsigned);
+extern int pk_decode(struct x25_packet *);
+extern void pk_restartcause(struct pkcb *, struct x25_packet *);
+extern void pk_resetcause(struct pkcb *, struct x25_packet *);
+extern void pk_clearcause(struct pkcb *, struct x25_packet *);
+extern void pk_message(int, struct x25config *, const char *, ...);
+extern int pk_fragment(struct pklcd *, struct mbuf *, int, int, int);
+
+/* From pk_input.c: */
+extern struct pkcb *pk_newlink(struct x25_ifaddr *, caddr_t);
+extern int pk_resize(struct pkcb *);
+extern int /*void*/ pk_ctlinput(int, struct pkcb *);
+extern struct ifqueue pkintrq;
+extern void pkintr(void); /* called from locore */
+extern void pk_input(struct mbuf *);
+extern void pk_incoming_call(struct pkcb *, struct mbuf *);
+extern void pk_call_accepted(struct pklcd *, struct mbuf *);
+extern void pk_parse_facilities(octet *, struct sockaddr_x25 *);
+
+/* From pk_output.c: */
+extern int pk_output(struct pklcd *, struct mbuf *);
+
+/* From pk_acct.c: */
+extern int pk_accton(char *);
+extern void pk_acct(struct pklcd *);
+
+/* From pk_debug.c: */
+extern const char *const pk_name[], *const pk_state[];
+extern void pk_trace(struct x25config *, struct mbuf *, const char *);
+extern void mbuf_cache(struct mbuf_cache *, struct mbuf *);
+
+/* From pk_timer.c: */
+extern int pk_t20, pk_t21, pk_t23;
+extern void pk_timer(void);
+
+/* From pk_usrreq.c: */
+extern int pk_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *);
+extern int pk_start(struct pklcd *);
+extern int pk_control(struct socket *, int, caddr_t, struct ifnet *);
+extern int pk_ctloutput(int, struct socket *, int, int, struct mbuf **);
+extern int pk_checksockaddr(struct mbuf *);
+extern int pk_send(struct pklcd *, struct mbuf *);
+
#endif
+#endif /* _NETCCITT_PK_VAR_H_ */
diff --git a/sys/netccitt/x25.h b/sys/netccitt/x25.h
index 34eddbac0d4f..560587f496d1 100644
--- a/sys/netccitt/x25.h
+++ b/sys/netccitt/x25.h
@@ -36,9 +36,12 @@
* SUCH DAMAGE.
*
* from: @(#)x25.h 7.8 (Berkeley) 5/29/91
- * $Id: x25.h,v 1.2 1993/10/16 19:47:00 rgrimes Exp $
+ * $Id: x25.h,v 1.3 1993/11/07 17:47:28 wollman Exp $
*/
+#ifndef _NETCCITT_X25_H_
+#define _NETCCITT_X25_H_ 1
+
#ifdef KERNEL
#define PRC_IFUP 3
#define PRC_LINKUP 4
@@ -151,3 +154,4 @@ struct ifreq_x25 {
#define SIOCSIFCONF_X25 _IOW('i', 12, struct ifreq_x25) /* set ifnet config */
#define SIOCGIFCONF_X25 _IOWR('i',13, struct ifreq_x25) /* get ifnet config */
#endif
+#endif /* _NETCCITT_X25_H_ */
diff --git a/sys/netccitt/x25_sockaddr.h b/sys/netccitt/x25_sockaddr.h
deleted file mode 120000
index 7fab11912607..000000000000
--- a/sys/netccitt/x25_sockaddr.h
+++ /dev/null
@@ -1 +0,0 @@
-x25.h \ No newline at end of file
diff --git a/sys/netccitt/x25acct.h b/sys/netccitt/x25acct.h
index 2084bdc76c45..c166d39107fb 100644
--- a/sys/netccitt/x25acct.h
+++ b/sys/netccitt/x25acct.h
@@ -36,9 +36,12 @@
* SUCH DAMAGE.
*
* from: @(#)x25acct.h 7.2 (Berkeley) 5/11/90
- * $Id: x25acct.h,v 1.2 1993/10/16 19:47:01 rgrimes Exp $
+ * $Id: x25acct.h,v 1.3 1993/11/07 17:47:30 wollman Exp $
*/
+#ifndef _NETCCITT_X25ACCT_H_
+#define _NETCCITT_X25ACCT_H_ 1
+
/*
* Format of X.25 accounting record written
* to X25ACCTF whenever a circuit is closed.
@@ -69,3 +72,4 @@ struct x25acct {
long x25acct_txcnt; /* packets transmitted */
long x25acct_rxcnt; /* packets received */
};
+#endif /* _NETCCITT_X25ACCT_H_ */
diff --git a/sys/netccitt/x25err.h b/sys/netccitt/x25err.h
index a52cb4353e2b..69095d96faa3 100644
--- a/sys/netccitt/x25err.h
+++ b/sys/netccitt/x25err.h
@@ -36,9 +36,12 @@
* SUCH DAMAGE.
*
* from: @(#)x25err.h 7.2 (Berkeley) 5/11/90
- * $Id: x25err.h,v 1.2 1993/10/16 19:47:02 rgrimes Exp $
+ * $Id: x25err.h,v 1.3 1993/11/07 17:47:31 wollman Exp $
*/
+#ifndef _NETCCITT_X25ERR_H_
+#define _NETCCITT_X25ERR_H_ 1
+
/*
*
* X.25 Reset and Clear errors and diagnostics. These values are
@@ -63,3 +66,4 @@
#define EXCNCG 118 /* Clear: network congestion */
#define EXCNOB 119 /* Clear: not obtainable */
+#endif /* _NETCCITT_X25ERR_H_ */