diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-05-06 14:54:13 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-05-06 14:54:13 +0000 |
commit | beb01bce683c8ee2ca2b5105e5274f2fe56e6cb0 (patch) | |
tree | 5d86e454c69ef015d034807f061a68cf72406d64 | |
parent | 8f6aca9a6b125d8f592ac793f93fcecfbb9f4802 (diff) | |
download | xen-beb01bce683c8ee2ca2b5105e5274f2fe56e6cb0.tar.gz xen-beb01bce683c8ee2ca2b5105e5274f2fe56e6cb0.tar.bz2 xen-beb01bce683c8ee2ca2b5105e5274f2fe56e6cb0.zip |
bitkeeper revision 1.208 (3eb7cc95biENxNPLM1gD4B9rpj7H_w)
Makefile:
new file
Many files:
Allow hypercalls from ring 3 (if permitted by ring 1).
.del-Config.in~31701845a0b06ec3:
Delete: xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in
-rw-r--r-- | .rootkeys | 2 | ||||
-rw-r--r-- | xen/arch/i386/entry.S | 8 | ||||
-rw-r--r-- | xen/arch/i386/process.c | 15 | ||||
-rw-r--r-- | xen/arch/i386/traps.c | 17 | ||||
-rw-r--r-- | xen/include/asm-i386/processor.h | 1 | ||||
-rw-r--r-- | xen/include/hypervisor-ifs/hypervisor-if.h | 2 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in | 20 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c | 32 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c | 8 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c | 22 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in | 361 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile | 334 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h | 7 | ||||
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h | 3 |
14 files changed, 432 insertions, 400 deletions
@@ -449,7 +449,7 @@ 3e5a4e668yELUdtr3HiJZBIqxqUyuA xenolinux-2.4.21-pre4-sparse/drivers/block/Config.in 3ea53c6em6uzVHSiGqrbbAVofyRY_g xenolinux-2.4.21-pre4-sparse/drivers/block/genhd.c 3e5a4e66mrtlmV75L1tjKDg8RaM5gA xenolinux-2.4.21-pre4-sparse/drivers/block/ll_rw_blk.c -3ead095dEkj9JJWYYBnbvW3OYbKFxg xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in +3eb7cc90LCRDzdNiLIt20dkBbAwVKQ xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile 3ead095dPseRoFELVf_xcnVXjq02hw xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c 3e5a4e66rw65CxyolW9PKz4GG42RcA xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c 3e5a4e669uzIE54VwucPYtGwXLAbzA xenolinux-2.4.21-pre4-sparse/fs/exec.c diff --git a/xen/arch/i386/entry.S b/xen/arch/i386/entry.S index f14f594ee5..33d533a283 100644 --- a/xen/arch/i386/entry.S +++ b/xen/arch/i386/entry.S @@ -210,8 +210,8 @@ ENTRY(ret_from_newdomain) */ do_multicall: popl %eax - cmpl $SYMBOL_NAME(ret_from_hypervisor_call),%eax - jne multicall_exit /* bail if called recursively */ + cmpl $SYMBOL_NAME(multicall_return_from_call),%eax + je multicall_return_from_call pushl %ebx movl 4(%esp),%ebx /* EBX == call_list */ movl 8(%esp),%ecx /* ECX == nr_calls */ @@ -231,12 +231,12 @@ multicall_fault6: movl (%ebx),%eax andl $255,%eax call *SYMBOL_NAME(hypervisor_call_table)(,%eax,4) +multicall_return_from_call: addl $20,%esp popl %ecx addl $BYTES_PER_MULTICALL_ENTRY,%ebx loop multicall_loop popl %ebx -multicall_exit: xorl %eax,%eax jmp ret_from_hypervisor_call @@ -647,7 +647,7 @@ ENTRY(hypervisor_call_table) .long SYMBOL_NAME(do_dom_mem_op) .long SYMBOL_NAME(do_multicall) .long SYMBOL_NAME(do_kbd_op) - .long SYMBOL_NAME(do_iopl) + .long SYMBOL_NAME(do_set_priv_levels) .rept NR_syscalls-((.-hypervisor_call_table)/4) .long SYMBOL_NAME(sys_ni_syscall) .endr diff --git a/xen/arch/i386/process.c b/xen/arch/i386/process.c index 2cac1a9d4e..695b581507 100644 --- a/xen/arch/i386/process.c +++ b/xen/arch/i386/process.c @@ -348,10 +348,19 @@ void __switch_to(struct task_struct *prev_p, struct task_struct *next_p) } -long do_iopl(unsigned int new_iopl) +long do_set_priv_levels(unsigned int new_io_pl, unsigned int new_hypercall_pl) { struct pt_regs *regs = GET_SYSCALL_REGS(current); - if ( !IS_PRIV(current) ) return -EPERM; - regs->eflags = (regs->eflags & 0xffffcfff) | ((new_iopl&3) << 12); + + /* + * Any domain can reduce privilege required for hypercall access. + * Note that access from ring 1 cannot be relinquished. + */ + current->thread.hypercall_pl = new_hypercall_pl & 3; + + /* Only privileged domains can acquire access to I/O ports. */ + if ( IS_PRIV(current) ) + regs->eflags = (regs->eflags & 0xffffcfff) | ((new_io_pl&3) << 12); + return 0; } diff --git a/xen/arch/i386/traps.c b/xen/arch/i386/traps.c index 8ca6b90ccf..e4af21065b 100644 --- a/xen/arch/i386/traps.c +++ b/xen/arch/i386/traps.c @@ -401,6 +401,23 @@ asmlinkage void do_general_protection(struct pt_regs *regs, long error_code) */ if ( (error_code & 3) == 2 ) { + /* + * Hypercalls from rings 2 or 3 fall through to here. If permitted, we + * will transfer control to the requested hypercall. + */ + if ( ((error_code>>3) == HYPERVISOR_CALL_VECTOR) && + (current->thread.hypercall_pl >= (regs->xcs & 3)) ) + { + __asm__ __volatile__ ( + "movl %0,%%esp \n" + "sti \n" + "andl $255,%%eax \n" + "call *hypervisor_call_table(,%%eax,4) \n" + "movl %%eax,0x18(%%esp) \n" + "jmp ret_from_intr \n" + : : "r" (regs) ); + } + /* This fault must be due to <INT n> instruction. */ ti = current->thread.traps + (error_code>>3); if ( ti->dpl >= (regs->xcs & 3) ) diff --git a/xen/include/asm-i386/processor.h b/xen/include/asm-i386/processor.h index c0de1bd9b9..7a1afac68a 100644 --- a/xen/include/asm-i386/processor.h +++ b/xen/include/asm-i386/processor.h @@ -356,6 +356,7 @@ struct thread_struct { int fast_trap_idx; struct desc_struct fast_trap_desc; trap_info_t traps[256]; + int hypercall_pl; }; #define IDT_ENTRIES 256 diff --git a/xen/include/hypervisor-ifs/hypervisor-if.h b/xen/include/hypervisor-ifs/hypervisor-if.h index f72e8783d5..2516f84554 100644 --- a/xen/include/hypervisor-ifs/hypervisor-if.h +++ b/xen/include/hypervisor-ifs/hypervisor-if.h @@ -48,7 +48,7 @@ #define __HYPERVISOR_dom_mem_op 17 #define __HYPERVISOR_multicall 18 #define __HYPERVISOR_kbd_op 19 -#define __HYPERVISOR_iopl 20 +#define __HYPERVISOR_set_priv_levels 20 /* And the trap vector is... */ #define TRAP_INSTR "int $0x82" diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in b/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in index 2bf874d69e..717ae0c605 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in @@ -107,7 +107,25 @@ source drivers/block/Config.in define_bool CONFIG_BLK_DEV_IDE_MODES n define_bool CONFIG_BLK_DEV_HD n -source drivers/char/Config.in +mainmenu_option next_comment +comment 'Character devices' + +bool 'Xen console support' CONFIG_XEN_CONSOLE +comment 'The options below are alpha-stage and will probably not work' +bool 'Virtual terminal' CONFIG_VT +if [ "$CONFIG_VT" = "y" ]; then + bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE + bool ' Support for VGA Video' CONFIG_VGA_CONSOLE + bool ' Support for Dummy Video (for testing)' CONFIG_DUMMY_CONSOLE + bool ' PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE +fi + +bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS +if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then + int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256 +fi + +endmenu source fs/Config.in diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c index c43daee3fd..b86f8ee4d5 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c @@ -15,22 +15,32 @@ asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int turn_on) asmlinkage int sys_iopl(unsigned long unused) { struct pt_regs *regs = (struct pt_regs *)&unused; - unsigned int level = regs->ebx; - unsigned int old = (regs->eflags >> 12) & 3; - - if ( !(start_info.flags & SIF_PRIVILEGED) ) + unsigned int new_io_pl = regs->ebx & 3; + unsigned int old_io_pl = (regs->eflags >> 12) & 3; + unsigned int new_hypercall_pl = (regs->ebx >> 2) & 3; + unsigned int old_hypercall_pl = current->thread.hypercall_pl; + + /* Need "raw I/O" privileges for direct port access. */ + if ( (new_io_pl > old_io_pl) && + (!capable(CAP_SYS_RAWIO) || !(start_info.flags & SIF_PRIVILEGED)) ) return -EPERM; - if ( level > 3 ) - return -EINVAL; - if ( (level > old) && !capable(CAP_SYS_RAWIO) ) + /* Just need generic root/admin privileges for direct hypercall access. */ + if ( (new_hypercall_pl > old_hypercall_pl) && !capable(CAP_SYS_ADMIN) ) return -EPERM; - - /* Change the one on our stack for sanity's sake. */ - regs->eflags = (regs->eflags & 0xffffcfff) | (level << 12); + + /* Maintain OS privileges even if user attempts to relinquish them. */ + if ( new_hypercall_pl == 0 ) + new_hypercall_pl = 1; + if ( (new_io_pl == 0) && !(start_info.flags & SIF_PRIVILEGED) ) + new_io_pl = 1; + + /* Change our version of the privilege levels. */ + regs->eflags = (regs->eflags & 0xffffcfff) | (old_io_pl << 12); + current->thread.hypercall_pl = new_hypercall_pl; /* Force the change at ring 0. */ - HYPERVISOR_iopl(level); + HYPERVISOR_set_priv_levels(new_io_pl, new_hypercall_pl); return 0; } diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c index a7c0755d38..c1764fce50 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c @@ -269,6 +269,9 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long esp, unlazy_fpu(current); struct_cpy(&p->thread.i387, ¤t->thread.i387); + /* We're careful with hypercall privileges. Don't allow inheritance. */ + p->thread.hypercall_pl = 1; + return 0; } @@ -366,8 +369,9 @@ void __switch_to(struct task_struct *prev_p, struct task_struct *next_p) { queue_multicall2(__HYPERVISOR_stack_switch, __KERNEL_DS, next->esp0); /* Next call will silently fail if we are a non-privileged guest OS. */ - queue_multicall1(__HYPERVISOR_iopl, - ((((struct pt_regs *)next->esp0)-1)->eflags>>12)&3); + queue_multicall2(__HYPERVISOR_set_priv_levels, + ((((struct pt_regs *)next->esp0)-1)->eflags>>12)&3, + next->hypercall_pl); } /* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */ diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c index 832a7a2087..cc53983f34 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c @@ -301,23 +301,21 @@ void __init setup_arch(char **cmdline_p) paging_init(); - if(start_info.flags & SIF_PRIVILEGED) { - // we are privileged guest os - should be able to set IOPL - if(HYPERVISOR_iopl(1)) { - panic("Unable to obtain IOPL, despite being SIF_PRIVILEGED"); - } + if ( start_info.flags & SIF_PRIVILEGED ) + /* We are privileged guest os - should have IO privileges. */ + if( HYPERVISOR_set_priv_levels(1, 1) ) + panic("Unable to obtain IOPL, despite being SIF_PRIVILEGED"); - } + if(start_info.flags & SIF_CONSOLE) + { + if( !(start_info.flags & SIF_PRIVILEGED) ) + panic("Xen granted us console access but not privileged status"); - if(start_info.flags & SIF_CONSOLE) { - if(!(start_info.flags & SIF_PRIVILEGED)) { - panic("Xen granted us console access but not privileged status"); - } #ifdef CONFIG_VT #if defined(CONFIG_VGA_CONSOLE) - conswitchp = &vga_con; + conswitchp = &vga_con; #elif defined(CONFIG_DUMMY_CONSOLE) - conswitchp = &dummy_con; + conswitchp = &dummy_con; #endif #endif } diff --git a/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in b/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in deleted file mode 100644 index 217398d6e2..0000000000 --- a/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in +++ /dev/null @@ -1,361 +0,0 @@ -# -# Character device configuration -# -mainmenu_option next_comment -comment 'Character devices' - -bool 'Xen console support' CONFIG_XEN_CONSOLE -comment 'The options below are alpha-stage and will probably not work' -bool 'Virtual terminal' CONFIG_VT -if [ "$CONFIG_VT" = "y" ]; then - bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE - bool ' Support for VGA Video' CONFIG_VGA_CONSOLE - bool ' Support for Dummy Video (for testing)' CONFIG_DUMMY_CONSOLE - bool ' PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE -fi - -bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS -if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then - int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256 -fi - - -endmenu - -# KEPT IN CASE WE WANT TO BRING SOME BACK... -# -#if [ "$CONFIG_VT" = "y" ]; then -# bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE -# if [ "$CONFIG_GSC_LASI" = "y" ]; then -# bool ' Support for Lasi/Dino PS2 port' CONFIG_GSC_PS2 -# fi -#fi -# -#tristate 'Standard/generic (8250/16550 and compatible UARTs) serial support' CONFIG_SERIAL -#if [ "$CONFIG_SERIAL" = "y" ]; then -# bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE -# if [ "$CONFIG_GSC_LASI" = "y" ]; then -# bool ' serial port on GSC support' CONFIG_SERIAL_GSC -# fi -# if [ "$CONFIG_IA64" = "y" ]; then -# bool 'Support for serial console port described by EFI HCDP table' CONFIG_SERIAL_HCDP -# fi -# if [ "$CONFIG_ARCH_ACORN" = "y" ]; then -# tristate ' Atomwide serial port support' CONFIG_ATOMWIDE_SERIAL -# tristate ' Dual serial port support' CONFIG_DUALSP_SERIAL -# fi -#fi -#dep_mbool 'Extended dumb serial driver options' CONFIG_SERIAL_EXTENDED $CONFIG_SERIAL -#if [ "$CONFIG_SERIAL_EXTENDED" = "y" ]; then -# bool ' Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS -# bool ' Support for sharing serial interrupts' CONFIG_SERIAL_SHARE_IRQ -# bool ' Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ -# bool ' Support special multiport boards' CONFIG_SERIAL_MULTIPORT -# bool ' Support the Bell Technologies HUB6 card' CONFIG_HUB6 -#fi -#bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD -#if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then -# tristate ' Computone IntelliPort Plus serial support' CONFIG_COMPUTONE -# tristate ' Comtrol Rocketport support' CONFIG_ROCKETPORT -# tristate ' Cyclades async mux support' CONFIG_CYCLADES -# if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_CYCLADES" != "n" ]; then -# bool ' Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR -# fi -# if [ "$CONFIG_X86_64" != "y" ]; then -# tristate ' Digiboard Intelligent Async Support' CONFIG_DIGIEPCA -# if [ "$CONFIG_DIGIEPCA" = "n" ]; then -# tristate ' Digiboard PC/Xx Support' CONFIG_DIGI -# fi -# fi -# dep_tristate ' Hayes ESP serial port support' CONFIG_ESPSERIAL $CONFIG_ISA -# tristate ' Moxa Intellio support' CONFIG_MOXA_INTELLIO -# tristate ' Moxa SmartIO support' CONFIG_MOXA_SMARTIO -# if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then -# dep_tristate ' Multi-Tech multiport card support (EXPERIMENTAL)' CONFIG_ISI m -# fi -# tristate ' Microgate SyncLink card support' CONFIG_SYNCLINK -# tristate ' SyncLink Multiport support' CONFIG_SYNCLINKMP -# tristate ' HDLC line discipline support' CONFIG_N_HDLC -# tristate ' SDL RISCom/8 card support' CONFIG_RISCOM8 -# if [ "$CONFIG_X86_64" != "y" ]; then -# tristate ' Specialix IO8+ card support' CONFIG_SPECIALIX -# if [ "$CONFIG_SPECIALIX" != "n" ]; then -# bool ' Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS -# fi -# tristate ' Specialix SX (and SI) card support' CONFIG_SX -# tristate ' Specialix RIO system support' CONFIG_RIO -# if [ "$CONFIG_RIO" != "n" ]; then -# bool ' Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI -# fi -# fi -# bool ' Stallion multiport serial support' CONFIG_STALDRV -# if [ "$CONFIG_STALDRV" = "y" ]; then -# tristate ' Stallion EasyIO or EC8/32 support' CONFIG_STALLION -# tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION -# fi -# if [ "$CONFIG_PARISC" = "y" ]; then -# if [ "$CONFIG_PDC_CONSOLE" != "y" ]; then -# bool ' Serial MUX support' CONFIG_SERIAL_MUX CONFIG_SERIAL_NONSTANDARD -# fi -# if [ "$CONFIG_SERIAL_MUX" != "y" ]; then -# bool ' PDC software console support' CONFIG_PDC_CONSOLE CONFIG_SERIAL_NONSTANDARD -# fi -# fi -# if [ "$CONFIG_MIPS" = "y" ]; then -# bool ' TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912 -# dep_bool ' Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912 -# bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART -# if [ "$CONFIG_AU1000_UART" = "y" ]; then -# bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE -# fi -# bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL -# if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then -# bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE -# fi -# if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then -# bool ' Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART -# if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then -# bool ' Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE -# if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then -# define_bool CONFIG_SERIAL_CONSOLE y -# fi -# int ' Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024 -# bool ' Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 -# fi -# fi -# fi -#fi -#if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then -# tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232 -#fi -#if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then -# bool 'DC21285 serial port support' CONFIG_SERIAL_21285 -# if [ "$CONFIG_SERIAL_21285" = "y" ]; then -# if [ "$CONFIG_OBSOLETE" = "y" ]; then -# bool ' Use /dev/ttyS0 device (OBSOLETE)' CONFIG_SERIAL_21285_OLD -# fi -# bool ' Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE -# fi -# if [ "$CONFIG_MIPS" = "y" ]; then -# bool ' TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912 -# dep_bool ' Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912 -# bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART -# if [ "$CONFIG_AU1000_UART" = "y" ]; then -# bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE -# fi -# fi -# if [ "$CONFIG_PARISC" = "y" ]; then -# bool ' PDC software console support' CONFIG_PDC_CONSOLE -# fi -#fi -#if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then -# bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD -# if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then -# define_bool CONFIG_IT8172_CIR y -# else -# bool ' Enable PS2 Keyboard Support' CONFIG_PC_KEYB -# fi -# bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0 -# bool 'Enable Smart Card Reader 1 Support ' CONFIG_IT8172_SCR1 -#fi -#if [ "$CONFIG_MIPS_IVR" = "y" ]; then -# bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD -# if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then -# define_bool CONFIG_IT8172_CIR y -# fi -# bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0 -#fi -##PTYS WERE HERE -#if [ "$CONFIG_PARPORT" != "n" ]; then -# dep_tristate 'Parallel printer support' CONFIG_PRINTER $CONFIG_PARPORT -# if [ "$CONFIG_PRINTER" != "n" ]; then -# bool ' Support for console on line printer' CONFIG_LP_CONSOLE -# fi -# dep_tristate 'Support for user-space parallel port device drivers' CONFIG_PPDEV $CONFIG_PARPORT -# dep_tristate 'Texas Instruments parallel link cable support' CONFIG_TIPAR $CONFIG_PARPORT -#fi -# -#if [ "$CONFIG_PPC64" ] ; then -# bool 'pSeries Hypervisor Virtual Console support' CONFIG_HVC_CONSOLE -#fi -# -#source drivers/i2c/Config.in -# -#mainmenu_option next_comment -#comment 'Mice' -#tristate 'Bus Mouse Support' CONFIG_BUSMOUSE -#if [ "$CONFIG_BUSMOUSE" != "n" ]; then -# dep_tristate ' ATIXL busmouse support' CONFIG_ATIXL_BUSMOUSE $CONFIG_BUSMOUSE -# dep_tristate ' Logitech busmouse support' CONFIG_LOGIBUSMOUSE $CONFIG_BUSMOUSE -# dep_tristate ' Microsoft busmouse support' CONFIG_MS_BUSMOUSE $CONFIG_BUSMOUSE -# if [ "$CONFIG_ADB" = "y" -a "$CONFIG_ADB_KEYBOARD" = "y" ]; then -# dep_tristate ' Apple Desktop Bus mouse support (old driver)' CONFIG_ADBMOUSE $CONFIG_BUSMOUSE -# fi -#fi -# -#tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE -#if [ "$CONFIG_MOUSE" != "n" ]; then -# bool ' PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE -# tristate ' C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE -# tristate ' PC110 digitizer pad support' CONFIG_PC110_PAD -# tristate ' MK712 touch screen support' CONFIG_MK712_MOUSE -#fi -#endmenu -# -#source drivers/char/joystick/Config.in -# -#tristate 'QIC-02 tape support' CONFIG_QIC02_TAPE -#if [ "$CONFIG_QIC02_TAPE" != "n" ]; then -# bool ' Do you want runtime configuration for QIC-02' CONFIG_QIC02_DYNCONF -# if [ "$CONFIG_QIC02_DYNCONF" != "y" ]; then -# comment ' Edit configuration parameters in ./include/linux/tpqic02.h!' -# else -# comment ' Setting runtime QIC-02 configuration is done with qic02conf' -# comment ' from the tpqic02-support package. It is available at' -# comment ' metalab.unc.edu or ftp://titus.cfw.com/pub/Linux/util/' -# fi -#fi -# -#tristate 'IPMI top-level message handler' CONFIG_IPMI_HANDLER -#dep_mbool ' Generate a panic event to all BMCs on a panic' CONFIG_IPMI_PANIC_EVENT $CONFIG_IPMI_HANDLER -#dep_tristate ' Device interface for IPMI' CONFIG_IPMI_DEVICE_INTERFACE $CONFIG_IPMI_HANDLER -#dep_tristate ' IPMI KCS handler' CONFIG_IPMI_KCS $CONFIG_IPMI_HANDLER -#dep_tristate ' IPMI Watchdog Timer' CONFIG_IPMI_WATCHDOG $CONFIG_IPMI_HANDLER -# -#mainmenu_option next_comment -#comment 'Watchdog Cards' -#bool 'Watchdog Timer Support' CONFIG_WATCHDOG -#if [ "$CONFIG_WATCHDOG" != "n" ]; then -# bool ' Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT -# tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT -# tristate ' Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT -# tristate ' ALi M7101 PMU Watchdog Timer' CONFIG_ALIM7101_WDT -# tristate ' AMD "Elan" SC520 Watchdog Timer' CONFIG_SC520_WDT -# tristate ' Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG -# if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then -# tristate ' DC21285 watchdog' CONFIG_21285_WATCHDOG -# if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then -# tristate ' NetWinder WB83C977 watchdog' CONFIG_977_WATCHDOG -# fi -# fi -# tristate ' Eurotech CPU-1220/1410 Watchdog Timer' CONFIG_EUROTECH_WDT -# tristate ' IB700 SBC Watchdog Timer' CONFIG_IB700_WDT -# tristate ' ICP ELectronics Wafer 5823 Watchdog' CONFIG_WAFER_WDT -# if [ "$CONFIG_SGI_IP22" = "y" ]; then -# dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22 -# fi -# tristate ' Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO -# tristate ' Mixcom Watchdog' CONFIG_MIXCOMWD -# tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT -# dep_tristate ' SC1200 Watchdog Timer (EXPERIMENTAL)' CONFIG_SC1200_WDT $CONFIG_EXPERIMENTAL -# tristate ' NatSemi SCx200 Watchdog' CONFIG_SCx200_WDT -# tristate ' Software Watchdog' CONFIG_SOFT_WATCHDOG -# tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT -# tristate ' WDT Watchdog timer' CONFIG_WDT -# tristate ' WDT PCI Watchdog timer' CONFIG_WDTPCI -# if [ "$CONFIG_WDT" != "n" ]; then -# bool ' WDT501 features' CONFIG_WDT_501 -# if [ "$CONFIG_WDT_501" = "y" ]; then -# bool ' Fan Tachometer' CONFIG_WDT_501_FAN -# fi -# fi -# tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT -# dep_tristate ' AMD 766/768 TCO Timer/Watchdog' CONFIG_AMD7XX_TCO $CONFIG_EXPERIMENTAL -#fi -#endmenu -# -#if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then -# tristate 'NetWinder thermometer support' CONFIG_DS1620 -# tristate 'NetWinder Button' CONFIG_NWBUTTON -# if [ "$CONFIG_NWBUTTON" != "n" ]; then -# bool ' Reboot Using Button' CONFIG_NWBUTTON_REBOOT -# fi -# tristate 'NetWinder flash support' CONFIG_NWFLASH -#fi -#dep_tristate 'NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200 -# -#if [ "$CONFIG_X86" = "y" -o "$CONFIG_X86_64" = "y" ]; then -# dep_tristate 'AMD 768 Random Number Generator support' CONFIG_AMD_RNG $CONFIG_PCI -#fi -#if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then -# dep_tristate 'Intel i8x0 Random Number Generator support' CONFIG_INTEL_RNG $CONFIG_PCI -#fi -#dep_tristate 'AMD 76x native power management (Experimental)' CONFIG_AMD_PM768 $CONFIG_PCI -#tristate '/dev/nvram support' CONFIG_NVRAM -#tristate 'Enhanced Real Time Clock Support' CONFIG_RTC -#if [ "$CONFIG_IA64" = "y" ]; then -# bool 'EFI Real Time Clock Services' CONFIG_EFI_RTC -#fi -#if [ "$CONFIG_OBSOLETE" = "y" -a "$CONFIG_ALPHA_BOOK1" = "y" ]; then -# bool 'Tadpole ANA H8 Support (OBSOLETE)' CONFIG_H8 -#fi -# -#tristate 'Double Talk PC internal speech card support' CONFIG_DTLK -#tristate 'Siemens R3964 line discipline' CONFIG_R3964 -#tristate 'Applicom intelligent fieldbus card support' CONFIG_APPLICOM -#if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_X86" = "y" -a "$CONFIG_X86_64" != "y" ]; then -# dep_tristate 'Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)' CONFIG_SONYPI $CONFIG_PCI -#fi -# -#mainmenu_option next_comment -#comment 'Ftape, the floppy tape device driver' -#tristate 'Ftape (QIC-80/Travan) support' CONFIG_FTAPE -#if [ "$CONFIG_FTAPE" != "n" ]; then -# source drivers/char/ftape/Config.in -#fi -#endmenu -# -#if [ "$CONFIG_GART_IOMMU" = "y" ]; then -# bool '/dev/agpgart (AGP Support)' CONFIG_AGP -# define_bool CONFIG_AGP_AMD_8151 y -#else -# tristate '/dev/agpgart (AGP Support)' CONFIG_AGP -#fi -#if [ "$CONFIG_AGP" != "n" ]; then -# bool ' Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support' CONFIG_AGP_INTEL -# bool ' Intel I810/I815/I830M (on-board) support' CONFIG_AGP_I810 -# bool ' VIA chipset support' CONFIG_AGP_VIA -# bool ' AMD Irongate, 761, and 762 support' CONFIG_AGP_AMD -# if [ "$CONFIG_GART_IOMMU" != "y" ]; then -# bool ' AMD 8151 support' CONFIG_AGP_AMD_8151 -# fi -# bool ' Generic SiS support' CONFIG_AGP_SIS -# bool ' ALI chipset support' CONFIG_AGP_ALI -# bool ' Serverworks LE/HE support' CONFIG_AGP_SWORKS -# if [ "$CONFIG_IA64" = "y" ]; then -# bool ' HP ZX1 AGP support' CONFIG_AGP_HP_ZX1 -# fi -#fi -# -#bool 'Direct Rendering Manager (XFree86 DRI support)' CONFIG_DRM -#if [ "$CONFIG_DRM" = "y" ]; then -# bool ' Build drivers for old (XFree 4.0) DRM' CONFIG_DRM_OLD -# if [ "$CONFIG_DRM_OLD" = "y" ]; then -# comment 'DRM 4.0 drivers' -# source drivers/char/drm-4.0/Config.in -# else -# comment 'DRM 4.1 drivers' -# define_bool CONFIG_DRM_NEW y -# source drivers/char/drm/Config.in -# fi -#fi -# -#if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then -# source drivers/char/pcmcia/Config.in -#fi -#if [ "$CONFIG_MIPS_AU1000" = "y" ]; then -# tristate ' Alchemy Au1000 GPIO device support' CONFIG_AU1000_GPIO -# tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1000_ADS7846 -#fi -#if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then -# tristate ' ITE GPIO' CONFIG_ITE_GPIO -#fi -# -#if [ "$CONFIG_X86" = "y" ]; then -# tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE -#fi - - - - - diff --git a/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile b/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile new file mode 100644 index 0000000000..492c63dfba --- /dev/null +++ b/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile @@ -0,0 +1,334 @@ +# +# Makefile for the kernel character device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# +# Note 2! The CFLAGS definitions are now inherited from the +# parent makes.. +# + +# +# This file contains the font map for the default (hardware) font +# +FONTMAPFILE = cp437.uni + +O_TARGET := char.o + +obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o raw.o pty.o misc.o random.o + +# All of the (potential) objects that export symbols. +# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'. + +export-objs := busmouse.o console.o keyboard.o sysrq.o \ + misc.o pty.o random.o selection.o serial.o \ + sonypi.o tty_io.o tty_ioctl.o generic_serial.o \ + au1000_gpio.o hp_psaux.o nvram.o + +mod-subdirs := joystick ftape drm drm-4.0 pcmcia + +list-multi := + +KEYMAP =defkeymap.o +KEYBD =pc_keyb.o +CONSOLE =console.o +SERIAL =serial.o + +ifeq ($(ARCH),s390) + KEYMAP = + KEYBD = + CONSOLE = + SERIAL = +endif + +ifeq ($(ARCH),mips) + ifneq ($(CONFIG_PC_KEYB),y) + KEYBD = + endif +endif + +ifeq ($(ARCH),s390x) + KEYMAP = + KEYBD = + CONSOLE = + SERIAL = +endif + +ifeq ($(ARCH),m68k) + ifdef CONFIG_AMIGA + KEYBD = amikeyb.o + else + ifndef CONFIG_MAC + KEYBD = + endif + endif + SERIAL = +endif + +ifeq ($(ARCH),parisc) + ifdef CONFIG_GSC_PS2 + KEYBD = hp_psaux.o hp_keyb.o + else + KEYBD = + endif + ifdef CONFIG_SERIAL_MUX + CONSOLE += mux.o + endif + ifdef CONFIG_PDC_CONSOLE + CONSOLE += pdc_console.o + endif +endif + +ifdef CONFIG_Q40 + KEYBD += q40_keyb.o + SERIAL = serial.o +endif + +ifdef CONFIG_APOLLO + KEYBD += dn_keyb.o +endif + +ifeq ($(ARCH),parisc) + ifdef CONFIG_GSC_PS2 + KEYBD = hp_psaux.o hp_keyb.o + else + KEYBD = + endif + ifdef CONFIG_PDC_CONSOLE + CONSOLE += pdc_console.o + endif +endif + +ifeq ($(ARCH),arm) + ifneq ($(CONFIG_PC_KEYMAP),y) + KEYMAP = + endif + ifneq ($(CONFIG_PC_KEYB),y) + KEYBD = + endif +endif + +ifeq ($(ARCH),sh) + KEYMAP = + KEYBD = + CONSOLE = + ifeq ($(CONFIG_SH_HP600),y) + KEYMAP = defkeymap.o + KEYBD = scan_keyb.o hp600_keyb.o + CONSOLE = console.o + endif + ifeq ($(CONFIG_SH_DMIDA),y) + # DMIDA does not connect the HD64465 PS/2 keyboard port + # but we allow for USB keyboards to be plugged in. + KEYMAP = defkeymap.o + KEYBD = # hd64465_keyb.o pc_keyb.o + CONSOLE = console.o + endif + ifeq ($(CONFIG_SH_EC3104),y) + KEYMAP = defkeymap.o + KEYBD = ec3104_keyb.o + CONSOLE = console.o + endif + ifeq ($(CONFIG_SH_DREAMCAST),y) + KEYMAP = defkeymap.o + KEYBD = + CONSOLE = console.o + endif +endif + +ifeq ($(CONFIG_DECSTATION),y) + KEYMAP = + KEYBD = + SERIAL = decserial.o +endif + +ifeq ($(CONFIG_BAGET_MIPS),y) + KEYBD = + SERIAL = +endif + +ifeq ($(CONFIG_NINO),y) + SERIAL = +endif + +ifneq ($(CONFIG_SUN_SERIAL),) + SERIAL = +endif + +ifeq ($(CONFIG_QTRONIX_KEYBOARD),y) + KEYBD = qtronix.o + KEYMAP = qtronixmap.o +endif + +ifeq ($(CONFIG_DUMMY_KEYB),y) + KEYBD = dummy_keyb.o +endif + +obj-$(CONFIG_VT) += vt.o vc_screen.o consolemap.o consolemap_deftbl.o $(CONSOLE) selection.o +obj-$(CONFIG_SERIAL) += $(SERIAL) +obj-$(CONFIG_SERIAL_HCDP) += hcdp_serial.o +obj-$(CONFIG_SERIAL_21285) += serial_21285.o +obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o +obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o +obj-$(CONFIG_TS_AU1000_ADS7846) += au1000_ts.o + +obj-$(CONFIG_DUMMY_CONSOLE) += dummy_console.o + +ifndef CONFIG_SUN_KEYBOARD + obj-$(CONFIG_VT) += keyboard.o $(KEYMAP) $(KEYBD) +else + obj-$(CONFIG_PCI) += keyboard.o $(KEYMAP) +endif + +obj-$(CONFIG_HIL) += hp_keyb.o +obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o +obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o +obj-$(CONFIG_ROCKETPORT) += rocket.o +obj-$(CONFIG_MOXA_SMARTIO) += mxser.o +obj-$(CONFIG_MOXA_INTELLIO) += moxa.o +obj-$(CONFIG_DIGI) += pcxx.o +obj-$(CONFIG_DIGIEPCA) += epca.o +obj-$(CONFIG_CYCLADES) += cyclades.o +obj-$(CONFIG_STALLION) += stallion.o +obj-$(CONFIG_ISTALLION) += istallion.o +obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o +obj-$(CONFIG_COMPUTONE) += ip2.o ip2main.o +obj-$(CONFIG_RISCOM8) += riscom8.o +obj-$(CONFIG_ISI) += isicom.o +obj-$(CONFIG_ESPSERIAL) += esp.o +obj-$(CONFIG_SYNCLINK) += synclink.o +obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o +obj-$(CONFIG_N_HDLC) += n_hdlc.o +obj-$(CONFIG_SPECIALIX) += specialix.o +obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o +obj-$(CONFIG_A2232) += ser_a2232.o generic_serial.o +obj-$(CONFIG_SX) += sx.o generic_serial.o +obj-$(CONFIG_RIO) += rio/rio.o generic_serial.o +obj-$(CONFIG_SH_SCI) += sh-sci.o generic_serial.o +obj-$(CONFIG_SERIAL167) += serial167.o +obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o +obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o +obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o +obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o +obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o +obj-$(CONFIG_TXX927_SERIAL) += serial_txx927.o + +subdir-$(CONFIG_RIO) += rio +subdir-$(CONFIG_INPUT) += joystick + +obj-$(CONFIG_ATIXL_BUSMOUSE) += atixlmouse.o +obj-$(CONFIG_LOGIBUSMOUSE) += logibusmouse.o +obj-$(CONFIG_PRINTER) += lp.o +obj-$(CONFIG_TIPAR) += tipar.o + +ifeq ($(CONFIG_INPUT),y) +obj-y += joystick/js.o +endif + +obj-$(CONFIG_BUSMOUSE) += busmouse.o +obj-$(CONFIG_DTLK) += dtlk.o +obj-$(CONFIG_R3964) += n_r3964.o +obj-$(CONFIG_APPLICOM) += applicom.o +obj-$(CONFIG_SONYPI) += sonypi.o +obj-$(CONFIG_MS_BUSMOUSE) += msbusmouse.o +obj-$(CONFIG_82C710_MOUSE) += qpmouse.o +obj-$(CONFIG_AMIGAMOUSE) += amigamouse.o +obj-$(CONFIG_ATARIMOUSE) += atarimouse.o +obj-$(CONFIG_ADBMOUSE) += adbmouse.o +obj-$(CONFIG_PC110_PAD) += pc110pad.o +obj-$(CONFIG_MK712_MOUSE) += mk712.o +obj-$(CONFIG_RTC) += rtc.o +obj-$(CONFIG_EFI_RTC) += efirtc.o +ifeq ($(CONFIG_PPC),) + obj-$(CONFIG_NVRAM) += nvram.o +endif +obj-$(CONFIG_TOSHIBA) += toshiba.o +obj-$(CONFIG_I8K) += i8k.o +obj-$(CONFIG_DS1620) += ds1620.o +obj-$(CONFIG_INTEL_RNG) += i810_rng.o +obj-$(CONFIG_AMD_RNG) += amd768_rng.o +obj-$(CONFIG_AMD_PM768) += amd76x_pm.o + +obj-$(CONFIG_ITE_GPIO) += ite_gpio.o +obj-$(CONFIG_AU1000_GPIO) += au1000_gpio.o +obj-$(CONFIG_COBALT_LCD) += lcd.o + +obj-$(CONFIG_QIC02_TAPE) += tpqic02.o + +subdir-$(CONFIG_FTAPE) += ftape +subdir-$(CONFIG_DRM_OLD) += drm-4.0 +subdir-$(CONFIG_DRM_NEW) += drm +subdir-$(CONFIG_PCMCIA) += pcmcia +subdir-$(CONFIG_AGP) += agp + +ifeq ($(CONFIG_FTAPE),y) +obj-y += ftape/ftape.o +endif + +obj-$(CONFIG_H8) += h8.o +obj-$(CONFIG_PPDEV) += ppdev.o +obj-$(CONFIG_DZ) += dz.o +obj-$(CONFIG_NWBUTTON) += nwbutton.o +obj-$(CONFIG_NWFLASH) += nwflash.o +obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o scx200.o + +# Only one watchdog can succeed. We probe the hardware watchdog +# drivers first, then the softdog driver. This means if your hardware +# watchdog dies or is 'borrowed' for some reason the software watchdog +# still gives you some cover. + +obj-$(CONFIG_PCWATCHDOG) += pcwd.o +obj-$(CONFIG_ACQUIRE_WDT) += acquirewdt.o +obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o +obj-$(CONFIG_IB700_WDT) += ib700wdt.o +obj-$(CONFIG_MIXCOMWD) += mixcomwd.o +obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o +obj-$(CONFIG_W83877F_WDT) += w83877f_wdt.o +obj-$(CONFIG_SC520_WDT) += sc520_wdt.o +obj-$(CONFIG_WDT) += wdt.o +obj-$(CONFIG_WDTPCI) += wdt_pci.o +obj-$(CONFIG_21285_WATCHDOG) += wdt285.o +obj-$(CONFIG_977_WATCHDOG) += wdt977.o +obj-$(CONFIG_I810_TCO) += i810-tco.o +obj-$(CONFIG_MACHZ_WDT) += machzwd.o +obj-$(CONFIG_SH_WDT) += shwdt.o +obj-$(CONFIG_EUROTECH_WDT) += eurotechwdt.o +obj-$(CONFIG_ALIM7101_WDT) += alim7101_wdt.o +#obj-$(CONFIG_ALIM1535_WDT) += alim1535d_wdt.o +obj-$(CONFIG_INDYDOG) += indydog.o +obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o +obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o +obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o +obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o +obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o + +subdir-$(CONFIG_MWAVE) += mwave +ifeq ($(CONFIG_MWAVE),y) + obj-y += mwave/mwave.o +endif + +subdir-$(CONFIG_IPMI_HANDLER) += ipmi +ifeq ($(CONFIG_IPMI_HANDLER),y) + obj-y += ipmi/ipmi.o +endif + +include $(TOPDIR)/Rules.make + +fastdep: + +conmakehash: conmakehash.c + $(HOSTCC) $(HOSTCFLAGS) -o conmakehash conmakehash.c + +consolemap_deftbl.c: $(FONTMAPFILE) conmakehash + ./conmakehash $(FONTMAPFILE) > consolemap_deftbl.c + +consolemap_deftbl.o: consolemap_deftbl.c $(TOPDIR)/include/linux/types.h + +.DELETE_ON_ERROR: + +defkeymap.c: defkeymap.map + set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@ + +qtronixmap.c: qtronixmap.map + set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@ diff --git a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h index 887a01b231..da0e1a19e0 100644 --- a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h +++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h @@ -364,13 +364,14 @@ static inline long HYPERVISOR_kbd_op(unsigned char op, unsigned char val) return ret; } -static inline long HYPERVISOR_iopl(unsigned int new_iopl) +static inline long HYPERVISOR_set_priv_levels(unsigned int new_io_pl, + unsigned int new_hypercall_pl) { int ret; __asm__ __volatile__ ( TRAP_INSTR - : "=a" (ret) : "0" (__HYPERVISOR_iopl), - "b" (new_iopl) ); + : "=a" (ret) : "0" (__HYPERVISOR_set_priv_levels), + "b" (new_io_pl), "c" (new_hypercall_pl) ); return ret; } diff --git a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h index 86b0020c23..d3547ea2bc 100644 --- a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h +++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h @@ -356,6 +356,7 @@ struct thread_struct { unsigned long esp; unsigned long fs; unsigned long gs; + unsigned int hypercall_pl; /* Hardware debugging registers */ unsigned long debugreg[8]; /* %%db0-7 debug registers */ /* fault info */ @@ -368,7 +369,7 @@ struct thread_struct { unsigned long v86flags, v86mask, saved_esp0; }; -#define INIT_THREAD { 0 } +#define INIT_THREAD { 0, 0, 0, 0, 0, 1, {0}, 0, 0, 0, {0}, 0, 0, 0, 0, 0 } #define INIT_TSS { \ 0,0, /* back_link, __blh */ \ |