diff options
| author | kx <kx@radix-linux.su> | 2024-12-28 23:52:17 +0300 |
|---|---|---|
| committer | kx <kx@radix-linux.su> | 2024-12-28 23:52:17 +0300 |
| commit | 31f615c1e5a07398bdd68c74b81fbe64c45f169a (patch) | |
| tree | defdf4c12680475957e2bafaa2d0d320d7eb2dc0 | |
| parent | 07a2b4814e54523bee9733655d165dfa70643565 (diff) | |
| download | libmpu-31f615c1e5a07398bdd68c74b81fbe64c45f169a.tar.xz | |
Getting values of real and integer flags
| -rw-r--r-- | include/libmpu.h.in | 26 | ||||
| -rw-r--r-- | mpu/mpu-context.c | 18 |
2 files changed, 44 insertions, 0 deletions
diff --git a/include/libmpu.h.in b/include/libmpu.h.in index f8f9dee..9a8d59f 100644 --- a/include/libmpu.h.in +++ b/include/libmpu.h.in @@ -140,6 +140,17 @@ extern void __mpu_clear_rflags( void ); extern void __mpu_clear_mflags( void ); +/* Get integer flags: */ +extern int __mpu_gta( void ); +extern int __mpu_gtc( void ); +extern int __mpu_gto( void ); +extern int __mpu_gts( void ); +extern int __mpu_gtp( void ); +extern int __mpu_gtz( void ); +extern int __mpu_gtr( void ); +extern int __mpu_gtv( void ); + +/* Set integer flags: */ extern void __mpu_sta( void ); extern void __mpu_stc( void ); extern void __mpu_sto( void ); @@ -149,6 +160,7 @@ extern void __mpu_stz( void ); extern void __mpu_str( void ); extern void __mpu_stv( void ); +/* Clear integer flags: */ extern void __mpu_cla( void ); extern void __mpu_clc( void ); extern void __mpu_clo( void ); @@ -158,6 +170,7 @@ extern void __mpu_clz( void ); extern void __mpu_clr( void ); extern void __mpu_clv( void ); +/* Complement integer flags: */ extern void __mpu_cma( void ); extern void __mpu_cmc( void ); extern void __mpu_cmo( void ); @@ -168,6 +181,17 @@ extern void __mpu_cmr( void ); extern void __mpu_cmv( void ); +/* Get real flags: */ +extern int __mpu_gtdom( void ); +extern int __mpu_gtsng( void ); +extern int __mpu_gtovf( void ); +extern int __mpu_gtudf( void ); +extern int __mpu_gttls( void ); +extern int __mpu_gtpls( void ); +extern int __mpu_gtind( void ); +extern int __mpu_gtinx( void ); + +/* Set real flags: */ extern void __mpu_stdom( void ); extern void __mpu_stsng( void ); extern void __mpu_stovf( void ); @@ -177,6 +201,7 @@ extern void __mpu_stpls( void ); extern void __mpu_stind( void ); extern void __mpu_stinx( void ); +/* Clear real flags: */ extern void __mpu_cldom( void ); extern void __mpu_clsng( void ); extern void __mpu_clovf( void ); @@ -186,6 +211,7 @@ extern void __mpu_clpls( void ); extern void __mpu_clind( void ); extern void __mpu_clinx( void ); +/* Complement real flags: */ extern void __mpu_cmdom( void ); extern void __mpu_cmsng( void ); extern void __mpu_cmovf( void ); diff --git a/mpu/mpu-context.c b/mpu/mpu-context.c index 7b0308e..8e89eb8 100644 --- a/mpu/mpu-context.c +++ b/mpu/mpu-context.c @@ -116,6 +116,15 @@ void __mpu_clear_rflags( void ) { __CLEAR_RFLAGS; } void __mpu_clear_mflags( void ) { __CLEAR_MFLAGS; } +int __mpu_gta( void ) { return __MFLAG( AF ); } +int __mpu_gtc( void ) { return __MFLAG( CF ); } +int __mpu_gto( void ) { return __MFLAG( OF ); } +int __mpu_gts( void ) { return __MFLAG( SF ); } +int __mpu_gtp( void ) { return __MFLAG( PF ); } +int __mpu_gtz( void ) { return __MFLAG( ZF ); } +int __mpu_gtr( void ) { return __MFLAG( RF ); } +int __mpu_gtv( void ) { return __MFLAG( VF ); } + void __mpu_sta( void ) { __STA; } void __mpu_stc( void ) { __STC; } void __mpu_sto( void ) { __STO; } @@ -144,6 +153,15 @@ void __mpu_cmr( void ) { __CMR; } void __mpu_cmv( void ) { __CMV; } +int __mpu_gtdom( void ) { return __MFLAG( DOMF ); } +int __mpu_gtsng( void ) { return __MFLAG( SNGF ); } +int __mpu_gtovf( void ) { return __MFLAG( OVFF ); } +int __mpu_gtudf( void ) { return __MFLAG( UDFF ); } +int __mpu_gttls( void ) { return __MFLAG( TLSF ); } +int __mpu_gtpls( void ) { return __MFLAG( PLSF ); } +int __mpu_gtind( void ) { return __MFLAG( INDF ); } +int __mpu_gtinx( void ) { return __MFLAG( INXF ); } + void __mpu_stdom( void ) { __STDOM; } void __mpu_stsng( void ) { __STSNG; } void __mpu_stovf( void ) { __STOVF; } |
