home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lxapi32.zip / Include / Linux / sched.h < prev    next >
C/C++ Source or Header  |  2002-04-26  |  3KB  |  96 lines

  1. /* $Id: sched.h,v 1.2 2002/04/26 23:09:15 smilcke Exp $ */
  2.  
  3. #ifndef _LINUX_SCHED_H
  4. #define _LINUX_SCHED_H
  5.  
  6. #include <asm/param.h>    /* for HZ */
  7.  
  8. #define TASK_RUNNING        0
  9. #define TASK_INTERRUPTIBLE    1
  10. #define TASK_UNINTERRUPTIBLE    2
  11. #define TASK_ZOMBIE        4
  12. #define TASK_STOPPED        8
  13. #define TASK_SWAPPING        16
  14. #define TASK_EXCLUSIVE        32
  15.  
  16. struct task_struct {
  17. /* these are hardcoded - don't touch */
  18.     volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped */
  19.     unsigned long flags;    /* per process flags, defined below */
  20.     int sigpending;
  21. /* open file information */
  22.     struct files_struct *files;
  23.         volatile long need_resched;
  24. };
  25.  
  26. #ifdef TARGET_OS2
  27. struct lxrm_resource;
  28. #endif
  29. #include <asm\current.h>
  30. #include <linux\wait.h>
  31.  
  32. #if (defined(TARGET_OS2) && !defined(NOOS2LXAPI))
  33. extern void (*add_wait_queue)(wait_queue_head_t *q, wait_queue_t * wait);
  34. extern void (*add_wait_queue_exclusive)(wait_queue_head_t *q);
  35. extern void (*remove_wait_queue)(wait_queue_head_t *q, wait_queue_t * wait);
  36.  
  37. extern void (*__wake_up)(wait_queue_head_t *q, unsigned int mode);
  38. extern void (*sleep_on)(wait_queue_head_t *q);
  39. extern long (*sleep_on_timeout)(wait_queue_head_t *q,signed long timeout);
  40. extern void (*interruptible_sleep_on)(wait_queue_head_t *q);
  41. extern long (*interruptible_sleep_on_timeout)(wait_queue_head_t *q,signed long timeout);
  42. extern void (*wake_up_process)(struct task_struct * tsk);
  43. #else
  44. void add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait);
  45. void add_wait_queue_exclusive(wait_queue_head_t *q);
  46. void remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait);
  47.  
  48. extern void __wake_up(wait_queue_head_t *q, unsigned int mode);
  49. extern void sleep_on(wait_queue_head_t *q);
  50. extern long sleep_on_timeout(wait_queue_head_t *q,signed long timeout);
  51. extern void interruptible_sleep_on(wait_queue_head_t *q);
  52. extern long interruptible_sleep_on_timeout(wait_queue_head_t *q,signed long timeout);
  53. extern void wake_up_process(struct task_struct * tsk);
  54. #endif
  55.  
  56. #define wake_up(x)            __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
  57. #define wake_up_interruptible(x)    __wake_up((x),TASK_INTERRUPTIBLE)
  58.  
  59. #if (defined(TARGET_OS2) && !defined(NOOS2LXAPI))
  60. extern signed long (*schedule_timeout)(signed long timeout);
  61. extern void (*schedule)(void);
  62. #else
  63. signed long schedule_timeout(signed long timeout);
  64. void schedule(void);
  65. #endif
  66.  
  67. #if (defined(TARGET_OS2) && !defined(NOOS2LXAPI))
  68. extern int (*request_irq)(unsigned int,
  69.                void (*handler)(int, void *, struct pt_regs *),
  70.                unsigned long, const char *, void *
  71.              ,struct lxrm_resource* rm_resource);
  72. extern void (*free_irq)(unsigned int, void *
  73.                         ,struct lxrm_resource* rm_resource);
  74. extern void (*eoi_irq)(unsigned int);
  75. #else
  76. extern int request_irq(unsigned int,
  77.                void (*handler)(int, void *, struct pt_regs *),
  78.                unsigned long, const char *, void *
  79.              ,struct lxrm_resource* rm_resource);
  80. extern void free_irq(unsigned int, void *
  81.                      ,struct lxrm_resource* rm_resource);
  82. extern void eoi_irq(unsigned int);
  83. #endif
  84.  
  85. #if (defined(TARGET_OS2) && !defined(NOOS2LXAPI))
  86. extern unsigned long volatile *__jiffies;
  87. #define jiffies (*__jiffies)
  88. #else
  89. extern unsigned long volatile jiffies;
  90. #endif
  91.  
  92. #define set_current_state(state_value)        \
  93.     set_mb(current->state, (state_value))
  94.  
  95. #endif
  96.