1 /*
2 * Mach Operating System
3 * Copyright (c) 1991,1990 Carnegie Mellon University
4 * All Rights Reserved.
5 *
6 * Permission to use, copy, modify and distribute this software and its
7 * documentation is hereby granted, provided that both the copyright
8 * notice and this permission notice appear in all copies of the
9 * software, derivative works or modified versions, and any portions
10 * thereof, and that both notices appear in supporting documentation.
11 *
12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 *
16 * Carnegie Mellon requests users of this software to return to
17 *
18 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 * School of Computer Science
20 * Carnegie Mellon University
21 * Pittsburgh PA 15213-3890
22 *
23 * any improvements or extensions that they make and grant Carnegie Mellon
24 * the rights to redistribute these changes.
25 */
26 /*
27 * HISTORY
28 * $Log: ipc_info.h,v $
29 * Revision 2.7 93/01/14 17:49:26 danner
30 * 64bit cleanup.
31 * [92/12/01 af]
32 *
33 * Revision 2.6 92/01/14 16:45:37 rpd
34 * Added IPC_INFO_TYPE_PAGING_NAME.
35 * [91/12/28 rpd]
36 * Added IPC_INFO_TYPE_* definitions for mach_port_kernel_object.
37 * [91/12/14 rpd]
38 *
39 * Revision 2.5 91/05/14 17:03:28 mrt
40 * Correcting copyright
41 *
42 * Revision 2.4 91/02/05 17:37:50 mrt
43 * Changed to new Mach copyright
44 * [91/02/01 17:28:30 mrt]
45 *
46 * Revision 2.3 91/01/08 15:19:05 rpd
47 * Moved ipc_info_bucket_t to mach_debug/hash_info.h.
48 * [91/01/02 rpd]
49 *
50 * Revision 2.2 90/06/02 15:00:28 rpd
51 * Created for new IPC.
52 * [90/03/26 23:45:14 rpd]
53 *
54 */
55 /*
56 * File: mach_debug/ipc_info.h
57 * Author: Rich Draves
58 * Date: March, 1990
59 *
60 * Definitions for the IPC debugging interface.
61 */
62
63 #ifndef _MACH_DEBUG_IPC_INFO_H_
64 #define _MACH_DEBUG_IPC_INFO_H_
65
66 #include <mach/boolean.h>
67 #include <mach/port.h>
68 #include <mach/machine/vm_types.h>
69
70 /*
71 * Remember to update the mig type definitions
72 * in mach_debug_types.defs when adding/removing fields.
73 */
74
75
76 typedef struct ipc_info_space {
77 natural_t iis_genno_mask; /* generation number mask */
78 natural_t iis_table_size; /* size of table */
79 natural_t iis_table_next; /* next possible size of table */
80 natural_t iis_tree_size; /* size of tree */
81 natural_t iis_tree_small; /* # of small entries in tree */
82 natural_t iis_tree_hash; /* # of hashed entries in tree */
83 } ipc_info_space_t;
84
85
86 typedef struct ipc_info_name {
87 mach_port_t iin_name; /* port name, including gen number */
88 /*boolean_t*/integer_t iin_collision; /* collision at this entry? */
89 /*boolean_t*/integer_t iin_compat; /* is this a compat-mode entry? */
90 /*boolean_t*/integer_t iin_marequest; /* extant msg-accepted request? */
91 mach_port_type_t iin_type; /* straight port type */
92 mach_port_urefs_t iin_urefs; /* user-references */
93 vm_offset_t iin_object; /* object pointer */
94 natural_t iin_next; /* marequest/next in free list */
95 natural_t iin_hash; /* hash index */
96 } ipc_info_name_t;
97
98 typedef ipc_info_name_t *ipc_info_name_array_t;
99
100
101 typedef struct ipc_info_tree_name {
102 ipc_info_name_t iitn_name;
103 mach_port_t iitn_lchild; /* name of left child */
104 mach_port_t iitn_rchild; /* name of right child */
105 } ipc_info_tree_name_t;
106
107 typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t;
108
109 /*
110 * Type definitions for mach_port_kernel_object.
111 * By remarkable coincidence, these closely resemble
112 * the IKOT_* definitions in ipc/ipc_kobject.h.
113 */
114
115 #define IPC_INFO_TYPE_NONE 0
116 #define IPC_INFO_TYPE_THREAD 1
117 #define IPC_INFO_TYPE_TASK 2
118 #define IPC_INFO_TYPE_HOST 3
119 #define IPC_INFO_TYPE_HOST_PRIV 4
120 #define IPC_INFO_TYPE_PROCESSOR 5
121 #define IPC_INFO_TYPE_PSET 6
122 #define IPC_INFO_TYPE_PSET_NAME 7
123 #define IPC_INFO_TYPE_PAGER 8
124 #define IPC_INFO_TYPE_PAGING_REQUEST 9
125 #define IPC_INFO_TYPE_DEVICE 10
126 #define IPC_INFO_TYPE_XMM_PAGER 11
127 #define IPC_INFO_TYPE_PAGING_NAME 12
128
129 #endif _MACH_DEBUG_IPC_INFO_H_
Cache object: 33b5b4537137c21e86e28bc3e1726747
|