diff options
-rw-r--r-- | debian/patches/feature-proc-set-task-name-to-pid.patch | 906 | ||||
-rw-r--r-- | debian/patches/series | 2 |
2 files changed, 1 insertions, 907 deletions
diff --git a/debian/patches/feature-proc-set-task-name-to-pid.patch b/debian/patches/feature-proc-set-task-name-to-pid.patch deleted file mode 100644 index 5e6c3628..00000000 --- a/debian/patches/feature-proc-set-task-name-to-pid.patch +++ /dev/null @@ -1,906 +0,0 @@ -diff --git a/exec/Makefile b/exec/Makefile -index 3ef742d..a9ae914 100644 ---- a/exec/Makefile -+++ b/exec/Makefile -@@ -22,7 +22,7 @@ makemode := server - - SRCS = exec.c main.c hashexec.c hostarch.c - OBJS = main.o hostarch.o exec.o hashexec.o \ -- execServer.o exec_startupServer.o exec_experimentalServer.o -+ execServer.o exec_startupServer.o exec_experimentalServer.o gnumachUser.o - - target = exec - #targets = exec exec.static -diff --git a/exec/exec.c b/exec/exec.c -index fad9492..f045247 100644 ---- a/exec/exec.c -+++ b/exec/exec.c -@@ -1151,14 +1151,28 @@ do_exec (file_t file, - } - boot->user_entry = e.entry; /* already adjusted in `load' */ - -- /* Set the start_code and end_code values for this process. -- /hurd/exec is used to start /hurd/proc, so at this point there is -+ /* /hurd/exec is used to start /hurd/proc, so at this point there is - no proc server, so we need to be careful here. */ - if (boot->portarray[INIT_PORT_PROC] != MACH_PORT_NULL) -- e.error = proc_set_code (boot->portarray[INIT_PORT_PROC], -- e.start_code, e.end_code); -- if (e.error) -- goto out; -+ { -+ /* Set the start_code and end_code values for this process. */ -+ e.error = proc_set_code (boot->portarray[INIT_PORT_PROC], -+ e.start_code, e.end_code); -+ if (e.error) -+ goto out; -+ -+ pid_t pid; -+ e.error = proc_task2pid (boot->portarray[INIT_PORT_PROC], -+ newtask, &pid); -+ if (e.error) -+ goto out; -+ -+ char *name; -+ asprintf (&name, "%s(%d)", argv, pid); -+ if (name) -+ task_set_name (newtask, name); -+ free (name); -+ } - - /* Create the initial thread. */ - e.error = thread_create (newtask, &thread); -diff --git a/exec/gnumach.defs b/exec/gnumach.defs -new file mode 100644 -index 0000000..6cfbb0d ---- /dev/null -+++ b/exec/gnumach.defs -@@ -0,0 +1,74 @@ -+/* -+ * Copyright (C) 2012 Free Software Foundation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ */ -+ -+subsystem -+#if KERNEL_SERVER -+ KernelServer -+#endif /* KERNEL_SERVER */ -+#if KERNEL_USER -+ KernelUser -+#endif /* KERNEL_USER */ -+ gnumach 4200; -+ -+#include <mach/std_types.defs> -+#include <mach/mach_types.defs> -+#include <mach_debug/mach_debug_types.defs> -+ -+type vm_cache_statistics_data_t = struct[11] of integer_t; -+ -+/* -+ * Return page cache statistics for the host on which the target task -+ * resides. -+ */ -+routine vm_cache_statistics( -+ target_task : vm_task_t; -+ out vm_cache_stats : vm_cache_statistics_data_t); -+ -+/* -+ * Terminate a thread and release rights and memory. -+ * -+ * Intended to be used by threading libraries to provide a clean way for -+ * threads to terminate themselves. The resources a thread wouldn't be able -+ * to release without this call when terminating itself are its -+ * last reference to its kernel port, its reply port, and its stack. -+ * -+ * This call is semantically equivalent to : -+ * - mach_port_deallocate(task, thread_name); -+ * - if (reply_port != MACH_PORT_NULL) -+ * mach_port_destroy(task, reply_port); -+ * - if ((address != 0) || (size != 0)) -+ * vm_deallocate(task, address, size) -+ * - thread_terminate(thread) -+ * -+ * Implemented as a simple routine so a reply port isn't required. -+ */ -+simpleroutine thread_terminate_release( -+ thread : thread_t; -+ task : task_t; -+ thread_name : mach_port_name_t; -+ reply_port : mach_port_name_t; -+ address : vm_address_t; -+ size : vm_size_t); -+ -+/* -+ * Set the name of task TASK to NAME. This is a debugging aid. -+ * NAME will be used in error messages printed by the kernel. -+ */ -+simpleroutine task_set_name( -+ task : task_t; -+ name : kernel_debug_name_t); -diff --git a/exec/mach_debug/hash_info.h b/exec/mach_debug/hash_info.h -new file mode 100644 -index 0000000..6944277 ---- /dev/null -+++ b/exec/mach_debug/hash_info.h -@@ -0,0 +1,41 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+ -+#ifndef _MACH_DEBUG_HASH_INFO_H_ -+#define _MACH_DEBUG_HASH_INFO_H_ -+ -+/* -+ * Remember to update the mig type definitions -+ * in mach_debug_types.defs when adding/removing fields. -+ */ -+ -+typedef struct hash_info_bucket { -+ natural_t hib_count; /* number of records in bucket */ -+} hash_info_bucket_t; -+ -+typedef hash_info_bucket_t *hash_info_bucket_array_t; -+ -+#endif /* _MACH_DEBUG_HASH_INFO_H_ */ -diff --git a/exec/mach_debug/ipc_info.h b/exec/mach_debug/ipc_info.h -new file mode 100644 -index 0000000..ef0b0c6 ---- /dev/null -+++ b/exec/mach_debug/ipc_info.h -@@ -0,0 +1,100 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * File: mach_debug/ipc_info.h -+ * Author: Rich Draves -+ * Date: March, 1990 -+ * -+ * Definitions for the IPC debugging interface. -+ */ -+ -+#ifndef _MACH_DEBUG_IPC_INFO_H_ -+#define _MACH_DEBUG_IPC_INFO_H_ -+ -+#include <mach/boolean.h> -+#include <mach/port.h> -+#include <mach/machine/vm_types.h> -+ -+/* -+ * Remember to update the mig type definitions -+ * in mach_debug_types.defs when adding/removing fields. -+ */ -+ -+ -+typedef struct ipc_info_space { -+ natural_t iis_genno_mask; /* generation number mask */ -+ natural_t iis_table_size; /* size of table */ -+ natural_t iis_table_next; /* next possible size of table */ -+ natural_t iis_tree_size; /* size of tree */ -+ natural_t iis_tree_small; /* # of small entries in tree */ -+ natural_t iis_tree_hash; /* # of hashed entries in tree */ -+} ipc_info_space_t; -+ -+ -+typedef struct ipc_info_name { -+ mach_port_t iin_name; /* port name, including gen number */ -+/*boolean_t*/integer_t iin_collision; /* collision at this entry? */ -+/*boolean_t*/integer_t iin_compat; /* is this a compat-mode entry? */ -+/*boolean_t*/integer_t iin_marequest; /* extant msg-accepted request? */ -+ mach_port_type_t iin_type; /* straight port type */ -+ mach_port_urefs_t iin_urefs; /* user-references */ -+ vm_offset_t iin_object; /* object pointer */ -+ natural_t iin_next; /* marequest/next in free list */ -+ natural_t iin_hash; /* hash index */ -+} ipc_info_name_t; -+ -+typedef ipc_info_name_t *ipc_info_name_array_t; -+ -+ -+typedef struct ipc_info_tree_name { -+ ipc_info_name_t iitn_name; -+ mach_port_t iitn_lchild; /* name of left child */ -+ mach_port_t iitn_rchild; /* name of right child */ -+} ipc_info_tree_name_t; -+ -+typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t; -+ -+/* -+ * Type definitions for mach_port_kernel_object. -+ * By remarkable coincidence, these closely resemble -+ * the IKOT_* definitions in ipc/ipc_kobject.h. -+ */ -+ -+#define IPC_INFO_TYPE_NONE 0 -+#define IPC_INFO_TYPE_THREAD 1 -+#define IPC_INFO_TYPE_TASK 2 -+#define IPC_INFO_TYPE_HOST 3 -+#define IPC_INFO_TYPE_HOST_PRIV 4 -+#define IPC_INFO_TYPE_PROCESSOR 5 -+#define IPC_INFO_TYPE_PSET 6 -+#define IPC_INFO_TYPE_PSET_NAME 7 -+#define IPC_INFO_TYPE_PAGER 8 -+#define IPC_INFO_TYPE_PAGING_REQUEST 9 -+#define IPC_INFO_TYPE_DEVICE 10 -+#define IPC_INFO_TYPE_XMM_PAGER 11 -+#define IPC_INFO_TYPE_PAGING_NAME 12 -+ -+#endif /* _MACH_DEBUG_IPC_INFO_H_ */ -diff --git a/exec/mach_debug/mach_debug.defs b/exec/mach_debug/mach_debug.defs -new file mode 100644 -index 0000000..053c3fe ---- /dev/null -+++ b/exec/mach_debug/mach_debug.defs -@@ -0,0 +1,233 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * Matchmaker definitions file for Mach kernel debugging interface. -+ */ -+ -+subsystem -+#if KERNEL_SERVER -+ KernelServer -+#endif /* KERNEL_SERVER */ -+ mach_debug 3000; -+ -+#include <mach/std_types.defs> -+#include <mach/mach_types.defs> -+#include <mach_debug/mach_debug_types.defs> -+ -+skip; /* host_ipc_statistics */ -+skip; /* host_ipc_statistics_reset */ -+skip; /* host_callout_info */ -+skip; /* host_callout_statistics */ -+skip; /* host_callout_statistics_reset */ -+skip; /* host_zone_info */ -+skip; /* host_ipc_bucket_info */ -+ -+#if !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG -+ -+/* -+ * Returns the exact number of extant send rights -+ * for the given receive right. -+ */ -+ -+routine mach_port_get_srights( -+ task : ipc_space_t; -+ name : mach_port_name_t; -+ out srights : mach_port_rights_t); -+ -+/* -+ * Returns information about the global reverse hash table. -+ */ -+ -+routine host_ipc_hash_info( -+ host : host_t; -+ out info : hash_info_bucket_array_t, -+ CountInOut, Dealloc); -+ -+/* -+ * Returns information about the marequest hash table. -+ */ -+ -+routine host_ipc_marequest_info( -+ host : host_t; -+ out max_requests : unsigned; -+ out info : hash_info_bucket_array_t, -+ CountInOut, Dealloc); -+ -+/* -+ * Returns information about an IPC space. -+ */ -+ -+routine mach_port_space_info( -+ task : ipc_space_t; -+ out info : ipc_info_space_t; -+ out table_info : ipc_info_name_array_t, -+ CountInOut, Dealloc; -+ out tree_info : ipc_info_tree_name_array_t, -+ CountInOut, Dealloc); -+ -+/* -+ * Returns information about the dead-name requests -+ * registered with the named receive right. -+ */ -+ -+routine mach_port_dnrequest_info( -+ task : ipc_space_t; -+ name : mach_port_name_t; -+ out total : unsigned; /* total size of table */ -+ out used : unsigned); /* amount used */ -+ -+#else /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */ -+skip; /* mach_port_get_srights */ -+skip; /* host_ipc_hash_info */ -+skip; /* host_ipc_marequest_info */ -+skip; /* mach_port_space_info */ -+skip; /* mach_port_dnrequest_info */ -+#endif /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */ -+ -+skip; /* mach_vm_region_info */ -+skip; /* vm_mapped_pages_info */ -+ -+/* -+ * Returns stack usage information: -+ * reserved Amount of stack space reserved for pcb. -+ * total Number of stacks. -+ * space Total VM space for stacks. -+ * resident Resident VM space for stacks. -+ * maxusage Maximum amount of stack used. -+ * maxstack Address in the kernel of the largest stack. -+ */ -+ -+routine host_stack_usage( -+ host : host_t; -+ out reserved : vm_size_t; -+ out total : unsigned; -+ out space : vm_size_t; -+ out resident : vm_size_t; -+ out maxusage : vm_size_t; -+ out maxstack : vm_offset_t); -+ -+routine processor_set_stack_usage( -+ pset : processor_set_name_t; -+ out total : unsigned; -+ out space : vm_size_t; -+ out resident : vm_size_t; -+ out maxusage : vm_size_t; -+ out maxstack : vm_offset_t); -+ -+#if !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG -+ -+/* -+ * Returns information about the global VP table. -+ */ -+ -+routine host_virtual_physical_table_info( -+ host : host_t; -+ out info : hash_info_bucket_array_t, -+ CountInOut, Dealloc); -+ -+#else /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */ -+skip; /* host_virtual_physical_table_info */ -+#endif /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */ -+ -+#if !defined(MACH_KDB) || MACH_KDB -+/* -+ * Loads a symbol table for an external file into the kernel debugger. -+ * The symbol table data is an array of characters. It is assumed that -+ * the caller and the kernel debugger agree on its format. -+ */ -+ -+routine host_load_symbol_table( -+ host : host_priv_t; -+ task : task_t; -+ name : symtab_name_t; -+ symtab : pointer_t); -+ -+#else /* !defined(MACH_KDB) || MACH_KDB */ -+skip; /* host_load_symbol_table */ -+#endif /* !defined(MACH_KDB) || MACH_KDB */ -+ -+#if !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG -+ -+/* -+ * Return the type and address of the kernel object -+ * that the given send/receive right represents. -+ */ -+ -+routine mach_port_kernel_object( -+ task : ipc_space_t; -+ name : mach_port_name_t; -+ out object_type : unsigned; -+ out object_addr : vm_offset_t); -+ -+#else /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */ -+skip; /* mach_port_kernel_object */ -+#endif /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */ -+ -+#if !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG -+ -+/* -+ * Returns information about a region of memory. -+ */ -+ -+routine mach_vm_region_info( -+ task : vm_task_t; -+ address : vm_address_t; -+ out region : vm_region_info_t; -+ /* avoid out-translation of the argument */ -+ out object : memory_object_name_t = -+ MACH_MSG_TYPE_MOVE_SEND -+ ctype: mach_port_t); -+ -+routine mach_vm_object_info( -+ object : memory_object_name_t; -+ out info : vm_object_info_t; -+ /* avoid out-translation of the argument */ -+ out shadow : memory_object_name_t = -+ MACH_MSG_TYPE_MOVE_SEND -+ ctype: mach_port_t; -+ /* avoid out-translation of the argument */ -+ out copy : memory_object_name_t = -+ MACH_MSG_TYPE_MOVE_SEND -+ ctype: mach_port_t); -+ -+routine mach_vm_object_pages( -+ object : memory_object_name_t; -+ out pages : vm_page_info_array_t, -+ CountInOut, Dealloc); -+ -+/* -+ * Returns information about the memory allocation caches. -+ */ -+routine host_slab_info( -+ host : host_t; -+ out info : cache_info_array_t, -+ CountInOut, Dealloc); -+ -+#else /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */ -+skip; /* mach_vm_region_info */ -+skip; /* mach_vm_object_info */ -+skip; /* mach_vm_object_pages */ -+#endif /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */ -diff --git a/exec/mach_debug/mach_debug_types.defs b/exec/mach_debug/mach_debug_types.defs -new file mode 100644 -index 0000000..d24b6f9 ---- /dev/null -+++ b/exec/mach_debug/mach_debug_types.defs -@@ -0,0 +1,64 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * Mach kernel debugging interface type declarations -+ */ -+ -+#ifndef _MACH_DEBUG_MACH_DEBUG_TYPES_DEFS_ -+#define _MACH_DEBUG_MACH_DEBUG_TYPES_DEFS_ -+ -+#include <mach/std_types.defs> -+ -+type cache_info_t = struct[19] of integer_t; -+type cache_info_array_t = array[] of cache_info_t; -+ -+type hash_info_bucket_t = struct[1] of natural_t; -+type hash_info_bucket_array_t = array[] of hash_info_bucket_t; -+ -+type ipc_info_space_t = struct[6] of natural_t; -+ -+type ipc_info_name_t = struct[9] of natural_t; -+type ipc_info_name_array_t = array[] of ipc_info_name_t; -+ -+type ipc_info_tree_name_t = struct[11] of natural_t; -+type ipc_info_tree_name_array_t = array[] of ipc_info_tree_name_t; -+ -+type vm_region_info_t = struct[11] of natural_t; -+type vm_region_info_array_t = array[] of vm_region_info_t; -+ -+type vm_object_info_t = struct[14] of natural_t; -+type vm_object_info_array_t = array[] of vm_object_info_t; -+ -+type vm_page_info_t = struct[6] of natural_t; -+type vm_page_info_array_t = array[] of vm_page_info_t; -+ -+type symtab_name_t = (MACH_MSG_TYPE_STRING_C, 8*32); -+ -+type kernel_debug_name_t = c_string[*: 64]; -+ -+import <mach_debug/mach_debug_types.h>; -+ -+#endif /* _MACH_DEBUG_MACH_DEBUG_TYPES_DEFS_ */ -diff --git a/exec/mach_debug/mach_debug_types.h b/exec/mach_debug/mach_debug_types.h -new file mode 100644 -index 0000000..9c7d1fd ---- /dev/null -+++ b/exec/mach_debug/mach_debug_types.h -@@ -0,0 +1,51 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * Mach kernel debugging interface type declarations -+ */ -+ -+#ifndef _MACH_DEBUG_MACH_DEBUG_TYPES_H_ -+#define _MACH_DEBUG_MACH_DEBUG_TYPES_H_ -+ -+#include <mach_debug/ipc_info.h> -+#include <mach_debug/vm_info.h> -+#include <mach_debug/slab_info.h> -+#include <mach_debug/hash_info.h> -+ -+typedef char symtab_name_t[32]; -+ -+/* -+ * A fixed-length string data type intended for names given to -+ * kernel objects. -+ * -+ * Note that it is not guaranteed that the in-kernel data -+ * structure will hold KERNEL_DEBUG_NAME_MAX bytes. The given -+ * name will be truncated to fit into the target data structure. -+ */ -+#define KERNEL_DEBUG_NAME_MAX (64) -+typedef char kernel_debug_name_t[KERNEL_DEBUG_NAME_MAX]; -+ -+#endif /* _MACH_DEBUG_MACH_DEBUG_TYPES_H_ */ -diff --git a/exec/mach_debug/pc_info.h b/exec/mach_debug/pc_info.h -new file mode 100644 -index 0000000..bc43fa8 ---- /dev/null -+++ b/exec/mach_debug/pc_info.h -@@ -0,0 +1,43 @@ -+/* -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * File: mach_debug/pc_info.h -+ * Author: Brian Bershad -+ * Date: January 1992 -+ * -+ * Definitions for the PC sampling interface. -+ */ -+ -+#ifndef _MACH_DEBUG_PC_INFO_H_ -+#define _MACH_DEBUG_PC_INFO_H_ -+ -+ -+typedef struct sampled_pc { -+ task_t task; -+ thread_t thread; -+ vm_offset_t pc; -+} sampled_pc_t; -+ -+typedef sampled_pc_t *sampled_pc_array_t; -+typedef unsigned int sampled_pc_seqno_t; -+ -+#endif _MACH_DEBUG_PC_INFO_H_ -diff --git a/exec/mach_debug/slab_info.h b/exec/mach_debug/slab_info.h -new file mode 100644 -index 0000000..37dcb8c ---- /dev/null -+++ b/exec/mach_debug/slab_info.h -@@ -0,0 +1,62 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+ -+#ifndef _MACH_DEBUG_SLAB_INFO_H_ -+#define _MACH_DEBUG_SLAB_INFO_H_ -+ -+#include <sys/types.h> -+ -+/* -+ * Remember to update the mig type definitions -+ * in mach_debug_types.defs when adding/removing fields. -+ */ -+ -+#define CACHE_NAME_MAX_LEN 32 -+ -+#define CACHE_FLAGS_NO_CPU_POOL 0x01 -+#define CACHE_FLAGS_SLAB_EXTERNAL 0x02 -+#define CACHE_FLAGS_NO_RECLAIM 0x04 -+#define CACHE_FLAGS_VERIFY 0x08 -+#define CACHE_FLAGS_DIRECT 0x10 -+ -+typedef struct cache_info { -+ int flags; -+ size_t cpu_pool_size; -+ size_t obj_size; -+ size_t align; -+ size_t buf_size; -+ size_t slab_size; -+ unsigned long bufs_per_slab; -+ unsigned long nr_objs; -+ unsigned long nr_bufs; -+ unsigned long nr_slabs; -+ unsigned long nr_free_slabs; -+ char name[CACHE_NAME_MAX_LEN]; -+} cache_info_t; -+ -+typedef cache_info_t *cache_info_array_t; -+ -+#endif /* _MACH_DEBUG_SLAB_INFO_H_ */ -diff --git a/exec/mach_debug/vm_info.h b/exec/mach_debug/vm_info.h -new file mode 100644 -index 0000000..70ba887 ---- /dev/null -+++ b/exec/mach_debug/vm_info.h -@@ -0,0 +1,132 @@ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * File: mach_debug/vm_info.h -+ * Author: Rich Draves -+ * Date: March, 1990 -+ * -+ * Definitions for the VM debugging interface. -+ */ -+ -+#ifndef _MACH_DEBUG_VM_INFO_H_ -+#define _MACH_DEBUG_VM_INFO_H_ -+ -+#include <mach/boolean.h> -+#include <mach/machine/vm_types.h> -+#include <mach/vm_inherit.h> -+#include <mach/vm_prot.h> -+#include <mach/memory_object.h> -+ -+/* -+ * Remember to update the mig type definitions -+ * in mach_debug_types.defs when adding/removing fields. -+ */ -+ -+typedef struct vm_region_info { -+ vm_offset_t vri_start; /* start of region */ -+ vm_offset_t vri_end; /* end of region */ -+ -+/*vm_prot_t*/natural_t vri_protection; /* protection code */ -+/*vm_prot_t*/natural_t vri_max_protection; /* maximum protection */ -+/*vm_inherit_t*/natural_t vri_inheritance; /* inheritance */ -+ natural_t vri_wired_count; /* number of times wired */ -+ natural_t vri_user_wired_count; /* number of times user has wired */ -+ -+ vm_offset_t vri_object; /* the mapped object */ -+ vm_offset_t vri_offset; /* offset into object */ -+/*boolean_t*/integer_t vri_needs_copy; /* does object need to be copied? */ -+ natural_t vri_sharing; /* share map references */ -+} vm_region_info_t; -+ -+typedef vm_region_info_t *vm_region_info_array_t; -+ -+ -+typedef natural_t vm_object_info_state_t; -+ -+#define VOI_STATE_PAGER_CREATED 0x00000001 -+#define VOI_STATE_PAGER_INITIALIZED 0x00000002 -+#define VOI_STATE_PAGER_READY 0x00000004 -+#define VOI_STATE_CAN_PERSIST 0x00000008 -+#define VOI_STATE_INTERNAL 0x00000010 -+#define VOI_STATE_TEMPORARY 0x00000020 -+#define VOI_STATE_ALIVE 0x00000040 -+#define VOI_STATE_LOCK_IN_PROGRESS 0x00000080 -+#define VOI_STATE_LOCK_RESTART 0x00000100 -+#define VOI_STATE_USE_OLD_PAGEOUT 0x00000200 -+ -+typedef struct vm_object_info { -+ vm_offset_t voi_object; /* this object */ -+ vm_size_t voi_pagesize; /* object's page size */ -+ vm_size_t voi_size; /* object size (valid if internal) */ -+ natural_t voi_ref_count; /* number of references */ -+ natural_t voi_resident_page_count; /* number of resident pages */ -+ natural_t voi_absent_count; /* number requested but not filled */ -+ vm_offset_t voi_copy; /* copy object */ -+ vm_offset_t voi_shadow; /* shadow object */ -+ vm_offset_t voi_shadow_offset; /* offset into shadow object */ -+ vm_offset_t voi_paging_offset; /* offset into memory object */ -+/*memory_object_copy_strategy_t*/integer_t voi_copy_strategy; -+ /* how to handle data copy */ -+ vm_offset_t voi_last_alloc; /* offset of last allocation */ -+ natural_t voi_paging_in_progress; /* paging references */ -+ vm_object_info_state_t voi_state; /* random state bits */ -+} vm_object_info_t; -+ -+typedef vm_object_info_t *vm_object_info_array_t; -+ -+ -+typedef natural_t vm_page_info_state_t; -+ -+#define VPI_STATE_BUSY 0x00000001 -+#define VPI_STATE_WANTED 0x00000002 -+#define VPI_STATE_TABLED 0x00000004 -+#define VPI_STATE_FICTITIOUS 0x00000008 -+#define VPI_STATE_PRIVATE 0x00000010 -+#define VPI_STATE_ABSENT 0x00000020 -+#define VPI_STATE_ERROR 0x00000040 -+#define VPI_STATE_DIRTY 0x00000080 -+#define VPI_STATE_PRECIOUS 0x00000100 -+#define VPI_STATE_OVERWRITING 0x00000200 -+#define VPI_STATE_INACTIVE 0x00000400 -+#define VPI_STATE_ACTIVE 0x00000800 -+#define VPI_STATE_LAUNDRY 0x00001000 -+#define VPI_STATE_FREE 0x00002000 -+#define VPI_STATE_REFERENCE 0x00004000 -+ -+#define VPI_STATE_PAGER 0x80000000 /* pager has the page */ -+ -+typedef struct vm_page_info { -+ vm_offset_t vpi_offset; /* offset in object */ -+ vm_offset_t vpi_phys_addr; /* physical address */ -+ natural_t vpi_wire_count; /* number of times wired */ -+/*vm_prot_t*/natural_t vpi_page_lock; /* XP access restrictions */ -+/*vm_prot_t*/natural_t vpi_unlock_request; /* outstanding unlock requests */ -+ vm_page_info_state_t vpi_state; /* random state bits */ -+} vm_page_info_t; -+ -+typedef vm_page_info_t *vm_page_info_array_t; -+ -+#endif /* _MACH_DEBUG_VM_INFO_H_ */ diff --git a/debian/patches/series b/debian/patches/series index 728f3361..53dc7fa9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -46,4 +46,4 @@ xkb-compat.patch fix-get-children-source.patch diskfs-fix-fsys-receiver-lookups.patch netfs-fix-fsys-receiver-lookups.patch -feature-proc-set-task-name-to-pid.patch + |