Lines Matching full:to

13 To   use   the   int10   module   in  a   driver   the   header   file
24 pointer to a xf86Int10InfoRec on success. If anything fails or if
27 calls to other int10 module functions.
32 To allocate memory in the real mode execution environment
37 returns the address of the allocated area. off is set to its offset in
42 Is used to free num pages beginning at pbase.
53 xf86Int10InfoRec passed to the function. On return this structure
65 to free the memory allocated for real mode int10 calls.
71 The int10 real mode executor is designed to run on top of various x86
74 separate thus requiring minimal efforts to port the int10 module to
75 new platforms. Currently an interface to the x86emu real mode
78 environment and the emulation layer have to be ported. Several helper
81 A CPU emulator should meet certain requirements to be usable
84 1. It must trap calls to intXX instructions and pass execution to an
85 external function which is allowed to modify CPU registers
86 including the instruction pointer (IP) before returning to the
88 called the IP must point to the instruction past the intXX call.
90 2. The emulator should use externally provided functions to handle
93 3. The emulator should be able to use externally provided functions
94 to access memory from the real mode memory environment. Note, that
97 this mode is to be used, the OS environment has to be able to provide
98 that, ie. it must be able to remap the processes virtual memory space
99 onto itself. If the emulator is able to handle memory access thru
102 have to be consecutive.
107 Functions to implement:
109 To simplify development the code has been split into a general setup
113 setup may be skipped when porting int10 to new emulator.
115 If the vm86() is to be used no memory access functions can be used.
116 Therefore the layout of the real mode memory image has to meet certain
117 requirements. Therefore when porting to other platforms a new setup
118 code may have to be designed, too. The following section will give
120 IPC to map the appropriate real mode memory image to address 0 in
121 virtual address space just prior to execution may be found in
131 This sets up the real mode memory image, calls the emulator to POST
137 This function should first find the screen assigned to the entity
142 to find out if the user has requested not to initialize int10. If so
146 a. int entityIndex - index of the entity whose BIOS is to be
149 c. pointer cpuRegs - pointer to a emulator/vm86-mode private
153 e. pointer private - pointer to a os specific data structure.
154 f. struct _int10Mem* - pointer to a structure to hold the memory
156 g. int num - number of the int to be called.
157 h. int ax..es,flags - CPU register values to pass to int-call.
159 The Init function should initialize a-f. To initialize the emulator
167 If the platform has a PC like system BIOS it may be copied to or
168 mapped into memory locations SYS_BIOS to SYS_SIZE-1 of the real mode
173 may be called to set up a rudimentary system BIOS sufficient to be
174 used to boot video BIOSes. base_addr specifies the virtual address
175 corresponding to SYS_BIOS in the real mode environment. If a PC-like
176 int vector and BIOS data area is available it should be copied to 0 to
181 void reset_int_vect(xf86Int10InfoPtr pInt); To initialize the
188 In this case the video BIOS has to be warm-booted always. If the
190 mapped (or copied) directly to the correct address in the real mode
195 should be called to copy the BIOS image from PCI ROM. 'address'
196 specifies the address this image should be copied to. Sufficient space
197 to hold an entire BIOS image should be allocated prior to calling
199 bytes if it was able to successfully copy the image and 0
200 otherwise. To create a well defined point to exit the softbooter
207 to be warm-booted this should be done before leaving xf86InitInt10()
208 by setting num in the xf86Int10InfoRec to 0xe6 and calling
213 function should be wrapped by calls to void LockLegacyVGA(screen,
215 The struct vga is used to hold the state of the legacy VGA access
217 return a pointer to the xf86Int10InfoRec allocated.
221 In case a platform specific mapping has to be performed to map the
223 location prior to executing the x86 real mode code a function
227 has to be provided. It will be called by a helper function whenever
230 virtual memory will have to be remapped to address 0 of the virtual
235 To free all memory allocated for video BIOS calls of a specific entity
240 should be provided. If the entity to be freed was mapped by
241 MapCurrentInt10() this mapping needs to be undone also.
248 chunks of memory. In real mode memory space this range needs to occupy
250 this memory. The offset in real mode memory needs to be returned in
255 'num' is equal to the number of pages allocated by a single
264 This function will be called from xf86InitInt10(). It may be used to
270 This function gets called to execute an int call. It may call the
275 to copy the register values to the emulator specific locations and to
277 setup_int() 'Int10Current' holds a pointer to the current
284 and if this function returns TRUE it should call whatever necessary to
285 continue execution until a 'hlt' instruction is encountered. To copy
286 the resulting register values back to the xf86Int10InfoRec structure
292 Helper functions are provided to aid the implementation of a vm86
297 This function handles instructions which cause a vm86 call to
302 Unknown instructions and 'hlt' cause vm86_GP_fault() to return
306 might have to be modified or even rewritten for other OS. So your
309 Functions to dump memory, code, xf86 CPU register values and stack are
310 also provided. Take a look at helper.c To view a memory range the
318 The PIO register access functions can trap access to PCI config space
321 A header file 'defines.h' is required to define OS/emulator specific
322 ways to access memory and xf86 CPU registers: Defines need to be
326 the real mode memory environment. 'name' will contain a pointer to the
331 Note: Emulators usually are not able to pass this pointer when calling
336 calling xf86ExecX86int10(pInt). Defines to access the emulator
340 XF86_AL,XF86_BL,XF86_CL,XF86_DL to access the lower byte of the