/*** * Hardware_Tools.c * Interface du module "boite à outils" pour les modules de simulation du matériel. * */ #ifndef HARDWARE_TOOLS #define HARDWARE_TOOLS /** * initialisation des outils de simulation matériel * (appelée par initHardware dans Hardware.c uniquement... */ extern int init_Tools(); /** * Taille de la mémoire partagée disponible */ #define SHAREMEMSIZE 512 /** * Constantes de trace de Buggage */ #define DEBUG_SETUP 0x0001 #define DEBUG_IT 0x0010 #define DEBUG_HWREG 0x0100 #define DEBUG_WARNING 0x1000 /** * variable associée au drapeau de debug actifs */ extern int Debug; /** * */ typedef void (*funcHandler)(); typedef void (*funcSigHandler)(int param); /** * Fonction de trace de debuggage */ void trace(int type, const char *msg, ...) ; /** * Fonctions d'aide à la gestion des interruptions */ int isIRQHiden(int IRQLevel); void setIRQMask(int IRQLevel); void waitIRQ(int IRQLevel); /** * ajouter une fonction à appeler toutes les "rate" micro-seconde */ int addTickHandler(int next, int rate, funcHandler callback); /** * retirer une fonction de la liste toutes les "rate" micro-seconde */ int removeTicksHandler(funcHandler callback); /** * ajouter une fonction à appeler sur SIGUSR1 + key */ int addSigHandler(int key, funcSigHandler callback) ; /** * retirer une fonction de la liste toutes les "rate" micro-seconde */ int removeSigHandler(int key) ; /** * Générer un signal du type sigHandler (vers le processus père) */ int sendSignal(int key) ; /** * Allouer une zone de mémoire partagée de taille Size */ void *getSharedMem(int size) ; #endif