diff options
author | etobi <git@e-tobi.net> | 2013-09-03 09:48:45 +0200 |
---|---|---|
committer | etobi <git@e-tobi.net> | 2013-09-03 09:48:45 +0200 |
commit | 9fe4d4ea9c054e539ab679ed2e9c076c35beb69d (patch) | |
tree | affff927f15c8ae6c77890cc9564855efe2e51db /util/alevt/cache.h | |
parent | 9a5228e0f2b898367b7943d294be58caf6ce8bb3 (diff) | |
download | linux-dvb-apps-f2eab897879af84e80fd837bb71b6fa6f87a7508.tar.gz |
Imported Upstream version 1.1.1+rev1355upstream/1.1.1+rev1355
Diffstat (limited to 'util/alevt/cache.h')
-rw-r--r-- | util/alevt/cache.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/util/alevt/cache.h b/util/alevt/cache.h new file mode 100644 index 0000000..934ef9a --- /dev/null +++ b/util/alevt/cache.h @@ -0,0 +1,41 @@ +#ifndef CACHE_H +#define CACHE_H + +#include "vt.h" +#include "misc.h" +#include "dllist.h" + +#define HASH_SIZE 113 + + +struct cache +{ + struct dl_head hash[HASH_SIZE]; + int erc; // error reduction circuit on + int npages; + u16 hi_subno[0x9ff + 1]; // 0:pg not in cache, 1-3f80:highest subno + 1 + struct cache_ops *op; +}; + + +struct cache_page +{ + struct dl_node node[1]; + struct vt_page page[1]; +}; + + +struct cache_ops +{ + void (*close)(struct cache *ca); + struct vt_page *(*get)(struct cache *ca, int pgno, int subno); + struct vt_page *(*put)(struct cache *ca, struct vt_page *vtp); + void (*reset)(struct cache *ca); + struct vt_page *(*foreach_pg)(struct cache *ca, int pgno, int subno, int dir, + int (*func)(), void *data); + int (*mode)(struct cache *ca, int mode, int arg); +}; + +struct cache *cache_open(void); +#define CACHE_MODE_ERC 1 +#endif |