diff options
author | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
commit | 871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch) | |
tree | 8718f573808810c2a1e8cb8fb6ac469093ca2784 /ANDROID_3.4.5/drivers/net/wan/hdlc_raw.c | |
parent | 9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff) | |
download | FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2 FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip |
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized.
Changes are basically to make it look like kernel structure.
Diffstat (limited to 'ANDROID_3.4.5/drivers/net/wan/hdlc_raw.c')
-rw-r--r-- | ANDROID_3.4.5/drivers/net/wan/hdlc_raw.c | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/ANDROID_3.4.5/drivers/net/wan/hdlc_raw.c b/ANDROID_3.4.5/drivers/net/wan/hdlc_raw.c deleted file mode 100644 index 5dc153e8..00000000 --- a/ANDROID_3.4.5/drivers/net/wan/hdlc_raw.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Generic HDLC support routines for Linux - * HDLC support - * - * Copyright (C) 1999 - 2006 Krzysztof Halasa <khc@pm.waw.pl> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License - * as published by the Free Software Foundation. - */ - -#include <linux/errno.h> -#include <linux/hdlc.h> -#include <linux/if_arp.h> -#include <linux/inetdevice.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/pkt_sched.h> -#include <linux/poll.h> -#include <linux/rtnetlink.h> -#include <linux/skbuff.h> - - -static int raw_ioctl(struct net_device *dev, struct ifreq *ifr); - -static __be16 raw_type_trans(struct sk_buff *skb, struct net_device *dev) -{ - return cpu_to_be16(ETH_P_IP); -} - -static struct hdlc_proto proto = { - .type_trans = raw_type_trans, - .ioctl = raw_ioctl, - .module = THIS_MODULE, -}; - - -static int raw_ioctl(struct net_device *dev, struct ifreq *ifr) -{ - raw_hdlc_proto __user *raw_s = ifr->ifr_settings.ifs_ifsu.raw_hdlc; - const size_t size = sizeof(raw_hdlc_proto); - raw_hdlc_proto new_settings; - hdlc_device *hdlc = dev_to_hdlc(dev); - int result; - - switch (ifr->ifr_settings.type) { - case IF_GET_PROTO: - if (dev_to_hdlc(dev)->proto != &proto) - return -EINVAL; - ifr->ifr_settings.type = IF_PROTO_HDLC; - if (ifr->ifr_settings.size < size) { - ifr->ifr_settings.size = size; /* data size wanted */ - return -ENOBUFS; - } - if (copy_to_user(raw_s, hdlc->state, size)) - return -EFAULT; - return 0; - - case IF_PROTO_HDLC: - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - - if (dev->flags & IFF_UP) - return -EBUSY; - - if (copy_from_user(&new_settings, raw_s, size)) - return -EFAULT; - - if (new_settings.encoding == ENCODING_DEFAULT) - new_settings.encoding = ENCODING_NRZ; - - if (new_settings.parity == PARITY_DEFAULT) - new_settings.parity = PARITY_CRC16_PR1_CCITT; - - result = hdlc->attach(dev, new_settings.encoding, - new_settings.parity); - if (result) - return result; - - result = attach_hdlc_protocol(dev, &proto, - sizeof(raw_hdlc_proto)); - if (result) - return result; - memcpy(hdlc->state, &new_settings, size); - dev->type = ARPHRD_RAWHDLC; - netif_dormant_off(dev); - return 0; - } - - return -EINVAL; -} - - -static int __init mod_init(void) -{ - register_hdlc_protocol(&proto); - return 0; -} - - - -static void __exit mod_exit(void) -{ - unregister_hdlc_protocol(&proto); -} - - -module_init(mod_init); -module_exit(mod_exit); - -MODULE_AUTHOR("Krzysztof Halasa <khc@pm.waw.pl>"); -MODULE_DESCRIPTION("Raw HDLC protocol support for generic HDLC"); -MODULE_LICENSE("GPL v2"); |