wineserver: Support debug registers on NetBSD.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46229
Signed-off-by: Frédéric Fauberteau <triaxx@NetBSD.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Frédéric Fauberteau 2018-12-04 12:54:43 +01:00 committed by Alexandre Julliard
parent 3c329e28d9
commit 708a2c991f
1 changed files with 16 additions and 0 deletions

View File

@ -720,6 +720,13 @@ void get_thread_context( struct thread *thread, context_t *context, unsigned int
context->debug.i386_regs.dr3 = DBREG_DRX((&dbregs), 3); context->debug.i386_regs.dr3 = DBREG_DRX((&dbregs), 3);
context->debug.i386_regs.dr6 = DBREG_DRX((&dbregs), 6); context->debug.i386_regs.dr6 = DBREG_DRX((&dbregs), 6);
context->debug.i386_regs.dr7 = DBREG_DRX((&dbregs), 7); context->debug.i386_regs.dr7 = DBREG_DRX((&dbregs), 7);
#elif defined(__NetBSD__)
context->debug.i386_regs.dr0 = dbregs.dr[0];
context->debug.i386_regs.dr1 = dbregs.dr[1];
context->debug.i386_regs.dr2 = dbregs.dr[2];
context->debug.i386_regs.dr3 = dbregs.dr[3];
context->debug.i386_regs.dr6 = dbregs.dr[6];
context->debug.i386_regs.dr7 = dbregs.dr[7];
#else #else
context->debug.i386_regs.dr0 = dbregs.dr0; context->debug.i386_regs.dr0 = dbregs.dr0;
context->debug.i386_regs.dr1 = dbregs.dr1; context->debug.i386_regs.dr1 = dbregs.dr1;
@ -754,6 +761,15 @@ void set_thread_context( struct thread *thread, const context_t *context, unsign
DBREG_DRX((&dbregs), 5) = 0; DBREG_DRX((&dbregs), 5) = 0;
DBREG_DRX((&dbregs), 6) = context->debug.i386_regs.dr6; DBREG_DRX((&dbregs), 6) = context->debug.i386_regs.dr6;
DBREG_DRX((&dbregs), 7) = context->debug.i386_regs.dr7; DBREG_DRX((&dbregs), 7) = context->debug.i386_regs.dr7;
#elif defined(__NetBSD__)
dbregs.dr[0] = context->debug.i386_regs.dr0;
dbregs.dr[1] = context->debug.i386_regs.dr1;
dbregs.dr[2] = context->debug.i386_regs.dr2;
dbregs.dr[3] = context->debug.i386_regs.dr3;
dbregs.dr[4] = 0;
dbregs.dr[5] = 0;
dbregs.dr[6] = context->debug.i386_regs.dr6;
dbregs.dr[7] = context->debug.i386_regs.dr7;
#else #else
dbregs.dr0 = context->debug.i386_regs.dr0; dbregs.dr0 = context->debug.i386_regs.dr0;
dbregs.dr1 = context->debug.i386_regs.dr1; dbregs.dr1 = context->debug.i386_regs.dr1;