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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? net_init.c

?? 內(nèi)核是系統(tǒng)的心臟
?? C
字號(hào):
/* netdrv_init.c: Initialization for network devices. */
/*
	Written 1993 by Donald Becker.
	Copyright 1993 United States Government as represented by the Director,
	National Security Agency.  This software may only be used and distributed
	according to the terms of the GNU Public License as modified by SRC,
	incorported herein by reference.

	The author may be reached as becker@super.org or
	C/O Supercomputing Research Ctr., 17100 Science Dr., Bowie MD 20715

	This file contains the initialization for the "pl14+" style ethernet
	drivers.  It should eventually replace most of drivers/net/Space.c.
	It's primary advantage is that it's able to allocate low-memory buffers.
	A secondary advantage is that the dangerous NE*000 netcards can reserve
	their I/O port region before the SCSI probes start.
*/

#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/malloc.h>
#include <linux/if_ether.h>
#include <memory.h>
#include "dev.h"
#include "eth.h"

/* The network devices currently exist only in the socket namespace, so these
   entries are unused.  The only ones that make sense are
    open	start the ethercard
    close	stop  the ethercard
    ioctl	To get statistics, perhaps set the interface port (AUI, BNC, etc.)
   One can also imagine getting raw packets using
    read & write
   but this is probably better handled by a raw packet socket.

   Given that almost all of these functions are handled in the current
   socket-based scheme, putting ethercard devices in /dev/ seems pointless.
*/

/* The next device number/name to assign: "eth0", "eth1", etc. */
static int next_ethdev_number = 0;

#ifdef NET_MAJOR_NUM
static struct file_operations netcard_fops = {
	NULL,		/* lseek */
	NULL,		/* read */
	NULL,		/* write */
	NULL,		/* readdir */
	NULL,		/* select */
	NULL,		/* ioctl */
	NULL,		/* mmap */
	NULL,		/* open */
	NULL,		/* release */
	NULL		/* fsync */
};
#endif

unsigned long lance_init(unsigned long mem_start, unsigned long mem_end);

/*
  net_dev_init() is our network device initialization routine.
  It's called from init/main.c with the start and end of free memory,
  and returns the new start of free memory.
  */

unsigned long net_dev_init (unsigned long mem_start, unsigned long mem_end)
{

#ifdef NET_MAJOR_NUM
	if (register_chrdev(NET_MAJOR_NUM, "network",&netcard_fops))
		printk("WARNING: Unable to get major %d for the network devices.\n",
			   NET_MAJOR_NUM);
#endif

#if defined(CONFIG_LANCE)			/* Note this is _not_ CONFIG_AT1500. */
	mem_start = lance_init(mem_start, mem_end);
#endif

	return mem_start;
}

/* Fill in the fields of the device structure with ethernet-generic values.

   If no device structure is passed, a new one is constructed, complete with
   a SIZEOF_PRIVATE private data area.

   If an empty string area is passed as dev->name, or a new structure is made,
   a new name string is constructed.  The passed string area should be 8 bytes
   long.
 */

struct device *init_etherdev(struct device *dev, int sizeof_private,
							 unsigned long *mem_startp)
{
	int i;
	int new_device = 0;

	if (dev == NULL) {
		int alloc_size = sizeof(struct device) + sizeof("eth%d ")
			+ sizeof_private;
		if (mem_startp && *mem_startp ) {
			dev = (struct device *)*mem_startp;
			*mem_startp += alloc_size;
		} else
			dev = (struct device *)kmalloc(alloc_size, GFP_KERNEL);
		memset(dev, 0, sizeof(alloc_size));
		dev->name = (char *)(dev + 1);
		if (sizeof_private)
			dev->priv = dev->name + sizeof("eth%d ");
		new_device = 1;
	}

	if (dev->name  &&  dev->name[0] == '\0')
		sprintf(dev->name, "eth%d", next_ethdev_number++);

	for (i = 0; i < DEV_NUMBUFFS; i++)
		dev->buffs[i] = NULL;
	
	dev->hard_header	= eth_header;
	dev->add_arp		= eth_add_arp;
	dev->queue_xmit		= dev_queue_xmit;
	dev->rebuild_header	= eth_rebuild_header;
	dev->type_trans		= eth_type_trans;
	
	dev->type			= ARPHRD_ETHER;
	dev->hard_header_len = ETH_HLEN;
	dev->mtu			= 1500; /* eth_mtu */
	dev->addr_len		= ETH_ALEN;
	for (i = 0; i < ETH_ALEN; i++) {
		dev->broadcast[i]=0xff;
	}
	
	/* New-style flags. */
	dev->flags			= IFF_BROADCAST;
	dev->family			= AF_INET;
	dev->pa_addr		= 0;
	dev->pa_brdaddr		= 0;
	dev->pa_mask		= 0;
	dev->pa_alen		= sizeof(unsigned long);
	
	if (new_device) {
		/* Append the device to the device queue. */
		struct device **old_devp = &dev_base;
		while ((*old_devp)->next)
			old_devp = & (*old_devp)->next;
		(*old_devp)->next = dev;
		dev->next = 0;
	}
	return dev;
}


