/*
* Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_LICENSE_HEADER_START@
- *
- * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* Please see the License for the specific language governing rights and
* limitations under the License.
*
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
* Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
#endif
#include <mach/mach_types.h>
+#include <device/device_types.h>
#include <IOKit/IOReturn.h>
enum {
kIOServiceTerminatedNotificationType = 102,
kIOAsyncCompletionNotificationType = 150,
kIOServiceMessageNotificationType = 160,
- kLastIOKitNotificationType = 199
+ kLastIOKitNotificationType = 199,
+
+ // reserved bits
+ kIOKitNoticationTypeMask = 0x00000FFF,
+ kIOKitNoticationTypeSizeAdjShift = 30,
+ kIOKitNoticationMsgSizeMask = 3,
};
enum {
kIOInterestCalloutCount
};
+
+
+// --------------
+enum {
+ kOSAsyncRef64Count = 8,
+ kOSAsyncRef64Size = kOSAsyncRef64Count * ((int) sizeof(io_user_reference_t))
+};
+typedef io_user_reference_t OSAsyncReference64[kOSAsyncRef64Count];
+
+struct OSNotificationHeader64 {
+ mach_msg_size_t size; /* content size */
+ natural_t type;
+ OSAsyncReference64 reference;
+
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
+ unsigned char content[];
+#else
+ unsigned char content[0];
+#endif
+};
+
+#pragma pack(4)
+struct IOServiceInterestContent64 {
+ natural_t messageType;
+ io_user_reference_t messageArgument[1];
+};
+#pragma pack()
+// --------------
+
+#if !KERNEL_USER32
+
enum {
kOSAsyncRefCount = 8,
kOSAsyncRefSize = 32
typedef natural_t OSAsyncReference[kOSAsyncRefCount];
struct OSNotificationHeader {
- vm_size_t size; /* content size */
+ mach_msg_size_t size; /* content size */
natural_t type;
OSAsyncReference reference;
+
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
+ unsigned char content[];
+#else
unsigned char content[0];
+#endif
};
+#pragma pack(4)
struct IOServiceInterestContent {
natural_t messageType;
void * messageArgument[1];
};
+#pragma pack()
+
+#endif /* KERNEL_USER32 */
struct IOAsyncCompletionContent {
IOReturn result;
- void * args[0];
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
+ void * args[] __attribute__ ((packed));
+#else
+ void * args[0] __attribute__ ((packed));
+#endif
};
#ifndef __cplusplus