ia64/xen-unstable

changeset 425:656d429e294c

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
author kaf24@scramble.cl.cam.ac.uk
date Tue May 06 14:54:13 2003 +0000 (2003-05-06)
parents 8b178f8d401d
children 62a46bc69cac
files .rootkeys xen/arch/i386/entry.S xen/arch/i386/process.c xen/arch/i386/traps.c xen/include/asm-i386/processor.h xen/include/hypervisor-ifs/hypervisor-if.h xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h
line diff
     1.1 --- a/.rootkeys	Tue May 06 10:05:18 2003 +0000
     1.2 +++ b/.rootkeys	Tue May 06 14:54:13 2003 +0000
     1.3 @@ -449,7 +449,7 @@ 3e5a4e66qRlSTcjafidMB6ulECADvg xenolinux
     1.4  3e5a4e668yELUdtr3HiJZBIqxqUyuA xenolinux-2.4.21-pre4-sparse/drivers/block/Config.in
     1.5  3ea53c6em6uzVHSiGqrbbAVofyRY_g xenolinux-2.4.21-pre4-sparse/drivers/block/genhd.c
     1.6  3e5a4e66mrtlmV75L1tjKDg8RaM5gA xenolinux-2.4.21-pre4-sparse/drivers/block/ll_rw_blk.c
     1.7 -3ead095dEkj9JJWYYBnbvW3OYbKFxg xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in
     1.8 +3eb7cc90LCRDzdNiLIt20dkBbAwVKQ xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile
     1.9  3ead095dPseRoFELVf_xcnVXjq02hw xenolinux-2.4.21-pre4-sparse/drivers/char/dummy_console.c
    1.10  3e5a4e66rw65CxyolW9PKz4GG42RcA xenolinux-2.4.21-pre4-sparse/drivers/char/tty_io.c
    1.11  3e5a4e669uzIE54VwucPYtGwXLAbzA xenolinux-2.4.21-pre4-sparse/fs/exec.c
     2.1 --- a/xen/arch/i386/entry.S	Tue May 06 10:05:18 2003 +0000
     2.2 +++ b/xen/arch/i386/entry.S	Tue May 06 14:54:13 2003 +0000
     2.3 @@ -210,8 +210,8 @@ ENTRY(ret_from_newdomain)
     2.4   */
     2.5  do_multicall:
     2.6          popl  %eax
     2.7 -        cmpl  $SYMBOL_NAME(ret_from_hypervisor_call),%eax
     2.8 -        jne   multicall_exit /* bail if called recursively */
     2.9 +        cmpl  $SYMBOL_NAME(multicall_return_from_call),%eax
    2.10 +        je    multicall_return_from_call
    2.11          pushl %ebx
    2.12          movl  4(%esp),%ebx   /* EBX == call_list */
    2.13          movl  8(%esp),%ecx   /* ECX == nr_calls  */
    2.14 @@ -231,12 +231,12 @@ multicall_fault6:
    2.15          movl  (%ebx),%eax
    2.16          andl  $255,%eax
    2.17          call  *SYMBOL_NAME(hypervisor_call_table)(,%eax,4)
    2.18 +multicall_return_from_call:
    2.19          addl  $20,%esp
    2.20          popl  %ecx
    2.21          addl  $BYTES_PER_MULTICALL_ENTRY,%ebx
    2.22          loop  multicall_loop
    2.23          popl  %ebx
    2.24 -multicall_exit:
    2.25          xorl  %eax,%eax
    2.26          jmp   ret_from_hypervisor_call
    2.27  
    2.28 @@ -647,7 +647,7 @@ ENTRY(hypervisor_call_table)
    2.29          .long SYMBOL_NAME(do_dom_mem_op)
    2.30          .long SYMBOL_NAME(do_multicall)
    2.31          .long SYMBOL_NAME(do_kbd_op)
    2.32 -        .long SYMBOL_NAME(do_iopl)
    2.33 +        .long SYMBOL_NAME(do_set_priv_levels)
    2.34          .rept NR_syscalls-((.-hypervisor_call_table)/4)
    2.35          .long SYMBOL_NAME(sys_ni_syscall)
    2.36  	.endr
     3.1 --- a/xen/arch/i386/process.c	Tue May 06 10:05:18 2003 +0000
     3.2 +++ b/xen/arch/i386/process.c	Tue May 06 14:54:13 2003 +0000
     3.3 @@ -348,10 +348,19 @@ void __switch_to(struct task_struct *pre
     3.4  }
     3.5  
     3.6  
     3.7 -long do_iopl(unsigned int new_iopl)
     3.8 +long do_set_priv_levels(unsigned int new_io_pl, unsigned int new_hypercall_pl)
     3.9  {
    3.10      struct pt_regs *regs = GET_SYSCALL_REGS(current);
    3.11 -    if ( !IS_PRIV(current) ) return -EPERM;
    3.12 -    regs->eflags = (regs->eflags & 0xffffcfff) | ((new_iopl&3) << 12);
    3.13 +
    3.14 +    /*
    3.15 +     * Any domain can reduce privilege required for hypercall access.
    3.16 +     * Note that access from ring 1 cannot be relinquished.
    3.17 +     */
    3.18 +    current->thread.hypercall_pl = new_hypercall_pl & 3;
    3.19 +
    3.20 +    /* Only privileged domains can acquire access to I/O ports. */
    3.21 +    if ( IS_PRIV(current) )
    3.22 +        regs->eflags = (regs->eflags & 0xffffcfff) | ((new_io_pl&3) << 12);
    3.23 +
    3.24      return 0;
    3.25  }
     4.1 --- a/xen/arch/i386/traps.c	Tue May 06 10:05:18 2003 +0000
     4.2 +++ b/xen/arch/i386/traps.c	Tue May 06 14:54:13 2003 +0000
     4.3 @@ -401,6 +401,23 @@ asmlinkage void do_general_protection(st
     4.4       */
     4.5      if ( (error_code & 3) == 2 )
     4.6      {
     4.7 +        /*
     4.8 +         * Hypercalls from rings 2 or 3 fall through to here. If permitted, we 
     4.9 +         * will transfer control to the requested hypercall.
    4.10 +         */
    4.11 +        if ( ((error_code>>3) == HYPERVISOR_CALL_VECTOR) &&
    4.12 +             (current->thread.hypercall_pl >= (regs->xcs & 3)) )
    4.13 +        {
    4.14 +            __asm__ __volatile__ (
    4.15 +                "movl %0,%%esp                                         \n"
    4.16 +                "sti                                                   \n"
    4.17 +                "andl $255,%%eax                                       \n"
    4.18 +                "call *hypervisor_call_table(,%%eax,4)                 \n"
    4.19 +                "movl %%eax,0x18(%%esp)                                \n"
    4.20 +                "jmp  ret_from_intr                                    \n"
    4.21 +                : : "r" (regs) );
    4.22 +        }
    4.23 +
    4.24          /* This fault must be due to <INT n> instruction. */
    4.25          ti = current->thread.traps + (error_code>>3);
    4.26          if ( ti->dpl >= (regs->xcs & 3) )
     5.1 --- a/xen/include/asm-i386/processor.h	Tue May 06 10:05:18 2003 +0000
     5.2 +++ b/xen/include/asm-i386/processor.h	Tue May 06 14:54:13 2003 +0000
     5.3 @@ -356,6 +356,7 @@ struct thread_struct {
     5.4      int                 fast_trap_idx;
     5.5      struct desc_struct  fast_trap_desc;
     5.6      trap_info_t         traps[256];
     5.7 +    int                 hypercall_pl;
     5.8  };
     5.9  
    5.10  #define IDT_ENTRIES 256
     6.1 --- a/xen/include/hypervisor-ifs/hypervisor-if.h	Tue May 06 10:05:18 2003 +0000
     6.2 +++ b/xen/include/hypervisor-ifs/hypervisor-if.h	Tue May 06 14:54:13 2003 +0000
     6.3 @@ -48,7 +48,7 @@
     6.4  #define __HYPERVISOR_dom_mem_op		  17
     6.5  #define __HYPERVISOR_multicall		  18
     6.6  #define __HYPERVISOR_kbd_op               19
     6.7 -#define __HYPERVISOR_iopl                 20
     6.8 +#define __HYPERVISOR_set_priv_levels      20
     6.9  
    6.10  /* And the trap vector is... */
    6.11  #define TRAP_INSTR "int $0x82"
     7.1 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in	Tue May 06 10:05:18 2003 +0000
     7.2 +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/config.in	Tue May 06 14:54:13 2003 +0000
     7.3 @@ -107,7 +107,25 @@ source drivers/block/Config.in
     7.4  define_bool CONFIG_BLK_DEV_IDE_MODES n
     7.5  define_bool CONFIG_BLK_DEV_HD n
     7.6  
     7.7 -source drivers/char/Config.in
     7.8 +mainmenu_option next_comment
     7.9 +comment 'Character devices'
    7.10 +
    7.11 +bool 'Xen console support' CONFIG_XEN_CONSOLE
    7.12 +comment 'The options below are alpha-stage and will probably not work'
    7.13 +bool 'Virtual terminal' CONFIG_VT
    7.14 +if [ "$CONFIG_VT" = "y" ]; then
    7.15 +   bool '  Support for console on virtual terminal' CONFIG_VT_CONSOLE
    7.16 +   bool '  Support for VGA Video' CONFIG_VGA_CONSOLE
    7.17 +   bool '  Support for Dummy Video (for testing)' CONFIG_DUMMY_CONSOLE
    7.18 +   bool '  PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
    7.19 +fi
    7.20 +
    7.21 +bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
    7.22 +if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
    7.23 +   int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
    7.24 +fi
    7.25 +
    7.26 +endmenu
    7.27  
    7.28  source fs/Config.in
    7.29  
     8.1 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c	Tue May 06 10:05:18 2003 +0000
     8.2 +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ioport.c	Tue May 06 14:54:13 2003 +0000
     8.3 @@ -15,22 +15,32 @@ asmlinkage int sys_ioperm(unsigned long 
     8.4  asmlinkage int sys_iopl(unsigned long unused)
     8.5  {
     8.6      struct pt_regs *regs = (struct pt_regs *)&unused;
     8.7 -    unsigned int level = regs->ebx;
     8.8 -    unsigned int old = (regs->eflags >> 12) & 3;
     8.9 +    unsigned int new_io_pl = regs->ebx & 3;
    8.10 +    unsigned int old_io_pl = (regs->eflags >> 12) & 3;
    8.11 +    unsigned int new_hypercall_pl = (regs->ebx >> 2) & 3;
    8.12 +    unsigned int old_hypercall_pl = current->thread.hypercall_pl;
    8.13  
    8.14 -    if ( !(start_info.flags & SIF_PRIVILEGED) )
    8.15 +    /* Need "raw I/O" privileges for direct port access. */
    8.16 +    if ( (new_io_pl > old_io_pl) && 
    8.17 +         (!capable(CAP_SYS_RAWIO) || !(start_info.flags & SIF_PRIVILEGED)) )
    8.18          return -EPERM;
    8.19  
    8.20 -    if ( level > 3 )
    8.21 -        return -EINVAL;
    8.22 -    if ( (level > old) && !capable(CAP_SYS_RAWIO) )
    8.23 +    /* Just need generic root/admin privileges for direct hypercall access. */
    8.24 +    if ( (new_hypercall_pl > old_hypercall_pl) && !capable(CAP_SYS_ADMIN) )
    8.25          return -EPERM;
    8.26 -    
    8.27 -    /* Change the one on our stack for sanity's sake. */
    8.28 -    regs->eflags = (regs->eflags & 0xffffcfff) | (level << 12);
    8.29 +
    8.30 +    /* Maintain OS privileges even if user attempts to relinquish them. */
    8.31 +    if ( new_hypercall_pl == 0 )
    8.32 +        new_hypercall_pl = 1;
    8.33 +    if ( (new_io_pl == 0) && !(start_info.flags & SIF_PRIVILEGED) )
    8.34 +        new_io_pl = 1;
    8.35 +
    8.36 +    /* Change our version of the privilege levels. */
    8.37 +    regs->eflags = (regs->eflags & 0xffffcfff) | (old_io_pl << 12);
    8.38 +    current->thread.hypercall_pl = new_hypercall_pl;
    8.39  
    8.40      /* Force the change at ring 0. */
    8.41 -    HYPERVISOR_iopl(level);
    8.42 +    HYPERVISOR_set_priv_levels(new_io_pl, new_hypercall_pl);
    8.43  
    8.44      return 0;
    8.45  }
     9.1 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c	Tue May 06 10:05:18 2003 +0000
     9.2 +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c	Tue May 06 14:54:13 2003 +0000
     9.3 @@ -269,6 +269,9 @@ int copy_thread(int nr, unsigned long cl
     9.4      unlazy_fpu(current);
     9.5      struct_cpy(&p->thread.i387, &current->thread.i387);
     9.6  
     9.7 +    /* We're careful with hypercall privileges. Don't allow inheritance. */
     9.8 +    p->thread.hypercall_pl = 1;
     9.9 +
    9.10      return 0;
    9.11  }
    9.12  
    9.13 @@ -366,8 +369,9 @@ void __switch_to(struct task_struct *pre
    9.14      {
    9.15          queue_multicall2(__HYPERVISOR_stack_switch, __KERNEL_DS, next->esp0);
    9.16          /* Next call will silently fail if we are a non-privileged guest OS. */
    9.17 -        queue_multicall1(__HYPERVISOR_iopl, 
    9.18 -                         ((((struct pt_regs *)next->esp0)-1)->eflags>>12)&3);
    9.19 +        queue_multicall2(__HYPERVISOR_set_priv_levels,
    9.20 +                         ((((struct pt_regs *)next->esp0)-1)->eflags>>12)&3,
    9.21 +                         next->hypercall_pl);
    9.22      }
    9.23  
    9.24      /* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */
    10.1 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c	Tue May 06 10:05:18 2003 +0000
    10.2 +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c	Tue May 06 14:54:13 2003 +0000
    10.3 @@ -301,23 +301,21 @@ void __init setup_arch(char **cmdline_p)
    10.4  
    10.5      paging_init();
    10.6  
    10.7 -    if(start_info.flags & SIF_PRIVILEGED) {
    10.8 -      // we are privileged guest os - should be able to set IOPL
    10.9 -      if(HYPERVISOR_iopl(1)) {
   10.10 -	panic("Unable to obtain IOPL, despite being SIF_PRIVILEGED");
   10.11 -      }
   10.12 +    if ( start_info.flags & SIF_PRIVILEGED ) 
   10.13 +        /* We are privileged guest os - should have IO privileges. */
   10.14 +        if( HYPERVISOR_set_priv_levels(1, 1) )
   10.15 +            panic("Unable to obtain IOPL, despite being SIF_PRIVILEGED");
   10.16  
   10.17 -    }
   10.18 +    if(start_info.flags & SIF_CONSOLE)
   10.19 +    {
   10.20 +        if( !(start_info.flags & SIF_PRIVILEGED) )
   10.21 +            panic("Xen granted us console access but not privileged status");
   10.22  
   10.23 -    if(start_info.flags & SIF_CONSOLE) {
   10.24 -      if(!(start_info.flags & SIF_PRIVILEGED)) {
   10.25 -	panic("Xen granted us console access but not privileged status");
   10.26 -      }
   10.27  #ifdef CONFIG_VT
   10.28  #if defined(CONFIG_VGA_CONSOLE)
   10.29 -      conswitchp = &vga_con;
   10.30 +        conswitchp = &vga_con;
   10.31  #elif defined(CONFIG_DUMMY_CONSOLE)
   10.32 -      conswitchp = &dummy_con;
   10.33 +        conswitchp = &dummy_con;
   10.34  #endif
   10.35  #endif
   10.36      }
    11.1 --- a/xenolinux-2.4.21-pre4-sparse/drivers/char/Config.in	Tue May 06 10:05:18 2003 +0000
    11.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3 @@ -1,361 +0,0 @@
    11.4 -#
    11.5 -# Character device configuration
    11.6 -#
    11.7 -mainmenu_option next_comment
    11.8 -comment 'Character devices'
    11.9 -
   11.10 -bool 'Xen console support' CONFIG_XEN_CONSOLE
   11.11 -comment 'The options below are alpha-stage and will probably not work'
   11.12 -bool 'Virtual terminal' CONFIG_VT
   11.13 -if [ "$CONFIG_VT" = "y" ]; then
   11.14 -   bool '  Support for console on virtual terminal' CONFIG_VT_CONSOLE
   11.15 -   bool '  Support for VGA Video' CONFIG_VGA_CONSOLE
   11.16 -   bool '  Support for Dummy Video (for testing)' CONFIG_DUMMY_CONSOLE
   11.17 -   bool '  PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
   11.18 -fi
   11.19 -
   11.20 -bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
   11.21 -if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
   11.22 -   int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
   11.23 -fi
   11.24 -
   11.25 -
   11.26 -endmenu
   11.27 -
   11.28 -# KEPT IN CASE WE WANT TO BRING SOME BACK...
   11.29 -#
   11.30 -#if [ "$CONFIG_VT" = "y" ]; then
   11.31 -#   bool '  Support for console on virtual terminal' CONFIG_VT_CONSOLE
   11.32 -#   if [ "$CONFIG_GSC_LASI" = "y" ]; then
   11.33 -#      bool '    Support for Lasi/Dino PS2 port' CONFIG_GSC_PS2
   11.34 -#   fi
   11.35 -#fi
   11.36 -#
   11.37 -#tristate 'Standard/generic (8250/16550 and compatible UARTs) serial support' CONFIG_SERIAL
   11.38 -#if [ "$CONFIG_SERIAL" = "y" ]; then
   11.39 -#   bool '  Support for console on serial port' CONFIG_SERIAL_CONSOLE
   11.40 -#   if [ "$CONFIG_GSC_LASI" = "y" ]; then
   11.41 -#      bool '   serial port on GSC support' CONFIG_SERIAL_GSC
   11.42 -#   fi
   11.43 -#   if [ "$CONFIG_IA64" = "y" ]; then
   11.44 -#      bool 'Support for serial console port described by EFI HCDP table' CONFIG_SERIAL_HCDP
   11.45 -#   fi
   11.46 -#   if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
   11.47 -#      tristate '   Atomwide serial port support' CONFIG_ATOMWIDE_SERIAL
   11.48 -#      tristate '   Dual serial port support' CONFIG_DUALSP_SERIAL
   11.49 -#   fi
   11.50 -#fi
   11.51 -#dep_mbool 'Extended dumb serial driver options' CONFIG_SERIAL_EXTENDED $CONFIG_SERIAL
   11.52 -#if [ "$CONFIG_SERIAL_EXTENDED" = "y" ]; then
   11.53 -#   bool '  Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS
   11.54 -#   bool '  Support for sharing serial interrupts' CONFIG_SERIAL_SHARE_IRQ
   11.55 -#   bool '  Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ
   11.56 -#   bool '  Support special multiport boards' CONFIG_SERIAL_MULTIPORT
   11.57 -#   bool '  Support the Bell Technologies HUB6 card' CONFIG_HUB6
   11.58 -#fi
   11.59 -#bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD
   11.60 -#if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then
   11.61 -#   tristate '  Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
   11.62 -#   tristate '  Comtrol Rocketport support' CONFIG_ROCKETPORT
   11.63 -#   tristate '  Cyclades async mux support' CONFIG_CYCLADES
   11.64 -#   if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_CYCLADES" != "n" ]; then
   11.65 -#      bool '    Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR
   11.66 -#   fi
   11.67 -#   if [ "$CONFIG_X86_64" != "y" ]; then
   11.68 -#      tristate '  Digiboard Intelligent Async Support' CONFIG_DIGIEPCA
   11.69 -#      if [ "$CONFIG_DIGIEPCA" = "n" ]; then
   11.70 -#         tristate '  Digiboard PC/Xx Support' CONFIG_DIGI
   11.71 -#      fi
   11.72 -#   fi
   11.73 -#   dep_tristate '  Hayes ESP serial port support' CONFIG_ESPSERIAL $CONFIG_ISA
   11.74 -#   tristate '  Moxa Intellio support' CONFIG_MOXA_INTELLIO
   11.75 -#   tristate '  Moxa SmartIO support' CONFIG_MOXA_SMARTIO
   11.76 -#   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   11.77 -#      dep_tristate '  Multi-Tech multiport card support (EXPERIMENTAL)' CONFIG_ISI m
   11.78 -#   fi
   11.79 -#   tristate '  Microgate SyncLink card support' CONFIG_SYNCLINK
   11.80 -#   tristate '  SyncLink Multiport support' CONFIG_SYNCLINKMP
   11.81 -#   tristate '  HDLC line discipline support' CONFIG_N_HDLC
   11.82 -#   tristate '  SDL RISCom/8 card support' CONFIG_RISCOM8
   11.83 -#   if [ "$CONFIG_X86_64" != "y" ]; then
   11.84 -#      tristate '  Specialix IO8+ card support' CONFIG_SPECIALIX
   11.85 -#      if [ "$CONFIG_SPECIALIX" != "n" ]; then
   11.86 -#         bool '  Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS
   11.87 -#      fi 
   11.88 -#      tristate '  Specialix SX (and SI) card support' CONFIG_SX
   11.89 -#      tristate '  Specialix RIO system support' CONFIG_RIO
   11.90 -#      if [ "$CONFIG_RIO" != "n" ]; then
   11.91 -#        bool '    Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI
   11.92 -#      fi
   11.93 -#   fi
   11.94 -#   bool '  Stallion multiport serial support' CONFIG_STALDRV
   11.95 -#   if [ "$CONFIG_STALDRV" = "y" ]; then
   11.96 -#     tristate '    Stallion EasyIO or EC8/32 support' CONFIG_STALLION
   11.97 -#     tristate '    Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
   11.98 -#   fi
   11.99 -#   if [ "$CONFIG_PARISC" = "y" ]; then
  11.100 -#     if [ "$CONFIG_PDC_CONSOLE" != "y" ]; then
  11.101 -#       bool '  Serial MUX support' CONFIG_SERIAL_MUX CONFIG_SERIAL_NONSTANDARD
  11.102 -#     fi
  11.103 -#     if [ "$CONFIG_SERIAL_MUX" != "y" ]; then
  11.104 -#       bool '  PDC software console support' CONFIG_PDC_CONSOLE CONFIG_SERIAL_NONSTANDARD
  11.105 -#     fi
  11.106 -#   fi
  11.107 -#   if [ "$CONFIG_MIPS" = "y" ]; then
  11.108 -#     bool '  TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
  11.109 -#     dep_bool '     Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
  11.110 -#     bool '  Enable Au1000 UART Support' CONFIG_AU1000_UART
  11.111 -#     if [ "$CONFIG_AU1000_UART" = "y" ]; then
  11.112 -#        bool '        Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
  11.113 -#     fi
  11.114 -#     bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL 
  11.115 -#     if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then
  11.116 -#        bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE  
  11.117 -#     fi                             
  11.118 -#     if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
  11.119 -#        bool '  Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART
  11.120 -#        if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then
  11.121 -#           bool '  Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE
  11.122 -#	   if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then
  11.123 -#	      define_bool CONFIG_SERIAL_CONSOLE y
  11.124 -#	   fi
  11.125 -#	   int  '  Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024
  11.126 -#	   bool '  Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
  11.127 -#       fi
  11.128 -#     fi
  11.129 -#  fi
  11.130 -#fi
  11.131 -#if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then
  11.132 -#   tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
  11.133 -#fi
  11.134 -#if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
  11.135 -#   bool 'DC21285 serial port support' CONFIG_SERIAL_21285
  11.136 -#   if [ "$CONFIG_SERIAL_21285" = "y" ]; then
  11.137 -#      if [ "$CONFIG_OBSOLETE" = "y" ]; then
  11.138 -#         bool '  Use /dev/ttyS0 device (OBSOLETE)' CONFIG_SERIAL_21285_OLD
  11.139 -#      fi
  11.140 -#      bool '  Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE
  11.141 -#   fi
  11.142 -#   if [ "$CONFIG_MIPS" = "y" ]; then
  11.143 -#     bool '  TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
  11.144 -#     dep_bool '     Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
  11.145 -#     bool '  Enable Au1000 UART Support' CONFIG_AU1000_UART
  11.146 -#     if [ "$CONFIG_AU1000_UART" = "y" ]; then
  11.147 -#         bool '        Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
  11.148 -#     fi
  11.149 -#   fi
  11.150 -#   if [ "$CONFIG_PARISC" = "y" ]; then
  11.151 -#     bool '  PDC software console support' CONFIG_PDC_CONSOLE
  11.152 -#   fi
  11.153 -#fi
  11.154 -#if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
  11.155 -#   bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD
  11.156 -#   if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then
  11.157 -#     define_bool CONFIG_IT8172_CIR y
  11.158 -#   else
  11.159 -#     bool '    Enable PS2 Keyboard Support' CONFIG_PC_KEYB
  11.160 -#   fi
  11.161 -#   bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0
  11.162 -#   bool 'Enable Smart Card Reader 1 Support ' CONFIG_IT8172_SCR1
  11.163 -#fi
  11.164 -#if [ "$CONFIG_MIPS_IVR" = "y" ]; then
  11.165 -#   bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD
  11.166 -#   if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then
  11.167 -#     define_bool CONFIG_IT8172_CIR y
  11.168 -#   fi
  11.169 -#   bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0
  11.170 -#fi
  11.171 -##PTYS WERE HERE
  11.172 -#if [ "$CONFIG_PARPORT" != "n" ]; then
  11.173 -#   dep_tristate 'Parallel printer support' CONFIG_PRINTER $CONFIG_PARPORT
  11.174 -#   if [ "$CONFIG_PRINTER" != "n" ]; then
  11.175 -#      bool '  Support for console on line printer' CONFIG_LP_CONSOLE
  11.176 -#   fi
  11.177 -#   dep_tristate 'Support for user-space parallel port device drivers' CONFIG_PPDEV $CONFIG_PARPORT
  11.178 -#   dep_tristate 'Texas Instruments parallel link cable support' CONFIG_TIPAR $CONFIG_PARPORT
  11.179 -#fi
  11.180 -#
  11.181 -#if [ "$CONFIG_PPC64" ] ; then 
  11.182 -#   bool 'pSeries Hypervisor Virtual Console support' CONFIG_HVC_CONSOLE
  11.183 -#fi
  11.184 -#
  11.185 -#source drivers/i2c/Config.in
  11.186 -#
  11.187 -#mainmenu_option next_comment
  11.188 -#comment 'Mice'
  11.189 -#tristate 'Bus Mouse Support' CONFIG_BUSMOUSE
  11.190 -#if [ "$CONFIG_BUSMOUSE" != "n" ]; then
  11.191 -#   dep_tristate '  ATIXL busmouse support' CONFIG_ATIXL_BUSMOUSE $CONFIG_BUSMOUSE
  11.192 -#   dep_tristate '  Logitech busmouse support' CONFIG_LOGIBUSMOUSE $CONFIG_BUSMOUSE
  11.193 -#   dep_tristate '  Microsoft busmouse support' CONFIG_MS_BUSMOUSE $CONFIG_BUSMOUSE
  11.194 -#   if [ "$CONFIG_ADB" = "y" -a "$CONFIG_ADB_KEYBOARD" = "y" ]; then
  11.195 -#      dep_tristate '  Apple Desktop Bus mouse support (old driver)' CONFIG_ADBMOUSE $CONFIG_BUSMOUSE
  11.196 -#   fi
  11.197 -#fi
  11.198 -#
  11.199 -#tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE
  11.200 -#if [ "$CONFIG_MOUSE" != "n" ]; then
  11.201 -#   bool '  PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
  11.202 -#   tristate '  C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE
  11.203 -#   tristate '  PC110 digitizer pad support' CONFIG_PC110_PAD
  11.204 -#   tristate '  MK712 touch screen support' CONFIG_MK712_MOUSE
  11.205 -#fi
  11.206 -#endmenu
  11.207 -#
  11.208 -#source drivers/char/joystick/Config.in
  11.209 -#
  11.210 -#tristate 'QIC-02 tape support' CONFIG_QIC02_TAPE
  11.211 -#if [ "$CONFIG_QIC02_TAPE" != "n" ]; then
  11.212 -#   bool '  Do you want runtime configuration for QIC-02' CONFIG_QIC02_DYNCONF
  11.213 -#   if [ "$CONFIG_QIC02_DYNCONF" != "y" ]; then
  11.214 -#      comment '  Edit configuration parameters in ./include/linux/tpqic02.h!'
  11.215 -#   else
  11.216 -#      comment '  Setting runtime QIC-02 configuration is done with qic02conf'
  11.217 -#      comment '  from the tpqic02-support package.  It is available at'
  11.218 -#      comment '  metalab.unc.edu or ftp://titus.cfw.com/pub/Linux/util/'
  11.219 -#   fi
  11.220 -#fi
  11.221 -#
  11.222 -#tristate 'IPMI top-level message handler' CONFIG_IPMI_HANDLER
  11.223 -#dep_mbool '  Generate a panic event to all BMCs on a panic' CONFIG_IPMI_PANIC_EVENT $CONFIG_IPMI_HANDLER
  11.224 -#dep_tristate '  Device interface for IPMI' CONFIG_IPMI_DEVICE_INTERFACE $CONFIG_IPMI_HANDLER
  11.225 -#dep_tristate '  IPMI KCS handler' CONFIG_IPMI_KCS $CONFIG_IPMI_HANDLER
  11.226 -#dep_tristate '  IPMI Watchdog Timer' CONFIG_IPMI_WATCHDOG $CONFIG_IPMI_HANDLER
  11.227 -#
  11.228 -#mainmenu_option next_comment
  11.229 -#comment 'Watchdog Cards'
  11.230 -#bool 'Watchdog Timer Support'	CONFIG_WATCHDOG
  11.231 -#if [ "$CONFIG_WATCHDOG" != "n" ]; then
  11.232 -#   bool '  Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT
  11.233 -#   tristate '  Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
  11.234 -#   tristate '  Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT
  11.235 -#   tristate '  ALi M7101 PMU Watchdog Timer' CONFIG_ALIM7101_WDT
  11.236 -#   tristate '  AMD "Elan" SC520 Watchdog Timer' CONFIG_SC520_WDT
  11.237 -#   tristate '  Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG
  11.238 -#   if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
  11.239 -#      tristate '  DC21285 watchdog' CONFIG_21285_WATCHDOG
  11.240 -#      if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then
  11.241 -#         tristate '  NetWinder WB83C977 watchdog' CONFIG_977_WATCHDOG
  11.242 -#      fi
  11.243 -#   fi
  11.244 -#   tristate '  Eurotech CPU-1220/1410 Watchdog Timer' CONFIG_EUROTECH_WDT
  11.245 -#   tristate '  IB700 SBC Watchdog Timer' CONFIG_IB700_WDT
  11.246 -#   tristate '  ICP ELectronics Wafer 5823 Watchdog' CONFIG_WAFER_WDT
  11.247 -#   if [ "$CONFIG_SGI_IP22" = "y" ]; then
  11.248 -#      dep_tristate '  Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
  11.249 -#   fi
  11.250 -#   tristate '  Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
  11.251 -#   tristate '  Mixcom Watchdog' CONFIG_MIXCOMWD 
  11.252 -#   tristate '  SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
  11.253 -#   dep_tristate '  SC1200 Watchdog Timer (EXPERIMENTAL)' CONFIG_SC1200_WDT $CONFIG_EXPERIMENTAL
  11.254 -#   tristate '  NatSemi SCx200 Watchdog' CONFIG_SCx200_WDT
  11.255 -#   tristate '  Software Watchdog' CONFIG_SOFT_WATCHDOG
  11.256 -#   tristate '  W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT
  11.257 -#   tristate '  WDT Watchdog timer' CONFIG_WDT
  11.258 -#   tristate '  WDT PCI Watchdog timer' CONFIG_WDTPCI
  11.259 -#   if [ "$CONFIG_WDT" != "n" ]; then
  11.260 -#      bool '    WDT501 features' CONFIG_WDT_501
  11.261 -#      if [ "$CONFIG_WDT_501" = "y" ]; then
  11.262 -#         bool '      Fan Tachometer' CONFIG_WDT_501_FAN
  11.263 -#      fi
  11.264 -#   fi
  11.265 -#   tristate '  ZF MachZ Watchdog' CONFIG_MACHZ_WDT
  11.266 -#   dep_tristate '  AMD 766/768 TCO Timer/Watchdog' CONFIG_AMD7XX_TCO $CONFIG_EXPERIMENTAL
  11.267 -#fi
  11.268 -#endmenu
  11.269 -#
  11.270 -#if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then
  11.271 -#   tristate 'NetWinder thermometer support' CONFIG_DS1620
  11.272 -#   tristate 'NetWinder Button' CONFIG_NWBUTTON
  11.273 -#   if [ "$CONFIG_NWBUTTON" != "n" ]; then
  11.274 -#      bool '  Reboot Using Button' CONFIG_NWBUTTON_REBOOT
  11.275 -#   fi
  11.276 -#   tristate 'NetWinder flash support' CONFIG_NWFLASH
  11.277 -#fi
  11.278 -#dep_tristate 'NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200
  11.279 -#
  11.280 -#if [ "$CONFIG_X86" = "y" -o "$CONFIG_X86_64" = "y" ]; then
  11.281 -#   dep_tristate 'AMD 768 Random Number Generator support' CONFIG_AMD_RNG $CONFIG_PCI
  11.282 -#fi
  11.283 -#if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
  11.284 -#   dep_tristate 'Intel i8x0 Random Number Generator support' CONFIG_INTEL_RNG $CONFIG_PCI
  11.285 -#fi
  11.286 -#dep_tristate 'AMD 76x native power management (Experimental)' CONFIG_AMD_PM768 $CONFIG_PCI
  11.287 -#tristate '/dev/nvram support' CONFIG_NVRAM
  11.288 -#tristate 'Enhanced Real Time Clock Support' CONFIG_RTC
  11.289 -#if [ "$CONFIG_IA64" = "y" ]; then
  11.290 -#   bool 'EFI Real Time Clock Services' CONFIG_EFI_RTC
  11.291 -#fi
  11.292 -#if [ "$CONFIG_OBSOLETE" = "y" -a "$CONFIG_ALPHA_BOOK1" = "y" ]; then
  11.293 -#   bool 'Tadpole ANA H8 Support (OBSOLETE)'  CONFIG_H8
  11.294 -#fi
  11.295 -#
  11.296 -#tristate 'Double Talk PC internal speech card support' CONFIG_DTLK
  11.297 -#tristate 'Siemens R3964 line discipline' CONFIG_R3964
  11.298 -#tristate 'Applicom intelligent fieldbus card support' CONFIG_APPLICOM
  11.299 -#if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_X86" = "y" -a "$CONFIG_X86_64" != "y" ]; then
  11.300 -#   dep_tristate 'Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)' CONFIG_SONYPI $CONFIG_PCI
  11.301 -#fi
  11.302 -#
  11.303 -#mainmenu_option next_comment
  11.304 -#comment 'Ftape, the floppy tape device driver'
  11.305 -#tristate 'Ftape (QIC-80/Travan) support' CONFIG_FTAPE
  11.306 -#if [ "$CONFIG_FTAPE" != "n" ]; then
  11.307 -#   source drivers/char/ftape/Config.in
  11.308 -#fi
  11.309 -#endmenu
  11.310 -#
  11.311 -#if [ "$CONFIG_GART_IOMMU" = "y" ]; then
  11.312 -#	bool '/dev/agpgart (AGP Support)' CONFIG_AGP
  11.313 -#	define_bool CONFIG_AGP_AMD_8151 y
  11.314 -#else
  11.315 -#	tristate '/dev/agpgart (AGP Support)' CONFIG_AGP
  11.316 -#fi      
  11.317 -#if [ "$CONFIG_AGP" != "n" ]; then
  11.318 -#   bool '  Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support' CONFIG_AGP_INTEL
  11.319 -#   bool '  Intel I810/I815/I830M (on-board) support' CONFIG_AGP_I810
  11.320 -#   bool '  VIA chipset support' CONFIG_AGP_VIA
  11.321 -#   bool '  AMD Irongate, 761, and 762 support' CONFIG_AGP_AMD
  11.322 -#   if [ "$CONFIG_GART_IOMMU" != "y" ]; then
  11.323 -#      bool '  AMD 8151 support' CONFIG_AGP_AMD_8151
  11.324 -#   fi   
  11.325 -#   bool '  Generic SiS support' CONFIG_AGP_SIS
  11.326 -#   bool '  ALI chipset support' CONFIG_AGP_ALI
  11.327 -#   bool '  Serverworks LE/HE support' CONFIG_AGP_SWORKS
  11.328 -#   if [ "$CONFIG_IA64" = "y" ]; then
  11.329 -#      bool '  HP ZX1 AGP support' CONFIG_AGP_HP_ZX1
  11.330 -#   fi
  11.331 -#fi
  11.332 -#
  11.333 -#bool 'Direct Rendering Manager (XFree86 DRI support)' CONFIG_DRM
  11.334 -#if [ "$CONFIG_DRM" = "y" ]; then
  11.335 -#   bool '  Build drivers for old (XFree 4.0) DRM' CONFIG_DRM_OLD
  11.336 -#   if [ "$CONFIG_DRM_OLD" = "y" ]; then
  11.337 -#      comment 'DRM 4.0 drivers'
  11.338 -#      source drivers/char/drm-4.0/Config.in
  11.339 -#   else
  11.340 -#      comment 'DRM 4.1 drivers'
  11.341 -#      define_bool CONFIG_DRM_NEW y
  11.342 -#      source drivers/char/drm/Config.in
  11.343 -#   fi
  11.344 -#fi
  11.345 -#
  11.346 -#if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
  11.347 -#   source drivers/char/pcmcia/Config.in
  11.348 -#fi
  11.349 -#if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
  11.350 -#   tristate ' Alchemy Au1000 GPIO device support' CONFIG_AU1000_GPIO
  11.351 -#   tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1000_ADS7846
  11.352 -#fi
  11.353 -#if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
  11.354 -#  tristate ' ITE GPIO' CONFIG_ITE_GPIO
  11.355 -#fi
  11.356 -#
  11.357 -#if [ "$CONFIG_X86" = "y" ]; then
  11.358 -#   tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
  11.359 -#fi
  11.360 -
  11.361 -
  11.362 -
  11.363 -
  11.364 -
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/xenolinux-2.4.21-pre4-sparse/drivers/char/Makefile	Tue May 06 14:54:13 2003 +0000
    12.3 @@ -0,0 +1,334 @@
    12.4 +#
    12.5 +# Makefile for the kernel character device drivers.
    12.6 +#
    12.7 +# Note! Dependencies are done automagically by 'make dep', which also
    12.8 +# removes any old dependencies. DON'T put your own dependencies here
    12.9 +# unless it's something special (ie not a .c file).
   12.10 +#
   12.11 +# Note 2! The CFLAGS definitions are now inherited from the
   12.12 +# parent makes..
   12.13 +#
   12.14 +
   12.15 +#
   12.16 +# This file contains the font map for the default (hardware) font
   12.17 +#
   12.18 +FONTMAPFILE = cp437.uni
   12.19 +
   12.20 +O_TARGET := char.o
   12.21 +
   12.22 +obj-y	 += mem.o tty_io.o n_tty.o tty_ioctl.o raw.o pty.o misc.o random.o
   12.23 +
   12.24 +# All of the (potential) objects that export symbols.
   12.25 +# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
   12.26 +
   12.27 +export-objs     :=	busmouse.o console.o keyboard.o sysrq.o \
   12.28 +			misc.o pty.o random.o selection.o serial.o \
   12.29 +			sonypi.o tty_io.o tty_ioctl.o generic_serial.o \
   12.30 +			au1000_gpio.o hp_psaux.o nvram.o
   12.31 +
   12.32 +mod-subdirs	:=	joystick ftape drm drm-4.0 pcmcia
   12.33 +
   12.34 +list-multi	:=	
   12.35 +
   12.36 +KEYMAP   =defkeymap.o
   12.37 +KEYBD    =pc_keyb.o
   12.38 +CONSOLE  =console.o
   12.39 +SERIAL   =serial.o
   12.40 +
   12.41 +ifeq ($(ARCH),s390)
   12.42 +  KEYMAP   =
   12.43 +  KEYBD    =
   12.44 +  CONSOLE  =
   12.45 +  SERIAL   =
   12.46 +endif
   12.47 +
   12.48 +ifeq ($(ARCH),mips)
   12.49 +  ifneq ($(CONFIG_PC_KEYB),y)
   12.50 +    KEYBD    =
   12.51 +  endif
   12.52 +endif
   12.53 +
   12.54 +ifeq ($(ARCH),s390x)
   12.55 +  KEYMAP   =
   12.56 +  KEYBD    =
   12.57 +  CONSOLE  =
   12.58 +  SERIAL   =
   12.59 +endif
   12.60 +
   12.61 +ifeq ($(ARCH),m68k)
   12.62 +   ifdef CONFIG_AMIGA
   12.63 +      KEYBD = amikeyb.o
   12.64 +   else
   12.65 +      ifndef CONFIG_MAC
   12.66 +	 KEYBD =
   12.67 +      endif
   12.68 +   endif
   12.69 +   SERIAL   =
   12.70 +endif
   12.71 +
   12.72 +ifeq ($(ARCH),parisc)
   12.73 +   ifdef CONFIG_GSC_PS2
   12.74 +      KEYBD   = hp_psaux.o hp_keyb.o
   12.75 +   else
   12.76 +      KEYBD   =
   12.77 +   endif
   12.78 +   ifdef CONFIG_SERIAL_MUX
   12.79 +      CONSOLE += mux.o
   12.80 +   endif
   12.81 +   ifdef CONFIG_PDC_CONSOLE
   12.82 +      CONSOLE += pdc_console.o
   12.83 +   endif
   12.84 +endif
   12.85 +
   12.86 +ifdef CONFIG_Q40
   12.87 +  KEYBD += q40_keyb.o
   12.88 +  SERIAL = serial.o
   12.89 +endif
   12.90 +
   12.91 +ifdef CONFIG_APOLLO
   12.92 +  KEYBD += dn_keyb.o
   12.93 +endif
   12.94 +
   12.95 +ifeq ($(ARCH),parisc)
   12.96 +   ifdef CONFIG_GSC_PS2
   12.97 +      KEYBD   = hp_psaux.o hp_keyb.o
   12.98 +   else
   12.99 +      KEYBD   =
  12.100 +   endif
  12.101 +   ifdef CONFIG_PDC_CONSOLE
  12.102 +      CONSOLE += pdc_console.o
  12.103 +   endif
  12.104 +endif
  12.105 +
  12.106 +ifeq ($(ARCH),arm)
  12.107 +  ifneq ($(CONFIG_PC_KEYMAP),y)
  12.108 +    KEYMAP   =
  12.109 +  endif
  12.110 +  ifneq ($(CONFIG_PC_KEYB),y)
  12.111 +    KEYBD    =
  12.112 +  endif
  12.113 +endif
  12.114 +
  12.115 +ifeq ($(ARCH),sh)
  12.116 +  KEYMAP   =
  12.117 +  KEYBD    =
  12.118 +  CONSOLE  =
  12.119 +  ifeq ($(CONFIG_SH_HP600),y)
  12.120 +  KEYMAP   = defkeymap.o
  12.121 +  KEYBD    = scan_keyb.o hp600_keyb.o
  12.122 +  CONSOLE  = console.o
  12.123 +  endif
  12.124 +  ifeq ($(CONFIG_SH_DMIDA),y)
  12.125 +  # DMIDA does not connect the HD64465 PS/2 keyboard port
  12.126 +  # but we allow for USB keyboards to be plugged in.
  12.127 +  KEYMAP   = defkeymap.o
  12.128 +  KEYBD    = # hd64465_keyb.o pc_keyb.o
  12.129 +  CONSOLE  = console.o
  12.130 +  endif
  12.131 +  ifeq ($(CONFIG_SH_EC3104),y)
  12.132 +  KEYMAP   = defkeymap.o
  12.133 +  KEYBD    = ec3104_keyb.o
  12.134 +  CONSOLE  = console.o
  12.135 +  endif
  12.136 +  ifeq ($(CONFIG_SH_DREAMCAST),y)
  12.137 +  KEYMAP   = defkeymap.o
  12.138 +  KEYBD    =
  12.139 +  CONSOLE  = console.o
  12.140 +  endif
  12.141 +endif
  12.142 +
  12.143 +ifeq ($(CONFIG_DECSTATION),y)
  12.144 +  KEYMAP   =
  12.145 +  KEYBD    =
  12.146 +  SERIAL   = decserial.o
  12.147 +endif
  12.148 +
  12.149 +ifeq ($(CONFIG_BAGET_MIPS),y)
  12.150 +  KEYBD    =
  12.151 +  SERIAL   =
  12.152 +endif
  12.153 +
  12.154 +ifeq ($(CONFIG_NINO),y)
  12.155 +  SERIAL   =
  12.156 +endif
  12.157 +
  12.158 +ifneq ($(CONFIG_SUN_SERIAL),)
  12.159 +  SERIAL   =
  12.160 +endif
  12.161 +
  12.162 +ifeq ($(CONFIG_QTRONIX_KEYBOARD),y)
  12.163 +  KEYBD    = qtronix.o
  12.164 +  KEYMAP   = qtronixmap.o
  12.165 +endif
  12.166 +
  12.167 +ifeq ($(CONFIG_DUMMY_KEYB),y)
  12.168 +  KEYBD = dummy_keyb.o
  12.169 +endif
  12.170 +
  12.171 +obj-$(CONFIG_VT) += vt.o vc_screen.o consolemap.o consolemap_deftbl.o $(CONSOLE) selection.o
  12.172 +obj-$(CONFIG_SERIAL) += $(SERIAL)
  12.173 +obj-$(CONFIG_SERIAL_HCDP) += hcdp_serial.o
  12.174 +obj-$(CONFIG_SERIAL_21285) += serial_21285.o
  12.175 +obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o
  12.176 +obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o
  12.177 +obj-$(CONFIG_TS_AU1000_ADS7846) += au1000_ts.o
  12.178 +
  12.179 +obj-$(CONFIG_DUMMY_CONSOLE) += dummy_console.o
  12.180 +
  12.181 +ifndef CONFIG_SUN_KEYBOARD
  12.182 +  obj-$(CONFIG_VT) += keyboard.o $(KEYMAP) $(KEYBD)
  12.183 +else
  12.184 +  obj-$(CONFIG_PCI) += keyboard.o $(KEYMAP)
  12.185 +endif
  12.186 +
  12.187 +obj-$(CONFIG_HIL) += hp_keyb.o
  12.188 +obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o
  12.189 +obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o
  12.190 +obj-$(CONFIG_ROCKETPORT) += rocket.o
  12.191 +obj-$(CONFIG_MOXA_SMARTIO) += mxser.o
  12.192 +obj-$(CONFIG_MOXA_INTELLIO) += moxa.o
  12.193 +obj-$(CONFIG_DIGI) += pcxx.o
  12.194 +obj-$(CONFIG_DIGIEPCA) += epca.o
  12.195 +obj-$(CONFIG_CYCLADES) += cyclades.o
  12.196 +obj-$(CONFIG_STALLION) += stallion.o
  12.197 +obj-$(CONFIG_ISTALLION) += istallion.o
  12.198 +obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o
  12.199 +obj-$(CONFIG_COMPUTONE) += ip2.o ip2main.o
  12.200 +obj-$(CONFIG_RISCOM8) += riscom8.o
  12.201 +obj-$(CONFIG_ISI) += isicom.o
  12.202 +obj-$(CONFIG_ESPSERIAL) += esp.o
  12.203 +obj-$(CONFIG_SYNCLINK) += synclink.o
  12.204 +obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o
  12.205 +obj-$(CONFIG_N_HDLC) += n_hdlc.o
  12.206 +obj-$(CONFIG_SPECIALIX) += specialix.o
  12.207 +obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
  12.208 +obj-$(CONFIG_A2232) += ser_a2232.o generic_serial.o
  12.209 +obj-$(CONFIG_SX) += sx.o generic_serial.o
  12.210 +obj-$(CONFIG_RIO) += rio/rio.o generic_serial.o
  12.211 +obj-$(CONFIG_SH_SCI) += sh-sci.o generic_serial.o
  12.212 +obj-$(CONFIG_SERIAL167) += serial167.o
  12.213 +obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o
  12.214 +obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o
  12.215 +obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o
  12.216 +obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o
  12.217 +obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o
  12.218 +obj-$(CONFIG_TXX927_SERIAL) += serial_txx927.o
  12.219 +
  12.220 +subdir-$(CONFIG_RIO) += rio
  12.221 +subdir-$(CONFIG_INPUT) += joystick
  12.222 +
  12.223 +obj-$(CONFIG_ATIXL_BUSMOUSE) += atixlmouse.o
  12.224 +obj-$(CONFIG_LOGIBUSMOUSE) += logibusmouse.o
  12.225 +obj-$(CONFIG_PRINTER) += lp.o
  12.226 +obj-$(CONFIG_TIPAR) += tipar.o
  12.227 +
  12.228 +ifeq ($(CONFIG_INPUT),y)
  12.229 +obj-y += joystick/js.o
  12.230 +endif
  12.231 +
  12.232 +obj-$(CONFIG_BUSMOUSE) += busmouse.o
  12.233 +obj-$(CONFIG_DTLK) += dtlk.o
  12.234 +obj-$(CONFIG_R3964) += n_r3964.o
  12.235 +obj-$(CONFIG_APPLICOM) += applicom.o
  12.236 +obj-$(CONFIG_SONYPI) += sonypi.o
  12.237 +obj-$(CONFIG_MS_BUSMOUSE) += msbusmouse.o
  12.238 +obj-$(CONFIG_82C710_MOUSE) += qpmouse.o
  12.239 +obj-$(CONFIG_AMIGAMOUSE) += amigamouse.o
  12.240 +obj-$(CONFIG_ATARIMOUSE) += atarimouse.o
  12.241 +obj-$(CONFIG_ADBMOUSE) += adbmouse.o
  12.242 +obj-$(CONFIG_PC110_PAD) += pc110pad.o
  12.243 +obj-$(CONFIG_MK712_MOUSE) += mk712.o
  12.244 +obj-$(CONFIG_RTC) += rtc.o
  12.245 +obj-$(CONFIG_EFI_RTC) += efirtc.o
  12.246 +ifeq ($(CONFIG_PPC),)
  12.247 +  obj-$(CONFIG_NVRAM) += nvram.o
  12.248 +endif
  12.249 +obj-$(CONFIG_TOSHIBA) += toshiba.o
  12.250 +obj-$(CONFIG_I8K) += i8k.o
  12.251 +obj-$(CONFIG_DS1620) += ds1620.o
  12.252 +obj-$(CONFIG_INTEL_RNG) += i810_rng.o
  12.253 +obj-$(CONFIG_AMD_RNG) += amd768_rng.o
  12.254 +obj-$(CONFIG_AMD_PM768) += amd76x_pm.o
  12.255 +
  12.256 +obj-$(CONFIG_ITE_GPIO) += ite_gpio.o
  12.257 +obj-$(CONFIG_AU1000_GPIO) += au1000_gpio.o
  12.258 +obj-$(CONFIG_COBALT_LCD) += lcd.o
  12.259 +
  12.260 +obj-$(CONFIG_QIC02_TAPE) += tpqic02.o
  12.261 +
  12.262 +subdir-$(CONFIG_FTAPE) += ftape
  12.263 +subdir-$(CONFIG_DRM_OLD) += drm-4.0
  12.264 +subdir-$(CONFIG_DRM_NEW) += drm
  12.265 +subdir-$(CONFIG_PCMCIA) += pcmcia
  12.266 +subdir-$(CONFIG_AGP) += agp
  12.267 +
  12.268 +ifeq ($(CONFIG_FTAPE),y)
  12.269 +obj-y       += ftape/ftape.o
  12.270 +endif
  12.271 +
  12.272 +obj-$(CONFIG_H8) += h8.o
  12.273 +obj-$(CONFIG_PPDEV) += ppdev.o
  12.274 +obj-$(CONFIG_DZ) += dz.o
  12.275 +obj-$(CONFIG_NWBUTTON) += nwbutton.o
  12.276 +obj-$(CONFIG_NWFLASH) += nwflash.o
  12.277 +obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o scx200.o
  12.278 +
  12.279 +# Only one watchdog can succeed. We probe the hardware watchdog
  12.280 +# drivers first, then the softdog driver.  This means if your hardware
  12.281 +# watchdog dies or is 'borrowed' for some reason the software watchdog
  12.282 +# still gives you some cover.
  12.283 +
  12.284 +obj-$(CONFIG_PCWATCHDOG) += pcwd.o
  12.285 +obj-$(CONFIG_ACQUIRE_WDT) += acquirewdt.o
  12.286 +obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o
  12.287 +obj-$(CONFIG_IB700_WDT) += ib700wdt.o
  12.288 +obj-$(CONFIG_MIXCOMWD) += mixcomwd.o
  12.289 +obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o
  12.290 +obj-$(CONFIG_W83877F_WDT) += w83877f_wdt.o
  12.291 +obj-$(CONFIG_SC520_WDT) += sc520_wdt.o
  12.292 +obj-$(CONFIG_WDT) += wdt.o
  12.293 +obj-$(CONFIG_WDTPCI) += wdt_pci.o
  12.294 +obj-$(CONFIG_21285_WATCHDOG) += wdt285.o
  12.295 +obj-$(CONFIG_977_WATCHDOG) += wdt977.o
  12.296 +obj-$(CONFIG_I810_TCO) += i810-tco.o
  12.297 +obj-$(CONFIG_MACHZ_WDT) += machzwd.o
  12.298 +obj-$(CONFIG_SH_WDT) += shwdt.o
  12.299 +obj-$(CONFIG_EUROTECH_WDT) += eurotechwdt.o
  12.300 +obj-$(CONFIG_ALIM7101_WDT) += alim7101_wdt.o
  12.301 +#obj-$(CONFIG_ALIM1535_WDT) += alim1535d_wdt.o
  12.302 +obj-$(CONFIG_INDYDOG) += indydog.o
  12.303 +obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
  12.304 +obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
  12.305 +obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
  12.306 +obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o
  12.307 +obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o
  12.308 +
  12.309 +subdir-$(CONFIG_MWAVE) += mwave
  12.310 +ifeq ($(CONFIG_MWAVE),y)
  12.311 +  obj-y += mwave/mwave.o
  12.312 +endif
  12.313 +
  12.314 +subdir-$(CONFIG_IPMI_HANDLER) += ipmi
  12.315 +ifeq ($(CONFIG_IPMI_HANDLER),y)
  12.316 +  obj-y += ipmi/ipmi.o
  12.317 +endif
  12.318 +
  12.319 +include $(TOPDIR)/Rules.make
  12.320 +
  12.321 +fastdep:
  12.322 +
  12.323 +conmakehash: conmakehash.c
  12.324 +	$(HOSTCC) $(HOSTCFLAGS) -o conmakehash conmakehash.c
  12.325 +
  12.326 +consolemap_deftbl.c: $(FONTMAPFILE) conmakehash
  12.327 +	./conmakehash $(FONTMAPFILE) > consolemap_deftbl.c
  12.328 +
  12.329 +consolemap_deftbl.o: consolemap_deftbl.c $(TOPDIR)/include/linux/types.h
  12.330 +
  12.331 +.DELETE_ON_ERROR:
  12.332 +
  12.333 +defkeymap.c: defkeymap.map
  12.334 +	set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
  12.335 +
  12.336 +qtronixmap.c: qtronixmap.map
  12.337 +	set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
    13.1 --- a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h	Tue May 06 10:05:18 2003 +0000
    13.2 +++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor.h	Tue May 06 14:54:13 2003 +0000
    13.3 @@ -364,13 +364,14 @@ static inline long HYPERVISOR_kbd_op(uns
    13.4      return ret;
    13.5  }
    13.6  
    13.7 -static inline long HYPERVISOR_iopl(unsigned int new_iopl)
    13.8 +static inline long HYPERVISOR_set_priv_levels(unsigned int new_io_pl,
    13.9 +                                              unsigned int new_hypercall_pl)
   13.10  {
   13.11      int ret;
   13.12      __asm__ __volatile__ (
   13.13          TRAP_INSTR
   13.14 -        : "=a" (ret) : "0" (__HYPERVISOR_iopl),
   13.15 -        "b" (new_iopl) );
   13.16 +        : "=a" (ret) : "0" (__HYPERVISOR_set_priv_levels),
   13.17 +        "b" (new_io_pl), "c" (new_hypercall_pl) );
   13.18  
   13.19      return ret;
   13.20  }
    14.1 --- a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h	Tue May 06 10:05:18 2003 +0000
    14.2 +++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/processor.h	Tue May 06 14:54:13 2003 +0000
    14.3 @@ -356,6 +356,7 @@ struct thread_struct {
    14.4  	unsigned long	esp;
    14.5  	unsigned long	fs;
    14.6  	unsigned long	gs;
    14.7 +	unsigned int	hypercall_pl;
    14.8  /* Hardware debugging registers */
    14.9  	unsigned long	debugreg[8];  /* %%db0-7 debug registers */
   14.10  /* fault info */
   14.11 @@ -368,7 +369,7 @@ struct thread_struct {
   14.12  	unsigned long		v86flags, v86mask, saved_esp0;
   14.13  };
   14.14  
   14.15 -#define INIT_THREAD  { 0 }
   14.16 +#define INIT_THREAD  { 0, 0, 0, 0, 0, 1, {0}, 0, 0, 0, {0}, 0, 0, 0, 0, 0 }
   14.17  
   14.18  #define INIT_TSS  {						\
   14.19  	0,0, /* back_link, __blh */				\