/*
 * Local variables:
 *  compile-command: "gcc -D__KERNEL__ -I/usr/src/linux/net/inet -Wall -Wstrict-prototypes -O6 -m486 -c net_init.c"
 *  version-control: t
 *  kept-new-versions: 5
 *  tab-width: 4
 * End:
 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线不卡视频| 亚洲欧美在线视频| 国产亚洲欧美日韩日本| 国产精品久线观看视频| 一区二区三区蜜桃| 美女一区二区视频| 风间由美一区二区三区在线观看 | 成人午夜私人影院| 91福利区一区二区三区| 日韩午夜精品视频| 国产欧美日韩综合精品一区二区| 日韩毛片高清在线播放| 日韩国产高清在线| 国产成人av电影免费在线观看| 91激情五月电影| 久久久久9999亚洲精品| 亚洲国产另类av| 国产美女精品在线| 欧美日韩黄色一区二区| 国产日韩欧美精品综合| 午夜精品视频一区| www.成人在线| 欧美大度的电影原声| 亚洲私人影院在线观看| 麻豆精品新av中文字幕| 国产精品美女久久久久久久| 国产麻豆成人精品| 在线精品视频一区二区| 久久亚洲欧美国产精品乐播| 日韩伦理免费电影| 精品一区二区免费| 欧洲av一区二区嗯嗯嗯啊| 精品国产一区二区亚洲人成毛片| 亚洲视频网在线直播| 精品一二线国产| 欧美无砖专区一中文字| 国产精品少妇自拍| 免费的成人av| 欧洲日韩一区二区三区| 久久色中文字幕| 日日摸夜夜添夜夜添精品视频| 99久久免费国产| 欧美精品一区二区久久婷婷| 亚洲福利视频一区| 不卡的av中国片| 久久久久综合网| 久久精品噜噜噜成人av农村| 欧美三级日韩在线| 亚洲人成在线播放网站岛国| 国产麻豆视频一区二区| 欧美一区二区性放荡片| 亚洲mv在线观看| 91黄色免费观看| 亚洲天堂av老司机| 国产成人av电影在线观看| 精品久久久久久久久久久久久久久 | 国产偷国产偷精品高清尤物| 免费在线观看不卡| 欧美日韩久久久一区| 亚洲区小说区图片区qvod| 成人app在线| 久久久久久久精| 国产老女人精品毛片久久| 精品久久久久99| 久久av中文字幕片| 日韩美女天天操| 久久av中文字幕片| 欧美变态tickling挠脚心| 日韩影视精彩在线| 日韩三级视频在线观看| 日韩av中文在线观看| 欧美一区二区性放荡片| 麻豆精品视频在线观看视频| 欧美一级精品大片| 久久99精品国产麻豆婷婷| 欧美一激情一区二区三区| 秋霞成人午夜伦在线观看| 日韩欧美一区在线| 蜜臀av性久久久久蜜臀av麻豆 | 青青草国产成人99久久| 欧美一区二视频| 看片网站欧美日韩| 久久精品亚洲麻豆av一区二区| 国产精品一区三区| 国产精品亲子乱子伦xxxx裸| 99re视频这里只有精品| 亚洲欧美另类久久久精品| 在线视频国内自拍亚洲视频| 香蕉成人伊视频在线观看| 欧美高清hd18日本| 精品在线播放免费| 欧美韩国一区二区| 色88888久久久久久影院按摩| 亚洲国产精品久久久久婷婷884 | 免费精品视频最新在线| 日韩欧美国产系列| 国产一区二区三区综合| 国产精品沙发午睡系列990531| 日本高清不卡视频| 日韩高清不卡在线| 国产日韩欧美激情| 日本大香伊一区二区三区| 日韩国产欧美在线视频| 久久免费的精品国产v∧| 成人aaaa免费全部观看| 一区二区高清在线| 制服.丝袜.亚洲.中文.综合| 国产主播一区二区三区| 亚洲女与黑人做爰| 91精品国产综合久久久久久| 国产成人综合在线观看| 亚洲精品久久久久久国产精华液| 欧美精品1区2区| 国产盗摄女厕一区二区三区| 一区二区三区日韩精品视频| 日韩欧美一级二级三级| 99精品国产91久久久久久| 五月天亚洲婷婷| 国产午夜精品久久久久久免费视| 91福利视频网站| 国模无码大尺度一区二区三区| 亚洲欧洲一区二区在线播放| 正在播放亚洲一区| 成人av资源在线观看| 婷婷丁香激情综合| 国产精品看片你懂得 | 美洲天堂一区二卡三卡四卡视频| 中文字幕精品三区| 欧美精品黑人性xxxx| www.日韩av| 老司机精品视频线观看86 | 91麻豆免费看| 久久精品国产精品亚洲综合| 伊人婷婷欧美激情| 26uuu亚洲综合色欧美 | 日韩不卡在线观看日韩不卡视频| 国产精品天天摸av网| 欧美一区二区美女| 色综合久久综合中文综合网| 久久成人免费网站| 亚洲成人一区在线| 国产精品入口麻豆九色| 日韩一级欧美一级| 91豆麻精品91久久久久久| 国产乱码精品一区二区三区av | 国产精品一区二区三区乱码| 日韩精品免费视频人成| 自拍偷在线精品自拍偷无码专区 | 国产一本一道久久香蕉| 亚洲va欧美va人人爽| 国产精品日日摸夜夜摸av| 久久综合色8888| 91精品国产综合久久精品麻豆 | 亚洲小说欧美激情另类| 中文av字幕一区| 精品久久久久久久久久久久久久久久久| 欧美亚一区二区| 日本道色综合久久| 91亚洲精品乱码久久久久久蜜桃 | 欧美国产精品一区| 69堂精品视频| 欧美日韩在线三区| 一本久道久久综合中文字幕 | 亚洲色欲色欲www| 国产亚洲精品7777| 亚洲精品一区二区三区影院| 欧美电影在线免费观看| 欧美美女bb生活片| 日本韩国欧美一区| 91丝袜高跟美女视频| 成人动漫一区二区三区| 国产精品一色哟哟哟| 激情偷乱视频一区二区三区| 日韩国产精品久久久| 日韩精品电影一区亚洲| 亚洲国产中文字幕| 午夜激情一区二区三区| 五月天亚洲精品| 日韩在线一区二区| 蜜桃久久久久久久| 日韩成人一区二区三区在线观看| 肉肉av福利一精品导航| 一区二区成人在线观看| 亚洲自拍与偷拍| 午夜精品久久久久久久99樱桃 | 欧美剧在线免费观看网站| 欧美亚洲另类激情小说| 欧美日韩一卡二卡三卡| 欧美私人免费视频| 欧美精品日韩综合在线| 678五月天丁香亚洲综合网| 欧美视频在线观看一区| 欧美视频一区二区三区四区| 欧美日韩在线一区二区| 91精品国产手机| 精品久久一区二区| 国产香蕉久久精品综合网| 中文字幕一区二区在线观看| 综合色天天鬼久久鬼色| 亚洲午夜久久久久久久久电影院 |