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

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

?? net_init.c

?? LINUX1.0源代碼,代碼條理清晰
?? C
字號:
/* 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:
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
zzijzzij亚洲日本少妇熟睡| 亚洲精品一区二区三区四区高清| 777a∨成人精品桃花网| 欧美成人伊人久久综合网| 亚洲视频在线观看一区| 国产麻豆一精品一av一免费| 欧美视频在线一区| 国产精品成人一区二区三区夜夜夜 | 国产精品国产三级国产普通话蜜臀| 亚洲欧美日韩系列| 成人福利在线看| 日韩欧美激情一区| 亚洲成人动漫在线观看| 99vv1com这只有精品| 国产欧美一区视频| 国产乱淫av一区二区三区| 欧美一级免费大片| 午夜精品久久久久久久久| 91亚洲精品乱码久久久久久蜜桃 | 蜜桃传媒麻豆第一区在线观看| 555www色欧美视频| 亚洲蜜臀av乱码久久精品| 成人精品国产免费网站| 久久蜜桃av一区精品变态类天堂 | 韩国v欧美v亚洲v日本v| 欧美精选一区二区| 亚洲成av人影院| 欧美调教femdomvk| 一区二区三区精品视频在线| 91亚洲国产成人精品一区二区三| 国产日韩精品一区二区三区| 国产精品综合二区| 久久免费的精品国产v∧| 国产麻豆一精品一av一免费 | 欧美女孩性生活视频| 亚洲va国产天堂va久久en| 色哟哟亚洲精品| 亚洲天堂免费看| 一本色道久久综合亚洲精品按摩| 亚洲色欲色欲www在线观看| 99久久er热在这里只有精品15| 欧美—级在线免费片| 成人app软件下载大全免费| 中文字幕一区不卡| 日本久久精品电影| 亚洲网友自拍偷拍| 日韩久久久精品| 国产又粗又猛又爽又黄91精品| 久久精品夜色噜噜亚洲aⅴ| 国产在线日韩欧美| 国产精品国产三级国产aⅴ入口 | 粉嫩在线一区二区三区视频| 欧美国产成人在线| 色综合久久久网| 午夜精品成人在线视频| 精品国产91乱码一区二区三区| 国产一区二区三区不卡在线观看| 国产精品久久久久久久久久免费看| 一本大道综合伊人精品热热| 亚洲成人1区2区| 久久人人爽人人爽| 在线日韩av片| 久久精工是国产品牌吗| 国产精品美女久久久久久| 欧美日本视频在线| 国产suv精品一区二区883| 亚洲靠逼com| 欧美一级欧美三级| 一本久道久久综合中文字幕| 日韩电影在线观看电影| 国产精品成人免费| 欧美一区二区视频观看视频| 成人av在线网| 久久99久久精品| 曰韩精品一区二区| 国产三级三级三级精品8ⅰ区| 欧美亚男人的天堂| 国产成人精品亚洲午夜麻豆| 天天综合日日夜夜精品| 中文乱码免费一区二区| 欧美精品18+| 99这里只有久久精品视频| 久久超碰97中文字幕| 亚洲免费av网站| 国产欧美日韩综合| 日韩美女视频在线| 欧美熟乱第一页| 不卡的av电影| 精品一区免费av| 亚洲午夜一区二区三区| 亚洲国产精品二十页| 日韩免费观看高清完整版| 精品视频在线看| 日本韩国精品一区二区在线观看| 国产乱理伦片在线观看夜一区| 天天色图综合网| 一区二区三区在线观看动漫| 中文字幕av资源一区| 久久综合色8888| 欧美videossexotv100| 欧美精品国产精品| 欧美日韩一区视频| 在线免费不卡电影| 色综合咪咪久久| www.久久精品| caoporm超碰国产精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 久久成人久久爱| 美腿丝袜亚洲综合| 蜜臀久久久99精品久久久久久| 午夜a成v人精品| 午夜免费久久看| 日韩激情视频在线观看| 日日夜夜精品免费视频| 午夜av电影一区| 日韩精品电影一区亚洲| 三级久久三级久久久| 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人sese在线| 成人av在线影院| 色八戒一区二区三区| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 色屁屁一区二区| 91黄色免费看| 欧美三级中文字幕| 91精品国产综合久久精品app| 欧美日韩大陆一区二区| 欧美一区二视频| 久久久三级国产网站| 中文字幕第一区二区| 亚洲天天做日日做天天谢日日欢| 亚洲人成精品久久久久久 | 国产无一区二区| 亚洲色欲色欲www在线观看| 亚洲一区二区免费视频| 蜜臀av一区二区三区| 国产成人8x视频一区二区| 91亚洲大成网污www| 欧美日本一区二区三区四区| 日韩欧美在线网站| 国产欧美日本一区视频| 亚洲另类在线制服丝袜| 另类小说欧美激情| 不卡视频免费播放| 亚洲三级理论片| 高清shemale亚洲人妖| 欧美一区二视频| 蜜乳av一区二区| 国产不卡在线播放| 91国产成人在线| 欧美岛国在线观看| 亚洲视频一二三区| 成人av网站在线观看| 成人激情动漫在线观看| 成人免费av资源| 欧美三电影在线| 中文字幕av一区二区三区高| 亚洲成av人在线观看| 粉嫩久久99精品久久久久久夜| 在线观看日韩毛片| 国产视频一区二区在线| 亚洲综合一二区| 成人在线视频首页| 日韩欧美精品三级| 一区二区三区四区在线免费观看 | 国产精品情趣视频| 日韩在线一二三区| 91蝌蚪porny| 久久久精品国产免大香伊| 亚洲成av人影院| 99精品黄色片免费大全| 精品国精品国产| 一区二区高清免费观看影视大全| 国产精品18久久久久| 欧美一卡2卡3卡4卡| 一区二区不卡在线视频 午夜欧美不卡在| 久久精品免费观看| 欧美精品丝袜中出| 亚洲综合免费观看高清完整版在线 | 精品综合免费视频观看| 欧美在线影院一区二区| 国产精品福利一区二区三区| 国产一区二区在线电影| 日韩一区二区三区免费观看| 亚洲二区视频在线| 91年精品国产| 中文字幕在线观看不卡| 国产69精品久久99不卡| 91精品国产品国语在线不卡| 欧美va在线播放| 亚洲一区在线电影| www.欧美精品一二区| 久久麻豆一区二区| 爽好多水快深点欧美视频| 99久久免费视频.com| 久久久亚洲欧洲日产国码αv| 日韩**一区毛片| 精品视频1区2区| 一区二区三区中文字幕精品精品| 国产69精品久久久久毛片|