aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/service/gsp_gpu.h
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-01-14 03:26:27 -0200
committerGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-01-14 05:20:13 -0200
commit7630b3167210cc7f84c83af54dde23be948e3bc5 (patch)
treeea2d84fc067d6f2ec02f0745bebb93fdf68b6390 /src/core/hle/service/gsp_gpu.h
parent9e084826b8764853e363593ba8793e7b17eaa4f8 (diff)
GSP: Fix appending of interrupts to the shared memory buffer
The code was previously appending the interrupt to after the end of the buffer, instead of at the end.
Diffstat (limited to 'src/core/hle/service/gsp_gpu.h')
-rw-r--r--src/core/hle/service/gsp_gpu.h25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/core/hle/service/gsp_gpu.h b/src/core/hle/service/gsp_gpu.h
index 932b6170..65abb194 100644
--- a/src/core/hle/service/gsp_gpu.h
+++ b/src/core/hle/service/gsp_gpu.h
@@ -45,21 +45,16 @@ enum class CommandId : u32 {
/// GSP thread interrupt relay queue
struct InterruptRelayQueue {
- union {
- u32 hex;
-
- // Index of last interrupt in the queue
- BitField<0,8,u32> index;
-
- // Number of interrupts remaining to be processed by the userland code
- BitField<8,8,u32> number_interrupts;
-
- // Error code - zero on success, otherwise an error has occurred
- BitField<16,8,u32> error_code;
- };
-
- u32 unk0;
- u32 unk1;
+ // Index of last interrupt in the queue
+ u8 index;
+ // Number of interrupts remaining to be processed by the userland code
+ u8 number_interrupts;
+ // Error code - zero on success, otherwise an error has occurred
+ u8 error_code;
+ u8 padding1;
+
+ u32 missed_PDC0;
+ u32 missed_PDC1;
InterruptId slot[0x34]; ///< Interrupt ID slots
};