Son but est simple : offrir un acces rapide aux libraries en les cacheant en memoire. Une utilisation typique dans CF engine v4.00 verra le tot de libraries utilisees d'environ 40 a 50 par frame, ce qui est enorme, et preos est incapable de survivre a une telle demande en libraries dynamiques (entre le code conditionnele qui declenche des evenements, donc un chargement du code d'une librairie et les graphiques / les maps qui seront eux aussi en temps que librairies - Flemme powa). Il me faut dont creer une surcouche permettant un acces rapide aux libraries, ie un cache pour les librairies.
>> void cachelib_init (unsigned long n);
Initialise cachelib : alloue un cache (fixe) avec n entrees et installe le nouvel handler de ROM_THROW.
>> void cachelib_clear ();
Vide le cache et le detruit. Et enleve le HANDLER de ROM_THROW.
>>LIB *cachelib_lock (const char *libname, unsigned short version);
Verouille une entree dans le cache pour qu'elle ne soit pas videe si necessaire (L'ajoute si elle n'est pas deja dans le cache) ou retourne NULL si echec.
>>void cachelib_unlock (LIB *libref, clock_t time);
Deverouille une entree dans le cache pour qu'elle soit videe si necessaire et met a jour le temps de dernier acces du cache.
Ne fait rien si libref n'est pas dans le cache.
Le nouvel handler de ROM_THROW interceptera tout demande a une fonction memoire (HeapAlloc*), verifie qu'elle est satisfaite, et si elle n'est pas satisfaite, vide le cache pour essayer de la satisfaire (Donc reappelle la fonction). Ceci s'integrera parfaitement dans PreOS. L'application quand a elle devra utiliser les ROM_THROW pour les appels memoires pour que la cache soit effectif (ce qui n'est pas genant).
A noter que j'ai pense l'integrer directement dans Preos (ca serait genial

