Index: trunk/lib/generic_cache_tsar/include/generic_cache.h
===================================================================
--- trunk/lib/generic_cache_tsar/include/generic_cache.h	(revision 337)
+++ trunk/lib/generic_cache_tsar/include/generic_cache.h	(revision 365)
@@ -750,4 +750,29 @@
     }
 
+    //////////////////////////////////////////////////////////////////
+    // This function write the directory part of a slot
+    // identified by the way & set, when using the ZOMBI state.
+    // Does not affect the tag
+    //////////////////////////////////////////////////////////////////
+    inline void write_dir( size_t 	way, 
+                           size_t 	set,
+                           int      state)
+    {
+        assert( ( (state == CACHE_SLOT_STATE_VALID) or 
+                  (state == CACHE_SLOT_STATE_ZOMBI) or
+                  (state == CACHE_SLOT_STATE_EMPTY) ) and
+        "illegal slot state argument in Generic Cache write_dir()");
+
+        assert( (way < m_ways) and
+        "too large way index argument in Generic Cache write_dir()");
+
+        assert( (set < m_sets) and
+        "too large set index argument in Generic Cache write_dir()");
+
+        cache_state(way, set) = state;
+
+        if ( state == CACHE_SLOT_STATE_VALID ) cache_set_lru(way, set);
+    }
+
     ///////////////////////////////////////////////////////////////////
     // This function writes a full cache line in one single cycle.
