kernel tree reorganization stage 1: Major cvs repository work (not logged as
[dragonfly.git] / sys / netproto / atalk / at_proto.c
1 /*
2  * Copyright (c) 1990,1991 Regents of The University of Michigan.
3  * All Rights Reserved.
4  *
5  * Permission to use, copy, modify, and distribute this software and
6  * its documentation for any purpose and without fee is hereby granted,
7  * provided that the above copyright notice appears in all copies and
8  * that both that copyright notice and this permission notice appear
9  * in supporting documentation, and that the name of The University
10  * of Michigan not be used in advertising or publicity pertaining to
11  * distribution of the software without specific, written prior
12  * permission. This software is supplied as is without expressed or
13  * implied warranties of any kind.
14  *
15  *      Research Systems Unix Group
16  *      The University of Michigan
17  *      c/o Mike Clark
18  *      535 W. William Street
19  *      Ann Arbor, Michigan
20  *      +1-313-763-0525
21  *      netatalk@itd.umich.edu
22  *
23  * $DragonFly: src/sys/netproto/atalk/at_proto.c,v 1.2 2003/08/07 21:17:33 dillon Exp $
24  */
25
26 #include <sys/param.h>
27 #include <sys/protosw.h>
28 #include <sys/domain.h>
29 #include <sys/socket.h>
30
31 #include <sys/kernel.h>
32
33 #include <net/route.h>
34
35 #include "at.h"
36 #include "ddp_var.h"
37 #include "at_extern.h"
38
39 extern struct domain    atalkdomain;
40
41 static struct protosw   atalksw[] = {
42     {
43         /* Identifiers */
44         SOCK_DGRAM,     &atalkdomain,   ATPROTO_DDP,    PR_ATOMIC|PR_ADDR,
45         /*
46          * protocol-protocol interface.
47          * fields are pr_input, pr_output, pr_ctlinput, and pr_ctloutput.
48          * pr_input can be called from the udp protocol stack for iptalk
49          * packets bound for a local socket.
50          * pr_output can be used by higher level appletalk protocols, should
51          * they be included in the kernel.
52          */
53         0,              ddp_output,     0,              0,
54         /* socket-protocol interface. deprecated */
55         NULL,
56         /* utility routines. */
57         ddp_init,       0,              0,              0,
58         &ddp_usrreqs
59     },
60 };
61
62 static struct domain    atalkdomain = {
63     AF_APPLETALK,       "appletalk",    0,      0,      0,
64     atalksw, &atalksw[sizeof(atalksw)/sizeof(atalksw[0])],
65     0, rn_inithead,
66     8 * (u_long) &((struct sockaddr_at *) 0)->sat_addr,
67     sizeof(struct sockaddr_at)
68 };
69
70 DOMAIN_SET(atalk);
71