Root/
Source at commit 2054 created 11 years 10 months ago. By zef, Fixed source indent. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. The rights granted to you under the License␊ |
10 | * may not be used to create, or enable the creation or redistribution of,␊ |
11 | * unlawful or unlicensed copies of an Apple operating system, or to␊ |
12 | * circumvent, violate, or enable the circumvention or violation of, any␊ |
13 | * terms of an Apple operating system software license agreement.␊ |
14 | * ␊ |
15 | * Please obtain a copy of the License at␊ |
16 | * http://www.opensource.apple.com/apsl/ and read it before using this file.␊ |
17 | * ␊ |
18 | * The Original Code and all software distributed under the License are␊ |
19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
23 | * Please see the License for the specific language governing rights and␊ |
24 | * limitations under the License.␊ |
25 | * ␊ |
26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@␊ |
27 | */␊ |
28 | /*␊ |
29 | * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ␊ |
30 | *␊ |
31 | * HISTORY␊ |
32 | *␊ |
33 | */␊ |
34 | ␊ |
35 | #ifndef␉__OS_OSMESSAGENOTIFICATION_H␊ |
36 | #define __OS_OSMESSAGENOTIFICATION_H␊ |
37 | ␊ |
38 | #ifdef __cplusplus␊ |
39 | extern "C" {␊ |
40 | #endif␊ |
41 | ␊ |
42 | #include <mach/mach_types.h>␊ |
43 | #include <device/device_types.h>␊ |
44 | #include <IOKit/IOReturn.h>␊ |
45 | ␊ |
46 | enum {␊ |
47 | kFirstIOKitNotificationType ␉␉= 100,␊ |
48 | kIOServicePublishNotificationType ␉␉= 100,␊ |
49 | kIOServiceMatchedNotificationType␉␉= 101,␊ |
50 | kIOServiceTerminatedNotificationType␉= 102,␊ |
51 | kIOAsyncCompletionNotificationType␉␉= 150,␊ |
52 | kIOServiceMessageNotificationType␉␉= 160,␊ |
53 | kLastIOKitNotificationType ␉␉␉= 199␊ |
54 | };␊ |
55 | ␊ |
56 | enum {␊ |
57 | kOSNotificationMessageID␉␉= 53,␊ |
58 | kOSAsyncCompleteMessageID␉␉= 57,␊ |
59 | kMaxAsyncArgs␉␉␉= 16␊ |
60 | };␊ |
61 | ␊ |
62 | enum {␊ |
63 | kIOAsyncReservedIndex ␉= 0,␊ |
64 | kIOAsyncReservedCount,␊ |
65 | ␊ |
66 | kIOAsyncCalloutFuncIndex ␉= kIOAsyncReservedCount,␊ |
67 | kIOAsyncCalloutRefconIndex,␊ |
68 | kIOAsyncCalloutCount,␊ |
69 | ␊ |
70 | kIOMatchingCalloutFuncIndex␉= kIOAsyncReservedCount,␊ |
71 | kIOMatchingCalloutRefconIndex,␊ |
72 | kIOMatchingCalloutCount,␊ |
73 | ␊ |
74 | kIOInterestCalloutFuncIndex␉= kIOAsyncReservedCount,␊ |
75 | kIOInterestCalloutRefconIndex,␊ |
76 | kIOInterestCalloutServiceIndex,␊ |
77 | kIOInterestCalloutCount␊ |
78 | };␊ |
79 | ␊ |
80 | ␊ |
81 | ␊ |
82 | // --------------␊ |
83 | enum {␊ |
84 | kOSAsyncRef64Count␉= 8,␊ |
85 | kOSAsyncRef64Size ␉= kOSAsyncRef64Count * ((int) sizeof(io_user_reference_t))␊ |
86 | };␊ |
87 | typedef io_user_reference_t OSAsyncReference64[kOSAsyncRef64Count];␊ |
88 | ␊ |
89 | struct OSNotificationHeader64 {␊ |
90 | mach_msg_size_t␉size;␉␉/* content size */␊ |
91 | natural_t␉␉type;␊ |
92 | OSAsyncReference64␉reference;␊ |
93 | ␊ |
94 | #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)␊ |
95 | unsigned char␉content[];␊ |
96 | #else␊ |
97 | unsigned char␉content[0];␊ |
98 | #endif␊ |
99 | };␊ |
100 | ␊ |
101 | #pragma pack(4)␊ |
102 | struct IOServiceInterestContent64 {␊ |
103 | natural_t␉␉messageType;␊ |
104 | io_user_reference_t␉messageArgument[1];␊ |
105 | };␊ |
106 | #pragma pack()␊ |
107 | // --------------␊ |
108 | ␊ |
109 | #if !KERNEL_USER32␊ |
110 | ␊ |
111 | enum {␊ |
112 | kOSAsyncRefCount␉= 8,␊ |
113 | kOSAsyncRefSize ␉= 32␊ |
114 | };␊ |
115 | typedef natural_t OSAsyncReference[kOSAsyncRefCount];␊ |
116 | ␊ |
117 | struct OSNotificationHeader {␊ |
118 | mach_msg_size_t␉size;␉␉/* content size */␊ |
119 | natural_t␉␉type;␊ |
120 | OSAsyncReference␉reference;␊ |
121 | ␊ |
122 | #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)␊ |
123 | unsigned char␉content[];␊ |
124 | #else␊ |
125 | unsigned char␉content[0];␊ |
126 | #endif␊ |
127 | };␊ |
128 | ␊ |
129 | #pragma pack(4)␊ |
130 | struct IOServiceInterestContent {␊ |
131 | natural_t␉messageType;␊ |
132 | void *␉messageArgument[1];␊ |
133 | };␊ |
134 | #pragma pack()␊ |
135 | ␊ |
136 | #endif /* KERNEL_USER32 */␊ |
137 | ␊ |
138 | struct IOAsyncCompletionContent {␊ |
139 | IOReturn result;␊ |
140 | #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)␊ |
141 | void * args[] __attribute__ ((packed));␊ |
142 | #else␊ |
143 | void * args[0] __attribute__ ((packed));␊ |
144 | #endif␊ |
145 | };␊ |
146 | ␊ |
147 | #ifndef __cplusplus␊ |
148 | typedef struct OSNotificationHeader OSNotificationHeader;␊ |
149 | typedef struct IOServiceInterestContent IOServiceInterestContent;␊ |
150 | typedef struct IOAsyncCompletionContent IOAsyncCompletionContent;␊ |
151 | #endif␊ |
152 | ␊ |
153 | #ifdef __cplusplus␊ |
154 | }␊ |
155 | #endif␊ |
156 | ␊ |
157 | #endif /* __OS_OSMESSAGENOTIFICATION_H */␊ |
158 | ␊ |
159 |