Name Date Size #Lines LOC

..--

bin/H26-Jul-2015-89,35766,445

cddl/H26-Jul-2015-359,189226,906

contrib/H26-Jul-2015-11,275,8548,249,575

crypto/H26-Jul-2015-1,512,5751,115,959

etc/H26-Jul-2015-41,22330,675

games/H26-Jul-2015-82,75479,186

gnu/H26-Jul-2015-95,28368,121

include/H26-Jul-2015-57,71034,392

kerberos5/H26-Jul-2015-7,2615,064

lib/H26-Jul-2015-799,098585,967

libexec/H26-Jul-2015-55,75438,825

release/H26-Jul-2015-23,52917,373

rescue/H26-Jul-2015-328203

sbin/H26-Jul-2015-249,983199,733

secure/H26-Jul-2015-143,421128,902

share/H26-Jul-2015-1,636,6821,608,569

sys/H26-Jul-2015-6,907,7474,970,588

tests/H26-Jul-2015-11,8917,965

tools/H26-Jul-2015-1,787,5391,723,534

usr.bin/H26-Jul-2015-411,149309,643

usr.sbin/H26-Jul-2015-585,534447,538

.mach-compat.diff.swpD28-Jul-201524 KiB

COPYRIGHTHD26-Jul-20156 KiB

LOCKSHD26-Jul-2015687

MAINTAINERSHD26-Jul-20156.1 KiB

MakefileHD26-Jul-201519.1 KiB

Makefile.inc1HD26-Jul-201565.1 KiB

ObsoleteFiles.incHD26-Jul-2015281.1 KiB

READMEHD26-Jul-20156.3 KiB

UPDATINGHD26-Jul-201588 KiB

connect-mach-march31.diffD26-Jul-20152.2 KiB6056

initial stab at compiling mach.diffD28-Jul-2015239.1 KiB7,0986,547

mach-compat.diffD26-Jul-2015451.6 KiB14,80414,800

poolstozones.patchD28-Jul-20158.1 KiB265234

README

