|
|
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.