pe2.c 775 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <linux/in.h>
  2. #include <linux/mm.h>
  3. #include <linux/module.h>
  4. #include <linux/netdevice.h>
  5. #include <linux/skbuff.h>
  6. #include <net/datalink.h>
  7. static int pEII_request(struct datalink_proto *dl,
  8. struct sk_buff *skb, unsigned char *dest_node)
  9. {
  10. struct net_device *dev = skb->dev;
  11. skb->protocol = htons(ETH_P_IPX);
  12. dev_hard_header(skb, dev, ETH_P_IPX, dest_node, NULL, skb->len);
  13. return dev_queue_xmit(skb);
  14. }
  15. struct datalink_proto *make_EII_client(void)
  16. {
  17. struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
  18. if (proto) {
  19. proto->header_length = 0;
  20. proto->request = pEII_request;
  21. }
  22. return proto;
  23. }
  24. void destroy_EII_client(struct datalink_proto *dl)
  25. {
  26. kfree(dl);
  27. }
  28. EXPORT_SYMBOL(destroy_EII_client);
  29. EXPORT_SYMBOL(make_EII_client);