summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/i386/cache.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-05-21 19:03:21 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-05-21 19:03:21 +0000
commit665285f217b3fce3b0b7e69f76972a3475ba063b (patch)
treedee4e1cb3f22676d1a118a812caa4cc6531b3117 /c/src/lib/libcpu/i386/cache.c
parent2010-05-21 Vinu Rajashekhar <vinutheraj@gmail.com> (diff)
downloadrtems-665285f217b3fce3b0b7e69f76972a3475ba063b.tar.bz2
2010-05-21 Vinu Rajashekhar <vinutheraj@gmail.com>
* cache.c, page.c: Use masks and shift operations instead of bit-fields.
Diffstat (limited to 'c/src/lib/libcpu/i386/cache.c')
-rw-r--r--c/src/lib/libcpu/i386/cache.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/c/src/lib/libcpu/i386/cache.c b/c/src/lib/libcpu/i386/cache.c
index 5f764b14bf..a409af78ed 100644
--- a/c/src/lib/libcpu/i386/cache.c
+++ b/c/src/lib/libcpu/i386/cache.c
@@ -9,12 +9,12 @@
#include "cache_.h"
void _CPU_disable_cache(void) {
- cr0 regCr0;
+ unsigned int regCr0;
- regCr0.i = i386_get_cr0();
- regCr0.cr0.page_level_cache_disable = 1;
- regCr0.cr0.no_write_through = 1;
- i386_set_cr0( regCr0.i );
+ regCr0 = i386_get_cr0();
+ regCr0 |= CR0_PAGE_LEVEL_CACHE_DISABLE;
+ regCr0 |= CR0_NO_WRITE_THROUGH;
+ i386_set_cr0( regCr0 );
rtems_cache_flush_entire_data();
}
@@ -23,12 +23,12 @@ void _CPU_disable_cache(void) {
*/
void _CPU_enable_cache(void) {
- cr0 regCr0;
+ unsigned int regCr0;
- regCr0.i = i386_get_cr0();
- regCr0.cr0.page_level_cache_disable = 0;
- regCr0.cr0.no_write_through = 0;
- i386_set_cr0( regCr0.i );
+ regCr0 = i386_get_cr0();
+ regCr0 &= ~(CR0_PAGE_LEVEL_CACHE_DISABLE);
+ regCr0 &= ~(CR0_NO_WRITE_THROUGH);
+ i386_set_cr0( regCr0 );
/*rtems_cache_flush_entire_data();*/
}