1This is the mach_support branch. It adds support for a subset of the mach
2API as a precursor to supporting launchd. The mach interface generator should
3be able to work with modern .defs (MIG) files.
4
5Basic Mach IPC is supported through the mach kernel module or COMPAT_MACH_STATIC.
6It is now a module by default to workaround the limited typeid space (15 bits) of
7dtrace.
8
9
10The Mach services kernel module (mach.ko) can only be loaded at boot time. Add the following line
11to /boot/loader.conf:
12mach_load="YES"
13
14As it stands, launchd will dispatch jobs but as it is is currently set to only link
15dynamically - preventing from running as pid1. It is considered early alpha.
16
17launchd can be run as pid1 by adding the following to loader.conf:
18init_path="/sbin/launchd"
19or at the loader prompt:
20set init_path="/sbin/launchd"
21
22
23Note that launchctl has just been added to the build. It uses json plists. XML
24plists can be converted with the help of OSX's plutil. Basic plists will be added
25to the tree shortly.
26
27
28Unsupported OSX / Mach functionality:
29 - updating the audit token when setuid/setgid/ etc are called
30 - (OOL) out of line descriptors of any kind
31 - memory object creation (used in parts of libdispatch)
32 - kevent64 support for receipt of messages in kevent (new in Yosemite, but not currently used by anything that I know of)
33 - voucher ports (used only by most recent parts of libdispatch)
34
35
36Work to be done for v0:
37
38- launch gettys so that console input works
39
40- make launchd useful
41   - write plists for basic services
42
43   - track down the shims for xinetd / crond
44
45- verify that in-tree libdispatch works
46   - get the tests associated with libdispatch compiling to figure out if anything
47     is broken  - the latest versions can be found at:
48         http://libdispatch.macosforge.org/trac/browser/trunk/testing
49
50    - figure out why that function for block private data isn't being generated
51
52
53Missing mach features ordered by version of launchd by which they'll be supported:
54
55v0: mach support is now feature complete for v0
56v1:
57Support:
58- MACH_SEND_NOTIFY
59
60kevent flags needed by (at least) libdispatch:
61- EVFILT_VM
62	- NOTE_VM_PRESSURE
63	- NOTE_VM_ERROR
64
65per-user & per-session launchds (xpc domain system in domain.defs)
66 - The audit session system calls: audit_session_self, audit_session_join,
67   and audit_session_port
68
69libUCL (YAML & JSON) configuration
70
71extended posix_spawnattr calls in support/posix_spawn.c are not expected
72to actually work yet, among others:
73- posix_spawnattr_setbinpref_np
74- posix_spawnattr_getbinpref_np
75
76proc_setpcontrol
77proc_get_dirty
78proc_set_dirty
79proc_track_dirty
80
81
82v2 or later:
83
84- AF_SYSTEM domain sockets and the event protocols
85
86- XPC_JETSAM_BANDs (handle memory pressure)
87
88I/O priority setting functionality - system call:
89__iopolicysys supports:
90	- getiopolicy_np
91	- setiopolicy_np
92
93
94- except NOTE_EXIT_MEMORY of questionable relevance
95#define	NOTE_EXITSTATUS		0x04000000	/* exit status to be returned, valid for child process only */
96#define	NOTE_EXIT_DETAIL	0x02000000	/* provide details on reasons for exit */
97/*
98 * If NOTE_EXIT_DETAIL is present, these bits indicate specific reasons for exiting.
99 */
100#define NOTE_EXIT_DETAIL_MASK		0x00070000
101#define	NOTE_EXIT_DECRYPTFAIL		0x00010000
102#define	NOTE_EXIT_MEMORY		0x00020000
103#define NOTE_EXIT_CSERROR		0x00040000
104
105
106
107
108
109This is the top level of the FreeBSD source directory.  This file
110was last revised on:
111$FreeBSD$
112
113For copyright information, please see the file COPYRIGHT in this
114directory (additional copyright information also exists for some
115sources in this tree - please see the specific source directories for
116more information).
117
118The Makefile in this directory supports a number of targets for
119building components (or all) of the FreeBSD source tree, the most
120commonly used one being ``world'', which rebuilds and installs
121everything in the FreeBSD system from the source tree except the
122kernel, the kernel-modules and the contents of /etc.  The ``world''
123target should only be used in cases where the source tree has not
124changed from the currently running version.  See:
125http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
126for more information, including setting make(1) variables.
127
128The ``buildkernel'' and ``installkernel'' targets build and install
129the kernel and the modules (see below).  Please see the top of
130the Makefile in this directory for more information on the
131standard build targets and compile-time flags.
132
133Building a kernel is a somewhat more involved process, documentation
134for which can be found at:
135   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
136And in the config(8) man page.
137Note: If you want to build and install the kernel with the
138``buildkernel'' and ``installkernel'' targets, you might need to build
139world before.  More information is available in the handbook.
140
141The sample kernel configuration files reside in the sys/<arch>/conf
142sub-directory (assuming that you've installed the kernel sources), the
143file named GENERIC being the one used to build your initial installation
144kernel.  The file NOTES contains entries and documentation for all possible
145devices, not just those commonly used.  It is the successor of the ancient
146LINT file, but in contrast to LINT, it is not buildable as a kernel but a
147pure reference and documentation file.
148
149
150Source Roadmap:
151---------------
152bin		System/user commands.
153
154cddl		Various commands and libraries under the Common Development
155		and Distribution License.
156
157contrib		Packages contributed by 3rd parties.
158
159crypto		Cryptography stuff (see crypto/README).
160
161etc		Template files for /etc.
162
163games		Amusements.
164
165gnu		Various commands and libraries under the GNU Public License.
166		Please see gnu/COPYING* for more information.
167
168include		System include files.
169
170kerberos5	Kerberos5 (Heimdal) package.
171
172lib		System libraries.
173
174libexec		System daemons.
175
176release		Release building Makefile & associated tools.
177
178rescue		Build system for statically linked /rescue utilities.
179
180sbin		System commands.
181
182secure		Cryptographic libraries and commands.
183
184share		Shared resources.
185
186sys		Kernel sources.
187
188tools		Utilities for regression testing and miscellaneous tasks.
189
190usr.bin		User commands.
191
192usr.sbin	System administration commands.
193
194
195For information on synchronizing your source tree with one or more of
196the FreeBSD Project's development branches, please see:
197
198  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html
199