亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hdlc_x25.c

?? 一個2.4.21版本的嵌入式linux內核
?? C
字號:
/* * Generic HDLC support routines for Linux * X.25 support * * Copyright (C) 1999 - 2001 Krzysztof Halasa <khc@pm.waw.pl> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */#include <linux/config.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/slab.h>#include <linux/poll.h>#include <linux/errno.h>#include <linux/if_arp.h>#include <linux/init.h>#include <linux/skbuff.h>#include <linux/pkt_sched.h>#include <linux/inetdevice.h>#include <linux/lapb.h>#include <linux/rtnetlink.h>#include <linux/hdlc.h>/* These functions are callbacks called by LAPB layer */static void x25_connect_disconnect(void *token, int reason, int code){	hdlc_device *hdlc = token;	struct sk_buff *skb;	unsigned char *ptr;	if ((skb = dev_alloc_skb(1)) == NULL) {		printk(KERN_ERR "%s: out of memory\n", hdlc_to_name(hdlc));		return;	}	ptr = skb_put(skb, 1);	*ptr = code;	skb->dev = hdlc_to_dev(hdlc);	skb->protocol = htons(ETH_P_X25);	skb->mac.raw = skb->data;	skb->pkt_type = PACKET_HOST;	netif_rx(skb);}static void x25_connected(void *token, int reason){	x25_connect_disconnect(token, reason, 1);}static void x25_disconnected(void *token, int reason){	x25_connect_disconnect(token, reason, 2);}static int x25_data_indication(void *token, struct sk_buff *skb){	hdlc_device *hdlc = token;	unsigned char *ptr;	ptr = skb_push(skb, 1);	*ptr = 0;	skb->dev = hdlc_to_dev(hdlc);	skb->protocol = htons(ETH_P_X25);	skb->mac.raw = skb->data;	skb->pkt_type = PACKET_HOST;	return netif_rx(skb);}static void x25_data_transmit(void *token, struct sk_buff *skb){	hdlc_device *hdlc = token;	hdlc->xmit(skb, hdlc_to_dev(hdlc)); /* Ignore return value :-( */}static int x25_xmit(struct sk_buff *skb, struct net_device *dev){	hdlc_device *hdlc = dev_to_hdlc(dev);	int result;	/* X.25 to LAPB */	switch (skb->data[0]) {	case 0:		/* Data to be transmitted */		skb_pull(skb, 1);		if ((result = lapb_data_request(hdlc, skb)) != LAPB_OK)			dev_kfree_skb(skb);		return 0;	case 1:		if ((result = lapb_connect_request(hdlc))!= LAPB_OK) {			if (result == LAPB_CONNECTED)				/* Send connect confirm. msg to level 3 */				x25_connected(hdlc, 0);			else				printk(KERN_ERR "%s: LAPB connect request "				       "failed, error code = %i\n",				       hdlc_to_name(hdlc), result);		}		break;	case 2:		if ((result = lapb_disconnect_request(hdlc)) != LAPB_OK) {			if (result == LAPB_NOTCONNECTED)				/* Send disconnect confirm. msg to level 3 */				x25_disconnected(hdlc, 0);			else				printk(KERN_ERR "%s: LAPB disconnect request "				       "failed, error code = %i\n",				       hdlc_to_name(hdlc), result);		}		break;	default:		/* to be defined */		break;	}	dev_kfree_skb(skb);	return 0;}static int x25_open(hdlc_device *hdlc){	struct lapb_register_struct cb;	int result;	cb.connect_confirmation = x25_connected;	cb.connect_indication = x25_connected;	cb.disconnect_confirmation = x25_disconnected;	cb.disconnect_indication = x25_disconnected;	cb.data_indication = x25_data_indication;	cb.data_transmit = x25_data_transmit;	result = lapb_register(hdlc, &cb);	if (result != LAPB_OK)		return result;	return 0;}static void x25_close(hdlc_device *hdlc){	lapb_unregister(hdlc);}static void x25_rx(struct sk_buff *skb){	hdlc_device *hdlc = dev_to_hdlc(skb->dev);	if (lapb_data_received(hdlc, skb) == LAPB_OK)		return;	hdlc->stats.rx_errors++;	dev_kfree_skb_any(skb);}int hdlc_x25_ioctl(hdlc_device *hdlc, struct ifreq *ifr){	struct net_device *dev = hdlc_to_dev(hdlc);	int result;	switch (ifr->ifr_settings.type) {	case IF_GET_PROTO:		ifr->ifr_settings.type = IF_PROTO_X25;		return 0; /* return protocol only, no settable parameters */	case IF_PROTO_X25:		if(!capable(CAP_NET_ADMIN))			return -EPERM;		if(dev->flags & IFF_UP)			return -EBUSY;		result=hdlc->attach(hdlc, ENCODING_NRZ,PARITY_CRC16_PR1_CCITT);		if (result)			return result;		hdlc_proto_detach(hdlc);		hdlc->open = x25_open;		hdlc->stop = x25_close;		hdlc->netif_rx = x25_rx;		hdlc->proto = IF_PROTO_X25;		dev->hard_start_xmit = x25_xmit;		dev->hard_header = NULL;		dev->type = ARPHRD_X25;		dev->addr_len = 0;		return 0;	}	return -EINVAL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九九精品视频| 91在线码无精品| 亚洲狼人国产精品| 欧美tk—视频vk| 一本久久a久久精品亚洲| 精品一区中文字幕| 亚洲一区在线视频| 国产日产欧美一区二区视频| 欧美久久婷婷综合色| 91女人视频在线观看| 激情文学综合网| 日韩极品在线观看| 亚洲欧美激情在线| 国产欧美日产一区| 日韩精品在线网站| 在线播放中文一区| 91福利资源站| 91女神在线视频| 成人小视频在线观看| 久久99国产精品麻豆| 视频一区免费在线观看| 尤物在线观看一区| 国产精品国产自产拍高清av| 久久精品亚洲国产奇米99| 日韩欧美色电影| 91精品婷婷国产综合久久竹菊| 91亚洲精品久久久蜜桃网站| 成人黄色大片在线观看| 成人毛片视频在线观看| 国产一区二区久久| 国内外成人在线| 美国精品在线观看| 蜜桃久久久久久久| 蜜臀av在线播放一区二区三区| 午夜精品视频在线观看| 亚洲成在人线在线播放| 性做久久久久久久免费看| 亚洲国产精品一区二区www在线| 洋洋av久久久久久久一区| 亚洲精品成人少妇| 亚洲国产日韩一级| 亚洲成a人片综合在线| 亚洲最大成人综合| 亚洲国产乱码最新视频| 亚洲成人av一区二区| 天天影视网天天综合色在线播放| 亚洲电影激情视频网站| 日韩国产欧美视频| 男男视频亚洲欧美| 国内外精品视频| 国产精品一二三在| 成人国产一区二区三区精品| 91视频观看视频| 在线观看日韩国产| 欧美欧美欧美欧美| 欧美α欧美αv大片| 久久亚洲影视婷婷| 国产三级三级三级精品8ⅰ区| 国产亚洲欧美色| 亚洲激情六月丁香| 日韩高清欧美激情| 国产精品一区在线观看乱码| av电影一区二区| 欧美三级中文字| 精品久久五月天| 欧美韩国日本不卡| 亚洲一区在线观看免费| 麻豆中文一区二区| 粉嫩av一区二区三区在线播放| 91在线观看免费视频| 制服丝袜亚洲色图| 欧美激情一区二区三区不卡| 亚洲一区二区三区四区在线免费观看 | 久99久精品视频免费观看| 九九九久久久精品| 94-欧美-setu| 91精品国产免费久久综合| 国产日韩欧美综合一区| 亚洲一区免费视频| 国产老肥熟一区二区三区| 色视频成人在线观看免| 日韩三级免费观看| 中文在线一区二区| 五月天丁香久久| 成人app在线| 91精品国产高清一区二区三区 | 美女精品一区二区| 国产成人av网站| 欧美日韩亚洲综合在线| 国产日韩成人精品| 天天爽夜夜爽夜夜爽精品视频| 成人综合在线视频| 91麻豆精品国产自产在线| 国产精品国模大尺度视频| 日韩国产欧美三级| 日本韩国一区二区| 国产色91在线| 日本伊人精品一区二区三区观看方式| 国产成人a级片| 日韩一区二区在线观看视频播放| 亚洲人吸女人奶水| 国产一区二区电影| 日韩一区二区三区免费观看| 中文字幕字幕中文在线中不卡视频| 精品一区二区三区在线播放视频 | 久久综合久久综合亚洲| 亚洲国产sm捆绑调教视频| 成人成人成人在线视频| 日韩精品中文字幕在线不卡尤物 | 国产黄色精品网站| 日韩三级中文字幕| 亚洲444eee在线观看| 91亚洲资源网| 国产精品国产三级国产aⅴ入口 | 成人国产精品视频| 日韩一区二区不卡| 亚洲444eee在线观看| 色av成人天堂桃色av| 中文字幕的久久| 国产综合久久久久影院| 91精品黄色片免费大全| 亚洲不卡av一区二区三区| 在线看不卡av| 亚洲人成电影网站色mp4| 福利一区二区在线观看| 欧美激情在线看| 成人性视频免费网站| 国产亚洲欧美激情| 国产成人精品亚洲777人妖| 久久久精品蜜桃| 国产一区亚洲一区| 久久久久久久久蜜桃| 国产一区二区三区在线观看免费 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 蜜桃av一区二区在线观看| 51精品秘密在线观看| 日产国产欧美视频一区精品| 欧美日韩一区不卡| 丝袜诱惑制服诱惑色一区在线观看 | 日韩在线一区二区| 4438成人网| 美女视频一区二区| 日韩片之四级片| 久久99热99| 国产片一区二区三区| 成人教育av在线| 亚洲欧美日韩中文字幕一区二区三区 | wwwwxxxxx欧美| 国产一区高清在线| 国产精品乱人伦中文| 99精品视频在线观看免费| 国产精品白丝在线| 色88888久久久久久影院按摩| 一区二区三区日本| 69堂精品视频| 久国产精品韩国三级视频| 国产丝袜欧美中文另类| 91一区二区在线| 亚洲成人av免费| 精品国产免费人成在线观看| 国产精品一区在线| 亚洲欧美乱综合| 欧美一区二区视频在线观看2022| 久久99精品久久久久久 | 日韩av二区在线播放| 26uuu久久综合| www.66久久| 午夜视黄欧洲亚洲| 26uuu久久综合| 色综合久久精品| 蜜臀99久久精品久久久久久软件| 精品国产一区二区三区av性色| 成人激情免费视频| 婷婷久久综合九色国产成人| 久久蜜桃av一区二区天堂| 91视频一区二区三区| 日本欧美久久久久免费播放网| 国产午夜精品美女毛片视频| 91极品视觉盛宴| 激情图片小说一区| 亚洲综合网站在线观看| 欧美大黄免费观看| 91网上在线视频| 蜜桃av一区二区在线观看| 亚洲三级久久久| 欧美一区二区成人6969| 91色乱码一区二区三区| 国产一区视频网站| 五月婷婷综合网| 国产精品久99| 精品国产1区二区| 欧美三级一区二区| 成人sese在线| 免费精品视频最新在线| 一区二区三区在线视频免费观看| 日韩午夜三级在线| 欧美性生活影院| av动漫一区二区| 国产一区二区三区免费播放| 婷婷成人激情在线网|