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

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

?? module.c

?? linux-2.6.15.6
?? C
字號:
/* Kernel module help for sparc64. * * Copyright (C) 2001 Rusty Russell. * Copyright (C) 2002 David S. Miller. */#include <linux/moduleloader.h>#include <linux/kernel.h>#include <linux/elf.h>#include <linux/vmalloc.h>#include <linux/fs.h>#include <linux/string.h>#include <linux/slab.h>#include <linux/vmalloc.h>#include <linux/mm.h>#include <asm/processor.h>#include <asm/spitfire.h>static void *module_map(unsigned long size){	struct vm_struct *area;	size = PAGE_ALIGN(size);	if (!size || size > MODULES_LEN)		return NULL;	area = __get_vm_area(size, VM_ALLOC, MODULES_VADDR, MODULES_END);	if (!area)		return NULL;	return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL);}void *module_alloc(unsigned long size){	void *ret;	/* We handle the zero case fine, unlike vmalloc */	if (size == 0)		return NULL;	ret = module_map(size);	if (!ret)		ret = ERR_PTR(-ENOMEM);	else		memset(ret, 0, size);	return ret;}/* Free memory returned from module_core_alloc/module_init_alloc */void module_free(struct module *mod, void *module_region){	vfree(module_region);	/* FIXME: If module_region == mod->init_region, trim exception           table entries. */}/* Make generic code ignore STT_REGISTER dummy undefined symbols.  */int module_frob_arch_sections(Elf_Ehdr *hdr,			      Elf_Shdr *sechdrs,			      char *secstrings,			      struct module *mod){	unsigned int symidx;	Elf64_Sym *sym;	const char *strtab;	int i;	for (symidx = 0; sechdrs[symidx].sh_type != SHT_SYMTAB; symidx++) {		if (symidx == hdr->e_shnum-1) {			printk("%s: no symtab found.\n", mod->name);			return -ENOEXEC;		}	}	sym = (Elf64_Sym *)sechdrs[symidx].sh_addr;	strtab = (char *)sechdrs[sechdrs[symidx].sh_link].sh_addr;	for (i = 1; i < sechdrs[symidx].sh_size / sizeof(Elf_Sym); i++) {		if (sym[i].st_shndx == SHN_UNDEF &&		    ELF64_ST_TYPE(sym[i].st_info) == STT_REGISTER)			sym[i].st_shndx = SHN_ABS;	}	return 0;}int apply_relocate(Elf64_Shdr *sechdrs,		   const char *strtab,		   unsigned int symindex,		   unsigned int relsec,		   struct module *me){	printk(KERN_ERR "module %s: non-ADD RELOCATION unsupported\n",	       me->name);	return -ENOEXEC;}int apply_relocate_add(Elf64_Shdr *sechdrs,		       const char *strtab,		       unsigned int symindex,		       unsigned int relsec,		       struct module *me){	unsigned int i;	Elf64_Rela *rel = (void *)sechdrs[relsec].sh_addr;	Elf64_Sym *sym;	u8 *location;	u32 *loc32;	for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {		Elf64_Addr v;		/* This is where to make the change */		location = (u8 *)sechdrs[sechdrs[relsec].sh_info].sh_addr			+ rel[i].r_offset;		loc32 = (u32 *) location;		BUG_ON(((u64)location >> (u64)32) != (u64)0);		/* This is the symbol it is referring to.  Note that all		   undefined symbols have been resolved.  */		sym = (Elf64_Sym *)sechdrs[symindex].sh_addr			+ ELF64_R_SYM(rel[i].r_info);		v = sym->st_value + rel[i].r_addend;		switch (ELF64_R_TYPE(rel[i].r_info) & 0xff) {		case R_SPARC_64:			location[0] = v >> 56;			location[1] = v >> 48;			location[2] = v >> 40;			location[3] = v >> 32;			location[4] = v >> 24;			location[5] = v >> 16;			location[6] = v >>  8;			location[7] = v >>  0;			break;		case R_SPARC_32:			location[0] = v >> 24;			location[1] = v >> 16;			location[2] = v >>  8;			location[3] = v >>  0;			break;		case R_SPARC_WDISP30:			v -= (Elf64_Addr) location;			*loc32 = (*loc32 & ~0x3fffffff) |				((v >> 2) & 0x3fffffff);			break;		case R_SPARC_WDISP22:			v -= (Elf64_Addr) location;			*loc32 = (*loc32 & ~0x3fffff) |				((v >> 2) & 0x3fffff);			break;		case R_SPARC_WDISP19:			v -= (Elf64_Addr) location;			*loc32 = (*loc32 & ~0x7ffff) |				((v >> 2) & 0x7ffff);			break;		case R_SPARC_LO10:			*loc32 = (*loc32 & ~0x3ff) | (v & 0x3ff);			break;		case R_SPARC_HI22:			*loc32 = (*loc32 & ~0x3fffff) |				((v >> 10) & 0x3fffff);			break;		case R_SPARC_OLO10:			*loc32 = (*loc32 & ~0x1fff) |				(((v & 0x3ff) +				  (ELF64_R_TYPE(rel[i].r_info) >> 8))				 & 0x1fff);			break;		default:			printk(KERN_ERR "module %s: Unknown relocation: %x\n",			       me->name,			       (int) (ELF64_R_TYPE(rel[i].r_info) & 0xff));			return -ENOEXEC;		};	}	return 0;}int module_finalize(const Elf_Ehdr *hdr,		    const Elf_Shdr *sechdrs,		    struct module *me){	/* Cheetah's I-cache is fully coherent.  */	if (tlb_type == spitfire) {		unsigned long va;		flushw_all();		for (va =  0; va < (PAGE_SIZE << 1); va += 32)			spitfire_put_icache_tag(va, 0x0);		__asm__ __volatile__("flush %g6");	}	return 0;}void module_arch_cleanup(struct module *mod){}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇一区二区三区精品视频| 久久综合五月天婷婷伊人| 精品视频在线看| 欧美一区二区在线看| 久久五月婷婷丁香社区| 亚洲人成网站在线| 日韩中文字幕不卡| 成人一区二区三区| 欧美午夜电影网| 久久综合九色综合97婷婷女人| 中文字幕一区二区三区四区| 婷婷综合五月天| 国产在线精品一区二区不卡了| 99在线精品视频| 91精品国产综合久久香蕉的特点| 国产视频一区在线观看| 午夜精品久久久久久久| 国产成人免费视频网站| 欧美日韩精品欧美日韩精品一综合| 精品美女在线播放| 一区二区三区欧美| 国产一区二区不卡在线| 欧美三级在线视频| 中文字幕乱码久久午夜不卡| 午夜在线成人av| av在线这里只有精品| 精品日韩欧美在线| 亚洲成人免费电影| 99这里只有精品| 久久综合九色综合97_久久久| 亚洲福利视频导航| 成人免费高清在线观看| 日韩美女在线视频| 亚洲国产一区二区a毛片| 国产精品中文字幕日韩精品| 欧美裸体一区二区三区| 国产精品久久久久久久久久免费看 | 中文字幕制服丝袜成人av| 日本亚洲视频在线| 色噜噜夜夜夜综合网| 国产色产综合产在线视频| 青青草国产精品97视觉盛宴 | 亚洲色图制服诱惑 | 国产精品视频在线看| 麻豆精品一二三| 欧美日韩一区二区三区免费看| 国产欧美精品区一区二区三区| 免费看欧美女人艹b| 欧美性大战久久久| 亚洲乱码国产乱码精品精的特点| 国产剧情一区二区| 日韩精品一区二区三区四区视频| 午夜精品久久久久久不卡8050| 一本色道久久综合亚洲91| 国产精品―色哟哟| 高清av一区二区| 久久久精品黄色| 国产乱码一区二区三区| 精品国产网站在线观看| 免费观看一级特黄欧美大片| 欧美精品久久久久久久多人混战| 亚洲精品国产一区二区精华液 | 亚洲精品视频在线看| 成人动漫av在线| 欧美激情中文不卡| 国产精品亚洲综合一区在线观看| 精品成人a区在线观看| 九一九一国产精品| 日韩免费性生活视频播放| 蜜乳av一区二区| 欧美哺乳videos| 精品在线亚洲视频| 2022国产精品视频| 国产在线播精品第三| 国产人妖乱国产精品人妖| 成人免费视频视频在线观看免费| 欧美国产日本视频| www.日韩在线| 亚洲精品国产无天堂网2021| 欧美午夜电影在线播放| 日韩成人dvd| 精品粉嫩aⅴ一区二区三区四区| 久久99久久精品| 国产日韩欧美一区二区三区乱码| 丁香婷婷综合激情五月色| 国产精品美女久久久久久久久久久| 成人av网在线| 一区二区三区免费看视频| 欧美欧美午夜aⅴ在线观看| 青青草成人在线观看| 久久蜜臀精品av| 99综合影院在线| 亚洲成人tv网| 欧美xxxxx裸体时装秀| 国产精品一区二区三区乱码| 国产精品久久国产精麻豆99网站| 91精彩视频在线观看| 日日摸夜夜添夜夜添国产精品| 日韩一区二区三区精品视频| 国产毛片精品一区| 中文字幕在线一区二区三区| 欧美在线小视频| 裸体一区二区三区| 欧美国产精品劲爆| 欧美性xxxxxxxx| 国产一区二区精品久久| 综合色天天鬼久久鬼色| 欧美日韩第一区日日骚| 国内精品久久久久影院薰衣草| 国产精品狼人久久影院观看方式| 在线观看www91| 激情小说亚洲一区| 亚洲女与黑人做爰| 亚洲国产日韩综合久久精品| 欧美v国产在线一区二区三区| 国产91清纯白嫩初高中在线观看| 一区二区三区欧美激情| 久久一区二区三区四区| 一本大道久久a久久综合| 免费不卡在线观看| 国产精品电影一区二区| 欧美一区二区三区日韩视频| 成人性生交大片免费看在线播放| 亚洲韩国精品一区| 久久精品免费在线观看| 欧洲国内综合视频| 国产一区视频在线看| 一区二区三区四区五区视频在线观看| 欧美一区二区三区婷婷月色 | 亚洲另类色综合网站| 日韩欧美视频在线| 色综合久久天天综合网| 六月丁香综合在线视频| 一区二区三区成人| 欧美激情一区二区三区四区| 欧美精品123区| 91原创在线视频| 国内成人精品2018免费看| 亚洲综合一二区| 国产精品国产a| 久久午夜电影网| 日韩一区国产二区欧美三区| 色伊人久久综合中文字幕| 国产一区二区成人久久免费影院| 视频一区免费在线观看| 亚洲美女一区二区三区| 国产日产精品1区| 精品福利视频一区二区三区| 欧美日韩一级黄| 99国产精品一区| 国产麻豆一精品一av一免费 | 日韩女优毛片在线| 欧美亚洲国产一区二区三区 | 中文字幕一区二| 久久天堂av综合合色蜜桃网| 欧美日免费三级在线| 精品国产污网站| 欧美一二三区在线| 欧美日韩另类一区| 色婷婷综合久久久久中文| 国产成人免费视频网站| 国产一区高清在线| 美女视频免费一区| 日本在线观看不卡视频| 亚洲成国产人片在线观看| 亚洲免费视频成人| 国产精品灌醉下药二区| 中文字幕精品—区二区四季| 久久久蜜臀国产一区二区| 日韩免费观看高清完整版| 这里是久久伊人| 欧美色区777第一页| 欧美综合视频在线观看| 欧美专区日韩专区| 色av一区二区| 日本高清免费不卡视频| 色屁屁一区二区| 一本一本久久a久久精品综合麻豆| fc2成人免费人成在线观看播放| 风间由美一区二区三区在线观看| 国产成人午夜99999| 国产黄色精品视频| 韩国一区二区三区| 国产精品一卡二| 成人午夜电影久久影院| 成人黄色软件下载| 91网址在线看| 欧美性猛交xxxx乱大交退制版 | 亚洲国产精品视频| 婷婷综合五月天| 麻豆精品精品国产自在97香蕉| 麻豆精品久久精品色综合| 精品国产91乱码一区二区三区 | 国产大片一区二区| 国产91精品一区二区麻豆亚洲| 成人一区二区视频| 色综合久久久久| 欧美日韩国产bt| 精品乱人伦小说| 欧美国产一区在线|