#include <mach/mach_types.defs>
#include <mach_debug/mach_debug_types.defs>
+type kobject_description_t = c_string[*:512];
+
/*
* Returns the set of port and port set names
* to which the target task has access, along with
* Only valid for port sets. Returns a list of
* the members.
*/
-
-routine mach_port_get_set_status(
- task : ipc_space_inspect_t;
+routine
+#ifdef KERNEL_SERVER
+mach_port_get_set_status_from_user(
+ port : mach_port_t;
+#else
+mach_port_get_set_status(
+ task : ipc_space_read_t;
+#endif
name : mach_port_name_t;
out members : mach_port_name_array_t);
/*
* Returns information about a port.
*/
-
-routine mach_port_get_attributes(
- task : ipc_space_inspect_t;
+routine
+#ifdef KERNEL_SERVER
+mach_port_get_attributes_from_user(
+ port : mach_port_t;
+#else
+mach_port_get_attributes(
+ task : ipc_space_read_t;
+#endif
name : mach_port_name_t;
flavor : mach_port_flavor_t;
out port_info_out : mach_port_info_t, CountInOut);
* This call is only valid on MACH_IPC_DEBUG kernels.
* Otherwise, KERN_FAILURE is returned.
*/
-routine mach_port_space_info(
- task : ipc_space_inspect_t;
+routine
+#ifdef KERNEL_SERVER
+mach_port_space_info_from_user(
+ port : mach_port_t;
+#else
+mach_port_space_info(
+ space : ipc_space_read_t;
+#endif
out space_info : ipc_info_space_t;
out table_info : ipc_info_name_array_t;
out tree_info : ipc_info_tree_name_array_t);
* This interface is DEPRECATED in favor of the new
* mach_port_kernel_object64() call (see below).
*/
-routine mach_port_kernel_object(
- task : ipc_space_inspect_t;
+routine
+#ifdef KERNEL_SERVER
+mach_port_kernel_object_from_user(
+ port : mach_port_t;
+#else
+mach_port_kernel_object(
+ task : ipc_space_read_t;
+#endif
name : mach_port_name_t;
out object_type : unsigned;
out object_addr : unsigned);
* Only valid for receive rights.
* Gets the context pointer for the port.
*/
-
-routine mach_port_get_context(
- task : ipc_space_inspect_t;
+routine
+#ifdef KERNEL_SERVER
+mach_port_get_context_from_user(
+ port : mach_port_t;
+#else
+mach_port_get_context(
+ task : ipc_space_read_t;
+#endif
name : mach_port_name_t;
#ifdef LIBSYSCALL_INTERFACE
out context : mach_port_context_t
* This call is only valid on MACH_IPC_DEBUG kernels.
* Otherwise, KERN_FAILURE is returned.
*/
-routine mach_port_kobject(
- task : ipc_space_inspect_t;
+routine
+#ifdef KERNEL_SERVER
+mach_port_kobject_from_user(
+ port : mach_port_t;
+#else
+mach_port_kobject(
+ task : ipc_space_read_t;
+#endif
name : mach_port_name_t;
out object_type : natural_t;
out object_addr : mach_vm_address_t);
new_guard : uint64_t);
#endif
+/*
+ * Return the type and address of the kernel object
+ * that the given send/receive right represents.
+ * This call is only valid on MACH_IPC_DEBUG kernels.
+ * Otherwise, KERN_FAILURE is returned.
+ */
+routine
+#ifdef KERNEL_SERVER
+mach_port_kobject_description_from_user(
+ port : mach_port_t;
+#else
+mach_port_kobject_description(
+ task : ipc_space_read_t;
+#endif
+ name : mach_port_name_t;
+ out object_type : natural_t;
+ out object_addr : mach_vm_address_t;
+ out description : kobject_description_t);
+
/* vim: set ft=c : */