[PATCH:xfs 7/7] Remove unused server cache functionality
Alan Coopersmith
alan.coopersmith at oracle.com
Sat Jan 19 23:03:55 PST 2013
We initialized the cache & reset the cache, but never put anything in it.
(Unlike the FontPatternCache provided by libXfont.)
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
Makefile.am | 3 -
difs/cache.c | 382 ----------------------------------------------------
difs/dispatch.c | 2 -
difs/main.c | 7 -
doc/xfs-design.xml | 137 -------------------
include/cache.h | 71 ----------
include/cachestr.h | 74 ----------
7 files changed, 676 deletions(-)
delete mode 100644 difs/cache.c
delete mode 100644 include/cache.h
delete mode 100644 include/cachestr.h
diff --git a/Makefile.am b/Makefile.am
index 490b52a..d07ce8a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -36,7 +36,6 @@ LDADD = $(XFS_LIBS)
xfs_SOURCES = \
difs/atom.c \
- difs/cache.c \
difs/charinfo.c \
difs/difsutils.c \
difs/dispatch.c \
@@ -68,8 +67,6 @@ xfs_SOURCES = \
include/assert.h \
include/auth.h \
include/authstr.h \
- include/cache.h \
- include/cachestr.h \
include/client.h \
include/clientstr.h \
include/closestr.h \
diff --git a/difs/cache.c b/difs/cache.c
deleted file mode 100644
index 06fca6c..0000000
--- a/difs/cache.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- * Copyright 1990, 1991 Network Computing Devices;
- * Portions Copyright 1987 by Digital Equipment Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of Network Computing Devices,
- * or Digital not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Network Computing Devices, or Digital
- * make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * NETWORK COMPUTING DEVICES, AND DIGITAL DISCLAIM ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES, OR DIGITAL BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#include "config.h"
-
-#include "cachestr.h"
-#include "misc.h"
-
-#define INITBUCKETS 64
-#define INITHASHSIZE 6
-#define MAXHASHSIZE 11
-
-
-#define ENTRYOFFSET 22
-#define CACHE_ENTRY_MASK 0x3FFFFF
-#define CACHE_ENTRY_BITS(id) ((id) & 0x1fc00000)
-#define CACHE_ID(id) ((int)(CACHE_ENTRY_BITS(id) >> ENTRYOFFSET))
-
-#define NullCacheEntry ((CacheEntryPtr) 0)
-
-#define MAX_NUM_CACHES 32
-/* XXX make this dynamic? */
-static CachePtr caches[MAX_NUM_CACHES];
-static int num_caches = 1;
-
-/*-
- * Notes on cache implementation
- *
- * This is basically the X11 resource code, with some modifications
- * to handle aging.
- *
- * Its currently optimized for lookup & store. Flushing old stuff
- * is a lot slower than it should probably be, but there's tradeoffs
- * in tuning.
- */
-
-Cache
-CacheInit(unsigned long maxsize)
-{
- Cache id = (Cache) num_caches;
- CachePtr cache;
-
- cache = (CachePtr) fsalloc(sizeof(CacheRec));
- if (!cache)
- return (Cache) 0;
- cache->entries = (CacheEntryPtr *)
- fsalloc(INITBUCKETS * sizeof(CacheEntryPtr));
- bzero((char *) cache->entries, (INITBUCKETS * sizeof(CacheEntryPtr)));
- if (!cache->entries) {
- fsfree(cache);
- return (Cache) 0;
- }
- caches[id] = cache;
- cache->elements = 0;
- cache->buckets = INITBUCKETS;
- cache->hashsize = INITHASHSIZE;
- cache->maxsize = maxsize;
- cache->cursize = 0;
- cache->nextid = id << ENTRYOFFSET;
- cache->id = id;
- num_caches++;
- return id;
-}
-
-static int
-hash(CacheID cid)
-{
- CachePtr cache = caches[CACHE_ID(cid)];
-
- switch (cache->hashsize) {
-#ifdef DEBUG /* only need this if INITHASHSIZE < 6 */
- case 2:
- return ((int) (0x03 & (cid ^ (cid >> 2) ^ (cid >> 8))));
- case 3:
- return ((int) (0x07 & (cid ^ (cid >> 3) ^ (cid >> 9))));
- case 4:
- return ((int) (0x0F & (cid ^ (cid >> 4) ^ (cid >> 10))));
- case 5:
- return ((int) (0x01F & (cid ^ (cid >> 5) ^ (cid >> 11))));
-#endif
- case 6:
- return ((int) (0x03F & (cid ^ (cid >> 6) ^ (cid >> 12))));
- case 7:
- return ((int) (0x07F & (cid ^ (cid >> 7) ^ (cid >> 13))));
- case 8:
- return ((int) (0x0FF & (cid ^ (cid >> 8) ^ (cid >> 16))));
- case 9:
- return ((int) (0x1FF & (cid ^ (cid >> 9))));
- case 10:
- return ((int) (0x3FF & (cid ^ (cid >> 10))));
- case 11:
- return ((int) (0x7FF & (cid ^ (cid >> 11))));
- }
- return -1;
-}
-
-static void
-rebuild_cache(CachePtr cache)
-{
- int j;
- CacheEntryPtr cp,
- next,
- **tails,
- *entries,
- **tptr,
- *cptr;
-
- assert(cache);
- j = 2 * cache->buckets;
- tails = (CacheEntryPtr **) ALLOCATE_LOCAL(j * sizeof(CacheEntryPtr *));
- if (!tails)
- return;
- entries = (CacheEntryPtr *) fsalloc(j * sizeof(CacheEntryPtr));
- if (!entries) {
- DEALLOCATE_LOCAL(tails);
- return;
- }
- for (cptr = entries, tptr = tails; --j >= 0; cptr++, tptr++) {
- *cptr = NullCacheEntry;
- *tptr = cptr;
- }
- cache->hashsize++;
- for (j = cache->buckets, cptr = cache->entries; --j >= 0; cptr++) {
- for (cp = *cptr; cp; cp = next) {
- next = cp->next;
- cp->next = NullCacheEntry;
- tptr = &tails[hash(cp->id)];
- **tptr = cp;
- *tptr = &cp->next;
- }
- }
- DEALLOCATE_LOCAL(tails);
- cache->buckets *= 2;
- fsfree(cache->entries);
- cache->entries = entries;
-}
-
-/*
- * throws out all existing entries
- */
-void
-CacheReset(void)
-{
- CacheEntryPtr cp;
- CachePtr cache;
- int i,
- j;
-
- for (j = 0; j < num_caches; j++) {
- cache = caches[j];
- if (!cache)
- continue;
- for (i = 0; i < cache->buckets; i++) {
- for (cp = cache->entries[i]; cp; cp = cp->next) {
- cache->elements--;
- cache->cursize -= cp->size;
- (*cp->free_func) (cp->id, cp->data, CacheWasReset);
- fsfree(cp);
- }
- cache->entries[i] = (CacheEntryPtr) 0;
- }
- assert(cache->cursize == 0);
- }
-}
-
-static void
-flush_cache(CachePtr cache, unsigned long needed)
-{
-/* XXX -- try to set oldprev properly inside search loop */
- CacheEntryPtr cp,
- oldest,
- *oldprev;
- int oldbucket = -1,
- i;
-
- while ((cache->cursize + needed) > cache->maxsize) {
- oldest = (CacheEntryPtr) 0;
- /* find oldest */
- for (i = 0; i < cache->buckets; i++) {
- cp = cache->entries[i];
- if (!cp)
- continue;
- if (!oldest) {
- oldbucket = i;
- oldest = cp;
- }
- while (cp) {
- if (cp->timestamp < oldest->timestamp) {
- oldest = cp;
- oldbucket = i;
- }
- cp = cp->next;
- }
- }
- /* fixup list */
- oldprev = &cache->entries[oldbucket];
- cp = *oldprev;
- for (; (cp = *oldprev) != NULL; oldprev = &cp->next) {
- if (cp == oldest) {
- *oldprev = oldest->next;
- break;
- }
- }
- /* clobber it */
- cache->elements--;
- cache->cursize -= oldest->size;
- (*oldest->free_func) (oldest->id, oldest->data, CacheEntryOld);
- fsfree(oldest);
- }
-}
-
-void
-CacheResize(Cache cid, unsigned newsize)
-{
- CachePtr cache = caches[cid];
-
- if (!cache)
- return;
-
- if (newsize < cache->maxsize) {
- /* have to toss some stuff */
- flush_cache(cache, cache->maxsize - newsize);
- }
- cache->maxsize = newsize;
-}
-
-CacheID
-CacheStoreMemory(
- Cache cid,
- pointer data,
- unsigned long size,
- CacheFree free_func)
-{
- CacheID id;
- CacheEntryPtr cp,
- *head;
- CachePtr cache = caches[cid];
-
- if (size > cache->maxsize) /* beyond cache limits */
- return (CacheID) 0;
-
- if ((cache->elements >= 4 * cache->buckets) &&
- (cache->hashsize < MAXHASHSIZE)) {
- rebuild_cache(cache);
- }
- id = cache->nextid++;
-
- if ((cache->cursize + size) > cache->maxsize) {
- flush_cache(cache, size);
- }
- head = &cache->entries[hash(id)];
- cp = (CacheEntryPtr) fsalloc(sizeof(CacheEntryRec));
- if (!cp) {
- return (CacheID) 0;
- }
- cp->next = *head;
- cp->id = id;
- cp->timestamp = GetTimeInMillis();
- cp->free_func = free_func;
- cp->size = size;
- cp->data = data;
- cache->cursize += size;
- cache->elements++;
- *head = cp;
-
- return id;
-}
-
-pointer
-CacheFetchMemory(
- CacheID cid,
- Bool update)
-{
- CachePtr cache = caches[CACHE_ID(cid)];
- CacheEntryPtr cp,
- *head;
-
- head = &cache->entries[hash(cid)];
- for (cp = *head; cp; cp = cp->next) {
- if (cp->id == cid) {
- if (update) {
- cp->timestamp = GetTimeInMillis();
- if (cp != *head) { /* put it in the front */
- cp->next = *head;
- *head = cp;
- }
- }
- return cp->data;
- }
- }
- return (pointer) 0;
-}
-
-void
-CacheFreeMemory(
- CacheID cid,
- Bool notify)
-{
- CachePtr cache = caches[CACHE_ID(cid)];
- CacheEntryPtr cp,
- *prev,
- *head;
- int *elptr;
- int elements;
- Bool found = FALSE;
-
- head = &cache->entries[hash(cid)];
- elptr = &cache->elements;
- prev = head;
- while ((cp = *prev) != NullCacheEntry) {
- if (cp->id == cid) {
- *prev = cp->next;
- elements = --*elptr;
- if (notify) {
- (*(cp->free_func)) (cid, cp->data, CacheEntryFreed);
- }
- cache->cursize -= cp->size;
- fsfree(cp);
- if (*elptr != elements)
- prev = head;
- found = TRUE;
- } else {
- prev = &cp->next;
- }
- }
- if (!found)
- FatalError("freeing cache entry %ld which isn't there\n", cid);
-}
-
-/* ARGSUSED */
-void
-CacheSimpleFree(
- CacheID cid,
- pointer data,
- int reason)
-{
- fsfree(data);
-}
diff --git a/difs/dispatch.c b/difs/dispatch.c
index f22ec36..6f8b2b6 100644
--- a/difs/dispatch.c
+++ b/difs/dispatch.c
@@ -65,7 +65,6 @@ in this Software without prior written authorization from The Open Group.
#include <X11/fonts/fontstruct.h>
#include "site.h"
#include "fsevents.h"
-#include "cache.h"
#include "globals.h"
#include "difs.h"
#include "access.h"
@@ -168,7 +167,6 @@ Dispatch(void)
/* flush all the caches */
if (dispatchException & DE_FLUSH) {
NoticeF("flushing all caches\n");
- CacheReset();
dispatchException &= ~DE_FLUSH;
}
/* reset */
diff --git a/difs/main.c b/difs/main.c
index 9e8e957..a202a53 100644
--- a/difs/main.c
+++ b/difs/main.c
@@ -58,7 +58,6 @@ in this Software without prior written authorization from The Open Group.
#include "misc.h"
#include "globals.h"
#include "servermd.h"
-#include "cache.h"
#include "site.h"
#include "dispatch.h"
#include "extentst.h"
@@ -67,10 +66,6 @@ in this Software without prior written authorization from The Open Group.
char *ConnectionInfo;
int ConnInfoLen;
-Cache serverCache;
-
-#define SERVER_CACHE_SIZE 10000 /* for random server cacheables */
-
static Bool create_connection_block(void);
char *configfilename;
@@ -109,7 +104,6 @@ main(int argc, char *argv[])
OsInit();
if (serverGeneration == 1) {
/* do first time init */
- serverCache = CacheInit(SERVER_CACHE_SIZE);
CreateSockets(OldListenCount, OldListen);
InitProcVectors();
clients = (ClientPtr *) fsalloc(MAXCLIENTS * sizeof(ClientPtr));
@@ -152,7 +146,6 @@ main(int argc, char *argv[])
#endif
/* clean up per-cycle stuff */
- CacheReset();
CloseDownExtensions();
if ((dispatchException & DE_TERMINATE) || drone_server)
break;
diff --git a/doc/xfs-design.xml b/doc/xfs-design.xml
index b6352dd..7606d88 100644
--- a/doc/xfs-design.xml
+++ b/doc/xfs-design.xml
@@ -1043,143 +1043,6 @@ fsResolution *GetClientResolutions(int *<parameter>num_resolutions</parameter>)
Returns the list of resolutions that the current client has set.</para>
</sect2>
<sect2>
- <title>Caching functions</title>
-
- <para>These are functions that simplify caching of renderer
- data. These are for use by renderers that take significant
- resources to produce data. The data must be re-creatable -- the
- cache is not meant for general storage. The data may also be
- moved by the cache, so it should only be accessed by
- CacheID.</para>
-
- <para><synopsis>
-typedef void (*CacheFree)();
-typedef unsigned long CacheID;
-typedef unsigned long Cache;
-
-Cache CacheInit(int <parameter>renderer_id</parameter>)
- </synopsis>
-
-
- Initializes a cache object for the renderer. the returned
- ID should be passed to <function>CacheStoreMemory()</function>
- when adding an object to the cache.</para>
-
- <para><synopsis>
-void CacheStats(Cache <parameter>cid</parameter>, unsigned long *<parameter>num_entries</parameter>,
- unsigned long *<parameter>max_storage</parameter>, unsigned long *<parameter>current_storage</parameter>,
- unsigned long *<parameter>num_lookups</parameter>, unsigned long *<parameter>hit_ratio</parameter>)
- </synopsis>
-
-
- Returns statistics on the cache. Useful if the renderer
- wants some hints about whether to place an object in the cache.
- If the cache is nearly full, and the priority low, it may want
- to take different action.</para>
-
- <para><synopsis>
-CacheID CacheStoreMemory(Cache <parameter>cacheid</parameter>, pointer <parameter>data</parameter>, unsigned long <parameter>size</parameter>,
- CacheFree <parameter>free_func</parameter>)
- </synopsis>
-
-
- The renderer hands the cache some chunk of contiguous
- memory, which the cache timestamps and stores. When it needs to
- remove them, it calls the
- <parameter class="function">free_func</parameter>, which must
- take responsibility for properly freeing the data.
- <parameter class="function">size</parameter> is primarily a hint
- to the cache, so that cache limits can be properly calculated. A
- return value of zero means the store failed, probably because
- the given size was over the cache limit. If the given data is
- too large for the current cache, it will attempt to free old
- data to make room. The returned ID is a unique value that refers
- both to the object and the cache in which it was placed.</para>
-
- <para><synopsis>
-pointer CacheFetchMemory(CacheID <parameter>cid</parameter>, Bool <parameter>update</parameter>)
- </synopsis>
-
-
- Returns the memory attached to the id. If
- <parameter class="function">update</parameter> is set, the
- timestamp is updated. (Some accesses may wish to be 'silent',
- which allows some control over the freeing scheduling.) If the
- cid is invalid, <constant>NULL</constant> is returned.</para>
-
- <para><synopsis>
-pointer CacheFetchMemory(CacheID <parameter>cid</parameter>, Bool <parameter>update</parameter>)
- </synopsis>
-
-
- Allows the cache to flush the data. If
- <emphasis remap='I'>notify</emphasis> is set, the CacheFree
- function passed in when the data was cached will also be
- called.</para>
-
- <para><synopsis>
-void MemoryFreed(CacheID <parameter>cid</parameter>, pointer <parameter>data</parameter>, int <parameter>reason</parameter>)
- </synopsis>
-
-
- Callback function from the cache to the renderer notifying
- it that its data has been flushed. This function then has the
- responsibility to free that data.
- <parameter class="function">reason</parameter> may be one of:
-
- <synopsis>
-CacheReset /* all cache freed because of server reset */
-CacheEntryFreed /* explicit request via free_memory() */
-CacheEntryOld /* cache hit limit, and memory being freed because its old */
- </synopsis>
-
-
- and is supplied so that the renderer may choose how to
- deal with the free request. (It will probably be ignored by
- most, but some may want to keep the memory around by bypassing
- the cache, or re-inserting it.) Note that the cache will
- consider the data gone, so it <emphasis remap='B'>must</emphasis>
- be re-inserted to keep it alive.</para>
-
- <para><synopsis>
-void CacheSimpleFree(CacheID <parameter>cid</parameter>, pointer <parameter>data</parameter>, int <parameter>reason</parameter>)
- </synopsis>
-
-
- Just calls <function>free()</function> on the data. Simple
- CacheFree defined here to prevent it being redefined in each
- renderer.</para>
-
- <para>Typical usage of the cache is for the renderer to store a
- CacheID rather than a pointer to the cacheable data. The
- renderer is responsible for both allocating and freeing the
- data, as well as keeping track of just what it is. When the
- renderer needs the cached data, it will request it from the
- cache. If it fails, it must rebuild it.</para>
-
- <para>A possible configuration parameter is the size of the
- cache. when the cache is filled (with the calculation based on
- the given size), it sweeps the cache and frees old data. The
- amount of memory actually freed may wish to be tunable: some
- systems may want to keep the cache as full as possible, others
- may want to free some percentage such that sweeps occur less
- frequently.</para>
-
- <para>Cache statistics may want to be available for
- administrators. They could be dumped to a file when a signal is
- received. (SNMP seems like a perfect match, but apparently the
- technology isn't there yet.)</para>
-
- <para>Cached data could also be compressed, if the memory/CPU
- tradeoffs make it worthwhile.</para>
-
- <note><title>ISSUE: Is a time-based freeing schedule sufficient?</title>
- <para>Should priorities or size also be taken into account? [ No.
- Anything that the renderer thinks should have a higher priority
- should probably not be placed into the cache. ]</para></note>
-
- </sect2>
- <sect2>
<title>Byte swapping</title>
<para>Functions for swapping a 4-byte quantity, a 2-byte
diff --git a/include/cache.h b/include/cache.h
deleted file mode 100644
index 254dd49..0000000
--- a/include/cache.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- * Copyright 1990, 1991 Network Computing Devices;
- * Portions Copyright 1987 by Digital Equipment Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of Network Computing Devices,
- * or Digital not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Network Computing Devices, or Digital
- * make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * NETWORK COMPUTING DEVICES, AND DIGITAL DISCLAIM ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES, DIGITAL OR MIT BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#ifndef _CACHE_H_
-#define _CACHE_H_
-
-#include "misc.h"
-
-#define CacheWasReset 1
-#define CacheEntryFreed 2
-#define CacheEntryOld 3
-
-typedef unsigned long CacheID;
-typedef unsigned long Cache;
-typedef void (*CacheFree) (CacheID cid, pointer, int flag);
-
-typedef struct _cache *CachePtr;
-
-extern Cache CacheInit(unsigned long maxsize);
-extern CacheID CacheStoreMemory(Cache cid, pointer data, unsigned long size, CacheFree free_func);
-extern void CacheFreeMemory(CacheID cid, Bool notify);
-extern pointer CacheFetchMemory(CacheID cid, Bool update);
-extern void CacheReset(void);
-extern void CacheResize(Cache cid, unsigned newsize);
-extern void CacheSimpleFree(CacheID cid, pointer data, int reason);
-
-#endif /* _CACHE_H_ */
diff --git a/include/cachestr.h b/include/cachestr.h
deleted file mode 100644
index 3360e5c..0000000
--- a/include/cachestr.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- * Copyright 1990, 1991 Network Computing Devices;
- * Portions Copyright 1987 by Digital Equipment Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of Network Computing Devices,
- * or Digital not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Network Computing Devices, or Digital
- * make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * NETWORK COMPUTING DEVICES, AND DIGITAL DISCLAIM ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES, OR DIGITAL BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#ifndef _CACHSTR_H_
-#define _CACHSTR_H_
-#include "cache.h"
-
-typedef struct _cache_entry {
- pointer data;
- unsigned long timestamp;
- CacheID id;
- unsigned long size;
- CacheFree free_func;
- struct _cache_entry *next;
-} CacheEntryRec, *CacheEntryPtr;
-
-typedef struct _cache {
- Cache id;
- CacheEntryPtr *entries;
- int elements;
- int buckets;
- int hashsize;
- CacheID nextid;
- unsigned long maxsize;
- unsigned long cursize;
-} CacheRec;
-
-#define NullCacheEntryPtr ((CacheEntryPtr) 0)
-
-#endif /* _CACHSTR_H_ */
--
1.7.9.2
More information about the xorg-devel
mailing list