⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kernel_patch-2.4.20-rtl3.2-pre2

📁 fsmlabs的real time linux的内核
💻 2-PRE2
📖 第 1 页 / 共 4 页
字号:
+# CONFIG_NFSD_V3 is not set+# CONFIG_NFSD_TCP is not set+CONFIG_SUNRPC=y+CONFIG_LOCKD=y+CONFIG_SMB_FS=m+# CONFIG_SMB_NLS_DEFAULT is not set+CONFIG_NCP_FS=m+CONFIG_NCPFS_PACKET_SIGNING=y+CONFIG_NCPFS_IOCTL_LOCKING=y+CONFIG_NCPFS_STRONG=y+CONFIG_NCPFS_NFS_NS=y+CONFIG_NCPFS_OS2_NS=y+CONFIG_NCPFS_SMALLDOS=y+CONFIG_NCPFS_NLS=y+CONFIG_NCPFS_EXTRAS=y+# CONFIG_ZISOFS_FS is not set++#+# Partition Types+#+# CONFIG_PARTITION_ADVANCED is not set+CONFIG_MSDOS_PARTITION=y+CONFIG_SMB_NLS=y+CONFIG_NLS=y++#+# Native Language Support+#+CONFIG_NLS_DEFAULT="cp437"+CONFIG_NLS_CODEPAGE_437=y+CONFIG_NLS_CODEPAGE_737=m+CONFIG_NLS_CODEPAGE_775=m+CONFIG_NLS_CODEPAGE_850=y+CONFIG_NLS_CODEPAGE_852=m+CONFIG_NLS_CODEPAGE_855=m+CONFIG_NLS_CODEPAGE_857=m+CONFIG_NLS_CODEPAGE_860=m+CONFIG_NLS_CODEPAGE_861=m+CONFIG_NLS_CODEPAGE_862=m+CONFIG_NLS_CODEPAGE_863=m+CONFIG_NLS_CODEPAGE_864=m+CONFIG_NLS_CODEPAGE_865=m+CONFIG_NLS_CODEPAGE_866=m+CONFIG_NLS_CODEPAGE_869=m+CONFIG_NLS_CODEPAGE_936=m+CONFIG_NLS_CODEPAGE_950=m+CONFIG_NLS_CODEPAGE_932=m+CONFIG_NLS_CODEPAGE_949=m+CONFIG_NLS_CODEPAGE_874=m+CONFIG_NLS_ISO8859_8=m+# CONFIG_NLS_CODEPAGE_1250 is not set+# CONFIG_NLS_CODEPAGE_1251 is not set+CONFIG_NLS_ISO8859_1=m+CONFIG_NLS_ISO8859_2=m+CONFIG_NLS_ISO8859_3=m+CONFIG_NLS_ISO8859_4=m+CONFIG_NLS_ISO8859_5=m+CONFIG_NLS_ISO8859_6=m+CONFIG_NLS_ISO8859_7=m+CONFIG_NLS_ISO8859_9=m+# CONFIG_NLS_ISO8859_13 is not set+CONFIG_NLS_ISO8859_14=m+CONFIG_NLS_ISO8859_15=m+CONFIG_NLS_KOI8_R=m+# CONFIG_NLS_KOI8_U is not set+# CONFIG_NLS_UTF8 is not set++#+# Console drivers+#+CONFIG_VGA_CONSOLE=y+CONFIG_VIDEO_SELECT=y+# CONFIG_MDA_CONSOLE is not set++#+# Frame-buffer support+#+# CONFIG_FB is not set++#+# Sound+#+# CONFIG_SOUND is not set++#+# USB support+#+# CONFIG_USB is not set++#+# Bluetooth support+#+# CONFIG_BLUEZ is not set++#+# Kernel hacking+#+CONFIG_DEBUG_KERNEL=y+# CONFIG_DEBUG_STACKOVERFLOW is not set+# CONFIG_DEBUG_HIGHMEM is not set+# CONFIG_DEBUG_SLAB is not set+# CONFIG_DEBUG_IOVIRT is not set+CONFIG_MAGIC_SYSRQ=y+# CONFIG_DEBUG_SPINLOCK is not set+# CONFIG_FRAME_POINTER is not set++#+# Library routines+#+# CONFIG_ZLIB_INFLATE is not set+# CONFIG_ZLIB_DEFLATE is not setdiff -rbNu linux-2.4.20/drivers/acpi/include/platform/acgcc.h linux-2.4.20-rtl3.2-pre2/drivers/acpi/include/platform/acgcc.h--- linux-2.4.20/drivers/acpi/include/platform/acgcc.h	2002-11-29 00:53:12.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/drivers/acpi/include/platform/acgcc.h	2003-02-16 19:07:03.000000000 +0100@@ -99,7 +99,7 @@ #define BREAKPOINT3 #define disable() __cli() #define enable()  __sti()-#define halt()    __asm__ __volatile__ ("sti; hlt":::"memory")+#define halt()    safe_halt() /* __asm__ __volatile__ ("sti; hlt":::"memory") */  /*! [Begin] no source code translation  *Binary files linux-2.4.20/drivers/char/joystick/core.3105 and linux-2.4.20-rtl3.2-pre2/drivers/char/joystick/core.3105 differBinary files linux-2.4.20/drivers/char/joystick/core.3824 and linux-2.4.20-rtl3.2-pre2/drivers/char/joystick/core.3824 differBinary files linux-2.4.20/drivers/char/joystick/core.8394 and linux-2.4.20-rtl3.2-pre2/drivers/char/joystick/core.8394 differdiff -rbNu linux-2.4.20/include/asm-i386/apic.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/apic.h--- linux-2.4.20/include/asm-i386/apic.h	2002-08-03 02:39:45.000000000 +0200+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/apic.h	2003-04-03 11:51:47.000000000 +0200@@ -52,6 +52,9 @@  static inline void ack_APIC_irq(void) {+#ifdef CONFIG_RTLINUX+ 	label_ack_APIC(); /* used to generate RTLinux patch point */+#endif 	/* 	 * ack_APIC_irq() actually gets compiled as a single instruction: 	 * - a single rmw on Pentium/82489DXdiff -rbNu linux-2.4.20/include/asm-i386/floppy.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/floppy.h--- linux-2.4.20/include/asm-i386/floppy.h	2002-08-03 02:39:45.000000000 +0200+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/floppy.h	2003-04-03 12:04:13.000000000 +0200@@ -30,9 +30,11 @@ #define SW fd_routine[use_virtual_dma&1] #define CSW fd_routine[can_use_virtual_dma & 1] --#define fd_inb(port)			inb_p(port)-#define fd_outb(port,value)		outb_p(port,value)+/* lets see if floppies can live with outb/inb....hofrat */+//#define fd_inb(port)			inb_p(port)+//#define fd_outb(port,value)		outb_p(port,value)+#define fd_inb(port)			inb(port)+#define fd_outb(port,value)		outb(port,value)  #define fd_request_dma()        CSW._request_dma(FLOPPY_DMA,"floppy") #define fd_free_dma()           CSW._free_dma(FLOPPY_DMA)diff -rbNu linux-2.4.20/include/asm-i386/hw_irq.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/hw_irq.h--- linux-2.4.20/include/asm-i386/hw_irq.h	2001-11-22 20:46:18.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/hw_irq.h	2003-04-03 11:51:48.000000000 +0200@@ -15,6 +15,7 @@ #include <linux/config.h> #include <asm/atomic.h> #include <asm/irq.h>+#include <asm/rtlinux.h>  /*  * IDT vectors usable for external interrupt sources start@@ -126,41 +127,39 @@ #define BUILD_SMP_INTERRUPT(x,v) XBUILD_SMP_INTERRUPT(x,v) #define XBUILD_SMP_INTERRUPT(x,v)\ asmlinkage void x(void); \-asmlinkage void call_##x(void); \ __asm__( \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(x) ":\n\t" \-	"pushl $"#v"-256\n\t" \+	"pushl $"#v"\n\t" \ 	SAVE_ALL \-	SYMBOL_NAME_STR(call_##x)":\n\t" \-	"call "SYMBOL_NAME_STR(smp_##x)"\n\t" \+	"pushl $ret_from_intr\n\t" \+        RTLINUX_LABEL(smp_##x)\+        "jmp "SYMBOL_NAME_STR(smp_##x)"\n\t" \ 	"jmp ret_from_intr\n");  #define BUILD_SMP_TIMER_INTERRUPT(x,v) XBUILD_SMP_TIMER_INTERRUPT(x,v) #define XBUILD_SMP_TIMER_INTERRUPT(x,v) \ asmlinkage void x(struct pt_regs * regs); \-asmlinkage void call_##x(void); \ __asm__( \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(x) ":\n\t" \-	"pushl $"#v"-256\n\t" \+	"pushl $"#v"\n\t" \ 	SAVE_ALL \ 	"movl %esp,%eax\n\t" \ 	"pushl %eax\n\t" \-	SYMBOL_NAME_STR(call_##x)":\n\t" \+        RTLINUX_LABEL(smp_##x)\ 	"call "SYMBOL_NAME_STR(smp_##x)"\n\t" \ 	"addl $4,%esp\n\t" \ 	"jmp ret_from_intr\n");  #define BUILD_COMMON_IRQ() \-asmlinkage void call_do_IRQ(void); \ __asm__( \ 	"\n" __ALIGN_STR"\n" \ 	"common_interrupt:\n\t" \ 	SAVE_ALL \-	SYMBOL_NAME_STR(call_do_IRQ)":\n\t" \-	"call " SYMBOL_NAME_STR(do_IRQ) "\n\t" \-	"jmp ret_from_intr\n");+ 	"pushl $ret_from_intr\n\t" \+        RTLINUX_LABEL(do_IRQ)"\n\t" \+	"jmp "SYMBOL_NAME_STR(do_IRQ));  /*   * subtle. orig_eax is used by the signal code to distinct betweendiff -rbNu linux-2.4.20/include/asm-i386/irq.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/irq.h--- linux-2.4.20/include/asm-i386/irq.h	2002-08-03 02:39:45.000000000 +0200+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/irq.h	2003-04-03 11:51:48.000000000 +0200@@ -23,7 +23,7 @@  * Since vectors 0x00-0x1f are used/reserved for the CPU,  * the usable vector space is 0x20-0xff (224 vectors)  */-#ifdef CONFIG_X86_IO_APIC+#if defined( CONFIG_X86_IO_APIC ) || defined ( CONFIG_RTLINUX ) #define NR_IRQS 224 #else #define NR_IRQS 16diff -rbNu linux-2.4.20/include/asm-i386/param.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/param.h--- linux-2.4.20/include/asm-i386/param.h	2000-10-27 20:04:43.000000000 +0200+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/param.h	2003-02-16 19:07:03.000000000 +0100@@ -2,7 +2,7 @@ #define _ASMi386_PARAM_H  #ifndef HZ-#define HZ 100+#define HZ 1000 #endif  #define EXEC_PAGESIZE	4096diff -rbNu linux-2.4.20/include/asm-i386/pgalloc.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/pgalloc.h--- linux-2.4.20/include/asm-i386/pgalloc.h	2002-08-03 02:39:45.000000000 +0200+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/pgalloc.h	2003-04-03 11:51:48.000000000 +0200@@ -158,6 +158,33 @@  extern int do_check_pgt_cache(int, int); +extern inline void set_pgdir(unsigned long address, pgd_t entry)+{+	struct task_struct * p;+	pgd_t *pgd;+#ifdef CONFIG_SMP+	int i;+#endif++	read_lock(&tasklist_lock);+	for_each_task(p) {+		if (!p->mm)+			continue;+		*pgd_offset(p->mm,address) = entry;+	}+	read_unlock(&tasklist_lock);+#ifndef CONFIG_SMP+	for (pgd = (pgd_t *)pgd_quicklist; pgd; pgd = (pgd_t *)*(unsigned long *)pgd)+		pgd[address >> PGDIR_SHIFT] = entry;+#else+	/* To pgd_alloc/pgd_free, one holds master kernel lock and so does our callee, so we can+	   modify pgd caches of other CPUs as well. -jj */+	for (i = 0; i < NR_CPUS; i++)+		for (pgd = (pgd_t *)cpu_data[i].pgd_quick; pgd; pgd = (pgd_t *)*(unsigned long *)pgd)+			pgd[address >> PGDIR_SHIFT] = entry;+#endif+}+ /*  * TLB flushing:  *diff -rbNu linux-2.4.20/include/asm-i386/rtlinux_cli.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/rtlinux_cli.h--- linux-2.4.20/include/asm-i386/rtlinux_cli.h	1970-01-01 01:00:00.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/rtlinux_cli.h	2003-03-04 17:35:45.000000000 +0100@@ -0,0 +1,43 @@+#ifndef RTLINUX_CLI_H+#define RTLINUX_CLI_H++/* interrupt control.. */+#define rtl_hard_save_flags_kernel(x)		__asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */ :"memory")+#define rtl_hard_restore_flags_kernel(x) 	__asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory")+#define rtl_hard_cli_kernel() 		__asm__ __volatile__("cli": : :"memory")+#define rtl_hard_sti_kernel()			__asm__ __volatile__("sti": : :"memory")++/* For spinlocks etc */+#define rtl_hard_local_irq_save_kernel(x)	__asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (x): /* no input */ :"memory")+#define rtl_hard_local_irq_restore_kernel(x)	__asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory")+#define rtl_hard_local_irq_disable_kernel()	__asm__ __volatile__("cli": : :"memory")+#define rtl_hard_local_irq_enable_kernel()	__asm__ __volatile__("sti": : :"memory")+struct irq_control_s {+	void (*do_save_flags)(unsigned long *);+	void (*do_restore_flags)(unsigned long);+	void (*do_cli)(void);+	void (*do_sti)(void);+	void (*do_local_irq_save)(unsigned long *);+	void (*do_local_irq_restore)(unsigned long);+};+extern struct irq_control_s irq_control;+#undef __cli+#undef __sti+#undef __save_flags+#undef __restore_flags+#undef local_irq_save+#undef local_irq_restore+#undef local_irq_disable+#undef local_irq_enable+#define __save_flags(x)	irq_control.do_save_flags(&x)+#define __restore_flags(x) irq_control.do_restore_flags(x)+#define __cli()		irq_control.do_cli()+#define __sti()		irq_control.do_sti()+#define local_irq_save(x)	irq_control.do_local_irq_save((&x))+#define local_irq_restore(x)	irq_control.do_local_irq_restore(x)+#define local_irq_disable()	irq_control.do_cli()+#define local_irq_enable()	irq_control.do_sti()++#undef safe_halt+#define safe_halt()	do { __asm__ __volatile__("cli; nop; sti; hlt": : :"memory"); irq_control.do_sti();  } while (0)+#endif /* RTLINUX_CLI_H */diff -rbNu linux-2.4.20/include/asm-i386/rtlinux.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/rtlinux.h--- linux-2.4.20/include/asm-i386/rtlinux.h	1970-01-01 01:00:00.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/rtlinux.h	2003-02-16 19:07:03.000000000 +0100@@ -0,0 +1,14 @@++/* RTLinux support for patching the running kernel.+	* (c) Victor Yodaiken 1999+*/++#define label_ack_APIC() xlabel_code(0x12344321)+#define xlabel_code(x) asm __volatile__(".section rtlinux_patch,\"a\"\n .align 4\n"\+                             ".long 1f,"#x"\n" ".previous\n 1:\n" );+#define RTLINUX_LABEL(x)\+  ".section rtlinux_patch,\"a\"\n .align 4\n .long 1f,"#x"\n .previous\n 1:\n"++#define RTLINUX_EXPORT(x)\+  asm (".section rtlinux_funcs,\"a\"\n .align 4\n"\+                             ".long "#x"\n .previous\n" );diff -rbNu linux-2.4.20/include/asm-i386/smp.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/smp.h--- linux-2.4.20/include/asm-i386/smp.h	2002-11-29 00:53:15.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/smp.h	2003-04-03 11:51:47.000000000 +0200@@ -11,6 +11,7 @@ #endif  #ifdef CONFIG_X86_LOCAL_APIC+#include <asm/rtlinux.h> #ifndef __ASSEMBLY__ #include <asm/fixmap.h> #include <asm/bitops.h>@@ -68,6 +69,9 @@ extern volatile int cpu_to_logical_apicid[NR_CPUS]; extern volatile int logical_apicid_to_cpu[MAX_APICID]; +extern volatile int physical_apicid_2_cpu[];+#define hw_smp_processor_id() (physical_apicid_2_cpu[hard_smp_processor_id()])+ /*  * General functions that each host system must provide.  */@@ -111,5 +115,7 @@   #define PROC_CHANGE_PENALTY	15		/* Schedule penalty */ +#else+#define hw_smp_processor_id() (0) #endif #endifdiff -rbNu linux-2.4.20/include/asm-i386/system.h linux-2.4.20-rtl3.2-pre2/include/asm-i386/system.h--- linux-2.4.20/include/asm-i386/system.h	2002-11-29 00:53:15.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/include/asm-i386/system.h	2003-04-03 11:51:47.000000000 +0200@@ -5,6 +5,7 @@ #include <linux/kernel.h> #include <linux/init.h> #include <asm/segment.h>+#include <asm/rtlinux.h> #include <linux/bitops.h> /* for LOCK_PREFIX */  #ifdef __KERNEL__@@ -328,6 +329,9 @@ #define local_irq_disable()	__cli() #define local_irq_enable()	__sti() +#ifdef CONFIG_RTLINUX+#include <asm/rtlinux_cli.h>+#endif #ifdef CONFIG_SMP  extern void __global_cli(void);diff -rbNu linux-2.4.20/kernel/exit.c linux-2.4.20-rtl3.2-pre2/kernel/exit.c--- linux-2.4.20/kernel/exit.c	2002-11-29 00:53:15.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/kernel/exit.c	2003-02-16 19:07:03.000000000 +0100@@ -422,10 +422,14 @@ 	write_unlock_irq(&tasklist_lock); } +void (*rtl_do_exit_handler)(long code) = 0; NORET_TYPE void do_exit(long code) { 	struct task_struct *tsk = current; +	if (rtl_do_exit_handler) {+		rtl_do_exit_handler(code);+	} 	if (in_interrupt()) 		panic("Aiee, killing interrupt handler!"); 	if (!tsk->pid)diff -rbNu linux-2.4.20/kernel/fork.c linux-2.4.20-rtl3.2-pre2/kernel/fork.c--- linux-2.4.20/kernel/fork.c	2002-11-29 00:53:15.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/kernel/fork.c	2003-02-16 19:07:03.000000000 +0100@@ -42,8 +42,8 @@ { 	unsigned long flags; +	wq_write_lock_irqsave(&q->lock, flags); //kabi 	wait->flags &= ~WQ_FLAG_EXCLUSIVE;-	wq_write_lock_irqsave(&q->lock, flags); 	__add_wait_queue(q, wait); 	wq_write_unlock_irqrestore(&q->lock, flags); }@@ -52,8 +52,8 @@ { 	unsigned long flags; +	wq_write_lock_irqsave(&q->lock, flags); //kabi 	wait->flags |= WQ_FLAG_EXCLUSIVE;-	wq_write_lock_irqsave(&q->lock, flags); 	__add_wait_queue_tail(q, wait); 	wq_write_unlock_irqrestore(&q->lock, flags); }@@ -232,7 +232,9 @@ 	atomic_set(&mm->mm_count, 1); 	init_rwsem(&mm->mmap_sem); 	mm->page_table_lock = SPIN_LOCK_UNLOCKED;+	lock_kernel(); 	mm->pgd = pgd_alloc(mm);+	unlock_kernel(); 	mm->def_flags = 0; 	if (mm->pgd) 		return mm;@@ -264,7 +266,9 @@ inline void __mmdrop(struct mm_struct *mm) { 	BUG_ON(mm == &init_mm);+   	lock_kernel(); 	pgd_free(mm->pgd);+   	unlock_kernel(); 	destroy_context(mm); 	free_mm(mm); }diff -rbNu linux-2.4.20/Makefile linux-2.4.20-rtl3.2-pre2/Makefile--- linux-2.4.20/Makefile	2002-11-29 00:53:16.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/Makefile	2003-03-05 16:16:58.000000000 +0100@@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 20-EXTRAVERSION =+EXTRAVERSION =-rtl3.2-pre2  KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) diff -rbNu linux-2.4.20/mm/vmalloc.c linux-2.4.20-rtl3.2-pre2/mm/vmalloc.c--- linux-2.4.20/mm/vmalloc.c	2002-11-29 00:53:15.000000000 +0100+++ linux-2.4.20-rtl3.2-pre2/mm/vmalloc.c	2003-02-16 19:07:03.000000000 +0100@@ -148,6 +148,7 @@ 	spin_lock(&init_mm.page_table_lock); 	do { 		pmd_t *pmd;+		pgd_t olddir = *dir; 		 		pmd = pmd_alloc(&init_mm, dir, address); 		ret = -ENOMEM;@@ -157,6 +158,10 @@ 		ret = -ENOMEM; 		if (alloc_area_pmd(pmd, address, end - address, gfp_mask, prot)) 			break;+#if defined(__i386__)+		if (pgd_val(olddir) != pgd_val(*dir))+			set_pgdir(address, *dir);+#endif /* __i386__ */  		address = (address + PGDIR_SIZE) & PGDIR_MASK; 		dir++;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -