summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/pcb.h
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-12-22 19:57:03 +0000
committerjkim <jkim@FreeBSD.org>2010-12-22 19:57:03 +0000
commit940b86ebdccd1f22427e953eccea0f4bc2f5ba06 (patch)
treea4072fdeb9467dee9b67632d7ebb90b7c6c1c161 /sys/amd64/include/pcb.h
parent0826d29a2d8e53cc3f8de837cc3646c464f5cd20 (diff)
downloadFreeBSD-src-940b86ebdccd1f22427e953eccea0f4bc2f5ba06.zip
FreeBSD-src-940b86ebdccd1f22427e953eccea0f4bc2f5ba06.tar.gz
Increase size of pcb_flags to four bytes.
Requested by: bde, jhb
Diffstat (limited to 'sys/amd64/include/pcb.h')
-rw-r--r--sys/amd64/include/pcb.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h
index 2a2c8cd..1af8f6d 100644
--- a/sys/amd64/include/pcb.h
+++ b/sys/amd64/include/pcb.h
@@ -71,7 +71,7 @@ struct pcb {
struct region_descriptor pcb_ldt;
uint16_t pcb_tr;
- u_char pcb_flags;
+ u_int pcb_flags;
#define PCB_FULL_IRET 0x01 /* full iret is required */
#define PCB_DBREGS 0x02 /* process using debug registers */
#define PCB_KERNFPU 0x04 /* kernel uses fpu */
@@ -111,20 +111,20 @@ struct trapframe;
* because traps and interrupts are executed only on instruction boundary.
*/
static __inline void
-set_pcb_flags(struct pcb *pcb, const u_char flags)
+set_pcb_flags(struct pcb *pcb, const u_int flags)
{
- __asm __volatile("orb %b1,%0"
- : "=m" (pcb->pcb_flags) : "iq" (flags), "m" (pcb->pcb_flags)
+ __asm __volatile("orl %1,%0"
+ : "=m" (pcb->pcb_flags) : "ir" (flags), "m" (pcb->pcb_flags)
: "cc");
}
static __inline void
-clear_pcb_flags(struct pcb *pcb, const u_char flags)
+clear_pcb_flags(struct pcb *pcb, const u_int flags)
{
- __asm __volatile("andb %b1,%0"
- : "=m" (pcb->pcb_flags) : "iq" (~flags), "m" (pcb->pcb_flags)
+ __asm __volatile("andl %1,%0"
+ : "=m" (pcb->pcb_flags) : "ir" (~flags), "m" (pcb->pcb_flags)
: "cc");
}
OpenPOWER on IntegriCloud