Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #ifndef _CPULIST_H
  2. #define _CPULIST_H
  3. /* cpulist.h */
  4. /*****************************************************************************/
  5. /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only                     */
  6. /*                                                                           */
  7. /* AS-Port                                                                   */
  8. /*                                                                           */
  9. /* Manages CPU List                                                          */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12.  
  13. typedef void (*tCPUSwitchProc)(
  14. #ifdef __PROTOS__
  15. void
  16. #endif
  17. );
  18.  
  19. typedef void (*tCPUSwitchUserProc)(
  20. #ifdef __PROTOS__
  21. void *pUserData
  22. #endif
  23. );
  24.  
  25. typedef void (*tPrintLineCPUProc)(
  26. #ifdef __PROTOS__
  27. const char *
  28. #endif
  29. );
  30.  
  31. typedef void (*tCPUFreeUserDataProc)(void *pUserData);
  32.  
  33. typedef unsigned CPUVar;
  34. #define CPUNone ((CPUVar)-1)
  35.  
  36. typedef struct sCPUArg
  37. {
  38.   const char *pName;
  39.   const LongInt Min, Max, DefValue;
  40.   LongInt *pValue;
  41. } tCPUArg;
  42.  
  43. typedef struct sCPUDef
  44. {
  45.   struct sCPUDef *Next;
  46.   char *Name;
  47.   CPUVar Number, Orig;
  48.   tCPUSwitchUserProc SwitchProc;
  49.   tCPUFreeUserDataProc FreeProc;
  50.   void *pUserData;
  51.   const tCPUArg *pArgs;
  52. } tCPUDef, *tpCPUDef;
  53.  
  54. typedef void (*tCPUListIterator)(const tCPUDef *pRun, void *pUser);
  55.  
  56. extern CPUVar AddCPUWithArgs(const char *NewName, tCPUSwitchProc Switcher, const tCPUArg *pArgs);
  57. #define AddCPU(NewName, Switcher) AddCPUWithArgs(NewName, Switcher, NULL)
  58. extern CPUVar AddCPUUserWithArgs(const char *NewName, tCPUSwitchUserProc Switcher, void *pUserData, tCPUFreeUserDataProc Freeer, const tCPUArg *pArgs);
  59. #define AddCPUUser(NewName, Switcher, pUserData, Freeer) AddCPUUserWithArgs(NewName, Switcher, pUserData, Freeer, NULL)
  60.  
  61. extern Boolean AddCPUAlias(char *OrigName, char *AliasName);
  62.  
  63. extern const tCPUDef *LookupCPUDefByVar(CPUVar Var);
  64.  
  65. extern const tCPUDef *LookupCPUDefByName(const char *pName);
  66.  
  67. extern void IterateCPUList(tCPUListIterator Iterator, void *pUser);
  68.  
  69. extern void PrintCPUList(tPrintLineCPUProc PrintProc);
  70.  
  71. extern void ClearCPUList(void);
  72.  
  73. extern void cpulist_init(void);
  74.  
  75. #endif /* _CPULIST_H */
  76.