blob: 85d574addbc1757be0bd9fa5b4c3d7b99521d092 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <linux/in.h>
2#include <linux/mm.h>
3#include <linux/module.h>
4#include <linux/netdevice.h>
5#include <linux/skbuff.h>
Tejun Heo5a0e3ad2010-03-24 17:04:11 +09006#include <linux/slab.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07007
8#include <net/datalink.h>
9
10static int pEII_request(struct datalink_proto *dl,
11 struct sk_buff *skb, unsigned char *dest_node)
12{
13 struct net_device *dev = skb->dev;
14
15 skb->protocol = htons(ETH_P_IPX);
Stephen Hemminger0c4e8582007-10-09 01:36:32 -070016 dev_hard_header(skb, dev, ETH_P_IPX, dest_node, NULL, skb->len);
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 return dev_queue_xmit(skb);
18}
19
20struct datalink_proto *make_EII_client(void)
21{
22 struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
23
24 if (proto) {
25 proto->header_length = 0;
26 proto->request = pEII_request;
27 }
28
29 return proto;
30}
Chihau Chau54874862010-07-14 18:27:09 -070031EXPORT_SYMBOL(make_EII_client);
Linus Torvalds1da177e2005-04-16 15:20:36 -070032
33void destroy_EII_client(struct datalink_proto *dl)
34{
Jesper Juhla51482b2005-11-08 09:41:34 -080035 kfree(dl);
Linus Torvalds1da177e2005-04-16 15:20:36 -070036}
Linus Torvalds1da177e2005-04-16 15:20:36 -070037EXPORT_SYMBOL(destroy_EII_client);