Auto-detect binary in TTS / encoder setting dialog by searching $PATH. Only linux...
[Rockbox.git] / firmware / include / lru.h
blob8c74aa64efeebcb4947147902e3471647817621d
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
9 * Copyright (C) 2003 Tat Tang
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
17 ****************************************************************************/
19 #ifndef LRU_H
20 #define LRU_H
22 /*******************************************************************************
23 * LRU manager
24 ******************************************************************************/
25 struct lru
27 short _head;
28 short _tail;
29 short _size;
30 short _slot_size;
31 void *_base;
34 #define LRU_SLOT_OVERHEAD (2 * sizeof(short))
36 /* Create LRU list with specified size from buf. */
37 void lru_create(struct lru* pl, void *buf, short size, short data_size);
38 /* Touch an entry. Moves handle to back of LRU list */
39 void lru_touch(struct lru* pl, short handle);
40 /* Data */
41 void *lru_data(struct lru* pl, short handle);
42 /* Traverse lru-wise */
43 void lru_traverse(struct lru* pl, void (*callback)(void* data));
45 #endif /* LRU_H */