|
|
1.1 root 1: #ifndef __KERNEL_DDI_LOCK_H__
2: #define __KERNEL_DDI_LOCK_H__
3:
4: /*
5: * This is an internal header file, not intended for general use.
6: *
7: * This is a registry of value and constants for the lock hierarchy values
8: * recommended for use in internal DDI/DKI basic and read/write locking
9: * operations. Many of these hierarchy values are outside the range that
10: * are permitted to DDI/DKI-compliant drivers, and a special value in the
11: * "lk_flags" member of the "lkinfop" structure passed to LOCK_ALLOC () is
12: * necessary to permit access to this range of hierarchy values.
13: *
14: * We also specify a recommended minimum priority value here which should be
15: * used with the indicated lock whenever a specific value is not indicated.
16: */
17:
18: enum {
19: INTERNAL_LOCK = 1, /* access to reserved hierarchies */
20:
21: /*
22: * For polling, the global lock nests outside the "pollhead" lock
23: * which nests outside the "pollwait" lock.
24: */
25:
26: pollwait_hierarchy = 40,
27: #define pollwait_priority plhi
28:
29: pollhead_hierarchy = 39,
30: #define pollhead_priority plhi
31:
32: poll_global_hierarchy = 38,
33: #define poll_global_priority plhi
34:
35:
36: /*
37: * For the timeout system. The timeout code calls defer_int_cpu ().
38: */
39:
40: timeout_global_hierarchy = 39,
41: #define timeout_global_priority plhi
42:
43:
44: /*
45: * For the defer system.
46: */
47:
48: defer_hierarchy = 40,
49: #define defer_priority plhi
50:
51:
52: /*
53: * Process-related locks.
54: */
55:
56: proc_global_hierarchy = 40,
57: #define proc_global_priority plhi
58:
59:
60: /*
61: * For streams, the stream directory lock nests outside the stream
62: * head lock, which nests outside STREAMS memory allocation. STREAMS
63: * locks are all at "plstr" by definition *except* for the streams
64: * heap locks, which have a priority conditional on various factors.
65: * Both of the streams heap locks call defer... () routines.
66: */
67:
68: stream_heap_hierarchy = 39,
69: stream_head_hierarchy = 38,
70: stream_dir_hierarchy = 37,
71:
72:
73: /*
74: * The STREAMS schedule, bufcall event, qprocsoff (), and trace-
75: * sequence locks are all disjoint.
76: */
77:
78: stream_schedule_hierarchy = 40,
79: stream_event_hierarchy = 40,
80: stream_proc_hierarchy = 40,
81: stream_seq_hierarchy = 40
82:
83: };
84:
85: #endif /* ! defined (__KERNEL_DDI_LOCK_H__) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.