diff packages/hal/powerpc/arch/current/include/hal_cache.h @ 16:4f2df4ab82c8 ecos-sw-1999-06-18

Merge from eCos master repository on 1999-06-18-15:25:04-BST
author jlarmour
date Fri, 18 Jun 1999 07:59:09 +0000
parents d3fbcdfa1b2f
children e7ba79f6d3a8
line wrap: on
line diff
--- a/packages/hal/powerpc/arch/current/include/hal_cache.h
+++ b/packages/hal/powerpc/arch/current/include/hal_cache.h
@@ -61,9 +61,31 @@ typedef struct {
     cyg_uint8    flags;
 } cyg_memdesc_t;
 
+// each platform HAL must provide one of these to describe how memory
+// should be mapped/cached, ideally weak aliased so that apps can override:
+externC cyg_memdesc_t cyg_hal_mem_map[];
+
 #define CYGARC_MEMDESC_CI       1       // cache inhibit
 #define CYGARC_MEMDESC_GUARDED  2       // guarded
 
+// these macros should ease that task, and ease any future extension of the
+// structure (physical == virtual addresses):
+#define CYGARC_MEMDESC_CACHE( _va_, _sz_ ) \
+        { (_va_), (_va_), (_sz_), 0 }
+
+#define CYGARC_MEMDESC_NOCACHE( _va_, _sz_ ) \
+        { (_va_), (_va_), (_sz_), CYGARC_MEMDESC_CI }
+
+#define CYGARC_MEMDESC_CACHEGUARD( _va_, _sz_ ) \
+        { (_va_), (_va_), (_sz_), CYGARC_MEMDESC_GUARDED }
+
+#define CYGARC_MEMDESC_NOCACHEGUARD( _va_, _sz_ ) \
+        { (_va_), (_va_), (_sz_), CYGARC_MEMDESC_GUARDED|CYGARC_MEMDESC_CI }
+
+#define CYGARC_MEMDESC_TABLE_END      {0, 0, 0, 0}
+#define CYGARC_MEMDESC_TABLE          cyg_memdesc_t cyg_hal_mem_map[]
+#define CYGARC_MEMDESC_EMPTY_TABLE    { CYGARC_MEMDESC_TABLE_END }
+
 //=============================================================================
 // PowerPC simulator