home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / User / h / taskmanage < prev    next >
Encoding:
Text File  |  1995-06-22  |  3.9 KB  |  139 lines

  1. #ifndef taskmanager_H
  2. #define taskmanager_H
  3.  
  4. /* C header file for TaskManager
  5.  * written by DefMod (Jun 20 1995) on Thu Jun 22 12:16:13 1995
  6.  * Jonathan Coxhead, Acorn Computers Ltd
  7.  */
  8.  
  9. #ifndef types_H
  10. #include "types.h"
  11. #endif
  12.  
  13. #ifndef os_H
  14. #include "os.h"
  15. #endif
  16.  
  17. #ifndef wimp_H
  18. #include "wimp.h"
  19. #endif
  20.  
  21. /**********************************
  22.  * SWI names and SWI reason codes *
  23.  **********************************/
  24. #undef  TaskManager_TaskNameFromHandle
  25. #define TaskManager_TaskNameFromHandle          0x42680
  26. #undef  XTaskManager_TaskNameFromHandle
  27. #define XTaskManager_TaskNameFromHandle         0x62680
  28. #undef  TaskManager_EnumerateTasks
  29. #define TaskManager_EnumerateTasks              0x42681
  30. #undef  XTaskManager_EnumerateTasks
  31. #define XTaskManager_EnumerateTasks             0x62681
  32. #undef  TaskManager_Shutdown
  33. #define TaskManager_Shutdown                    0x42682
  34. #undef  XTaskManager_Shutdown
  35. #define XTaskManager_Shutdown                   0x62682
  36.  
  37. /************************************
  38.  * Structure and union declarations *
  39.  ************************************/
  40. typedef struct taskmanager_task                 taskmanager_task;
  41.  
  42. /********************
  43.  * Type definitions *
  44.  ********************/
  45. typedef bits taskmanager_flags;
  46.  
  47. struct taskmanager_task
  48.    {  wimp_t task;
  49.       char *name;
  50.       int slot_size;
  51.       taskmanager_flags flags;
  52.    };
  53.  
  54. typedef bits taskmanager_shutdown_flags;
  55.  
  56. /************************
  57.  * Constant definitions *
  58.  ************************/
  59. #define taskmanager_NAME_LIMIT                  32
  60. #define taskmanager_MODULE_TASK                 ((taskmanager_flags) 0x1u)
  61. #define taskmanager_DRAGGABLE_SLOT              ((taskmanager_flags) 0x2u)
  62. #define taskmanager_SHUTDOWN_EXIT_ONLY          ((taskmanager_shutdown_flags) 0x1u)
  63. #define taskmanager_SHUTDOWN_NO_PRE_QUIT        ((taskmanager_shutdown_flags) 0x2u)
  64. #define taskmanager_SHUTDOWN_PORTABLE_POWER_DOWN ((taskmanager_shutdown_flags) 0x4u)
  65. #define taskmanager_SHUTDOWN_SEND_MESSAGE       ((taskmanager_shutdown_flags) 0x8u)
  66. #define taskmanager_SHUTDOWN_IGNORE_UP_CALLS    ((taskmanager_shutdown_flags) 0x10u)
  67.  
  68. /*************************
  69.  * Function declarations *
  70.  *************************/
  71.  
  72. #ifdef __cplusplus
  73.    extern "C" {
  74. #endif
  75.  
  76. /* ------------------------------------------------------------------------
  77.  * Function:      taskmanager_task_name_from_handle()
  78.  *
  79.  * Description:   Finds the name of a task
  80.  *
  81.  * Input:         task - value of R0 on entry
  82.  *
  83.  * Output:        name - value of R0 on exit (X version only)
  84.  *
  85.  * Returns:       R0 (non-X version only)
  86.  *
  87.  * Other notes:   Calls SWI 0x42680.
  88.  */
  89.  
  90. extern os_error *xtaskmanager_task_name_from_handle (wimp_t task,
  91.       char **name);
  92. __swi (0x42680) char *taskmanager_task_name_from_handle (wimp_t task);
  93.  
  94. /* ------------------------------------------------------------------------
  95.  * Function:      taskmanager_enumerate_tasks()
  96.  *
  97.  * Description:   Enumerates all the currently active tasks
  98.  *
  99.  * Input:         context - value of R0 on entry
  100.  *                task - value of R1 on entry
  101.  *                size - value of R2 on entry
  102.  *
  103.  * Output:        context_out - value of R0 on exit (X version only)
  104.  *                end - value of R1 on exit
  105.  *
  106.  * Returns:       R0 (non-X version only)
  107.  *
  108.  * Other notes:   Calls SWI 0x42681.
  109.  */
  110.  
  111. extern os_error *xtaskmanager_enumerate_tasks (int context,
  112.       taskmanager_task *task,
  113.       int size,
  114.       int *context_out,
  115.       char **end);
  116. extern int taskmanager_enumerate_tasks (int context,
  117.       taskmanager_task *task,
  118.       int size,
  119.       char **end);
  120.  
  121. /* ------------------------------------------------------------------------
  122.  * Function:      taskmanager_shutdown()
  123.  *
  124.  * Description:   Initiates a desktop shutdown
  125.  *
  126.  * Input:         flags - value of R0 on entry
  127.  *
  128.  * Other notes:   Calls SWI 0x42682.
  129.  */
  130.  
  131. extern os_error *xtaskmanager_shutdown (taskmanager_shutdown_flags flags);
  132. __swi (0x42682) void taskmanager_shutdown (taskmanager_shutdown_flags flags);
  133.  
  134. #ifdef __cplusplus
  135.    }
  136. #endif
  137.  
  138. #endif
  139.