change log for rtems (2010-05-21)
rtems-vc at rtems.org
rtems-vc at rtems.org
Fri May 21 19:10:55 UTC 2010
*joel*:
2010-05-21 Vinu Rajashekhar <vinutheraj at gmail.com>
* rtems/score/registers.h: Remove structs with bit-fields. Add a mask
for cr3 page directory.
M 1.99 cpukit/score/cpu/i386/ChangeLog
M 1.7 cpukit/score/cpu/i386/rtems/score/registers.h
diff -u rtems/cpukit/score/cpu/i386/ChangeLog:1.98 rtems/cpukit/score/cpu/i386/ChangeLog:1.99
--- rtems/cpukit/score/cpu/i386/ChangeLog:1.98 Sat Mar 27 10:01:47 2010
+++ rtems/cpukit/score/cpu/i386/ChangeLog Fri May 21 14:02:05 2010
@@ -1,3 +1,8 @@
+2010-05-21 Vinu Rajashekhar <vinutheraj at gmail.com>
+
+ * rtems/score/registers.h: Remove structs with bit-fields. Add a mask
+ for cr3 page directory.
+
2010-03-27 Joel Sherrill <joel.sherrill at oarcorp.com>
* cpu.c, cpu_asm.S, sse_test.c: Add include of config.h
diff -u rtems/cpukit/score/cpu/i386/rtems/score/registers.h:1.6 rtems/cpukit/score/cpu/i386/rtems/score/registers.h:1.7
--- rtems/cpukit/score/cpu/i386/rtems/score/registers.h:1.6 Fri Jan 28 09:56:09 2005
+++ rtems/cpukit/score/cpu/i386/rtems/score/registers.h Fri May 21 14:02:05 2010
@@ -67,120 +67,6 @@
#define CR3_PAGE_CACHE_DISABLE 0x10
#define CR3_PAGE_WRITE_THROUGH 0x8
-
-
-#ifndef ASM
-
-/*
- * definition of eflags registers has a bit field structure
- */
-typedef struct {
- /*
- * fist byte : bits 0->7
- */
- unsigned int carry : 1;
- unsigned int : 1;
- unsigned int parity : 1;
- unsigned int : 1;
-
- unsigned int auxiliary_carry : 1;
- unsigned int : 1;
- unsigned int zero : 1; /* result is zero */
- unsigned int sign : 1; /* result is less than zero */
- /*
- * Second byte : bits 7->15
- */
- unsigned int trap : 1;
- unsigned int intr_enable : 1; /* set => intr on */
- unsigned int direction : 1; /* set => autodecrement */
- unsigned int overflow : 1;
-
- unsigned int IO_privilege : 2;
- unsigned int nested_task : 1;
- unsigned int : 1;
- /*
- * Third byte : bits 15->23
- */
- unsigned int resume : 1;
- unsigned int virtual_mode : 1;
- unsigned int aligment_check : 1;
- unsigned int virtual_intr : 1;
-
- unsigned int virtual_intr_pending : 1;
- unsigned int id : 1;
- unsigned int : 2;
-
- /*
- * fourth byte : bits 24->31 : UNUSED
- */
- unsigned int : 8;
-}eflags_bits;
-
-typedef union {
- eflags_bits eflags;
- unsigned int i;
-}eflags;
-/*
- * definition of eflags registers has a bit field structure
- */
-typedef struct {
- /*
- * fist byte : bits 0->7
- */
- unsigned int protection_enable : 1;
- unsigned int monitor_coproc : 1;
- unsigned int coproc_soft_emul : 1;
- unsigned int floating_instr_except : 1;
-
- unsigned int extension_type : 1;
- unsigned int numeric_error : 1;
- unsigned int : 2;
- /*
- * second byte 8->15 : UNUSED
- */
- unsigned int : 8;
- /*
- * third byte 16->23
- */
- unsigned int write_protect : 1;
- unsigned int : 1;
- unsigned int aligment_mask : 1;
- unsigned int : 1;
-
- unsigned int : 4;
- /*
- * fourth byte 24->31
- */
- unsigned int : 4;
-
- unsigned int : 1;
- unsigned int no_write_through : 1;
- unsigned int page_level_cache_disable : 1;
- unsigned int paging : 1;
-}cr0_bits;
-
-typedef union {
- cr0_bits cr0;
- unsigned int i;
-}cr0;
-
-/*
- * definition of cr3 registers has a bit field structure
- */
-typedef struct {
-
- unsigned int : 3;
- unsigned int page_write_transparent : 1;
- unsigned int page_cache_disable : 1;
- unsigned int : 7;
- unsigned int page_directory_base :20;
-}cr3_bits;
-
-typedef union {
- cr3_bits cr3;
- unsigned int i;
-}cr3;
-
-#endif
+#define CR3_PAGE_DIRECTORY_MASK 0xFFFFF000
#endif
*joel*:
2010-05-21 Vinu Rajashekhar <vinutheraj at gmail.com>
* cache.c, page.c: Use masks and shift operations instead of
bit-fields.
M 1.64 c/src/lib/libcpu/i386/ChangeLog
M 1.7 c/src/lib/libcpu/i386/cache.c
M 1.17 c/src/lib/libcpu/i386/page.c
diff -u rtems/c/src/lib/libcpu/i386/ChangeLog:1.63 rtems/c/src/lib/libcpu/i386/ChangeLog:1.64
--- rtems/c/src/lib/libcpu/i386/ChangeLog:1.63 Thu Apr 15 09:09:57 2010
+++ rtems/c/src/lib/libcpu/i386/ChangeLog Fri May 21 14:03:21 2010
@@ -1,3 +1,8 @@
+2010-05-21 Vinu Rajashekhar <vinutheraj at gmail.com>
+
+ * cache.c, page.c: Use masks and shift operations instead of
+ bit-fields.
+
2010-04-15 Joel Sherrill <joel.sherrill at oarcorp.com>
* cpuModel.S, cpuModel.h, displayCpu.c: Update to include more reserved
diff -u rtems/c/src/lib/libcpu/i386/cache.c:1.6 rtems/c/src/lib/libcpu/i386/cache.c:1.7
--- rtems/c/src/lib/libcpu/i386/cache.c:1.6 Sat Aug 16 00:44:00 2008
+++ rtems/c/src/lib/libcpu/i386/cache.c Fri May 21 14:03:21 2010
@@ -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_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();*/
}
diff -u rtems/c/src/lib/libcpu/i386/page.c:1.16 rtems/c/src/lib/libcpu/i386/page.c:1.17
--- rtems/c/src/lib/libcpu/i386/page.c:1.16 Fri Dec 11 14:52:41 2009
+++ rtems/c/src/lib/libcpu/i386/page.c Fri May 21 14:03:21 2010
@@ -43,12 +43,12 @@
*/
void _CPU_disable_paging(void)
{
- cr0 regCr0;
+ unsigned int regCr0;
rtems_cache_flush_entire_data();
- regCr0.i = i386_get_cr0();
- regCr0.cr0.paging = 0;
- i386_set_cr0( regCr0.i );
+ regCr0 = i386_get_cr0();
+ regCr0 &= ~(CR0_PAGING);
+ i386_set_cr0( regCr0 );
}
/*
@@ -56,11 +56,11 @@
*/
void _CPU_enable_paging(void)
{
- cr0 regCr0;
+ unsigned int regCr0;
- regCr0.i = i386_get_cr0();
- regCr0.cr0.paging = 1;
- i386_set_cr0( regCr0.i );
+ regCr0 = i386_get_cr0();
+ regCr0 |= CR0_PAGING;
+ i386_set_cr0( regCr0 );
rtems_cache_flush_entire_data();
}
@@ -74,7 +74,7 @@
int nbPages;
int nbInitPages;
char *Tables;
- cr3 regCr3;
+ unsigned int regCr3;
page_table *pageTable;
unsigned int physPage;
int nbTables=0;
@@ -135,11 +135,12 @@
nbInitPages++;
}
- regCr3.cr3.page_write_transparent = 0;
- regCr3.cr3.page_cache_disable = 0;
- regCr3.cr3.page_directory_base = (unsigned int)pageDirectory >> 12;
+ regCr3 &= ~(CR3_PAGE_WRITE_THROUGH);
+ regCr3 &= ~(CR3_PAGE_CACHE_DISABLE);
+ /*regCr3.cr3.page_directory_base = (unsigned int)pageDirectory >> 12;*/
+ regCr3 = (unsigned int)pageDirectory & CR3_PAGE_DIRECTORY_MASK;
- i386_set_cr3( regCr3.i );
+ i386_set_cr3( regCr3 );
_CPU_enable_cache();
_CPU_enable_paging();
@@ -152,10 +153,10 @@
*/
int _CPU_is_cache_enabled(void)
{
- cr0 regCr0;
+ unsigned int regCr0;
- regCr0.i = i386_get_cr0();
- return( ~(regCr0.cr0.page_level_cache_disable) );
+ regCr0 = i386_get_cr0();
+ return( ~(regCr0 & CR0_PAGE_LEVEL_CACHE_DISABLE) );
}
/*
@@ -163,10 +164,10 @@
*/
int _CPU_is_paging_enabled(void)
{
- cr0 regCr0;
+ unsigned int regCr0;
- regCr0.i = i386_get_cr0();
- return(regCr0.cr0.paging);
+ regCr0 = i386_get_cr0();
+ return(regCr0 & CR0_PAGING);
}
@@ -454,21 +455,21 @@
int _CPU_display_memory_attribute(void)
{
unsigned int dirCount, pageCount;
- cr0 regCr0;
+ unsigned int regCr0;
page_table *localPageTable;
unsigned int prevCache;
unsigned int prevPresent;
unsigned int maxPage;
unsigned char pagingWasEnabled;
- regCr0.i = i386_get_cr0();
+ regCr0 = i386_get_cr0();
printk("\n\n********* MEMORY CACHE CONFIGURATION *****\n");
- printk("CR0 -> paging : %s\n",(regCr0.cr0.paging ? "ENABLE ":"DISABLE"));
- printk(" page-level cache : %s\n\n",(regCr0.cr0.page_level_cache_disable ? "DISABLE":"ENABLE"));
+ printk("CR0 -> paging : %s\n",((regCr0 & CR0_PAGING) ? "ENABLE ":"DISABLE"));
+ printk(" page-level cache : %s\n\n",((regCr0 & CR0_PAGE_LEVEL_CACHE_DISABLE) ? "DISABLE":"ENABLE"));
- if (regCr0.cr0.paging == 0)
+ if ((regCr0 & CR0_PAGING) == 0)
return 0;
prevPresent = 0;
--
Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100521/ce8e5448/attachment.html>
More information about the vc
mailing list