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

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [net/] [802/] [p8023.c] - Blame information for rev 79

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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/in.h>
17
#include <linux/mm.h>
18
#include <linux/module.h>
19
#include <linux/netdevice.h>
20
#include <linux/skbuff.h>
21
 
22
#include <net/datalink.h>
23
#include <net/p8022.h>
24
 
25
/*
26
 *      Place an 802.3 header on a packet. The driver will do the mac
27
 *      addresses, we just need to give it the buffer length.
28
 */
29
static int p8023_request(struct datalink_proto *dl,
30
                         struct sk_buff *skb, unsigned char *dest_node)
31
{
32
        struct net_device *dev = skb->dev;
33
 
34
        dev_hard_header(skb, dev, ETH_P_802_3, dest_node, NULL, skb->len);
35
        return dev_queue_xmit(skb);
36
}
37
 
38
/*
39
 *      Create an 802.3 client. Note there can be only one 802.3 client
40
 */
41
struct datalink_proto *make_8023_client(void)
42
{
43
        struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
44
 
45
        if (proto) {
46
                proto->header_length = 0;
47
                proto->request       = p8023_request;
48
        }
49
        return proto;
50
}
51
 
52
/*
53
 *      Destroy the 802.3 client.
54
 */
55
void destroy_8023_client(struct datalink_proto *dl)
56
{
57
        kfree(dl);
58
}
59
 
60
EXPORT_SYMBOL(destroy_8023_client);
61
EXPORT_SYMBOL(make_8023_client);
62
 
63
MODULE_LICENSE("GPL");

powered by: WebSVN 2.1.0

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