|
|
1.1 ! root 1: #ifndef __KERNEL_PSTATE_H__ ! 2: #define __KERNEL_PSTATE_H__ ! 3: ! 4: /* ! 5: * Process state-code type. This is available at user level to the "ps" ! 6: * command, but has no portable user-level use even there as the kernel ! 7: * also supplies "ps" with the printable character-code that corresponds to ! 8: * the state. ! 9: */ ! 10: ! 11: typedef enum { ! 12: PS_RUN, /* Running */ ! 13: PS_READY, /* Ready to run */ ! 14: PS_MUTEX, /* Blocked on a basic or read/write lock */ ! 15: PS_SLEEP, /* Sleeping, signals do not interrupt */ ! 16: PS_WAIT, /* Sleeping, interruptible */ ! 17: PS_STOPPED, /* Stopped */ ! 18: PS_ZOMBIE, /* Exiting */ ! 19: PS_MAXSTATE ! 20: } procstate_t; ! 21: ! 22: ! 23: /* ! 24: * The only drawback of using enumerations is that we cannot perform useful ! 25: * tests on them at compile-time with #if. Here we set a feature-test to ! 26: * say whether or not the state code fits in a word (or long-word) mask so ! 27: * that tests for state sets can have some important source-level optimization ! 28: * performed. Your mileage may vary, but it may be faster to use shift-and- ! 29: * mask techniques than a cascade of equality tests; this feature-test says ! 30: * whether these techniques /can/ be applied to this data type. ! 31: */ ! 32: ! 33: #define _PSTATE_CAN_MASK 1 ! 34: ! 35: #endif /* ! defined (__KERNEL_PSTATE_H__) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.