Merge from vendor branch GCC:
[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.4 2005/03/04 02:21:49 hsu 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         cpu0_soport,
55         /* utility routines. */
56         ddp_init,       0,              0,              0,
57         &ddp_usrreqs
58     },
59 };
60
61 static struct domain atalkdomain = {
62         AF_APPLETALK, "appletalk", NULL, NULL, NULL,
63         atalksw, &atalksw[sizeof(atalksw)/sizeof(atalksw[0])],
64         SLIST_ENTRY_INITIALIZER,
65         rn_inithead, 8 * offsetof(struct sockaddr_at, sat_addr),
66         sizeof(struct sockaddr_at),
67 };
68
69 DOMAIN_SET(atalk);
70