xref: /csrg-svn/sys/netccitt/ccitt_proto.c (revision 41701)
1*41701Ssklower /*
2*41701Ssklower  * Copyright (c) University of British Columbia, 1984
3*41701Ssklower  * Copyright (c) 1990 The Regents of the University of California.
4*41701Ssklower  * All rights reserved.
5*41701Ssklower  *
6*41701Ssklower  * This code is derived from software contributed to Berkeley by
7*41701Ssklower  * the Laboratory for Computation Vision and the Computer Science Department
8*41701Ssklower  * of the University of British Columbia.
9*41701Ssklower  *
10*41701Ssklower  * %sccs.include.redist.c%
11*41701Ssklower  *
12*41701Ssklower  *	@(#)ccitt_proto.c	7.2 (Berkeley) 05/11/90
13*41701Ssklower  */
1441585Ssklower 
1541585Ssklower #include "../h/param.h"
1641585Ssklower #include "../h/socket.h"
1741585Ssklower #include "../h/protosw.h"
1841585Ssklower #include "../h/domain.h"
1941585Ssklower #include "../netccitt/x25.h"
2041585Ssklower 
2141585Ssklower /*
2241585Ssklower  *	Definitions of protocols supported in the CCITT domain.
2341585Ssklower  */
2441585Ssklower 
2541585Ssklower #ifdef BSD4_3
2641585Ssklower extern	struct domain ccittdomain;
2741585Ssklower #endif
2841585Ssklower 
2941585Ssklower #ifdef XE
3041585Ssklower int	xe_output (), xe_ctlinput (), xe_init(), xe_timer();
3141585Ssklower #endif
3241585Ssklower #ifdef HDLC
3341585Ssklower int	hd_output (), hd_ctlinput (), hd_init (), hd_timer ();
3441585Ssklower #endif
3541585Ssklower int	pk_usrreq (), pk_timer ();
3641585Ssklower 
3741585Ssklower struct protosw ccittsw[] = {
3841585Ssklower #ifdef XE
3941585Ssklower #ifdef BSD4_3
4041585Ssklower  {	0,		&ccittdomain,	IEEEPROTO_802LLC,0,
4141585Ssklower #else
4241585Ssklower  {	0,		PF_CCITT,	IEEEPROTO_802LLC,0,
4341585Ssklower #endif
4441585Ssklower 	0,		xe_output,	xe_ctlinput,	0,
4541585Ssklower 	0,
4641585Ssklower 	xe_init,	0,	 	xe_timer,	0,
4741585Ssklower  },
4841585Ssklower #endif
4941585Ssklower #ifdef HDLC
5041585Ssklower #ifdef BSD4_3
5141585Ssklower  {	0,		&ccittdomain,	CCITTPROTO_HDLC,0,
5241585Ssklower #else
5341585Ssklower  {	0,		PF_CCITT,	CCITTPROTO_HDLC,0,
5441585Ssklower #endif
5541585Ssklower 	0,		hd_output,	hd_ctlinput,	0,
5641585Ssklower 	0,
5741585Ssklower 	hd_init,	0,	 	hd_timer,	0,
5841585Ssklower  },
5941585Ssklower #endif
6041585Ssklower #ifdef BSD4_3
6141585Ssklower  {	SOCK_STREAM,	&ccittdomain,	CCITTPROTO_X25,	PR_CONNREQUIRED|PR_ATOMIC|PR_WANTRCVD,
6241585Ssklower #else
6341585Ssklower  {	SOCK_STREAM,	PF_CCITT,	CCITTPROTO_X25,	PR_CONNREQUIRED|PR_ATOMIC|PR_WANTRCVD,
6441585Ssklower #endif
6541585Ssklower 	0,		0,		0,		0,
6641585Ssklower 	pk_usrreq,
6741585Ssklower 	0,		0,		pk_timer,	0,
6841585Ssklower  }
6941585Ssklower };
7041585Ssklower 
7141585Ssklower struct domain ccittdomain =
7241585Ssklower #ifdef BSD4_3
7341585Ssklower 	{ AF_CCITT, "ccitt", 0, 0, 0, ccittsw,
7441585Ssklower 		&ccittsw[sizeof(ccittsw)/sizeof(ccittsw[0])] };
7541585Ssklower #else
7641585Ssklower 	{ AF_CCITT, "ccitt", ccittsw, &ccittsw[sizeof(ccittsw)/sizeof(ccittsw[0])] };
7741585Ssklower #endif
7841585Ssklower 
79