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

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

?? module.c

?? linux-2.6.15.6
?? C
字號:
/*  Kernel module help for sh64.    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.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    Copyright 2004 SuperH (UK) Ltd    Author: Richard Curnow    Based on the sh version, and on code from the sh64-specific parts of    modutils, originally written by Richard Curnow and Ben Gaster.*/#include <linux/moduleloader.h>#include <linux/elf.h>#include <linux/vmalloc.h>#include <linux/fs.h>#include <linux/string.h>#include <linux/kernel.h>#if 0#define DEBUGP printk#else#define DEBUGP(fmt...)#endifvoid *module_alloc(unsigned long size){	if (size == 0)		return NULL;	return vmalloc(size);}/* Free memory returned from module_alloc */void module_free(struct module *mod, void *module_region){	vfree(module_region);	/* FIXME: If module_region == mod->init_region, trim exception           table entries. */}/* We don't need anything special. */int module_frob_arch_sections(Elf_Ehdr *hdr,			      Elf_Shdr *sechdrs,			      char *secstrings,			      struct module *mod){	return 0;}int apply_relocate_add(Elf32_Shdr *sechdrs,		   const char *strtab,		   unsigned int symindex,		   unsigned int relsec,		   struct module *me){	unsigned int i;	Elf32_Rela *rel = (void *)sechdrs[relsec].sh_addr;	Elf32_Sym *sym;	Elf32_Addr relocation;	uint32_t *location;	int align;	int is_shmedia;	DEBUGP("Applying relocate section %u to %u\n", relsec,	       sechdrs[relsec].sh_info);	for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {		/* This is where to make the change */		location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr			+ rel[i].r_offset;		/* This is the symbol it is referring to.  Note that all		   undefined symbols have been resolved.  */		sym = (Elf32_Sym *)sechdrs[symindex].sh_addr			+ ELF32_R_SYM(rel[i].r_info);		relocation = sym->st_value + rel[i].r_addend;		align = (int)location & 3;		/* For text addresses, bit2 of the st_other field indicates		 * whether the symbol is SHmedia (1) or SHcompact (0).  If		 * SHmedia, the LSB of the symbol needs to be asserted		 * for the CPU to be in SHmedia mode when it starts executing		 * the branch target. */		is_shmedia = (sym->st_other & 4) ? 1 : 0;		if (is_shmedia) {			relocation |= 1;		}		switch (ELF32_R_TYPE(rel[i].r_info)) {		case R_SH_DIR32:			DEBUGP("R_SH_DIR32 @%08lx = %08lx\n", (unsigned long) location, (unsigned long) relocation);			*location += relocation;			break;		case R_SH_REL32:			DEBUGP("R_SH_REL32 @%08lx = %08lx\n", (unsigned long) location, (unsigned long) relocation);			relocation -= (Elf32_Addr) location;			*location += relocation;			break;		case R_SH_IMM_LOW16:			DEBUGP("R_SH_IMM_LOW16 @%08lx = %08lx\n", (unsigned long) location, (unsigned long) relocation);			*location = (*location & ~0x3fffc00) |				((relocation & 0xffff) << 10);			break;		case R_SH_IMM_MEDLOW16:			DEBUGP("R_SH_IMM_MEDLOW16 @%08lx = %08lx\n", (unsigned long) location, (unsigned long) relocation);			*location = (*location & ~0x3fffc00) |				(((relocation >> 16) & 0xffff) << 10);			break;		case R_SH_IMM_LOW16_PCREL:			DEBUGP("R_SH_IMM_LOW16_PCREL @%08lx = %08lx\n", (unsigned long) location, (unsigned long) relocation);			relocation -= (Elf32_Addr) location;			*location = (*location & ~0x3fffc00) |				((relocation & 0xffff) << 10);			break;		case R_SH_IMM_MEDLOW16_PCREL:			DEBUGP("R_SH_IMM_MEDLOW16_PCREL @%08lx = %08lx\n", (unsigned long) location, (unsigned long) relocation);			relocation -= (Elf32_Addr) location;			*location = (*location & ~0x3fffc00) |				(((relocation >> 16) & 0xffff) << 10);			break;		default:			printk(KERN_ERR "module %s: Unknown relocation: %u\n",			       me->name, ELF32_R_TYPE(rel[i].r_info));			return -ENOEXEC;		}	}	return 0;}int apply_relocate(Elf32_Shdr *sechdrs,		       const char *strtab,		       unsigned int symindex,		       unsigned int relsec,		       struct module *me){	printk(KERN_ERR "module %s: REL RELOCATION unsupported\n",	       me->name);	return -ENOEXEC;}int module_finalize(const Elf_Ehdr *hdr,		    const Elf_Shdr *sechdrs,		    struct module *me){	return 0;}void module_arch_cleanup(struct module *mod){}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产一区二区三区| 99在线精品观看| 青椒成人免费视频| 三级不卡在线观看| 欧美aa在线视频| 国产精品亚洲专一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 久久99久久99| 成人动漫在线一区| 欧美三级中文字幕在线观看| 欧美视频在线观看一区| 日韩免费性生活视频播放| 久久尤物电影视频在线观看| 国产精品国产三级国产aⅴ中文 | 国产亚洲成aⅴ人片在线观看| 精品国产三级a在线观看| 国产精品看片你懂得| 婷婷一区二区三区| eeuss鲁片一区二区三区| 欧美无砖专区一中文字| 久久亚洲精品国产精品紫薇| 亚洲女女做受ⅹxx高潮| 精品在线观看视频| 色香色香欲天天天影视综合网| 精品久久国产字幕高潮| 亚洲免费av高清| 国产二区国产一区在线观看| 欧美少妇bbb| 亚洲欧美国产毛片在线| 国产一区二区三区综合| 欧美日韩一卡二卡| 一片黄亚洲嫩模| proumb性欧美在线观看| 精品国产乱子伦一区| 天堂蜜桃一区二区三区| aaa亚洲精品| 亚洲另类中文字| 91丝袜国产在线播放| 亚洲免费电影在线| 色妞www精品视频| 亚洲另类一区二区| 欧美一区二区精品在线| 日本午夜一本久久久综合| 欧美日产国产精品| 一区二区三区在线视频播放| 一本高清dvd不卡在线观看 | 国产一区二区女| 久久久蜜桃精品| 91美女片黄在线| 亚洲一区二区三区四区中文字幕 | 久久久久亚洲综合| 粉嫩aⅴ一区二区三区四区五区| 久久久影视传媒| jizzjizzjizz欧美| 亚洲成人精品在线观看| 日韩欧美亚洲国产精品字幕久久久| 韩国成人精品a∨在线观看| 国产亚洲成aⅴ人片在线观看| 99久久99久久久精品齐齐| 亚洲综合小说图片| 久久久久久久综合| 欧美日韩一区二区三区四区五区 | 欧美日韩一区二区三区四区| 人禽交欧美网站| 中文字幕成人在线观看| 欧美精品久久天天躁| 成人黄色软件下载| 久久成人免费网| 亚洲激情图片小说视频| 久久九九99视频| 日韩三级视频在线观看| 日韩欧美一级二级三级| 99re视频精品| 国产精品资源网| 蜜臀av亚洲一区中文字幕| 亚洲午夜久久久久| 国产精品人成在线观看免费| 久久伊99综合婷婷久久伊| 欧美日韩国产综合一区二区 | 欧美极品xxx| 欧美国产乱子伦| 久久精品一区二区三区不卡牛牛 | 国产久卡久卡久卡久卡视频精品| 亚洲成人av中文| 亚洲午夜一区二区三区| 亚洲你懂的在线视频| 国产精品美女久久久久久久久久久| 久久久天堂av| 中文av一区二区| |精品福利一区二区三区| 亚洲欧洲性图库| 一区二区三区在线高清| 亚洲影视在线观看| 性做久久久久久| 狠狠狠色丁香婷婷综合激情 | 亚洲精品午夜久久久| 一级特黄大欧美久久久| 亚洲国产精品影院| 蜜臀av一区二区在线免费观看 | 欧美国产一区在线| 一区二区在线观看av| 日韩国产欧美一区二区三区| 丁香婷婷深情五月亚洲| 成人精品视频.| 欧美三级三级三级| 久久久噜噜噜久久中文字幕色伊伊| 国产精品狼人久久影院观看方式| 一区二区在线观看视频在线观看| 青青草国产精品亚洲专区无| 成人av在线资源| 欧美xxxxx牲另类人与| 亚洲精品成人少妇| 麻豆91免费看| 欧美日韩精品一区二区三区 | 国产成人日日夜夜| 欧美日韩国产中文| 亚洲天堂久久久久久久| 久久成人免费网站| 欧美一区二区三区小说| 一区二区三区波多野结衣在线观看| 激情深爱一区二区| 欧美日本国产一区| 亚洲综合精品久久| 97国产一区二区| 中文字幕日韩精品一区| 激情久久久久久久久久久久久久久久| 欧美三级日韩在线| 亚洲精品乱码久久久久久黑人| 国产精品 欧美精品| 国产亚洲成年网址在线观看| 国产一区在线视频| 国产午夜精品一区二区| av电影天堂一区二区在线| 国产精品高清亚洲| 国产一区在线不卡| 色老综合老女人久久久| 欧美麻豆精品久久久久久| 亚洲国产三级在线| 欧美制服丝袜第一页| 亚洲一区二区三区在线| 欧美一卡二卡在线| 美女一区二区在线观看| 亚洲国产精品精华液2区45| 成人夜色视频网站在线观看| 亚洲区小说区图片区qvod| 日韩精品一区二区三区中文不卡| 日本成人在线网站| 国产喂奶挤奶一区二区三区| 91免费视频观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品日韩一区二区三区| 成人天堂资源www在线| 亚洲午夜一区二区| 久久久久久久一区| 欧美精品久久久久久久多人混战| 激情偷乱视频一区二区三区| 亚洲精品免费在线观看| 精品乱码亚洲一区二区不卡| 91豆麻精品91久久久久久| 紧缚捆绑精品一区二区| 亚洲国产视频在线| 日本一区二区免费在线| 欧美一级xxx| 欧美日本一区二区| 欧美性猛交xxxxxxxx| 91丨九色丨蝌蚪富婆spa| 视频一区在线播放| 91精品婷婷国产综合久久竹菊| 国产呦精品一区二区三区网站| 视频在线观看91| 午夜精品123| 亚洲一区日韩精品中文字幕| 亚洲人成影院在线观看| 国产精品女人毛片| 中文字幕一区二区三区色视频| 日韩精品一区二区三区中文不卡| 91精品国产综合久久久久久久| 欧美在线看片a免费观看| 欧美在线999| 欧美伦理视频网站| 日韩一区二区电影在线| 日韩视频免费观看高清在线视频| 欧美一区二区三区系列电影| 欧美高清视频在线高清观看mv色露露十八 | 天天av天天翘天天综合网色鬼国产| 亚洲电影在线播放| 免费精品视频在线| 国产suv精品一区二区6| 成人免费视频播放| 欧美日韩情趣电影| 精品国产免费视频| 亚洲视频一区二区在线| 午夜精品福利视频网站| 成人免费va视频| 欧美日韩一区二区三区在线看 | 午夜精品福利一区二区三区av | 久久综合九色综合欧美98| 国产精品成人网| 蜜桃精品视频在线观看| 成人精品视频网站|