#ifndef FILESYSTEM_H
#define FILESYSTEM_H

//Un fichier
typedef struct
{
        char nom[32];
        int offset;
        int taille;
} FICHIER;

//La table d'allocation des fichiers
typedef struct
{
        int nbFichiers;
        FICHIER f[];
} TAF;

//Fonctions de recherche des fichiers
extern void InitFS();
extern void *SymFind(const char *symbole, FICHIER **f);

//Données globales
extern TAF *gblTaf;
extern void *gblData;
extern FICHIER *gblCurFile;

//Pour travailler avec FEOF et savoir lorsqu'un fichier est terminé.
#define SET_CURRENT_FILE(f) gblCurFile = f;
#define GET_CURRENT_FILE()        gblCurFile;
#define FEOF(ptr)                        ((void *) (ptr) >= (void *) (gblCurFile->offset + gblCurFile->taille + gblData))
#endif
