diff options
author | Zack Weinberg <zackw@panix.com> | 2017-06-08 15:39:03 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2017-06-08 15:39:03 -0400 |
commit | 5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch) | |
tree | 4470480d904b65cf14ca524f96f79eca818c3eaf /mach | |
parent | 199fc19d3aaaf57944ef036e15904febe877fc93 (diff) | |
download | glibc-zack/build-layout-experiment.tar glibc-zack/build-layout-experiment.tar.gz glibc-zack/build-layout-experiment.tar.bz2 glibc-zack/build-layout-experiment.zip |
Prepare for radical source tree reorganization.zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'mach')
39 files changed, 0 insertions, 3510 deletions
diff --git a/mach/Machrules b/mach/Machrules deleted file mode 100644 index 36adfc7681..0000000000 --- a/mach/Machrules +++ /dev/null @@ -1,235 +0,0 @@ -# Rules for MiG interfaces that want to go into the C library. -# Copyright (C) 1991-2017 Free Software Foundation, Inc. -# This file is part of the GNU C Library. - -# The GNU C Library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. - -# The GNU C Library 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 -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with the GNU C Library; if not, see -# <http://www.gnu.org/licenses/>. - -# Makefiles may define these variable before including this file: -# user-interfaces Names of interfaces to put user stubs in for. -# server-interfaces Names of interfaces to put server stubs in for. -# interface-library Name of interface library to build and install. -# This file sets: -# interface-headers Names of generated interface header files. -# interface-routines Names of generated interface routines. -# All user stubs are put in individual files, prefixed with RPC_; header -# for both __ and non-__ names is put in foo.h. Server interfaces are -# written to foo_server.c and foo_server.h; the server functions are called -# _S_rpcname. - -# Includers can also add to or modify `migdefines' to set MiG flags. - -all: - -# Make sure no value comes from the environment, since we append to it. -# This is done also in ../Rules, but we append to the value before -# including Rules, which changes the origin. -ifneq "$(findstring env,$(origin generated))" "" -generated := -endif - - -include ../Makeconfig - -# This makefile contains a lot of implicit rules that get optimized -# away if the target directory does not exist. -ifndef no_deps --include $(objpfx)dummy.mk -endif -$(objpfx)dummy.mk: - $(make-target-directory) - echo '# Empty' > $@ - -MIGFLAGS = -DMACH_IPC_COMPAT=0 -DSTANDALONE -DTypeCheck=0 \ - $(+includes) $(migdefines) -subrprefix __ -# Putting CC in the enivronment makes the mig wrapper script -# use the same compiler setup we are using to run cpp. -MIG := CC='${CC}' CPP='${CPP} -x c' $(MIG) - -.SUFFIXES: .defs # Just to set specified_rule_matched. - -define nl # This is needed by *.ir. - - -endef -ifdef user-interfaces -*.ir := $(addprefix $(objpfx),$(foreach if,$(user-interfaces),$(if).ir)) -ifndef no_deps -ifndef inhibit_interface_rules --include $(*.ir) -endif -endif -ifneq "$(*.ir)" "$(wildcard $(*.ir))" -# If any .ir file is missing, we will be unable to make all the deps. -no_deps=t -endif -generated += $(*.ir:$(objpfx)%=%) -endif - - -# %.ir defines a variable `%-calls', which lists the RPCs defined by -# %.defs, and a rule to build $(%-calls:%=RPC_$(%-userprefix)%.c) from -# %.defs, where $(%-userprefix) is the user prefix given in %.defs. We use -# the kludgificacious method of defining a pattern rule to build files -# matching patterns we are pretty damn sure will only match the particular -# files we have in mind. To be so damn sure, we use the silly names -# RPC_*.c and the pattern R%C_*.c because using __*.c and _%*.c (or any -# other useful pattern) causes the rule for `host_info' to also match -# `xxx_host_info', and analogous lossage. -# -# Depend on %.h just so they will be built from %.uh in the -# makefile-rebuilding run which builds %.ir; otherwise, %.uh is built as an -# intermediate in order to make %.ir and then removed before re-exec, when -# %.uh is built all over again to build %.h. -$(objpfx)%.ir: $(objpfx)%.uh $(objpfx)%.h - ($(AWK) "NF == 4 && (\$$2 == \"Routine\" || \$$2 == \"SimpleRoutine\")\ - { printf \"$*-calls += %s\\n\", \$$3 }" $< ;\ - echo '$$($*-calls:%=$$(objpfx)R\%C_%.c): $$(objpfx)$*.ustamp ;';\ - ) > $@-new - mv -f $@-new $@ -vpath Machrules ../mach # Find ourselves. - -ifndef transform-user-stub-output -transform-user-stub-output = tmp -define transform-user-stub -echo "weak_alias (__$$call, $$call)" >> $(objpfx)tmp_$${call}.c; -endef -endif - - -# Generate `#include <NAME.defs>', taking $* for NAME. -# If $(NAME.defs) is defined use its value in place of `NAME.defs'. -define include-%.defs -echo '#include <$(firstword $($*.defs) $*.defs)>' -endef - -ifndef no_deps -# Not an implicit rule so the stamps are never removed as intermediates! -$(patsubst %,$(objpfx)%.ustamp,$(user-interfaces)): $(objpfx)%.ustamp: - rm -f $@ - $(include-%.defs) | \ - $(MIG) - /dev/null -prefix __ \ - $(MIGFLAGS) $(user-MIGFLAGS) $(MIGFLAGS-$*) \ - -i $(objpfx)tmp_ \ - -server /dev/null -user /dev/null -header /dev/null - for call in $($*-calls); do \ - $(transform-user-stub) \ - $(move-if-change) $(objpfx)$(transform-user-stub-output)_$${call}.c \ - $(objpfx)RPC_$${call}.c; \ - done - touch $@ --include $(patsubst %,$(objpfx)%.udeps,$(user-interfaces)) -$(patsubst %,$(objpfx)%.udeps,$(user-interfaces)): - $(objpfx)%.udeps: $(..)mach/Machrules - $(make-target-directory) -# We must use $(CFLAGS) to get -O flags that affect #if's in header files. - $(include-%.defs) | \ - $(CC) $(CFLAGS) $(CPPFLAGS) -M -x c - | \ - sed -e 's,- *:,$(.udeps-targets):,' \ - $(sed-remove-objpfx) > $@.new - mv -f $@.new $@ -.udeps-targets = $@ $(@:.udeps=.ustamp) $(@:.udeps=.uh) $(@:.udeps=.__h) \ - $(@:.udeps=_server.c) $(@:.udeps=_server.h) -endif - -# Look for the server stub files where they will be written. -vpath %_server.c $(addprefix $(objpfx),$(sort $(dir $(server-interfaces)))) - -# Build the server stubs in $(objdir). -$(objpfx)%_server.c $(objpfx)%_server.h: - $(make-target-directory) - $(include-%.defs) | \ - $(MIG) - /dev/null -prefix _S_ \ - $(MIGFLAGS) $(server-MIGFLAGS) $(MIGFLAGS-$*) \ - -user /dev/null -header /dev/null \ - -server $(@:.h=.c) -sheader $(@:.c=.h) - -# To get header files that declare both the straight and __ functions, -# we generate two files and paste them together. -$(patsubst %,$(objpfx)%.uh,$(user-interfaces)): $(objpfx)%.uh:; $(mig.uh) -define mig.uh -$(make-target-directory) -$(include-%.defs) | \ -$(MIG) - /dev/null $(MIGFLAGS) $(MIGFLAGS-$*) \ - -header $@ -server /dev/null -user /dev/null -endef -$(patsubst %,$(objpfx)%.__h,$(user-interfaces)): $(objpfx)%.__h:; $(mig.__h) -define mig.__h -$(make-target-directory) -$(include-%.defs) | \ -$(MIG) - /dev/null $(MIGFLAGS) $(MIGFLAGS-$*) -prefix __ \ - -header $@ -server /dev/null -user /dev/null -endef - -$(patsubst %,$(objpfx)%.h,$(user-interfaces)): $(objpfx)%.h: $(objpfx)%.__h \ - $(objpfx)%.uh -# The last line of foo.__h is "#endif _foo_user_". -# The first two lines of foo.uh are "#ifndef _foo_user_"/"#define _foo_user_". - (sed -e '$$d' $<; sed -e '1,2d' $(word 2,$^)) > $@-new - mv -f $@-new $@ - -interface-routines := $(foreach if,$(user-interfaces), \ - $(addprefix RPC_,$($(if)-calls))) \ - $(server-interfaces:%=%_server) -interface-headers := $(user-interfaces:%=%.h) \ - $(server-interfaces:%=%_server.h) - -# Remove the generated user stub source and header files, -# and don't distribute them. -mach-generated = $(interface-routines:%=%.c) $(interface-headers) \ - $(foreach h,$(user-interfaces),$h.uh $h.__h) -generated += $(mach-generated) - -# These are needed to generate the dependencies. -before-compile += $(interface-headers:%=$(objpfx)%) - -# Don't let these be intermediate files and get removed. -$(foreach h,$(interface-headers:%.h=$(objpfx)%),$h.h $h.__h $h.uh) : -$(interface-routines:%=$(objpfx)%.c) : - -# Convenient target to generate all the headers. -.PHONY: interface-headers -interface-headers: $(interface-headers) - -# Don't automatically generate dependencies for the sources we generate. -# There are likely to be a whole lot of them, and we know their -# dependencies ahead of time anyway because they're boilerplate. -omit-deps += $(interface-routines) - -# Choose any single module generated by MiG. We will compute this module's -# dependencies and then assume all other MiG-generated modules depend on the -# same headers. -some-if-rtn := $(firstword $(interface-routines)) -ifdef some-if-rtn -$(foreach o,$(object-suffixes),$(interfaces-routines:%=%$o)): $(some-if-rtn).d -generated += $(some-if-rtn).d -endif - -# If defined, $(interface-library) is `libNAME'. It is to be a library -# containing all the MiG-generated functions for the specified interfaces. - -ifdef interface-library - -$(interface-library)-routines = $(interface-routines) -extra-libs += $(interface-library) -extra-libs-others += $(interface-library) - -ifeq (yes,$(build-shared)) -interface.so = $(interface-library:=.so) - -# Depend on libc.so so a DT_NEEDED is generated in the shared objects. -$(objpfx)$(interface.so): $(common-objpfx)libc.so -endif - -endif diff --git a/mach/Makefile b/mach/Makefile deleted file mode 100644 index 127cad00ca..0000000000 --- a/mach/Makefile +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright (C) 1991-2017 Free Software Foundation, Inc. -# This file is part of the GNU C Library. - -# The GNU C Library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. - -# The GNU C Library 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 -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with the GNU C Library; if not, see -# <http://www.gnu.org/licenses/>. - -subdir := mach - -include ../Makeconfig - -headers = mach_init.h mach.h mach_error.h mach-shortcuts.h mach/mach_traps.h \ - $(interface-headers) mach/mach.h mach/mig_support.h mach/error.h \ - $(lock-headers) machine-sp.h -lock = spin-solid spin-lock mutex-init mutex-solid -lock-headers = lock-intern.h machine-lock.h spin-lock.h -routines = $(mach-syscalls) $(mach-shortcuts) \ - mach_init mig_strncpy msg \ - mig-alloc mig-dealloc mig-reply \ - msg-destroy msgserver \ - mach_error errstring error_compat errsystems \ - devstream setup-thread $(lock) - -# The RPC interfaces go in a separate library. -interface-library := libmachuser - -# We produce mach_interface.h from mach.defs because there is already a -# <mach/mach.h> that is not the interface header (thanks CMU). -mach-interface-list := $(patsubst mach,mach_interface,$(mach-interface-list)) -mach/mach_interface.defs = mach/mach.defs - -# Similarly for memory_object_user vs. memory_object -mach-interface-list := $(patsubst memory_object,memory_object_user,\ - $(mach-interface-list)) -mach/memory_object_user.defs = mach/memory_object.defs - -user-interfaces := $(addprefix mach/,$(mach-interface-list) \ - mach_port mach_host exc \ - )\ - $(addprefix device/,device device_request) - -server-interfaces := mach/exc - -# Clear any environment value. -generated = - -# Translate GNU names for CPUs into the names used in Mach header files. -mach-machine = $(patsubst powerpc,ppc,$(base-machine)) - -# Define mach-syscalls and sysno-*. -ifndef inhibit_mach_syscalls --include $(objpfx)mach-syscalls.mk -endif -$(objpfx)mach-syscalls.mk: syscalls.awk Makefile libc-modules.h -# Go kludges!!! - $(make-target-directory) -# We must use $(CFLAGS) to get -O flags that affect #if's in header files. - echo '#include <mach/syscall_sw.h>' | \ - $(CC) $(CFLAGS) $(CPPFLAGS) -E -MD -MP -MF $@-dep -MT $@ \ - -x c-header - \ - -D_MACH_`echo $(mach-machine) | tr a-z A-Z`_SYSCALL_SW_H_=1 | \ - sed -n -e 's/^kernel_trap(\(.*\),\([-0-9]*\),\([0-9]*\))$$/\1 \2 \3/p'\ - | $(AWK) -f $< > $@-new -ifneq (,$(objpfx)) - sed $(sed-remove-objpfx) $@-dep >> $@-new -else - cat $@-dep >> $@-new -endif - rm -f $@-dep - mv -f $@-new $@ -generated += mach-syscalls.mk - -ifndef mach-syscalls -# We cannot make the deps properly until we know how to make the system -# call functions, and for that we must know what they all are. -no_deps=t -else -$(mach-syscalls:%=$(objpfx)%.S): $(objpfx)%.S: $(objpfx)mach-syscalls.mk - (echo '#include <sysdep.h>'; \ - echo 'kernel_trap (__$*,$(sysno-$*),$(nargs-$*))'; \ - echo 'weak_alias (__$*, $*)') > $@-new - mv -f $@-new $@ -generated += $(mach-syscalls:=.S) -endif # mach-syscalls - -# These syscalls that look like RPCs actually have no RPC equivalents. -mach-shortcuts := $(filter-out device_writev_request \ - device_read_overwrite_request \ - device_read_overwrite \ - vm_read_overwrite \ - thread_switch \ - ,\ - $(patsubst syscall_%,%,$(filter syscall_%,$(mach-syscalls)))) - -ifndef mach-shortcuts -# Forget about mach_interface.defs for this run. On the next run, -# $(mach-shortcuts) will be set, and that will change how -# mach_interface.defs is processed: it will get the -D flags below. -user-interfaces := $(filter-out $(mach-interface-list:%=mach/%) \ - mach/mach_port mach/mach_host mach/mach4 \ - device/device_request,\ - $(user-interfaces)) -endif - -# For some reason, the calls in this file are `protected' by an ifdef. -MIGFLAGS-mach/mach4=-DMACH_PCSAMPLE - -# Make the MiG stubs for $(mach-shortcuts) be CALL_rpc. -migdefines += $(foreach call,$(mach-shortcuts),-D$(call)=$(call)_rpc) -$(mach-interface-list:%=mach/%.uh) \ - mach/mach_host.uh mach/mach_port.uh: $(objpfx)mach-syscalls.mk - -ifdef mach-shortcuts -$(mach-shortcuts:%=$(objpfx)%.c): $(objpfx)%.c: shortcut.awk \ - $(objpfx)RPC_%_rpc.c - $(AWK) -v alias=$* -v call=__$* -v rpc=__$*_rpc \ - -v syscall=__syscall_$* -f $^ > $@-new - mv -f $@-new $@ -generated += $(mach-shortcuts:%=%.c) -endif # mach-shortcuts - -# Generate mach-shortcuts.h, which will contain the prototypes for the -# shortcutted kernel RPC functions. -$(objpfx)mach-shortcuts.h: $(mach-interface-list:%=$(objpfx)mach/%.h) \ - $(objpfx)mach/mach_host.h \ - $(objpfx)mach/mach_port.h -# The first line gets us one paragraph per line, with @s separating real lines. -# The second line selects paragraphs for the shortcutted functions. -# The third line removes `_rpc' from the names and reconstitutes the lines. - cat $^ | tr \\012 @ | sed s/@@/@%/g | tr % \\012 \ - | grep '^/\* Routine [a-z0-9_]*_rpc \*/' \ - | sed 's/_rpc//g' | tr @ \\012 > $@-new - mv -f $@-new $@ -generated += mach-shortcuts.h - -before-compile += $(objpfx)mach-shortcuts.h - -include Machrules -include ../Rules - - -# A gcc bug prevents the generated file from working properly, -# so we have one in the distribution for the time being. -generated += errsystems.c -$(objpfx)errsystems.c: errsystems.awk err_*.sub \ - $(wildcard $(addsuffix /err_*.sub,$(+sysdep_dirs))) - $(AWK) -v subsys='$(filter-out $<,$^)' -f $^ > $@.n - mv -f $@.n $@ - - -# Convenient target to update all the generated source files. -.PHONY: generated -generated: $(addprefix $(common-objpfx),$(common-generated)) \ - $(addprefix $(objpfx),$(generated)) - -.PHONY: mach-before-compile -mach-before-compile: $(mach-before-compile) diff --git a/mach/Versions b/mach/Versions deleted file mode 100644 index 0097aad59b..0000000000 --- a/mach/Versions +++ /dev/null @@ -1,67 +0,0 @@ -libc { - GLIBC_2.0 { - # variables used in Mach-specific macros - __mach_task_self_; - __vm_page_size; - - # functions used in inline functions and macros - __mach_port_deallocate; __mach_thread_self; - - # functions used by RPC stubs - __mach_msg; __mach_msg_overwrite; - __mig_allocate; __mig_deallocate; __mig_dealloc_reply_port; - __mig_get_reply_port; __mig_put_reply_port; - __mig_strncpy; - - # variables in normal name space - vm_page_size; - - # functions in normal name space - - # e* - evc_wait; - - # m* - mach_error; mach_error_string; mach_error_type; - mach_host_self; - mach_msg; mach_msg_overwrite; - mach_msg_destroy; - mach_msg_send; mach_msg_receive; - mach_msg_server; mach_msg_server_timeout; - mach_open_devstream; - mach_port_allocate; mach_port_allocate_name; mach_port_deallocate; - mach_port_insert_right; mach_reply_port; - mach_setup_thread; - mach_task_self; - mach_thread_self; - mig_allocate; mig_dealloc_reply_port; mig_deallocate; - mig_get_reply_port; mig_init; mig_put_reply_port; - - # v* - vm_allocate; vm_deallocate; vm_map; - - # s* - swtch; swtch_pri; - - # t* - task_create; task_set_special_port; task_suspend; task_terminate; - thread_depress_abort; thread_switch; - } - GLIBC_2.2.5 { - # internal functions used by other libraries (e.g. librt) - __mach_msg_destroy; __mach_reply_port; - - # This was always there, but not exported as it should have been. - mig_strncpy; - } - GLIBC_2.23 { - __mach_host_self_; - } - - HURD_CTHREADS_0.3 { - __mutex_init; __mutex_lock; __mutex_lock_solid; __mutex_trylock; - __mutex_unlock; __mutex_unlock_solid; - __spin_lock; __spin_lock_init; __spin_lock_solid; __spin_try_lock; - __spin_unlock; - } -} diff --git a/mach/devstream.c b/mach/devstream.c deleted file mode 100644 index 1a9e207b47..0000000000 --- a/mach/devstream.c +++ /dev/null @@ -1,144 +0,0 @@ -/* stdio on a Mach device port. - Translates \n to \r\n on output, echos and translates \r to \n on input. - Copyright (C) 1992-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <stdio.h> -#include <mach.h> -#include <device/device.h> -#include <errno.h> -#include <string.h> - - -static ssize_t -devstream_write (void *cookie, const char *buffer, size_t n) -{ - const device_t dev = (device_t) cookie; - - int write_some (const char *p, size_t to_write) - { - kern_return_t err; - int wrote; - int thiswrite; - - while (to_write > 0) - { - thiswrite = to_write; - if (thiswrite > IO_INBAND_MAX) - thiswrite = IO_INBAND_MAX; - - if (err = device_write_inband (dev, 0, 0, p, thiswrite, &wrote)) - { - errno = err; - return 0; - } - p += wrote; - to_write -= wrote; - } - return 1; - } - int write_crlf (void) - { - static const char crlf[] = "\r\n"; - return write_some (crlf, 2); - } - - /* Search for newlines (LFs) in the buffer. */ - - const char *start = buffer, *p; - while ((p = memchr (start, '\n', n)) != NULL) - { - /* Found one. Write out through the preceding character, - and then write a CR/LF pair. */ - - if ((p > start && !write_some (start, p - start)) - || !write_crlf ()) - return (start - buffer) ?: -1; - - n -= p + 1 - start; - start = p + 1; - } - - /* Write the remainder of the buffer. */ - if (write_some (start, n)) - start += n; - return (start - buffer) ?: -1; -} - -static ssize_t -devstream_read (void *cookie, char *buffer, size_t to_read) -{ - const device_t dev = (device_t) cookie; - - kern_return_t err; - mach_msg_type_number_t nread = to_read; - - err = device_read_inband (dev, 0, 0, to_read, buffer, &nread); - if (err) - { - errno = err; - return -1; - } - - /* Translate CR to LF. */ - { - char *p; - for (p = memchr (buffer, '\r', nread); p; - p = memchr (p + 1, '\r', (buffer + nread) - (p + 1))) - *p = '\n'; - } - - /* Echo back what we read. */ - (void) devstream_write (cookie, buffer, nread); - - return nread; -} - -static int -dealloc_ref (void *cookie) -{ - if (mach_port_deallocate (mach_task_self (), (mach_port_t) cookie)) - { - errno = EINVAL; - return -1; - } - return 0; -} - -FILE * -mach_open_devstream (mach_port_t dev, const char *mode) -{ - FILE *stream; - - if (mach_port_mod_refs (mach_task_self (), dev, MACH_PORT_RIGHT_SEND, 1)) - { - errno = EINVAL; - return NULL; - } - - stream = fopencookie ((void *) dev, mode, - (cookie_io_functions_t) { write: devstream_write, - read: devstream_read, - close: dealloc_ref }); - if (stream == NULL) - { - mach_port_deallocate (mach_task_self (), dev); - return NULL; - } - - return stream; -} diff --git a/mach/err_boot.sub b/mach/err_boot.sub deleted file mode 100644 index feba8fcd6f..0000000000 --- a/mach/err_boot.sub +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1992 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. - */ -/* - * HISTORY - * $Log$ - * Revision 1.1 1992/10/06 18:29:52 roland - * entered into RCS - * - * Revision 2.2 92/04/01 19:37:59 rpd - * Created. - * [92/03/09 rpd] - * - */ -/* - * File: err_bootstrap.sub - * Author: Richard Draves, Carnegie Mellon University - * Date: March 9, 1992 - * - * Error string definitions for bootstrap - */ - -static char * err_codes_bootstrap_fs[] = { - /* 0 */ "(bootstrap/fs) not a directory", - /* 1 */ "(bootstrap/fs) name not found", - /* 2 */ "(bootstrap/fs) name too long", - /* 3 */ "(bootstrap/fs) symbolic link loop", - /* 4 */ "(bootstrap/fs) bad file system", - /* 5 */ "(bootstrap/fs) offset not in file", - /* 6 */ "(bootstrap/fs) invalid parameter", -}; - -/* err_bootstrap subsystems */ -static struct error_subsystem err_bootstrap_sub[] = { - /* bootstrap/0; */ - { - "(bootstrap/fs)", - errlib_count(err_codes_bootstrap_fs), - err_codes_bootstrap_fs, - }, -}; diff --git a/mach/err_ipc.sub b/mach/err_ipc.sub deleted file mode 100644 index 3acabd847c..0000000000 --- a/mach/err_ipc.sub +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989,1988,1987 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * HISTORY - * $Log$ - * Revision 1.1 1992/10/06 18:29:52 roland - * entered into RCS - * - * Revision 2.2 92/01/16 00:08:40 rpd - * Moved from user collection to mk collection. - * - * Revision 2.2 91/03/27 16:05:16 mrt - * First checkin - * - * - */ -/* - * File: err_ipc.sub - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar, 1988 - * - * Definitions of error strings for original IPC - */ - -static char * err_codes_send[] = { - "(ipc/send) unknown error", /* -100 */ - "(ipc/send) invalid memory", /* -101 */ - "(ipc/send) invalid port", /* -102 */ - "(ipc/send) timed out", /* -103 */ - "(ipc/send) unused error", /* -104 */ - "(ipc/send) will notify", /* -105 */ - "(ipc/send) notify in progress", /* -106 */ - "(ipc/send) kernel refused message", /* -107 */ - "(ipc/send) send interrupted", /* -108 */ - "(ipc/send) send message too large", /* -109 */ - "(ipc/send) send message too small", /* -110 */ - "(ipc/send) message size changed while being copied", /* -111 */ -}; - -static char * err_codes_rcv[] = { - "(ipc/rcv) unknown error", /* -200 */ - "(ipc/rcv) invalid memory", /* -201 */ - "(ipc/rcv) invalid port", /* -202 */ - "(ipc/rcv) receive timed out", /* -203 */ - "(ipc/rcv) message too large", /* -204 */ - "(ipc/rcv) no space for message data", /* -205 */ - "(ipc/rcv) only sender remaining", /* -206 */ - "(ipc/rcv) receive interrupted", /* -207 */ - "(ipc/rcv) port receiver changed or port became enabled", /* -208 */ -}; - -static char * err_codes_mig[] = { - "(ipc/mig) type check failure in message interface", /* 0 (-300) */ - "(ipc/mig) wrong return message ID", /* 1 */ - "(ipc/mig) server detected error", /* 2 */ - "(ipc/mig) bad message ID", /* 3 */ - "(ipc/mig) server found wrong arguments", /* 4 */ - "(ipc/mig) no reply should be sent", /* 5 */ - "(ipc/mig) server raised exception", /* 6 */ - "(ipc/mig) user specified array not large enough for return info", /* 7 */ -}; - -/* err_ipc subsystems */ -static struct error_subsystem err_ipc_sub[] = { - /* ipc/0; */ - { - "(ipc/send)", - errlib_count(err_codes_send), - err_codes_send, - }, - /* ipc/1; */ - { - "(ipc/rcv)", - errlib_count(err_codes_rcv), - err_codes_rcv, - - }, - /* ipc/2 */ - { - "(ipc/mig)", - errlib_count(err_codes_mig), - err_codes_mig, - }, - -}; - diff --git a/mach/err_kern.sub b/mach/err_kern.sub deleted file mode 100644 index ab00ae40f2..0000000000 --- a/mach/err_kern.sub +++ /dev/null @@ -1,185 +0,0 @@ -/* - * 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.3 92/04/01 19:38:02 rpd - * Added err_codes_device. - * [92/03/09 rpd] - * - * Revision 2.2 92/01/16 00:08:50 rpd - * Moved from user collection to mk collection. - * - * Revision 2.3 91/08/29 15:51:22 rpd - * Updated err_codes_kern. - * [91/08/15 rpd] - * - * Revision 2.2 91/03/27 16:05:27 mrt - * First checkin - * - */ -/* - * File: err_kern.sub - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar, 1988 - * - * error codes for Mach and Unix kernels - */ - -static char * err_codes_kern[] = { - "(os/kern) successful", - "(os/kern) invalid address", - "(os/kern) protection failure", - "(os/kern) no space available", - "(os/kern) invalid argument", - "(os/kern) failure", - "(os/kern) resource shortage", - "(os/kern) not receiver", - "(os/kern) no access", - "(os/kern) memory failure", - "(os/kern) memory error", - "(os/kern) already in set", - "(os/kern) not in set", - "(os/kern) name exists", - "(os/kern) aborted", - "(os/kern) invalid name", - "(os/kern) invalid task", - "(os/kern) invalid right", - "(os/kern) invalid value", - "(os/kern) urefs overflow", - "(os/kern) invalid capability", - "(os/kern) right exists", - "(os/kern) invalid host", - "(os/kern) memory present", -}; - -static char * err_codes_device[] = { - "(os/device) hardware IO error", - "(os/device) operation would block", - "(os/device) no such device", - "(os/device) device already open", - "(os/device) device is shut down", - "(os/device) invalid operation", - "(os/device) invalid record number", - "(os/device) invalid IO size", - "(os/device) memory allocation failure", - "(os/device) read only", -}; - -static char * err_codes_unix[] = { - NO_SUCH_ERROR, - "(os/unix) no rights to object", - "(os/unix) file or directory does not exist", - "(os/unix) no such process", - "(os/unix) interrupted system call", - "(os/unix) i/o error", - "(os/unix) device does not exist", - "(os/unix) argument list is too long", - "(os/unix) invalid executable object format", - "(os/unix) bad file descriptor number", - "(os/unix) no child processes are present", - "(os/unix) no more processes are available", - "(os/unix) insufficient memory", - "(os/unix) access denied", - "(os/unix) memory access fault", - "(os/unix) block device required for operation", - "(os/unix) mount device busy", - "(os/unix) file already exists", - "(os/unix) cross device link", - "(os/unix) device does not exist", - "(os/unix) object is not a directory", - "(os/unix) object is a directory", - "(os/unix) invalid argument", - "(os/unix) internal file table overflow", - "(os/unix) maximum number of open files reached", - "(os/unix) object is not a tty-like device", - "(os/unix) executable object is in use", - "(os/unix) file is too large", - "(os/unix) no space is left on device", - "(os/unix) illegal seek attempt", - "(os/unix) read-only file system", - "(os/unix) too many links", - "(os/unix) broken pipe", - "(os/unix) argument is too large", - "(os/unix) result is out of range", - "(os/unix) operation on device would block", - "(os/unix) operation is now in progress", - "(os/unix) operation is already in progress", - "(os/unix) socket operation attempted on non-socket object", - "(os/unix) destination address is required", - "(os/unix) message is too long", - "(os/unix) protocol type is incorrect for socket", - "(os/unix) protocol type is not available", - "(os/unix) protocol type is not supported", - "(os/unix) socket type is not supported", - "(os/unix) operation is not supported on sockets", - "(os/unix) protocol family is not supported", - "(os/unix) address family is not supported by protocol family", - "(os/unix) address is already in use", - "(os/unix) can't assign requested address", - "(os/unix) network is down", - "(os/unix) network is unreachable", - "(os/unix) network dropped connection on reset", - "(os/unix) software aborted connection", - "(os/unix) connection reset by peer", - "(os/unix) no buffer space is available", - "(os/unix) socket is already connected", - "(os/unix) socket is not connected", - "(os/unix) can't send after socket shutdown", - "(os/unix) too many references; can't splice", - "(os/unix) connection timed out", - "(os/unix) connection was refused", - "(os/unix) too many levels of symbolic links", - "(os/unix) file name exceeds system maximum limit", - "(os/unix) host is down", - "(os/unix) there is no route to host", - "(os/unix) directory is not empty", - "(os/unix) quota on number of processes exceeded", - "(os/unix) quota on number of users exceeded", - "(os/unix) quota on available disk space exceeded", -}; - -static struct error_subsystem err_kern_sub[] = { - { - "(os/kern)", - errlib_count(err_codes_kern), - err_codes_kern, - }, - { - "(os/device)", - errlib_count(err_codes_device), - err_codes_device, - }, - { - "(os/?)", - 0, - }, - { - "(os/unix)", - errlib_count(err_codes_unix), - err_codes_unix, - }, -}; diff --git a/mach/err_mach.sub b/mach/err_mach.sub deleted file mode 100644 index 708047150e..0000000000 --- a/mach/err_mach.sub +++ /dev/null @@ -1,130 +0,0 @@ -/* - * 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * HISTORY - * $Log$ - * Revision 1.1 1992/10/06 18:29:52 roland - * entered into RCS - * - * Revision 2.3 92/04/01 19:38:05 rpd - * Added MIG_DESTROY_REQUEST. - * [92/03/09 rpd] - * - * Revision 2.2 92/01/16 00:09:05 rpd - * Moved from user collection to mk collection. - * - * Revision 2.3 91/08/29 15:51:30 rpd - * Added MIG_SERVER_DIED. - * [91/08/21 rpd] - * - * Revision 2.2 91/03/27 16:05:37 mrt - * First checkin - * - * Revision 2.2 91/03/18 17:39:03 rpd - * Created. - * [91/03/18 rpd] - * - */ -/* - * File: err_mach_ipc.sub - * Author: Richard Draves, Carnegie Mellon University - * Date: Jan, 1990 - * - * Error string definitions for the new Mach IPC - */ - -static char * err_codes_mach_send[] = { - /* 0 */ "(ipc/send) no error", - /* 1 */ "(ipc/send) send in progress", - /* 2 */ "(ipc/send) invalid data", - /* 3 */ "(ipc/send) invalid destination port", - /* 4 */ "(ipc/send) timed out", - /* 5 */ "(ipc/send) will notify", - /* 6 */ "(ipc/send) notify in progress", - /* 7 */ "(ipc/send) interrupted", - /* 8 */ "(ipc/send) msg too small", - /* 9 */ "(ipc/send) invalid reply port", - /* 10 */ "(ipc/send) invalid port right", - /* 11 */ "(ipc/send) invalid notify port", - /* 12 */ "(ipc/send) invalid memory", - /* 13 */ "(ipc/send) no msg buffer", - /* 14 */ "(ipc/send) no notify possible", - /* 15 */ "(ipc/send) invalid msg-type", - /* 16 */ "(ipc/send) invalid msg-header", -}; - -static char * err_codes_mach_rcv[] = { - /* 0 */ "(ipc/rcv) no error", - /* 1 */ "(ipc/rcv) receive in progress", - /* 2 */ "(ipc/rcv) invalid name", - /* 3 */ "(ipc/rcv) timed out", - /* 4 */ "(ipc/rcv) msg too large", - /* 5 */ "(ipc/rcv) interrupted", - /* 6 */ "(ipc/rcv) port changed", - /* 7 */ "(ipc/rcv) invalid notify port", - /* 8 */ "(ipc/rcv) invalid data", - /* 9 */ "(ipc/rcv) port died", - /* 10 */ "(ipc/rcv) port in set", - /* 11 */ "(ipc/rcv) header error", - /* 12 */ "(ipc/rcv) body error", -}; - -static char * err_codes_mach_mig[] = { - /* 0 */ "(ipc/mig) client type check failure", - /* 1 */ "(ipc/mig) wrong reply message ID", - /* 2 */ "(ipc/mig) server detected error", - /* 3 */ "(ipc/mig) bad request message ID", - /* 4 */ "(ipc/mig) server type check failure", - /* 5 */ "(ipc/mig) no reply should be sent", - /* 6 */ "(ipc/mig) server raised exception", - /* 7 */ "(ipc/mig) array not large enough", - /* 8 */ "(ipc/mig) server died", - /* 9 */ "(ipc/mig) destroy request with no reply", -}; - -/* err_mach_ipc subsystems */ -static struct error_subsystem err_mach_ipc_sub[] = { - /* ipc/0; */ - { - "(ipc/send)", - errlib_count(err_codes_mach_send), - err_codes_mach_send, - }, - /* ipc/1; */ - { - "(ipc/rcv)", - errlib_count(err_codes_mach_rcv), - err_codes_mach_rcv, - - }, - /* ipc/2 */ - { - "(ipc/mig)", - errlib_count(err_codes_mach_mig), - err_codes_mach_mig, - }, - -}; diff --git a/mach/err_server.sub b/mach/err_server.sub deleted file mode 100644 index a2f806aa09..0000000000 --- a/mach/err_server.sub +++ /dev/null @@ -1,370 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989,1988,1987 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * HISTORY - * - * Revision 2.2 92/01/16 00:10:29 rpd - * Moved from user collection to mk collection. - * - * Revision 2.3 91/08/29 15:51:39 rpd - * Fixed err_codes_netname. - * [91/08/22 rpd] - * - * Revision 2.2 91/03/27 16:05:51 mrt - * First checkin - * - * Revision 2.3 90/10/29 17:27:20 dpj - * Merged-up to U25 - * [90/09/02 20:00:25 dpj] - * - */ -/* - * File: err_server.sub - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar, 1988 - * - * Definitions of Servers error strings - */ - -static char * err_codes_netname[] = { /* 0 */ - "(server/netname) name is not yours", - "(server/netname) name not checked in", - "(server/netname) no such host", - "(server/netname) host not found", -}; -static char * err_codes_env_mgr[] = { /* 1 */ - NO_SUCH_ERROR, - "(server/env_mgr) variable not found", - "(server/env_mgr) wrong type of variable", - "(server/env_mgr) unknown port", - "(server/env_mgr) read only environment", - "(server/env_mgr) no more connections available", - "(server/env_mgr) port table full", - "(server/env_mgr) attempting to enter a null port ", -}; -static char * err_codes_execd[] = { /* 2 */ - NO_SUCH_ERROR, - "(server/execd) could not find file to run", - "(server/execd) userid or password incorrect", - "(server/execd) fork failed", -}; -static char * err_codes_netmemory[] = { /* 3 */ - "(server/netmemory) successful", - "(server/netmemory) invalid argument", - "(server/netmemory) resource shortage", -}; -static char * err_codes_ufs[] = { /* 4 */ - NO_SUCH_ERROR, -/* XXX "(server/ufs) invalid port", */ -}; - -static char * err_codes_task_master[] = { /* 5 */ - "(server/task_master) GENERIC ERROR", - "(server/task_master) invalid tm_task port", - "(server/task_master) invalid task id", - "(server/task_master) invalid kernel port", - "(server/task_master) invalid job group", - "(server/task_master) invalid action", -}; - -static char * err_codes_ns[] = { /* 6 */ - "(server/ns) GENERIC ERROR", - "(server/ns) invalid handle", - "(server/ns) name not found", - "(server/ns) name already exists", - "(server/ns) name too long", - "(server/ns) path too long", - "(server/ns) invalid name", - "(server/ns) not a directory", - "(server/ns) is a directory", - "(server/ns) directory not empty", - "(server/ns) infinite retry loop in resolver", - "(server/ns) infinite forwarding loop in resolver", - "(server/ns) invalid prefix", - "(server/ns) prefix table overflow", - "(server/ns) bad format for directory", - "(server/ns) unknown entry type", - "(server/ns) invalid generation", - "(server/ns) entry not reserved", -}; - -static char * err_codes_io[] = { /* 7 */ - "(server/io) GENERIC ERROR", - "(server/io) invalid offset", - "(server/io) invalid size", - "(server/io) invalid mode", - "(server/io) invalid strategy", - "(server/io) operation rejected under current I/O strategy", -}; - -static char * err_codes_auth[] = { /* 8 */ - "(server/auth) GENERIC ERROR", - "(server/auth) bad private port", - "(server/auth) bad name", - "(server/auth) not primary", - "(server/auth) bad pauthsword", - "(server/auth) bad group", - "(server/auth) duplicate id", - "(server/auth) duplicate name", - "(server/auth) not secondary", -}; - -static char * err_codes_us[] = { /* 9 */ - "(server/us) GENERIC ERROR", - "(server/us) unknown error", - "(server/us) object not found", - "(server/us) object exists", - "(server/us) object busy", - "(server/us) object not started", - "(server/us) object dead", - "(server/us) invalid args", - "(server/us) invalid access", - "(server/us) invalid format", - "(server/us) invalid buffer size", - "(server/us) access denied", - "(server/us) resource exhausted", - "(server/us) quota exceeded", - "(server/us) limit exceeded", - "(server/us) not implemented", - "(server/us) not supported", - "(server/us) hardware error", - "(server/us) retry required", - "(server/us) not authenticated", - "(server/us) exclusive access", - "(server/us) timeout", - "(server/us) bad reference count", - "(server/us) internal error", -}; - -static char * err_codes_sunrpc[] = { /* 10 */ - "(server/sunrpc) GENERIC ERROR", - "(server/sunrpc) cannot encode arguments", - "(server/sunrpc) cannot decode results", - "(server/sunrpc) failure in sending call", - "(server/sunrpc) failure in receiving result", - "(server/sunrpc) call timed out", - "(server/sunrpc) rpc versions not compatible", - "(server/sunrpc) authentication error", - "(server/sunrpc) program not available", - "(server/sunrpc) program version mismatched", - "(server/sunrpc) procedure unavailable", - "(server/sunrpc) decode arguments error", - "(server/sunrpc) generic other problem", - "(server/sunrpc) unknown host name", - "(server/sunrpc) portmapper failed", - "(server/sunrpc) remote program not registered", - "(server/sunrpc) unspecified error", - "(server/sunrpc) unknown protocol", -}; - -static char * err_codes_machobj[] = { /* 11 */ - "(server/object system) GENERIC ERROR", - "(server/object system) object not found", - "(server/object system) no such operation", - "(server/object system) undefined ipc method arguments", - "(server/object system) too many arguments to method", - "(server/object system) bad ipc message format", -}; - -static char * err_codes_loader[] = { /* 12 */ - "(server/loader) GENERIC ERROR", - "(server/loader) object file not relocated", - "(server/loader) unknown file type", - "(server/loader) symbol not found", - "(server/loader) symbol multiply defined", - "(server/loader) memory region overlap", -}; - - -static char * err_codes_exception[] = { /* 13 */ - "(server/exception) GENERIC ERROR", - "(server/exception) invalid access", - "(server/exception) invalid instruction", - "(server/exception) arithmetic exception", - "(server/exception) emulation exception", - "(server/exception) software exception", - "(server/exception) breakpoint exception", -}; - -static char * err_codes_ux_signal[] = { /* 14 */ - "(server/unix-signal) GENERIC ERROR", - "(server/unix-signal) hangup", - "(server/unix-signal) interrupt", - "(server/unix-signal) quit", - "(server/unix-signal) undefined", - "(server/unix-signal) undefined", - "(server/unix-signal) undefined", - "(server/unix-signal) undefined", - "(server/unix-signal) kill", - "(server/unix-signal) undefined", - "(server/unix-signal) undefined", - "(server/unix-signal) system error", - "(server/unix-signal) pipe signal", - "(server/unix-signal) alarm", - "(server/unix-signal) terminate", - "(server/unix-signal) urgent i/o", - "(server/unix-signal) stop", - "(server/unix-signal) terminal stop", - "(server/unix-signal) continue", - "(server/unix-signal) child death", - "(server/unix-signal) tty input", - "(server/unix-signal) tty output", - "(server/unix-signal) i/o signal", - "(server/unix-signal) cpu time limit exceeded", - "(server/unix-signal) file size exceeded", - "(server/unix-signal) virtual alarm", - "(server/unix-signal) profile signal", - "(server/unix-signal) window size change", - "(server/unix-signal) user-defined signal 1", - "(server/unix-signal) user-defined signal 2", -}; - -static char * err_codes_xkernel[] = { /* 15 */ - "(server/xkernel) GENERIC ERROR", - "(server/xkernel) map full", - "(server/xkernel) inconsistent bind", - "(server/xkernel) cannot resolve", - "(server/xkernel) cannot unbind", - "(server/xkernel) invalid type", - "(server/xkernel) invalid opcode", - "(server/xkernel) buffer too small", - "(server/xkernel) invalid ev code", - "(server/xkernel) event not registered", - "(server/xkernel) invalid open", - "(server/xkernel) already open", - "(server/xkernel) bad addr", -}; - - -/* err_server subsystems */ -static struct error_subsystem err_server_sub[] = { - /* server/0; */ - { - "(server/netname)", - errlib_count(err_codes_netname), - err_codes_netname, - }, - /* server/1; */ - { - "(server/env_mgr)", - errlib_count(err_codes_env_mgr), - err_codes_env_mgr, - }, - /* server/2; */ - { - "(server/execd)", - errlib_count(err_codes_execd), - err_codes_execd, - }, - /* server/3; */ - { - "(server/netmemory)", - errlib_count(err_codes_netmemory), - err_codes_netmemory, - }, - /* server/4; */ - { - "(server/ufs)", - errlib_count(err_codes_ufs), - err_codes_ufs, - }, - /* server/5; */ - { - "(server/task_master)", - errlib_count(err_codes_task_master), - err_codes_task_master, - }, - /* server/6; */ - { - "(server/ns)", - errlib_count(err_codes_ns), - err_codes_ns, - }, - - /* server/7; i/o subsystem */ - { - "(server/io)", - errlib_count(err_codes_io), - err_codes_io, - }, - - /* server/8; authentication server */ - { - "(server/auth)", - errlib_count(err_codes_auth), - err_codes_auth, - }, - - /* server/9; generic US system */ - { - "(server/us)", - errlib_count(err_codes_us), - err_codes_us, - }, - - /* server/10; SUN RPC package */ - { - "(server/sunrpc)", - errlib_count(err_codes_sunrpc), - err_codes_sunrpc, - }, - - /* server/11; MachObject system */ - { - "(server/object system)", - errlib_count(err_codes_machobj), - err_codes_machobj, - }, - - /* server/12; loader */ - { - "(server/loader)", - errlib_count(err_codes_loader), - err_codes_loader, - }, - - /* server/13; mach exception */ - { - "(server/exception)", - errlib_count(err_codes_exception), - err_codes_exception, - }, - - /* server/14; unix signal */ - { - "(server/unix-signal)", - errlib_count(err_codes_ux_signal), - err_codes_ux_signal, - }, - - /* server/15; xkernel */ - { - "(server/xkernel)", - errlib_count(err_codes_xkernel), - err_codes_xkernel, - }, - -}; diff --git a/mach/err_us.sub b/mach/err_us.sub deleted file mode 100644 index 184f11d369..0000000000 --- a/mach/err_us.sub +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989,1988,1987 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * HISTORY - * - * Revision 2.2 92/01/16 00:10:45 rpd - * Moved from user collection to mk collection. - * - * Revision 2.2 91/03/27 16:06:06 mrt - * First checkin - * - */ -/* - * File: err_us.sub - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar, 1988 - * - * A place to define User errors - */ - - -/* err_us subsystems */ -static struct error_subsystem err_us_sub[] = { - {0,0,0} -}; diff --git a/mach/error_compat.c b/mach/error_compat.c deleted file mode 100644 index 8f7bd87c0f..0000000000 --- a/mach/error_compat.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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. - */ - -/* This file was broken out from: - - Revision 2.3 92/04/01 19:38:18 rpd - - The static do_compat function is renamed to be globally accessible. - */ - -#include <mach/error.h> -#include <mach_error.h> -#include <errorlib.h> - - -void -__mach_error_map_compat(mach_error_t *org_err) -{ - mach_error_t err = *org_err; - - /* - * map old error numbers to - * to new error sys & subsystem - */ - - if ((-200 < err) && (err <= -100)) - err = -(err + 100) | IPC_SEND_MOD; - else if ((-300 < err) && (err <= -200)) - err = -(err + 200) | IPC_RCV_MOD; - else if ((-400 < err) && (err <= -300)) - err = -(err + 300) | MACH_IPC_MIG_MOD; - else if ((1000 <= err) && (err < 1100)) - err = (err - 1000) | SERV_NETNAME_MOD; - else if ((1600 <= err) && (err < 1700)) - err = (err - 1600) | SERV_ENV_MOD; - else if ((27600 <= err) && (err < 27700)) - err = (err - 27600) | SERV_EXECD_MOD; - else if ((2500 <= err) && (err < 2600)) - err = (err - 2500) | KERN_DEVICE_MOD; - else if ((5000 <= err) && (err < 5100)) - err = (err - 5000) | BOOTSTRAP_FS_MOD; - - *org_err = err; -} diff --git a/mach/errorlib.h b/mach/errorlib.h deleted file mode 100644 index ff0c55eb36..0000000000 --- a/mach/errorlib.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.3 92/03/31 15:18:52 rpd - * Added KERN_DEVICE_MOD for device errors. - * [92/03/09 rpd] - * - * Revision 2.2 92/01/16 00:21:17 rpd - * Moved from user collection to mk collection. - * - * Revision 2.2 91/03/27 15:37:37 mrt - * First checkin - * - */ -/* - * File: errorlib.h - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar. 1988 - * - * Error bases for subsytems errors. - */ - -#include <mach/error.h> - -#define KERN_DEVICE_MOD (err_kern|err_sub(1)) - -#define BOOTSTRAP_FS_MOD (err_bootstrap|err_sub(0)) - -#define MACH_IPC_SEND_MOD (err_mach_ipc|err_sub(0)) -#define MACH_IPC_RCV_MOD (err_mach_ipc|err_sub(1)) -#define MACH_IPC_MIG_MOD (err_mach_ipc|err_sub(2)) - -#define IPC_SEND_MOD (err_ipc|err_sub(0)) -#define IPC_RCV_MOD (err_ipc|err_sub(1)) -#define IPC_MIG_MOD (err_ipc|err_sub(2)) - -#define SERV_NETNAME_MOD (err_server|err_sub(0)) -#define SERV_ENV_MOD (err_server|err_sub(1)) -#define SERV_EXECD_MOD (err_server|err_sub(2)) - - -#define NO_SUCH_ERROR "unknown error code" - -struct error_subsystem { - const char * subsys_name; - int max_code; - const char * const * codes; -}; - -struct error_system { - int max_sub; - const char * bad_sub; - const struct error_subsystem * subsystem; -}; - -#define errors __mach_error_systems -extern const struct error_system errors[err_max_system+1]; - -#define errlib_count(s) (sizeof(s)/sizeof(s[0])) diff --git a/mach/errstring.c b/mach/errstring.c deleted file mode 100644 index c00b02c2a6..0000000000 --- a/mach/errstring.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.3 92/04/01 19:38:18 rpd - * Updated do_compat for kernel device errors, - * bootstrap file-system errors. - * [92/03/09 rpd] - * - * Revision 2.2 92/02/20 15:58:08 elf - * Created from mach_error.c. - * [92/02/11 rpd] - * - */ - -#define EXPORT_BOOLEAN -#include <mach/boolean.h> -#include <mach/error.h> -#include <mach_error.h> -#include <errorlib.h> - -extern void __mach_error_map_compat (mach_error_t *); - -const char * -mach_error_type(mach_error_t err) -{ - int sub, system; - - __mach_error_map_compat( &err ); - - sub = err_get_sub(err); - system = err_get_system(err); - - if (system > err_max_system - || sub >= errors[system].max_sub ) return( "(?/?)" ); - return( errors[system].subsystem[sub].subsys_name ); -} - -boolean_t mach_error_full_diag = FALSE; - -const char * -mach_error_string_int(mach_error_t err, - boolean_t * diag) -{ - int sub, system, code; - - __mach_error_map_compat( &err ); - - sub = err_get_sub(err); - system = err_get_system(err); - code = err_get_code(err); - - *diag = TRUE; - - if (system > err_max_system) return( "(?/?) unknown error system" ); - if (sub >= errors[system].max_sub) return( errors[system].bad_sub ); - if (code >= errors[system].subsystem[sub].max_code) return ( NO_SUCH_ERROR ); - - *diag = mach_error_full_diag; - return( errors[system].subsystem[sub].codes[code] ); -} - -const char * -mach_error_string(mach_error_t err) -{ - boolean_t diag; - - return mach_error_string_int( err, &diag ); - -} diff --git a/mach/errsystems.awk b/mach/errsystems.awk deleted file mode 100644 index a5e93604bc..0000000000 --- a/mach/errsystems.awk +++ /dev/null @@ -1,23 +0,0 @@ -BEGIN { - print "#include <errno.h>"; - print "#include <mach/error.h>"; - print "#include <errorlib.h>"; - print "#define static static const"; - nsubs = split(subsys, subs); - while (nsubs > 0) printf "#include \"%s\"\n", subs[nsubs--]; - print "\n\n\ -const struct error_system __mach_error_systems[err_max_system + 1] ="; - print " {"; -} -/^static.*err_[a-z0-9A-Z_]+_sub *\[/ { - s = $0; sub(/^.*err_/, "", s); sub(/_sub.*$/, "", s); - printf " [err_get_system (err_%s)] = { errlib_count (err_%s_sub),", - s, s; - printf "\"(system %s) error with unknown subsystem\", err_%s_sub },\n", - s, s; -} -END { - print " };"; - print "\n\ -const int __mach_error_system_count = errlib_count (__mach_error_systems);"; -} diff --git a/mach/lock-intern.h b/mach/lock-intern.h deleted file mode 100644 index 94f306d31a..0000000000 --- a/mach/lock-intern.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright (C) 1994-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _LOCK_INTERN_H -#define _LOCK_INTERN_H - -#include <sys/cdefs.h> -#include <machine-lock.h> - -#ifndef _EXTERN_INLINE -#define _EXTERN_INLINE __extern_inline -#endif - - -/* Initialize LOCK. */ - -_EXTERN_INLINE void -__spin_lock_init (__spin_lock_t *__lock) -{ - *__lock = __SPIN_LOCK_INITIALIZER; -} - - -/* Lock LOCK, blocking if we can't get it. */ -extern void __spin_lock_solid (__spin_lock_t *__lock); - -/* Lock the spin lock LOCK. */ - -_EXTERN_INLINE void -__spin_lock (__spin_lock_t *__lock) -{ - if (! __spin_try_lock (__lock)) - __spin_lock_solid (__lock); -} - -/* Name space-clean internal interface to mutex locks. - - Code internal to the C library uses these functions to lock and unlock - mutex locks. These locks are of type `struct mutex', defined in - <cthreads.h>. The functions here are name space-clean. If the program - is linked with the cthreads library, `__mutex_lock_solid' and - `__mutex_unlock_solid' will invoke the corresponding cthreads functions - to implement real mutex locks. If not, simple stub versions just use - spin locks. */ - - -/* Initialize the newly allocated mutex lock LOCK for further use. */ -extern void __mutex_init (void *__lock); - -/* Lock LOCK, blocking if we can't get it. */ -extern void __mutex_lock_solid (void *__lock); - -/* Finish unlocking LOCK, after the spin lock LOCK->held has already been - unlocked. This function will wake up any thread waiting on LOCK. */ -extern void __mutex_unlock_solid (void *__lock); - -/* Lock the mutex lock LOCK. */ - -_EXTERN_INLINE void -__mutex_lock (void *__lock) -{ - if (! __spin_try_lock ((__spin_lock_t *) __lock)) - __mutex_lock_solid (__lock); -} - -/* Unlock the mutex lock LOCK. */ - -_EXTERN_INLINE void -__mutex_unlock (void *__lock) -{ - __spin_unlock ((__spin_lock_t *) __lock); - __mutex_unlock_solid (__lock); -} - - -_EXTERN_INLINE int -__mutex_trylock (void *__lock) -{ - return __spin_try_lock ((__spin_lock_t *) __lock); -} - -#endif /* lock-intern.h */ diff --git a/mach/mach.h b/mach/mach.h deleted file mode 100644 index 42605af865..0000000000 --- a/mach/mach.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Standard header for all Mach programs. - Copyright (C) 1993-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _MACH_H - -#define _MACH_H 1 - -#include <features.h> - -/* Get the basic types used by Mach. */ -#include <mach/mach_types.h> - -/* This declares the basic variables and macros everything needs. */ -#include <mach_init.h> - -/* This declares all the real system call functions. */ -#include <mach/mach_traps.h> - -/* These are MiG-generated headers for the kernel interfaces commonly used. */ -#include <mach/mach_interface.h> /* From <mach/mach.defs>. */ -#include <mach/mach_port.h> -#include <mach/mach_host.h> - -/* For the kernel RPCs which have system call shortcut versions, - the MiG-generated header in fact declares `CALL_rpc' rather than `CALL'. - This file declares the simple `CALL' functions. */ -#include <mach-shortcuts.h> - - -/* Receive RPC request messages on RCV_NAME and pass them to DEMUX, which - decodes them and produces reply messages. MAX_SIZE is the maximum size - (in bytes) of the request and reply buffers. */ -extern mach_msg_return_t -__mach_msg_server (boolean_t (*__demux) (mach_msg_header_t *__request, - mach_msg_header_t *__reply), - mach_msg_size_t __max_size, - mach_port_t __rcv_name), -mach_msg_server (boolean_t (*__demux) (mach_msg_header_t *__request, - mach_msg_header_t *__reply), - mach_msg_size_t __max_size, - mach_port_t __rcv_name); - -/* Just like `mach_msg_server', but the OPTION and TIMEOUT parameters are - passed on to `mach_msg'. */ -extern mach_msg_return_t -__mach_msg_server_timeout (boolean_t (*__demux) (mach_msg_header_t *__request, - mach_msg_header_t *__reply), - mach_msg_size_t __max_size, - mach_port_t __rcv_name, - mach_msg_option_t __option, - mach_msg_timeout_t __timeout), -mach_msg_server_timeout (boolean_t (*__demux) (mach_msg_header_t *__request, - mach_msg_header_t *__reply), - mach_msg_size_t __max_size, - mach_port_t __rcv_name, - mach_msg_option_t __option, - mach_msg_timeout_t __timeout); - - -/* Deallocate all port rights and out-of-line memory in MSG. */ -extern void -__mach_msg_destroy (mach_msg_header_t *msg), -mach_msg_destroy (mach_msg_header_t *msg); - -#include <bits/types/FILE.h> - -/* Open a stream on a Mach device. */ -extern FILE *mach_open_devstream (mach_port_t device_port, const char *mode); - -/* Give THREAD a stack and set it to run at PC when resumed. - If *STACK_SIZE is nonzero, that size of stack is allocated. - If *STACK_BASE is nonzero, that stack location is used. - If STACK_BASE is not null it is filled in with the chosen stack base. - If STACK_SIZE is not null it is filled in with the chosen stack size. - Regardless, an extra page of red zone is allocated off the end; this - is not included in *STACK_SIZE. */ -kern_return_t __mach_setup_thread (task_t task, thread_t thread, void *pc, - vm_address_t *stack_base, - vm_size_t *stack_size); -kern_return_t mach_setup_thread (task_t task, thread_t thread, void *pc, - vm_address_t *stack_base, - vm_size_t *stack_size); - - -#endif /* mach.h */ diff --git a/mach/mach/error.h b/mach/mach/error.h deleted file mode 100644 index 084d8afd37..0000000000 --- a/mach/mach/error.h +++ /dev/null @@ -1,137 +0,0 @@ -/* err_hurd added by roland@gnu.ai.mit.edu for GNU Hurd. - * - * Mach Operating System - * Copyright (c) 1991,1990,1989,1988,1987 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. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.6 93/01/14 17:41:31 danner - * Standardized include symbol name. - * [92/06/10 pds] - * - * Revision 2.5 92/03/31 15:18:11 rpd - * Added err_bootstrap for bootstrap errors. - * [92/03/09 rpd] - * - * Revision 2.4 91/05/14 16:51:24 mrt - * Correcting copyright - * - * Revision 2.3 91/02/05 17:31:48 mrt - * Changed to new Mach copyright - * [91/02/01 17:16:50 mrt] - * - * Revision 2.2 90/06/02 14:57:47 rpd - * Added err_mach_ipc for new IPC. - * [90/03/26 22:28:42 rpd] - * - * Revision 2.1 89/08/03 16:02:07 rwd - * Created. - * - * Revision 2.4 89/02/25 18:13:18 gm0w - * Changes for cleanup. - * - * Revision 2.3 89/02/07 00:51:57 mwyoung - * Relocated from sys/error.h - * - * Revision 2.2 88/10/18 00:37:31 mwyoung - * Added {system,sub and code}_emask - * [88/10/17 17:06:58 mrt] - * - * Added {system,sub and code}_emask - * - * 12-May-88 Mary Thompson (mrt) at Carnegie Mellon - * Changed mach_error_t from unsigned int to kern_return_t - * which is a 32 bit integer regardless of machine type. - * unsigned int was incompatible with old usages of mach_error. - * - * 10-May-88 Douglas Orr (dorr) at Carnegie-Mellon University - * Missing endif replaced - * - * 5-May-88 Mary Thompson (mrt) at Carnegie Mellon - * Changed typedef of mach_error_t from long to unsigned int - * to keep our Camelot users happy. Also moved the nonkernel - * function declarations from here to mach_error.h. - * - * 10-Feb-88 Douglas Orr (dorr) at Carnegie-Mellon University - * Created. - * - */ -/* - * File: mach/error.h - * Purpose: - * error module definitions - * - */ - -#ifndef _MACH_ERROR_H_ -#define _MACH_ERROR_H_ -#include <mach/kern_return.h> - -/* - * error number layout as follows: - * - * hi lo - * | system(6) | subsystem(12) | code(14) | - */ - - -#define err_none (mach_error_t)0 -#define ERR_SUCCESS (mach_error_t)0 -#define ERR_ROUTINE_NIL (mach_error_fn_t)0 - - -#define err_system(x) (((x)&0x3f)<<26) -#define err_sub(x) (((x)&0xfff)<<14) - -#define err_get_system(err) (((err)>>26)&0x3f) -#define err_get_sub(err) (((err)>>14)&0xfff) -#define err_get_code(err) ((err)&0x3fff) - -#define system_emask (err_system(0x3f)) -#define sub_emask (err_sub(0xfff)) -#define code_emask (0x3fff) - - -/* major error systems */ -#define err_kern err_system(0x0) /* kernel */ -#define err_us err_system(0x1) /* user space library */ -#define err_server err_system(0x2) /* user space servers */ -#define err_ipc err_system(0x3) /* old ipc errors */ -#define err_mach_ipc err_system(0x4) /* mach-ipc errors */ -#define err_bootstrap err_system(0x5) /* bootstrap errors */ -#define err_hurd err_system(0x10) /* GNU Hurd server errors */ -#define err_local err_system(0x3e) /* user defined errors */ -#define err_ipc_compat err_system(0x3f) /* (compatibility) mach-ipc errors */ - -#define err_max_system 0x3f - - -/* unix errors get lumped into one subsystem */ -#define unix_err(errno) (err_kern|err_sub(3)|errno) - -typedef kern_return_t mach_error_t; -/* typedef mach_error_t (* mach_error_fn_t)(); */ - -#endif /* _MACH_ERROR_H_ */ diff --git a/mach/mach/mach.h b/mach/mach/mach.h deleted file mode 100644 index 826e7172a7..0000000000 --- a/mach/mach/mach.h +++ /dev/null @@ -1,3 +0,0 @@ -/* Some old programs may expect to find <mach.h> in <mach/mach.h>. */ - -#include <mach.h> diff --git a/mach/mach/mach_traps.h b/mach/mach/mach_traps.h deleted file mode 100644 index cd3d7b8924..0000000000 --- a/mach/mach/mach_traps.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (C) 1994-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* Declare the few Mach system calls (except mach_msg, in <mach/message.h>). - This does not include the kernel RPC shortcut calls (in <mach-shortcuts.h>). - - This file omits the MACH_IPC_COMPAT functions. */ - -#ifndef _MACH_MACH_TRAPS_H - -#define _MACH_MACH_TRAPS_H_ 1 - -#include <mach/port.h> -#include <mach/message.h> /* mach_msg_timeout_t */ -#include <mach/kern_return.h> - -/* Create and return a new receive right. */ -extern mach_port_t mach_reply_port (void); -extern mach_port_t __mach_reply_port (void); - -/* Return the thread control port for the calling thread. */ -extern mach_port_t mach_thread_self (void); -extern mach_port_t __mach_thread_self (void); - -/* Return the task control port for the calling task. - The parens are needed to protect against the macro in <mach_init.h>. */ -extern mach_port_t (mach_task_self) (void); -extern mach_port_t (__mach_task_self) (void); - -/* Return the host information port for the host of the calling task. - The parens are needed to protect against the macro in <mach_init.h>. */ -extern mach_port_t (mach_host_self) (void); -extern mach_port_t (__mach_host_self) (void); - -/* Attempt to context switch the current thread off the processor. Returns - true if there are other threads that can be run and false if not. */ -extern boolean_t swtch (void); -extern boolean_t __swtch (void); - -/* Attempt to context switch the current thread off the processor. Lower - the thread's priority as much as possible. The thread's priority will - be restored when it runs again. PRIORITY is currently unused. Return - true if there are other threads that can be run and false if not. */ -extern boolean_t swtch_pri (int priority); -extern boolean_t __swtch_pri (int priority); - -/* Attempt to context switch the current thread off the processor. Try - to run NEW_THREAD next, ignoring normal scheduling policies. The - OPTION value comes from <mach/thread_switch.h>. If OPTION is - SWITCH_OPTION_WAIT, then block the current thread for TIME - milliseconds. If OPTION is SWITCH_OPTION_DEPRESS, then block for - TIME milliseconds and depress the thread's priority as done by - swtch_pri. If OPTION is SWITCH_OPTION_NONE, ignore TIME. */ -kern_return_t thread_switch (mach_port_t new_thread, - int option, mach_msg_timeout_t option_time); -kern_return_t __thread_switch (mach_port_t new_thread, - int option, mach_msg_timeout_t option_time); - -/* Block the current thread until the kernel (or device) event - identified by EVENT occurs. */ -kern_return_t evc_wait (unsigned int event); -kern_return_t __evc_wait (unsigned int event); - -/* Display a null-terminated character string on the Mach console. This - system call is meant as a debugging tool useful to circumvent messaging - altogether. */ - -extern void mach_print(const char *s); - -#endif /* mach/mach_traps.h */ diff --git a/mach/mach/mig_support.h b/mach/mach/mig_support.h deleted file mode 100644 index 7300d7996b..0000000000 --- a/mach/mach/mig_support.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright (C) 1993-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* Useful declarations and support functions for MiG-generated stubs. */ - -#ifndef _MACH_MIG_SUPPORT_H - -#define _MACH_MIG_SUPPORT_H 1 - -#include <mach/std_types.h> -#include <mach/message.h> -#include <sys/types.h> -#include <string.h> - -#ifndef __USE_GNU -/* The only problem that has come up so far is __stpncpy being undeclared - below because <string.h> doesn't declare it without __USE_GNU. We could - work around that problem by just adding the declaration there, or by - eliding the inline functions in the absence of __USE_GNU. But either of - these would result in unoptimized calls (because no inline version of - __stpncpy will have been defined), and there may be other niggling - problems lurking. Instead we simply insist on _GNU_SOURCE for - compiling mig output; anyway, that better reflects the fact that mig - output requires nonstandard special support code not found elsewhere. */ -# error mig stubs must be compiled with -D_GNU_SOURCE -#endif - -/* MiG initialization. */ -extern void __mig_init (void *__first); -extern void mig_init (void *__first); - -/* Shorthand functions for vm_allocate and vm_deallocate on - mach_task_self () (and with ANYWHERE=1). */ -extern void __mig_allocate (vm_address_t *__addr_p, vm_size_t __size); -extern void mig_allocate (vm_address_t *__addr_p, vm_size_t __size); -extern void __mig_deallocate (vm_address_t __addr, vm_size_t __size); -extern void mig_deallocate (vm_address_t __addr, vm_size_t __size); - -/* Reply-port management support functions. */ -extern void __mig_dealloc_reply_port (mach_port_t); -extern void mig_dealloc_reply_port (mach_port_t); -extern mach_port_t __mig_get_reply_port (void); -extern mach_port_t mig_get_reply_port (void); -extern void __mig_put_reply_port (mach_port_t); -extern void mig_put_reply_port (mach_port_t); - -extern void __mig_reply_setup (const mach_msg_header_t *__request, - mach_msg_header_t *__reply); -extern void mig_reply_setup (const mach_msg_header_t *__request, - mach_msg_header_t *__reply); - -/* Idiocy support function. */ -extern vm_size_t mig_strncpy (char *__dst, const char *__src, vm_size_t __len); -extern vm_size_t __mig_strncpy (char *__dst, const char *__src, vm_size_t); -__extern_inline vm_size_t -__mig_strncpy (char *__dst, const char *__src, vm_size_t __len) -{ - return __stpncpy (__dst, __src, __len) - __dst; -} -__extern_inline vm_size_t -mig_strncpy (char *__dst, const char *__src, vm_size_t __len) -{ - return __mig_strncpy (__dst, __src, __len); -} - - - -#endif /* mach/mig_support.h */ diff --git a/mach/mach_error.c b/mach/mach_error.c deleted file mode 100644 index 0d3082d021..0000000000 --- a/mach/mach_error.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.4 92/02/19 15:10:52 elf - * Moved mach_error_string and mach_error_type to mach_error_string.c. - * [92/02/11 rpd] - * - * Revision 2.3 92/01/23 15:22:06 rpd - * Changed <servers/errorlib.h> to <errorlib.h>. - * [92/01/16 rpd] - * - * Revision 2.2 92/01/16 00:08:03 rpd - * Moved from user collection to mk collection. - * - * Revision 2.3 91/08/29 15:51:50 rpd - * Changed IPC_MIG_MOD to MACH_IPC_MIG_MOD, to get the new error strings. - * [91/08/22 rpd] - * - * Revision 2.2 91/03/27 16:06:29 mrt - * Changed include of "errorlib.h" to <servers/errorlib.h> - * Added new copyright - * [91/03/20 mrt] - * - */ -/* - * File: mach_error.c - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar 1988 - * - * interprets structured mach error codes and prints - * or returns a descriptive string. - */ - -#include <stdio.h> -#include <mach_error.h> -#include <mach/boolean.h> - -extern char * mach_error_string_int(mach_error_t, boolean_t *); - -void -mach_error(char *str, mach_error_t err) -{ - char * err_str; - char buf[1024]; - boolean_t diag; - - err_str=mach_error_string_int(err, &diag); - - if ( diag ) { - sprintf( buf, "%s %s (%x)", mach_error_type(err), err_str, err ); - err_str = buf; - } - - fprintf(stderr, "%s %s\n", str, err_str); -} diff --git a/mach/mach_error.h b/mach/mach_error.h deleted file mode 100644 index fc4a3fed7e..0000000000 --- a/mach/mach_error.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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 - * 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 the - * rights to redistribute these changes. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.2 92/01/16 00:08:10 rpd - * Moved from user collection to mk collection. - * - * Revision 2.2 91/03/27 15:39:13 mrt - * First checkin - * - */ -/* - * File: mach_error.h - * Author: Douglas Orr, Carnegie Mellon University - * Date: Mar. 1988 - * - * Definitions of routines in mach_error.c - */ - -#ifndef _MACH_ERROR_ -#define _MACH_ERROR_ 1 - -#include <mach/error.h> - -const char *mach_error_string( -/* - * Returns a string appropriate to the error argument given - */ - mach_error_t error_value - ); - -void mach_error( -/* - * Prints an appropriate message on the standard error stream - */ - char *str, - mach_error_t error_value - ); - -const char *mach_error_type( -/* - * Returns a string with the error system, subsystem and code -*/ - mach_error_t error_value - ); - -#endif /* _MACH_ERROR_ */ diff --git a/mach/mach_init.c b/mach/mach_init.c deleted file mode 100644 index 75eb218d01..0000000000 --- a/mach/mach_init.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <mach.h> -#include <mach/mig_support.h> -#include <unistd.h> - -mach_port_t __mach_task_self_; -mach_port_t __mach_host_self_; -vm_size_t __vm_page_size = 0; /* Must be data not bss for weak alias. */ -weak_alias (__vm_page_size, vm_page_size) - -#ifdef NDR_DEF_HEADER -/* This defines NDR_record, which the MiG-generated stubs use. XXX namespace */ -# include NDR_DEF_HEADER -#endif - -void -__mach_init (void) -{ - kern_return_t err; - - __mach_task_self_ = (__mach_task_self) (); - __mach_host_self_ = (__mach_host_self) (); - __mig_init (0); - -#ifdef HAVE_HOST_PAGE_SIZE - if (err = __host_page_size (__mach_host_self (), &__vm_page_size)) - _exit (err); -#else - { - vm_statistics_data_t stats; - if (err = __vm_statistics (__mach_task_self (), &stats)) - _exit (err); - __vm_page_size = stats.pagesize; - } -#endif -} -weak_alias (__mach_init, mach_init) diff --git a/mach/mach_init.h b/mach/mach_init.h deleted file mode 100644 index 7e1bc42c68..0000000000 --- a/mach/mach_init.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Declarations and macros for the basic Mach things set at startup. - Copyright (C) 1993-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _MACH_INIT_H - -#define _MACH_INIT_H 1 - -#include <mach/mach_types.h> - -/* Return the current task's task port. */ -extern mach_port_t __mach_task_self (void); -extern mach_port_t mach_task_self (void); - -/* This cache is initialized at startup. */ -extern mach_port_t __mach_task_self_; -#define __mach_task_self() (__mach_task_self_ + 0) /* Not an lvalue. */ -#define mach_task_self() (__mach_task_self ()) - -/* This cache is initialized at startup. */ -extern mach_port_t __mach_host_self_; -#define __mach_host_self() (__mach_host_self_ + 0) /* Not an lvalue. */ -#define mach_host_self() (__mach_host_self ()) - -/* Kernel page size. */ -extern vm_size_t __vm_page_size; -extern vm_size_t vm_page_size; - -/* Round the address X up to a page boundary. */ -#define round_page(x) \ - ((((vm_offset_t) (x) + __vm_page_size - 1) / __vm_page_size) * \ - __vm_page_size) - -/* Truncate the address X down to a page boundary. */ -#define trunc_page(x) \ - ((((vm_offset_t) (x)) / __vm_page_size) * __vm_page_size) - -#endif /* mach_init.h */ diff --git a/mach/mig-alloc.c b/mach/mig-alloc.c deleted file mode 100644 index 73a23be3aa..0000000000 --- a/mach/mig-alloc.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <mach.h> - -/* Called by MiG to allocate space. */ -void -__mig_allocate (vm_address_t *addr, - vm_size_t size) -{ - if (__vm_allocate (__mach_task_self (), addr, size, 1) != KERN_SUCCESS) - *addr = 0; -} - -weak_alias (__mig_allocate, mig_allocate) diff --git a/mach/mig-dealloc.c b/mach/mig-dealloc.c deleted file mode 100644 index ba6452fea1..0000000000 --- a/mach/mig-dealloc.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <mach.h> - -/* Called by MiG to deallocate space. */ -void -__mig_deallocate (vm_address_t addr, - vm_size_t size) -{ - (void) __vm_deallocate (__mach_task_self (), addr, size); -} -weak_alias (__mig_deallocate, mig_deallocate) diff --git a/mach/mig-reply.c b/mach/mig-reply.c deleted file mode 100644 index fa53216635..0000000000 --- a/mach/mig-reply.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <mach.h> - -/* These functions are called by MiG-generated code. */ - -static mach_port_t reply_port; - -/* Called by MiG to get a reply port. */ -mach_port_t -__mig_get_reply_port (void) -{ - if (reply_port == MACH_PORT_NULL) - reply_port = __mach_reply_port (); - - return reply_port; -} - -/* Called by MiG to deallocate the reply port. */ -void -__mig_dealloc_reply_port (void) -{ - mach_port_t port = reply_port; - reply_port = MACH_PORT_NULL; /* So the mod_refs RPC won't use it. */ - __mach_port_mod_refs (__mach_task_self (), port, - MACH_PORT_RIGHT_RECEIVE, -1); -} - - -/* Called at startup with CPROC == NULL. cthreads has a different version - of this function that is sometimes called with a `cproc_t' pointer. */ -void -__mig_init (void *cproc) -{ - if (cproc == 0) - reply_port = MACH_PORT_NULL; -} diff --git a/mach/mig_strncpy.c b/mach/mig_strncpy.c deleted file mode 100644 index b0c001d775..0000000000 --- a/mach/mig_strncpy.c +++ /dev/null @@ -1,11 +0,0 @@ -/* Silly pointless function MiG needs. */ - -#include <mach.h> -#include <string.h> - -vm_size_t -__mig_strncpy (char *dst, const char *src, vm_size_t len) -{ - return __stpncpy (dst, src, len) - dst; -} -weak_alias (__mig_strncpy, mig_strncpy) diff --git a/mach/msg-destroy.c b/mach/msg-destroy.c deleted file mode 100644 index bc7dd558e9..0000000000 --- a/mach/msg-destroy.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * 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. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.4 91/05/14 17:53:15 mrt - * Correcting copyright - * - * Revision 2.3 91/02/14 14:17:43 mrt - * Added new Mach copyright - * [91/02/13 12:44:15 mrt] - * - * Revision 2.2 90/08/06 17:24:22 rpd - * Created. - * - */ - -#if 1 -#include <mach.h> -#else -/* This is what CMU did, but that fails to declare some used functions. */ -#include <mach/port.h> -#include <mach/message.h> -#include <mach_init.h> -#endif - -static void mach_msg_destroy_port(mach_port_t, mach_msg_type_name_t); -static void mach_msg_destroy_memory(vm_offset_t, vm_size_t); - -/* - * Routine: mach_msg_destroy - * Purpose: - * Deallocates all port rights and out-of-line memory - * found in a received message. - */ - -void -__mach_msg_destroy (mach_msg_header_t *msg) -{ - mach_msg_bits_t mbits = msg->msgh_bits; - - /* - * The msgh_local_port field doesn't hold a port right. - * The receive operation consumes the destination port right. - */ - - mach_msg_destroy_port(msg->msgh_remote_port, MACH_MSGH_BITS_REMOTE(mbits)); - - if (mbits & MACH_MSGH_BITS_COMPLEX) { -#ifdef MACH_MSG_PORT_DESCRIPTOR - mach_msg_body_t *body; - mach_msg_descriptor_t *saddr, *eaddr; - - body = (mach_msg_body_t *) (msg + 1); - saddr = (mach_msg_descriptor_t *) - ((mach_msg_base_t *) msg + 1); - eaddr = saddr + body->msgh_descriptor_count; - - for ( ; saddr < eaddr; saddr++) { - switch (saddr->type.type) { - - case MACH_MSG_PORT_DESCRIPTOR: { - mach_msg_port_descriptor_t *dsc; - - /* - * Destroy port rights carried in the message - */ - dsc = &saddr->port; - mach_msg_destroy_port(dsc->name, dsc->disposition); - break; - } - - case MACH_MSG_OOL_DESCRIPTOR : { - mach_msg_ool_descriptor_t *dsc; - - /* - * Destroy memory carried in the message - */ - dsc = &saddr->out_of_line; - if (dsc->deallocate) { - mach_msg_destroy_memory((vm_offset_t)dsc->address, - dsc->size); - } - break; - } - - case MACH_MSG_OOL_PORTS_DESCRIPTOR : { - mach_port_t *ports; - mach_msg_ool_ports_descriptor_t *dsc; - mach_msg_type_number_t j; - - /* - * Destroy port rights carried in the message - */ - dsc = &saddr->ool_ports; - ports = (mach_port_t *) dsc->address; - for (j = 0; j < dsc->count; j++, ports++) { - mach_msg_destroy_port(*ports, dsc->disposition); - } - - /* - * Destroy memory carried in the message - */ - if (dsc->deallocate) { - mach_msg_destroy_memory((vm_offset_t)dsc->address, - dsc->count * sizeof(mach_port_t)); - } - break; - } - } - } -#else - vm_offset_t saddr; - vm_offset_t eaddr; - - saddr = (vm_offset_t) (msg + 1); - eaddr = (vm_offset_t) msg + msg->msgh_size; - - while (saddr < eaddr) { - mach_msg_type_long_t *type; - mach_msg_type_name_t name; - mach_msg_type_size_t size; - mach_msg_type_number_t number; - boolean_t is_inline; - vm_size_t length; - vm_offset_t addr; - - type = (mach_msg_type_long_t *) saddr; - is_inline = type->msgtl_header.msgt_inline; - if (type->msgtl_header.msgt_longform) { - name = type->msgtl_name; - size = type->msgtl_size; - number = type->msgtl_number; - saddr += sizeof(mach_msg_type_long_t); - } else { - name = type->msgtl_header.msgt_name; - size = type->msgtl_header.msgt_size; - number = type->msgtl_header.msgt_number; - saddr += sizeof(mach_msg_type_t); - } - - /* calculate length of data in bytes, rounding up */ - length = (((((number * size) + 7) >> 3) + sizeof (int) - 1) - &~ (sizeof (int) - 1)); - - addr = is_inline ? saddr : * (vm_offset_t *) saddr; - - if (MACH_MSG_TYPE_PORT_ANY(name)) { - mach_port_t *ports = (mach_port_t *) addr; - mach_msg_type_number_t i; - - for (i = 0; i < number; i++) - mach_msg_destroy_port(*ports++, name); - } - - if (is_inline) { - /* inline data sizes round up to int boundaries */ - saddr += length; - } else { - mach_msg_destroy_memory(addr, length); - saddr += sizeof(vm_offset_t); - } - } -#endif - } -} - -weak_alias (__mach_msg_destroy, mach_msg_destroy) - -static void -mach_msg_destroy_port (mach_port_t port, mach_msg_type_name_t type) -{ - if (MACH_PORT_VALID(port)) switch (type) { - case MACH_MSG_TYPE_MOVE_SEND: - case MACH_MSG_TYPE_MOVE_SEND_ONCE: - /* destroy the send/send-once right */ - (void) __mach_port_deallocate(mach_task_self(), port); - break; - - case MACH_MSG_TYPE_MOVE_RECEIVE: - /* destroy the receive right */ - (void) __mach_port_mod_refs(mach_task_self(), port, - MACH_PORT_RIGHT_RECEIVE, -1); - break; - - case MACH_MSG_TYPE_MAKE_SEND: - /* create a send right and then destroy it */ - (void) __mach_port_insert_right(mach_task_self(), port, - port, MACH_MSG_TYPE_MAKE_SEND); - (void) __mach_port_deallocate(mach_task_self(), port); - break; - - case MACH_MSG_TYPE_MAKE_SEND_ONCE: - /* create a send-once right and then destroy it */ - (void) __mach_port_extract_right(mach_task_self(), port, - MACH_MSG_TYPE_MAKE_SEND_ONCE, - &port, &type); - (void) __mach_port_deallocate(mach_task_self(), port); - break; - } -} - -static void -mach_msg_destroy_memory (vm_offset_t addr, vm_size_t size) -{ - if (size > 0) - (void) __vm_deallocate(__mach_task_self(), addr, size); -} diff --git a/mach/msg.c b/mach/msg.c deleted file mode 100644 index bccad7fd26..0000000000 --- a/mach/msg.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989, 1995 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. - */ -#include <mach/port.h> -#include <mach/message.h> - -#ifdef MACH_MSG_OVERWRITE -/* In variants with this feature, the actual system call is - __mach_msg_overwrite_trap. */ -mach_msg_return_t -__mach_msg_trap (mach_msg_header_t *msg, - mach_msg_option_t option, - mach_msg_size_t send_size, - mach_msg_size_t rcv_size, - mach_port_t rcv_name, - mach_msg_timeout_t timeout, - mach_port_t notify) -{ - return __mach_msg_overwrite_trap (msg, option, send_size, - rcv_size, rcv_name, timeout, notify, - MACH_MSG_NULL, 0); -} -weak_alias (__mach_msg_trap, mach_msg_trap) - -/* See comments below in __mach_msg. */ -mach_msg_return_t -__mach_msg_overwrite (mach_msg_header_t *msg, - mach_msg_option_t option, - mach_msg_size_t send_size, - mach_msg_size_t rcv_size, - mach_port_t rcv_name, - mach_msg_timeout_t timeout, - mach_port_t notify, - mach_msg_header_t *rcv_msg, - mach_msg_size_t rcv_msg_size) - -{ - mach_msg_return_t ret; - - /* Consider the following cases: - 1. Errors in pseudo-receive (eg, MACH_SEND_INTERRUPTED - plus special bits). - 2. Use of MACH_SEND_INTERRUPT/MACH_RCV_INTERRUPT options. - 3. RPC calls with interruptions in one/both halves. - */ - - ret = __mach_msg_overwrite_trap (msg, option, send_size, - rcv_size, rcv_name, timeout, notify, - rcv_msg, rcv_msg_size); - if (ret == MACH_MSG_SUCCESS) - return MACH_MSG_SUCCESS; - - if (!(option & MACH_SEND_INTERRUPT)) - while (ret == MACH_SEND_INTERRUPTED) - ret = __mach_msg_overwrite_trap (msg, option, send_size, - rcv_size, rcv_name, timeout, notify, - rcv_msg, rcv_msg_size); - - if (!(option & MACH_RCV_INTERRUPT)) - while (ret == MACH_RCV_INTERRUPTED) - ret = __mach_msg_overwrite_trap (msg, option & ~MACH_SEND_MSG, - 0, rcv_size, rcv_name, timeout, notify, - rcv_msg, rcv_msg_size); - - return ret; -} -weak_alias (__mach_msg_overwrite, mach_msg_overwrite) -#endif - -mach_msg_return_t -__mach_msg (mach_msg_header_t *msg, - mach_msg_option_t option, - mach_msg_size_t send_size, - mach_msg_size_t rcv_size, - mach_port_t rcv_name, - mach_msg_timeout_t timeout, - mach_port_t notify) -{ - mach_msg_return_t ret; - - /* Consider the following cases: - 1. Errors in pseudo-receive (eg, MACH_SEND_INTERRUPTED - plus special bits). - 2. Use of MACH_SEND_INTERRUPT/MACH_RCV_INTERRUPT options. - 3. RPC calls with interruptions in one/both halves. - */ - - ret = __mach_msg_trap (msg, option, send_size, - rcv_size, rcv_name, timeout, notify); - if (ret == MACH_MSG_SUCCESS) - return MACH_MSG_SUCCESS; - - if (!(option & MACH_SEND_INTERRUPT)) - while (ret == MACH_SEND_INTERRUPTED) - ret = __mach_msg_trap (msg, option, send_size, - rcv_size, rcv_name, timeout, notify); - - if (!(option & MACH_RCV_INTERRUPT)) - while (ret == MACH_RCV_INTERRUPTED) - ret = __mach_msg_trap (msg, option & ~MACH_SEND_MSG, - 0, rcv_size, rcv_name, timeout, notify); - - return ret; -} -weak_alias (__mach_msg, mach_msg) - -mach_msg_return_t -__mach_msg_send (mach_msg_header_t *msg) -{ - return __mach_msg (msg, MACH_SEND_MSG, - msg->msgh_size, 0, MACH_PORT_NULL, - MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); -} -weak_alias (__mach_msg_send, mach_msg_send) - -mach_msg_return_t -__mach_msg_receive (mach_msg_header_t *msg) -{ - return __mach_msg (msg, MACH_RCV_MSG, - 0, msg->msgh_size, msg->msgh_local_port, - MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); -} -weak_alias (__mach_msg_receive, mach_msg_receive) diff --git a/mach/msgserver.c b/mach/msgserver.c deleted file mode 100644 index d95e545985..0000000000 --- a/mach/msgserver.c +++ /dev/null @@ -1,199 +0,0 @@ -/* Copyright (C) 1993-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* Based on CMU's mach_msg_server.c revision 2.4 of 91/05/14, and thus - under the following copyright. Rewritten by Roland McGrath (FSF) - 93/12/06 to use stack space instead of malloc, and to handle - large messages with MACH_RCV_LARGE. */ - -/* - * 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. - */ -/* - * (pre-GNU) HISTORY - * - * Revision 2.4 91/05/14 17:53:22 mrt - * Correcting copyright - * - * Revision 2.3 91/02/14 14:17:47 mrt - * Added new Mach copyright - * [91/02/13 12:44:20 mrt] - * - * Revision 2.2 90/08/06 17:23:58 rpd - * Created. - * - */ - - -#include <mach.h> -#include <mach/mig_errors.h> -#include <stdlib.h> /* For malloc and free. */ -#include <assert.h> - -#ifdef NDR_CHAR_ASCII /* OSF Mach flavors have different names. */ -# define mig_reply_header_t mig_reply_error_t -#endif - -mach_msg_return_t -__mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request, - mach_msg_header_t *reply), - mach_msg_size_t max_size, - mach_port_t rcv_name, - mach_msg_option_t option, - mach_msg_timeout_t timeout) -{ - mig_reply_header_t *request, *reply; - mach_msg_return_t mr; - - if (max_size == 0) - { -#ifdef MACH_RCV_LARGE - option |= MACH_RCV_LARGE; - max_size = 2 * __vm_page_size; /* Generic. Good? XXX */ -#else - max_size = 4 * __vm_page_size; /* XXX */ -#endif - } - - request = __alloca (max_size); - reply = __alloca (max_size); - - while (1) - { - get_request: - mr = __mach_msg (&request->Head, MACH_RCV_MSG|option, - 0, max_size, rcv_name, - timeout, MACH_PORT_NULL); - while (mr == MACH_MSG_SUCCESS) - { - /* We have a request message. - Pass it to DEMUX for processing. */ - - (void) (*demux) (&request->Head, &reply->Head); - assert (reply->Head.msgh_size <= max_size); - - switch (reply->RetCode) - { - case KERN_SUCCESS: - /* Hunky dory. */ - break; - - case MIG_NO_REPLY: - /* The server function wanted no reply sent. - Loop for another request. */ - goto get_request; - - default: - /* Some error; destroy the request message to release any - port rights or VM it holds. Don't destroy the reply port - right, so we can send an error message. */ - request->Head.msgh_remote_port = MACH_PORT_NULL; - __mach_msg_destroy (&request->Head); - break; - } - - if (reply->Head.msgh_remote_port == MACH_PORT_NULL) - { - /* No reply port, so destroy the reply. */ - if (reply->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) - __mach_msg_destroy (&reply->Head); - goto get_request; - } - - /* Send the reply and the get next request. */ - - { - /* Swap the request and reply buffers. mach_msg will read the - reply message from the buffer we pass and write the new - request message to the same buffer. */ - void *tmp = request; - request = reply; - reply = tmp; - } - - mr = __mach_msg (&request->Head, - MACH_SEND_MSG|MACH_RCV_MSG|option, - request->Head.msgh_size, max_size, rcv_name, - timeout, MACH_PORT_NULL); - } - - /* A message error occurred. */ - - switch (mr) - { - case MACH_RCV_TOO_LARGE: -#ifdef MACH_RCV_LARGE - /* The request message is larger than MAX_SIZE, and has not - been dequeued. The message header has the actual size of - the message. We recurse here in hopes that the compiler - will optimize the tail-call and allocate some more stack - space instead of way too much. */ - return __mach_msg_server_timeout (demux, request->Head.msgh_size, - rcv_name, option, timeout); -#else - /* XXX the kernel has destroyed the msg */ - break; -#endif - - case MACH_SEND_INVALID_DEST: - /* The reply can't be delivered, so destroy it. This error - indicates only that the requester went away, so we - continue and get the next request. */ - __mach_msg_destroy (&request->Head); - break; - - default: - /* Some other form of lossage; return to caller. */ - return mr; - } - } -} -weak_alias (__mach_msg_server_timeout, mach_msg_server_timeout) - -mach_msg_return_t -__mach_msg_server (boolean_t (*demux) (mach_msg_header_t *in, - mach_msg_header_t *out), - mach_msg_size_t max_size, - mach_port_t rcv_name) -{ - return __mach_msg_server_timeout (demux, max_size, rcv_name, - MACH_MSG_OPTION_NONE, - MACH_MSG_TIMEOUT_NONE); -} -weak_alias (__mach_msg_server, mach_msg_server) diff --git a/mach/mutex-init.c b/mach/mutex-init.c deleted file mode 100644 index ff184b1b7e..0000000000 --- a/mach/mutex-init.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Initialize a cthreads mutex structure. - Copyright (C) 1995-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <lock-intern.h> -#include <cthreads.h> - -void -__mutex_init (void *lock) -{ - /* This happens to be name space-safe because it is a macro. - It invokes only spin_lock_init, which is a macro for __spin_lock_init; - and cthread_queue_init, which is a macro for some simple code. */ - mutex_init ((struct mutex *) lock); -} diff --git a/mach/mutex-solid.c b/mach/mutex-solid.c deleted file mode 100644 index b1d75b2551..0000000000 --- a/mach/mutex-solid.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Stub versions of mutex_lock_solid/mutex_unlock_solid for no -lthreads. - Copyright (C) 1995-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <lock-intern.h> -#include <cthreads.h> - -/* If cthreads is linked in, it will define these functions itself to do - real cthreads mutex locks. This file will only be linked in when - cthreads is not used, and `mutexes' are in fact just spin locks (and - some unused storage). */ - -void -__mutex_lock_solid (void *lock) -{ - __spin_lock_solid (lock); -} - -void -__mutex_unlock_solid (void *lock) -{ -} diff --git a/mach/setup-thread.c b/mach/setup-thread.c deleted file mode 100644 index 090d9086ad..0000000000 --- a/mach/setup-thread.c +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (C) 1991-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <mach.h> -#include <thread_state.h> -#include <string.h> -#include <mach/machine/vm_param.h> -#include "sysdep.h" /* Defines stack direction. */ - -#define STACK_SIZE (16 * 1024 * 1024) /* 16MB, arbitrary. */ - -/* Give THREAD a stack and set it to run at PC when resumed. - If *STACK_SIZE is nonzero, that size of stack is allocated. - If *STACK_BASE is nonzero, that stack location is used. - If STACK_BASE is not null it is filled in with the chosen stack base. - If STACK_SIZE is not null it is filled in with the chosen stack size. - Regardless, an extra page of red zone is allocated off the end; this - is not included in *STACK_SIZE. */ - -kern_return_t -__mach_setup_thread (task_t task, thread_t thread, void *pc, - vm_address_t *stack_base, vm_size_t *stack_size) -{ - kern_return_t error; - struct machine_thread_state ts; - mach_msg_type_number_t tssize = MACHINE_THREAD_STATE_COUNT; - vm_address_t stack; - vm_size_t size; - int anywhere; - - size = stack_size ? *stack_size ? : STACK_SIZE : STACK_SIZE; - stack = stack_base ? *stack_base ? : 0 : 0; - anywhere = !stack_base || !*stack_base; - - error = __vm_allocate (task, &stack, size + __vm_page_size, anywhere); - if (error) - return error; - - if (stack_size) - *stack_size = size; - - memset (&ts, 0, sizeof (ts)); - MACHINE_THREAD_STATE_SET_PC (&ts, pc); -#ifdef STACK_GROWTH_DOWN - if (stack_base) - *stack_base = stack + __vm_page_size; - ts.SP = stack + __vm_page_size + size; -#elif defined (STACK_GROWTH_UP) - if (stack_base) - *stack_base = stack; - ts.SP = stack; - stack += size; -#else - #error stack direction unknown -#endif - - /* Create the red zone. */ - if (error = __vm_protect (task, stack, __vm_page_size, 0, VM_PROT_NONE)) - return error; - - return __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, - (natural_t *) &ts, tssize); -} - -weak_alias (__mach_setup_thread, mach_setup_thread) diff --git a/mach/shortcut.awk b/mach/shortcut.awk deleted file mode 100644 index ea283d49ba..0000000000 --- a/mach/shortcut.awk +++ /dev/null @@ -1,50 +0,0 @@ -# Icky intimate knowledge of MiG output. - -BEGIN { print "/* This file is generated by shortcut.awk. */"; - echo=1; - inproto=0; proto=""; arglist=""; - } - -$1 == "LINTLIBRARY" { print "#include <mach.h>"; next } - -$1 == "weak_alias" { next } - -# Copy the first line of the definition, but -# replace the function name (RPC) with CALL. -$NF == rpc \ - { - for (i = 1; i < NF; ++i) printf "%s ", $i; - print call; - next; - } - -# Collect the lines of the prototype in PROTO, and extract the parameter -# names into ARGLIST. -NF == 1 && $1 == ")" { inproto=0 } -inproto { proto = proto $0; - arg = $NF; - gsub(/[^a-zA-Z0-9_,]/, "", arg); - arglist = arglist arg; - } -NF == 1 && $1 == "(" { inproto=1 } - -/^{$/ { echo=0; } - -echo == 1 { print $0; } - -/^}$/ && proto != "" \ - { - print "{"; - print " kern_return_t err;"; - print " extern kern_return_t " syscall " (" proto ");"; - print " extern kern_return_t " rpc " (" proto ");"; - print " err = " syscall " (" arglist ");"; - print " if (err == MACH_SEND_INTERRUPTED)"; - print " err = " rpc " (" arglist ");"; - print " return err;" - print "}"; - print "weak_alias (" call ", " alias ")"; - # Declare RPC so the weak_alias that follows will work. - print "extern __typeof (" call ") " rpc ";"; - echo = 1; - } diff --git a/mach/spin-lock.c b/mach/spin-lock.c deleted file mode 100644 index aaebc55cf4..0000000000 --- a/mach/spin-lock.c +++ /dev/null @@ -1,8 +0,0 @@ -#define _EXTERN_INLINE /* Empty to define the real functions. */ -#include "spin-lock.h" - -weak_alias (__spin_lock_init, spin_lock_init); -weak_alias (__spin_lock_locked, spin_lock_locked); -weak_alias (__spin_lock, spin_lock); -weak_alias (__spin_unlock, spin_unlock); -weak_alias (__spin_try_lock, spin_try_lock); diff --git a/mach/spin-lock.h b/mach/spin-lock.h deleted file mode 100644 index aa8b10983c..0000000000 --- a/mach/spin-lock.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Definitions of user-visible names for spin locks. - Copyright (C) 1994-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SPIN_LOCK_H -#define _SPIN_LOCK_H - -#include <lock-intern.h> /* This does all the work. */ - -typedef __spin_lock_t spin_lock_t; -#define SPIN_LOCK_INITIALIZER __SPIN_LOCK_INITIALIZER - -#define spin_lock_init(lock) __spin_lock_init (lock) -#define spin_lock(lock) __spin_lock (lock) -#define spin_try_lock(lock) __spin_try_lock (lock) -#define spin_unlock(lock) __spin_unlock (lock) -#define spin_lock_locked(lock) __spin_lock_locked (lock) - -#endif /* spin-lock.h */ diff --git a/mach/spin-solid.c b/mach/spin-solid.c deleted file mode 100644 index 711fab8ada..0000000000 --- a/mach/spin-solid.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 1994-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <spin-lock.h> -#include <mach/mach_traps.h> - -void -__spin_lock_solid (spin_lock_t *lock) -{ - while (__spin_lock_locked (lock) || ! __spin_try_lock (lock)) - /* Yield to another thread (system call). */ - __swtch_pri (0); -} -weak_alias (__spin_lock_solid, spin_lock_solid); diff --git a/mach/syscalls.awk b/mach/syscalls.awk deleted file mode 100644 index dec8a3b537..0000000000 --- a/mach/syscalls.awk +++ /dev/null @@ -1,9 +0,0 @@ -BEGIN { calls="" } - -{ - calls = calls " " $1; - print "sysno-" $1 " = " $2; - print "nargs-" $1 " = " $3; -} - -END { print "mach-syscalls := " calls } |