OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [net/] [802/] [p8023.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *      NET3:   802.3 data link hooks used for IPX 802.3
3
 *
4
 *      This program is free software; you can redistribute it and/or
5
 *      modify it under the terms of the GNU General Public License
6
 *      as published by the Free Software Foundation; either version
7
 *      2 of the License, or (at your option) any later version.
8
 *
9
 *      802.3 isn't really a protocol data link layer. Some old IPX stuff
10
 *      uses it however. Note that there is only one 802.3 protocol layer
11
 *      in the system. We don't currently support different protocols
12
 *      running raw 802.3 on different devices. Thankfully nobody else
13
 *      has done anything like the old IPX.
14
 */
15
 
16
#include <linux/netdevice.h>
17
#include <linux/skbuff.h>
18
#include <net/datalink.h>
19
#include <linux/mm.h>
20
#include <linux/in.h>
21
 
22
/*
23
 *      Place an 802.3 header on a packet. The driver will do the mac
24
 *      addresses, we just need to give it the buffer length.
25
 */
26
 
27
static void p8023_datalink_header(struct datalink_proto *dl,
28
                struct sk_buff *skb, unsigned char *dest_node)
29
{
30
        struct net_device       *dev = skb->dev;
31
        dev->hard_header(skb, dev, ETH_P_802_3, dest_node, NULL, skb->len);
32
}
33
 
34
/*
35
 *      Create an 802.3 client. Note there can be only one 802.3 client
36
 */
37
 
38
struct datalink_proto *make_8023_client(void)
39
{
40
        struct datalink_proto   *proto;
41
 
42
        proto = (struct datalink_proto *) kmalloc(sizeof(*proto), GFP_ATOMIC);
43
        if (proto != NULL)
44
        {
45
                proto->type_len = 0;
46
                proto->header_length = 0;
47
                proto->datalink_header = p8023_datalink_header;
48
                proto->string_name = "802.3";
49
        }
50
        return proto;
51
}
52
 
53
/*
54
 *      Destroy the 802.3 client.
55
 */
56
 
57
void destroy_8023_client(struct datalink_proto *dl)
58
{
59
        if (dl)
60
                kfree(dl);
61
}
62
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.