[PULL] use LRMI for real-mode calls

Tiago Vignatti tiago.vignatti at nokia.com
Wed Apr 28 10:58:58 PDT 2010


Keith,

All int10 module went to libx86, which in turn is accessed by a shiny new
lrmi. It became very easy to create real mode contexts now; for instance all X
server code has ~60 lines only. And the cool thing is that the API for drivers
keeps the same: 

    git://people.freedesktop.org/~vignatti/xserver lrmi-for-children
    git://people.freedesktop.org/~vignatti/libx86


and posttool converted to such interface:

     git://people.freedesktop.org/~vignatti/posttool lrmi-for-children


In the library there's some code that I intentionally let away either because
I'm pretty sure it's broken (and I don't have the hardware to test actually)
or because I think it's not needed anymore. We can eventually add though. They
are:

- support generic memory functions: we might need this specialised functions
  to handle access to different types of memory, but for now LRMI doesn't have
  such interface and even doesn't implement a portable way for access "not
  popular" memories.
- non-PC initialization mode (seems to be broken anyway) and int42 
  handling (used only for non-PC)
- int1A handling
- cpu regs emulation capability from x86emu
- video memory mapping and bios reading functions are not portable (we
  probably should move all implementation xf86MapVidMem and xf86ReadBIOS to
  libpciaccess)

I guess also stub functions should be implemented inside libx86 for BSD-like
systems.

Unfortunately no commits here got a review tag. Even so, I'm keeping this work
openly for months already and I'd like to work on it to integrate now. So
please, tell me your thoughts. 

       Tiago


The following changes since commit 81a081c1f0cb55df94cb10495aa7ad71cd5a9afb:
  Jon TURNEY (1):
        Cygwin/X: AIGLX using native WGL

are available in the git repository at:

  git://people.freedesktop.org/~vignatti/xserver.git lrmi-for-children

Tiago Vignatti (8):
      x86emu: nuke from the server and go to hell...
      x86emu: remove internal x86emu links
      int10: remove a lot of thunk code
      int10: remove vm86
      configure: remove xserver int10 backend control
      int10: welcome to new world order
      int10: remove xf86ExtendedInitInt10 interface
      int10: insert nokia copyright

 configure.ac                                       |   23 +-
 hw/xfree86/Makefile.am                             |    4 +-
 hw/xfree86/int10/INT10.HOWTO                       |    8 +-
 hw/xfree86/int10/Makefile.am                       |   41 +-
 hw/xfree86/int10/generic.c                         |  494 -
 hw/xfree86/int10/helper_exec.c                     |  727 --
 hw/xfree86/int10/helper_mem.c                      |  330 -
 hw/xfree86/int10/stub.c                            |   69 -
 hw/xfree86/int10/x86emu.c                          |   12 -
 hw/xfree86/int10/xf86int10.c                       |  909 +--
 hw/xfree86/int10/xf86int10.h                       |  200 +-
 hw/xfree86/int10/xf86x86emu.c                      |   89 -
 hw/xfree86/int10/xf86x86emu.h                      |   54 -
 hw/xfree86/os-support/Makefile.am                  |    2 +-
 hw/xfree86/os-support/int10Defines.h               |   89 -
 hw/xfree86/os-support/linux/int10/linux.c          |  544 -
 .../os-support/linux/int10/vm86/linux_vm86.c       |  300 -
 hw/xfree86/vbe/vbe.c                               |    3 +-
 hw/xfree86/x86emu/Makefile.am                      |   29 -
 hw/xfree86/x86emu/debug.c                          |  430 -
 hw/xfree86/x86emu/decode.c                         | 1092 --
 hw/xfree86/x86emu/fpu.c                            |  965 --
 hw/xfree86/x86emu/ops.c                            |11717 --------------------
 hw/xfree86/x86emu/ops2.c                           | 2897 -----
 hw/xfree86/x86emu/prim_ops.c                       | 2722 -----
 hw/xfree86/x86emu/sys.c                            |  521 -
 hw/xfree86/x86emu/validate.c                       |  765 --
 hw/xfree86/x86emu/x86emu.h                         |  198 -
 hw/xfree86/x86emu/x86emu/debug.h                   |  210 -
 hw/xfree86/x86emu/x86emu/decode.h                  |   88 -
 hw/xfree86/x86emu/x86emu/fpu.h                     |   61 -
 hw/xfree86/x86emu/x86emu/fpu_regs.h                |  119 -
 hw/xfree86/x86emu/x86emu/ops.h                     |   45 -
 hw/xfree86/x86emu/x86emu/prim_asm.h                |  970 --
 hw/xfree86/x86emu/x86emu/prim_ops.h                |  142 -
 hw/xfree86/x86emu/x86emu/prim_x86_gcc.h            |   79 -
 hw/xfree86/x86emu/x86emu/regs.h                    |  337 -
 hw/xfree86/x86emu/x86emu/types.h                   |   81 -
 hw/xfree86/x86emu/x86emu/x86emui.h                 |  102 -
 include/dix-config.h.in                            |    3 -
 40 files changed, 106 insertions(+), 27365 deletions(-)
 delete mode 100644 hw/xfree86/int10/generic.c
 delete mode 100644 hw/xfree86/int10/helper_exec.c
 delete mode 100644 hw/xfree86/int10/helper_mem.c
 delete mode 100644 hw/xfree86/int10/stub.c
 delete mode 100644 hw/xfree86/int10/x86emu.c
 delete mode 100644 hw/xfree86/int10/xf86x86emu.c
 delete mode 100644 hw/xfree86/int10/xf86x86emu.h
 delete mode 100644 hw/xfree86/os-support/int10Defines.h
 delete mode 100644 hw/xfree86/os-support/linux/int10/linux.c
 delete mode 100644 hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
 delete mode 100644 hw/xfree86/x86emu/Makefile.am
 delete mode 100644 hw/xfree86/x86emu/debug.c
 delete mode 100644 hw/xfree86/x86emu/decode.c
 delete mode 100644 hw/xfree86/x86emu/fpu.c
 delete mode 100644 hw/xfree86/x86emu/ops.c
 delete mode 100644 hw/xfree86/x86emu/ops2.c
 delete mode 100644 hw/xfree86/x86emu/prim_ops.c
 delete mode 100644 hw/xfree86/x86emu/sys.c
 delete mode 100644 hw/xfree86/x86emu/validate.c
 delete mode 100644 hw/xfree86/x86emu/x86emu.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/debug.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/decode.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/fpu.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/fpu_regs.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/ops.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/prim_asm.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/prim_ops.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/prim_x86_gcc.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/regs.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/types.h
 delete mode 100644 hw/xfree86/x86emu/x86emu/x86emui.h


More information about the xorg-devel mailing list