Editing HV Syscall Reference
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 785: | Line 785: | ||
=== lv1_detect_pending_interrupts === | === lv1_detect_pending_interrupts === | ||
Not used in current kernel | Not used in current kernel. | ||
===== Abstract Call ===== | ===== Abstract Call ===== | ||
Line 800: | Line 800: | ||
|- | |- | ||
|R3 | |R3 | ||
|p1 - unknown | |p1 - unknown | ||
|- | |- | ||
! colspan="2" | Outputs | ! colspan="2" | Outputs | ||
Line 808: | Line 808: | ||
|- | |- | ||
|R3 | |R3 | ||
|Status | |Status? | ||
|- | |- | ||
|R4 | |R4 | ||
|v1 - | |v1 - Unknown | ||
|- | |- | ||
|R5 | |R5 | ||
|v2 - | |v2 - Unknown | ||
|- | |- | ||
|R6 | |R6 | ||
|v3 - | |v3 - Unknown | ||
|- | |- | ||
|R7 | |R7 | ||
|v4 - | |v4 - Unknown | ||
|- | |- | ||
|} | |} | ||
Notes: | Notes: | ||
Info taken from kboot-10\dl\linux-2.6.16\include\asm-powerpc\lv1calltab.h (kboot-20061208) | Info taken from kboot-10\dl\linux-2.6.16\include\asm-powerpc\lv1calltab.h (kboot-20061208) | ||
---- | ---- | ||
=== lv1_end_of_interrupt === | === lv1_end_of_interrupt === | ||
Line 2,174: | Line 2,173: | ||
=== lv1_set_dabr === | === lv1_set_dabr === | ||
Sets dabr ( | Sets dabr (data address breakpoint register) - an exception should be thrown upon access to data at this address (range?) | ||
===== Kernel Call ===== | ===== Kernel Call ===== | ||
result = lv1_set_dabr( /*IN*/ dabr, | result = lv1_set_dabr( /*IN*/ dabr, DABR_KERNEL | DABR_USER); | ||
===== Parameters ===== | ===== Parameters ===== | ||
Line 2,189: | Line 2,188: | ||
|- | |- | ||
|R3 | |R3 | ||
|dabr - | |dabr - data address | ||
|- | |- | ||
|R4 | |R4 | ||
| | |(DABR_KERNEL | DABR_USER) - see notes | ||
|- | |- | ||
! colspan="2" | Outputs | ! colspan="2" | Outputs | ||
Line 2,205: | Line 2,204: | ||
Notes: | Notes: | ||
DABR_KERNEL and DABR_USER are defined in “setup.c” as follows | |||
enum {DABR_USER = 1, DABR_KERNEL = 2,}; | enum {DABR_USER = 1, DABR_KERNEL = 2,}; | ||
---- | ---- | ||
=== lv1_set_vmx_graphics_mode === | === lv1_set_vmx_graphics_mode === | ||
Line 2,413: | Line 2,396: | ||
|- | |- | ||
|R3 | |R3 | ||
|status | |status | ||
|- | |- | ||
|R4 | |R4 | ||
Line 2,420: | Line 2,403: | ||
|} | |} | ||
---- | ---- | ||
=== lv1_write_remote_file === | === lv1_write_remote_file === | ||
Line 4,157: | Line 4,139: | ||
===== Kernel Call ===== | ===== Kernel Call ===== | ||
result = lv1_allocate_device_dma_region( /*IN*/ bus_id, dev_id, io_size, io_pagesize, flag, | result = lv1_allocate_device_dma_region( /*IN*/ bus_id, dev_id, io_size, io_pagesize, flag, &dma_region ); | ||
===== Parameters ===== | ===== Parameters ===== | ||
Line 4,197: | Line 4,179: | ||
Notes: When the device is little endian, the mode must be set to 8 bit for 8 bit DMA to work as expected, otherwise the bytes will be read/written in the wrong order. OTOH, this mode requires that 16 and 32-bit values are byte-swapped by the CPU since they will appear as little endian in memory. | Notes: When the device is little endian, the mode must be set to 8 bit for 8 bit DMA to work as expected, otherwise the bytes will be read/written in the wrong order. OTOH, this mode requires that 16 and 32-bit values are byte-swapped by the CPU since they will appear as little endian in memory. | ||
---- | ---- | ||
=== lv1_free_device_dma_region === | === lv1_free_device_dma_region === | ||
Line 6,132: | Line 6,113: | ||
|R4 | |R4 | ||
|IRQ Bitmap of all pending IRQ’s. This is a bitset. | |IRQ Bitmap of all pending IRQ’s. This is a bitset. | ||
0 | A bit = 0 means IRQ not pending, 1 = IRQ pending. | ||
Bit GPU_INTR_STATUS_VSYNC_0 = 0. IRQ for vsync on head A. Unused by Kernel | |||
Bit GPU_INTR_STATUS_VSYNC_1 = 1. IRQ for vsync on head B. Used by Kernel | |||
Bit GPU_INTR_STATUS_FLIP_0 = 2. IRQ for flip on head A. Unused by Kernel | |||
Bit GPU_INTR_STATUS_FLIP_1 = 3. IRQ for flip on head B. Unused by Kernel | |||
Bit GPU_INTR_STATUS_QUEUE_0 = 4. IRQ for queue on head A. Unused by Kernel | |||
Bit GPU_INTR_STATUS_QUEUE_1 = 5. IRQ for queue on head B. Unused by Kernel | |||
|- | |- | ||
|} | |} | ||
---- | ---- | ||
=== lv1_gpu_attribute === | === lv1_gpu_attribute === | ||