1 # 1 "common/apptrace.c"
2 # 1 "<built-in>"
3 # 1 "<command-line>"
4 # 1 "common/apptrace.c"
5 /*
6  * CDDL HEADER START
7  *
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License (the "License").
10  * You may not use this file except in compliance with the License.
11  *
12  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13  * or http://www.opensolaris.org/os/licensing.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19  * If applicable, add the following below this CDDL HEADER, with the
20  * fields enclosed by brackets "[]" replaced with your own identifying
21  * information: Portions Copyright [yyyy] [name of copyright owner]
22  *
23  * CDDL HEADER END
24  */
25 /*
26  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
27  * Use is subject to license terms.
28  */
29 
30 #pragma ident "%Z%%M%	%I%	%E% SMI"
31 
32 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 1
33 /*
34  * CDDL HEADER START
35  *
36  * The contents of this file are subject to the terms of the
37  * Common Development and Distribution License (the "License").
38  * You may not use this file except in compliance with the License.
39  *
40  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
41  * or http://www.opensolaris.org/os/licensing.
42  * See the License for the specific language governing permissions
43  * and limitations under the License.
44  *
45  * When distributing Covered Code, include this CDDL HEADER in each
46  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
47  * If applicable, add the following below this CDDL HEADER, with the
48  * fields enclosed by brackets "[]" replaced with your own identifying
49  * information: Portions Copyright [yyyy] [name of copyright owner]
50  *
51  * CDDL HEADER END
52  */
53 /*
54  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
55  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
56  */
57 
58 
59 
60 
61 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h" 1
62 /*
63  * CDDL HEADER START
64  *
65  * The contents of this file are subject to the terms of the
66  * Common Development and Distribution License (the "License").
67  * You may not use this file except in compliance with the License.
68  *
69  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
70  * or http://www.opensolaris.org/os/licensing.
71  * See the License for the specific language governing permissions
72  * and limitations under the License.
73  *
74  * When distributing Covered Code, include this CDDL HEADER in each
75  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
76  * If applicable, add the following below this CDDL HEADER, with the
77  * fields enclosed by brackets "[]" replaced with your own identifying
78  * information: Portions Copyright [yyyy] [name of copyright owner]
79  *
80  * CDDL HEADER END
81  */
82 
83 /*
84  *	Copyright (c) 1988 AT&T
85  *	  All Rights Reserved
86  *
87  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
88  *
89  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
90  */
91 
92 
93 
94 
95 
96 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
97 /*
98  * CDDL HEADER START
99  *
100  * The contents of this file are subject to the terms of the
101  * Common Development and Distribution License (the "License").
102  * You may not use this file except in compliance with the License.
103  *
104  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
105  * or http://www.opensolaris.org/os/licensing.
106  * See the License for the specific language governing permissions
107  * and limitations under the License.
108  *
109  * When distributing Covered Code, include this CDDL HEADER in each
110  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
111  * If applicable, add the following below this CDDL HEADER, with the
112  * fields enclosed by brackets "[]" replaced with your own identifying
113  * information: Portions Copyright [yyyy] [name of copyright owner]
114  *
115  * CDDL HEADER END
116  */
117 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
118 /*	  All Rights Reserved  	*/
119 
120 
121 /*
122  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
123  * Use is subject to license terms.
124  *
125  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
126  * Copyright 2016 Joyent, Inc.
127  */
128 
129 
130 
131 
132 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
133 /*
134  * CDDL HEADER START
135  *
136  * The contents of this file are subject to the terms of the
137  * Common Development and Distribution License (the "License").
138  * You may not use this file except in compliance with the License.
139  *
140  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
141  * or http://www.opensolaris.org/os/licensing.
142  * See the License for the specific language governing permissions
143  * and limitations under the License.
144  *
145  * When distributing Covered Code, include this CDDL HEADER in each
146  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
147  * If applicable, add the following below this CDDL HEADER, with the
148  * fields enclosed by brackets "[]" replaced with your own identifying
149  * information: Portions Copyright [yyyy] [name of copyright owner]
150  *
151  * CDDL HEADER END
152  */
153 
154 /*
155  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
156  * Copyright 2016 Joyent, Inc.
157  *
158  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
159  * Use is subject to license terms.
160  */
161 
162 
163 
164 
165 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1
166 /*
167  * CDDL HEADER START
168  *
169  * The contents of this file are subject to the terms of the
170  * Common Development and Distribution License, Version 1.0 only
171  * (the "License").  You may not use this file except in compliance
172  * with the License.
173  *
174  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
175  * or http://www.opensolaris.org/os/licensing.
176  * See the License for the specific language governing permissions
177  * and limitations under the License.
178  *
179  * When distributing Covered Code, include this CDDL HEADER in each
180  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
181  * If applicable, add the following below this CDDL HEADER, with the
182  * fields enclosed by brackets "[]" replaced with your own identifying
183  * information: Portions Copyright [yyyy] [name of copyright owner]
184  *
185  * CDDL HEADER END
186  */
187 /*
188  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
189  * Use is subject to license terms.
190  */
191 /*
192  * Copyright 2015 EveryCity Ltd. All rights reserved.
193  */
194 
195 
196 
197 
198 /*
199  * This file contains definitions designed to enable different compilers
200  * to be used harmoniously on Solaris systems.
201  */
202 
203 
204 
205 
206 
207 /*
208  * Allow for version tests for compiler bugs and features.
209  */
210 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
211 /*
212  * analogous to lint's PRINTFLIKEn
213  */
214 
215 
216 
217 
218 
219 /*
220  * Handle the kernel printf routines that can take '%b' too
221  */
222 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
223 /*
224  * This one's pretty obvious -- the function never returns
225  */
226 
227 
228 /*
229  * The function is 'extern inline' and expects GNU C89 behaviour, not C99
230  * behaviour.
231  *
232  * Should only be used on 'extern inline' definitions for GCC.
233  */
234 
235 
236 
237 
238 
239 
240 /*
241  * The function has control flow such that it may return multiple times (in
242  * the manner of setjmp or vfork)
243  */
244 
245 
246 
247 
248 
249 
250 /*
251  * This is an appropriate label for functions that do not
252  * modify their arguments, e.g. strlen()
253  */
254 
255 
256 /*
257  * This is a stronger form of __pure__. Can be used for functions
258  * that do not modify their arguments and don't depend on global
259  * memory.
260  */
261 
262 
263 
264 
265 /*
266  * This attribute, attached to a variable, means that the variable is meant to
267  * be possibly unused. GCC will not produce a warning for this variable.
268  */
269 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
270 /*
271  * Shorthand versions for readability
272  */
273 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
274 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
275 /*
276  * CDDL HEADER START
277  *
278  * The contents of this file are subject to the terms of the
279  * Common Development and Distribution License (the "License").
280  * You may not use this file except in compliance with the License.
281  *
282  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
283  * or http://www.opensolaris.org/os/licensing.
284  * See the License for the specific language governing permissions
285  * and limitations under the License.
286  *
287  *
288  * When distributing Covered Code, include this CDDL HEADER in each
289  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
290  * If applicable, add the following below this CDDL HEADER, with the
291  * fields enclosed by brackets "[]" replaced with your own identifying
292  * information: Portions Copyright [yyyy] [name of copyright owner]
293  *
294  * CDDL HEADER END
295  */
296 
297 /*
298  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
299  * Use is subject to license terms.
300  * Copyright 2016 Joyent, Inc.
301  */
302 
303 
304 
305 
306 /*
307  * This header file serves to group a set of well known defines and to
308  * set these for each instruction set architecture.  These defines may
309  * be divided into two groups;  characteristics of the processor and
310  * implementation choices for Solaris on a processor.
311  *
312  * Processor Characteristics:
313  *
314  * _LITTLE_ENDIAN / _BIG_ENDIAN:
315  *	The natural byte order of the processor.  A pointer to an int points
316  *	to the least/most significant byte of that int.
317  *
318  * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
319  *	The processor specific direction of stack growth.  A push onto the
320  *	stack increases/decreases the stack pointer, so it stores data at
321  *	successively higher/lower addresses.  (Stackless machines ignored
322  *	without regrets).
323  *
324  * _LONG_LONG_HTOL / _LONG_LONG_LTOH:
325  *	A pointer to a long long points to the most/least significant long
326  *	within that long long.
327  *
328  * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
329  *	The C compiler assigns bit fields from the high/low to the low/high end
330  *	of an int (most to least significant vs. least to most significant).
331  *
332  * _IEEE_754:
333  *	The processor (or supported implementations of the processor)
334  *	supports the ieee-754 floating point standard.  No other floating
335  *	point standards are supported (or significant).  Any other supported
336  *	floating point formats are expected to be cased on the ISA processor
337  *	symbol.
338  *
339  * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
340  *	The C Compiler implements objects of type `char' as `unsigned' or
341  *	`signed' respectively.  This is really an implementation choice of
342  *	the compiler writer, but it is specified in the ABI and tends to
343  *	be uniform across compilers for an instruction set architecture.
344  *	Hence, it has the properties of a processor characteristic.
345  *
346  * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
347  * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
348  * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
349  *	The ABI defines alignment requirements of each of the primitive
350  *	object types.  Some, if not all, may be hardware requirements as
351  * 	well.  The values are expressed in "byte-alignment" units.
352  *
353  * _MAX_ALIGNMENT:
354  *	The most stringent alignment requirement as specified by the ABI.
355  *	Equal to the maximum of all the above _XXX_ALIGNMENT values.
356  *
357  * _MAX_ALIGNMENT_TYPE:
358  * 	The name of the C type that has the value descried in _MAX_ALIGNMENT.
359  *
360  * _ALIGNMENT_REQUIRED:
361  *	True or false (1 or 0) whether or not the hardware requires the ABI
362  *	alignment.
363  *
364  * _LONG_LONG_ALIGNMENT_32
365  *	The 32-bit ABI supported by a 64-bit kernel may have different
366  *	alignment requirements for primitive object types.  The value of this
367  *	identifier is expressed in "byte-alignment" units.
368  *
369  * _HAVE_CPUID_INSN
370  *	This indicates that the architecture supports the 'cpuid'
371  *	instruction as defined by Intel.  (Intel allows other vendors
372  *	to extend the instruction for their own purposes.)
373  *
374  *
375  * Implementation Choices:
376  *
377  * _ILP32 / _LP64:
378  *	This specifies the compiler data type implementation as specified in
379  *	the relevant ABI.  The choice between these is strongly influenced
380  *	by the underlying hardware, but is not absolutely tied to it.
381  *	Currently only two data type models are supported:
382  *
383  *	_ILP32:
384  *		Int/Long/Pointer are 32 bits.  This is the historical UNIX
385  *		and Solaris implementation.  Due to its historical standing,
386  *		this is the default case.
387  *
388  *	_LP64:
389  *		Long/Pointer are 64 bits, Int is 32 bits.  This is the chosen
390  *		implementation for 64-bit ABIs such as SPARC V9.
391  *
392  *	_I32LPx:
393  *		A compilation environment where 'int' is 32-bit, and
394  *		longs and pointers are simply the same size.
395  *
396  *	In all cases, Char is 8 bits and Short is 16 bits.
397  *
398  * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
399  *	This specifies the form of the disk VTOC (or label):
400  *
401  *	_SUNOS_VTOC_8:
402  *		This is a VTOC form which is upwardly compatible with the
403  *		SunOS 4.x disk label and allows 8 partitions per disk.
404  *
405  *	_SUNOS_VTOC_16:
406  *		In this format the incore vtoc image matches the ondisk
407  *		version.  It allows 16 slices per disk, and is not
408  *		compatible with the SunOS 4.x disk label.
409  *
410  *	Note that these are not the only two VTOC forms possible and
411  *	additional forms may be added.  One possible form would be the
412  *	SVr4 VTOC form.  The symbol for that is reserved now, although
413  *	it is not implemented.
414  *
415  *	_SVR4_VTOC_16:
416  *		This VTOC form is compatible with the System V Release 4
417  *		VTOC (as implemented on the SVr4 Intel and 3b ports) with
418  *		16 partitions per disk.
419  *
420  *
421  * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
422  *	This describes the type of addresses used by system DMA:
423  *
424  *	_DMA_USES_PHYSADDR:
425  *		This type of DMA, used in the x86 implementation,
426  *		requires physical addresses for DMA buffers.  The 24-bit
427  *		addresses used by some legacy boards is the source of the
428  *		"low-memory" (<16MB) requirement for some devices using DMA.
429  *
430  *	_DMA_USES_VIRTADDR:
431  *		This method of DMA allows the use of virtual addresses for
432  *		DMA transfers.
433  *
434  * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
435  *      This indicates the presence/absence of an fdisk table.
436  *
437  *      _FIRMWARE_NEEDS_FDISK
438  *              The fdisk table is required by system firmware.  If present,
439  *              it allows a disk to be subdivided into multiple fdisk
440  *              partitions, each of which is equivalent to a separate,
441  *              virtual disk.  This enables the co-existence of multiple
442  *              operating systems on a shared hard disk.
443  *
444  *      _NO_FDISK_PRESENT
445  *              If the fdisk table is absent, it is assumed that the entire
446  *              media is allocated for a single operating system.
447  *
448  * _HAVE_TEM_FIRMWARE
449  *	Defined if this architecture has the (fallback) option of
450  *	using prom_* calls for doing I/O if a suitable kernel driver
451  *	is not available to do it.
452  *
453  * _DONT_USE_1275_GENERIC_NAMES
454  *		Controls whether or not device tree node names should
455  *		comply with the IEEE 1275 "Generic Names" Recommended
456  *		Practice. With _DONT_USE_GENERIC_NAMES, device-specific
457  *		names identifying the particular device will be used.
458  *
459  * __i386_COMPAT
460  *	This indicates whether the i386 ABI is supported as a *non-native*
461  *	mode for the platform.  When this symbol is defined:
462  *	-	32-bit xstat-style system calls are enabled
463  *	-	32-bit xmknod-style system calls are enabled
464  *	-	32-bit system calls use i386 sizes -and- alignments
465  *
466  *	Note that this is NOT defined for the i386 native environment!
467  *
468  * __x86
469  *	This is ONLY a synonym for defined(__i386) || defined(__amd64)
470  *	which is useful only insofar as these two architectures share
471  *	common attributes.  Analogous to __sparc.
472  *
473  * _PSM_MODULES
474  *	This indicates whether or not the implementation uses PSM
475  *	modules for processor support, reading /etc/mach from inside
476  *	the kernel to extract a list.
477  *
478  * _RTC_CONFIG
479  *	This indicates whether or not the implementation uses /etc/rtc_config
480  *	to configure the real-time clock in the kernel.
481  *
482  * _UNIX_KRTLD
483  *	This indicates that the implementation uses a dynamically
484  *	linked unix + krtld to form the core kernel image at boot
485  *	time, or (in the absence of this symbol) a prelinked kernel image.
486  *
487  * _OBP
488  *	This indicates the firmware interface is OBP.
489  *
490  * _SOFT_HOSTID
491  *	This indicates that the implementation obtains the hostid
492  *	from the file /etc/hostid, rather than from hardware.
493  */
494 
495 
496 
497 
498 
499 /*
500  * The following set of definitions characterize Solaris on AMD's
501  * 64-bit systems.
502  */
503 # 305 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
504 /*
505  * Define the appropriate "processor characteristics"
506  */
507 # 333 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
508 /*
509  * Define the appropriate "implementation choices".
510  */
511 # 351 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
512 /*
513  * The following set of definitions characterize the Solaris on SPARC systems.
514  *
515  * The symbol __sparc indicates any of the SPARC family of processor
516  * architectures.  This includes SPARC V7, SPARC V8 and SPARC V9.
517  *
518  * The symbol __sparcv8 indicates the 32-bit SPARC V8 architecture as defined
519  * by Version 8 of the SPARC Architecture Manual.  (SPARC V7 is close enough
520  * to SPARC V8 for the former to be subsumed into the latter definition.)
521  *
522  * The symbol __sparcv9 indicates the 64-bit SPARC V9 architecture as defined
523  * by Version 9 of the SPARC Architecture Manual.
524  *
525  * The symbols __sparcv8 and __sparcv9 are mutually exclusive, and are only
526  * relevant when the symbol __sparc is defined.
527  */
528 /*
529  * XXX Due to the existence of 5110166, "defined(__sparcv9)" needs to be added
530  * to support backwards builds.  This workaround should be removed in s10_71.
531  */
532 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
533 
534 
535 
536 
537 
538 /*
539  * Values of _POSIX_C_SOURCE
540  *
541  *		undefined   not a POSIX compilation
542  *		1	    POSIX.1-1990 compilation
543  *		2	    POSIX.2-1992 compilation
544  *		199309L	    POSIX.1b-1993 compilation (Real Time)
545  *		199506L	    POSIX.1c-1995 compilation (POSIX Threads)
546  *		200112L	    POSIX.1-2001 compilation (Austin Group Revision)
547  *		200809L     POSIX.1-2008 compilation
548  */
549 
550 
551 
552 
553 /*
554  * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
555  * and _STDC_C99 are Sun implementation specific macros created in order to
556  * compress common standards specified feature test macros for easier reading.
557  * These macros should not be used by the application developer as
558  * unexpected results may occur. Instead, the user should reference
559  * standards(5) for correct usage of the standards feature test macros.
560  *
561  * __XOPEN_OR_POSIX     Used in cases where a symbol is defined by both
562  *                      X/Open or POSIX or in the negative, when neither
563  *                      X/Open or POSIX defines a symbol.
564  *
565  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
566  *                      by the compiler. For Sun compilers the value of
567  *                      __STDC__ is either 1, 0, or not defined based on the
568  *                      compilation mode (see cc(1)). When the value of
569  *                      __STDC__ is 1 and in the absence of any other feature
570  *                      test macros, the namespace available to the application
571  *                      is limited to only those symbols defined by the C
572  *                      Standard. _STRICT_STDC provides a more readable means
573  *                      of identifying symbols defined by the standard, or in
574  *                      the negative, symbols that are extensions to the C
575  *                      Standard. See additional comments for GNU C differences.
576  *
577  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
578  *                      defined by the compiler and indicates the version of
579  *                      the C standard. A value of 199901L indicates a
580  *                      compiler that complies with ISO/IEC 9899:1999, other-
581  *                      wise known as the C99 standard.
582  *
583  * _STDC_C11		Like _STDC_C99 except that the value of __STDC_VERSION__
584  *                      is 201112L indicating a compiler that compiles with
585  *                      ISO/IEXC 9899:2011, otherwise known as the C11 standard.
586  *
587  * _STRICT_SYMBOLS	Used in cases where symbol visibility is restricted
588  *                      by the standards, and the user has not explicitly
589  *                      relaxed the strictness via __EXTENSIONS__.
590  */
591 
592 
593 
594 
595 
596 /*
597  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
598  * 99899:2011 specify the following predefined macro name:
599  *
600  * __STDC__	The integer constant 1, intended to indicate a conforming
601  *		implementation.
602  *
603  * Furthermore, a strictly conforming program shall use only those features
604  * of the language and library specified in these standards. A conforming
605  * implementation shall accept any strictly conforming program.
606  *
607  * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
608  * strictly conforming environments and __STDC__ to 0 for environments that
609  * use ANSI C semantics but allow extensions to the C standard. For non-ANSI
610  * C semantics, Sun's C compiler does not define __STDC__.
611  *
612  * The GNU C project interpretation is that __STDC__ should always be defined
613  * to 1 for compilation modes that accept ANSI C syntax regardless of whether
614  * or not extensions to the C standard are used. Violations of conforming
615  * behavior are conditionally flagged as warnings via the use of the
616  * -pedantic option. In addition to defining __STDC__ to 1, the GNU C
617  * compiler also defines __STRICT_ANSI__ as a means of specifying strictly
618  * conforming environments using the -ansi or -std=<standard> options.
619  *
620  * In the absence of any other compiler options, Sun and GNU set the value
621  * of __STDC__ as follows when using the following options:
622  *
623  *				Value of __STDC__  __STRICT_ANSI__
624  *
625  * cc -Xa (default)			0	      undefined
626  * cc -Xt (transitional)		0             undefined
627  * cc -Xc (strictly conforming)		1	      undefined
628  * cc -Xs (K&R C)		    undefined	      undefined
629  *
630  * gcc (default)			1	      undefined
631  * gcc -ansi, -std={c89, c99,...)  	1              defined
632  * gcc -traditional (K&R)	    undefined	      undefined
633  *
634  * The default compilation modes for Sun C compilers versus GNU C compilers
635  * results in a differing value for __STDC__ which results in a more
636  * restricted namespace when using Sun compilers. To allow both GNU and Sun
637  * interpretations to peacefully co-exist, we use the following Sun
638  * implementation _STRICT_STDC_ macro:
639  */
640 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
641 /*
642  * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
643  */
644 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
645 /*
646  * Use strict symbol visibility.
647  */
648 
649 
650 
651 
652 
653 /*
654  * Large file interfaces:
655  *
656  *	_LARGEFILE_SOURCE
657  *		1		large file-related additions to POSIX
658  *				interfaces requested (fseeko, etc.)
659  *	_LARGEFILE64_SOURCE
660  *		1		transitional large-file-related interfaces
661  *				requested (seek64, stat64, etc.)
662  *
663  * The corresponding announcement macros are respectively:
664  *	_LFS_LARGEFILE
665  *	_LFS64_LARGEFILE
666  * (These are set in <unistd.h>.)
667  *
668  * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
669  * well.
670  *
671  * The large file interfaces are made visible regardless of the initial values
672  * of the feature test macros under certain circumstances:
673  *    -	If no explicit standards-conforming environment is requested (neither
674  *	of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
675  *	__STDC__ does not imply standards conformance).
676  *    -	Extended system interfaces are explicitly requested (__EXTENSIONS__
677  * 	is defined).
678  *    -	Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
679  *	defined).  (Note that this dependency is an artifact of the current
680  *	kernel implementation and may change in future releases.)
681  */
682 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
683 /*
684  * Large file compilation environment control:
685  *
686  * The setting of _FILE_OFFSET_BITS controls the size of various file-related
687  * types and governs the mapping between file-related source function symbol
688  * names and the corresponding binary entry points.
689  *
690  * In the 32-bit environment, the default value is 32; if not set, set it to
691  * the default here, to simplify tests in other headers.
692  *
693  * In the 64-bit compilation environment, the only value allowed is 64.
694  */
695 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
696 /*
697  * Use of _XOPEN_SOURCE
698  *
699  * The following X/Open specifications are supported:
700  *
701  * X/Open Portability Guide, Issue 3 (XPG3)
702  * X/Open CAE Specification, Issue 4 (XPG4)
703  * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
704  * X/Open CAE Specification, Issue 5 (XPG5)
705  * Open Group Technical Standard, Issue 6 (XPG6), also referred to as
706  *    IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
707  * Open Group Technical Standard, Issue 7 (XPG7), also referred to as
708  *    IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
709  *
710  * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
711  * XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
712  *     Version 2 (SUSv2)
713  * XPG6 is the result of a merge of the X/Open and POSIX specifications
714  *     and as such is also referred to as IEEE Std. 1003.1-2001 in
715  *     addition to UNIX 03 and SUSv3.
716  * XPG7 is also referred to as UNIX 08 and SUSv4.
717  *
718  * When writing a conforming X/Open application, as per the specification
719  * requirements, the appropriate feature test macros must be defined at
720  * compile time. These are as follows. For more info, see standards(5).
721  *
722  * Feature Test Macro				     Specification
723  * ------------------------------------------------  -------------
724  * _XOPEN_SOURCE                                         XPG3
725  * _XOPEN_SOURCE && _XOPEN_VERSION = 4                   XPG4
726  * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1           XPG4v2
727  * _XOPEN_SOURCE = 500                                   XPG5
728  * _XOPEN_SOURCE = 600  (or POSIX_C_SOURCE=200112L)      XPG6
729  * _XOPEN_SOURCE = 700  (or POSIX_C_SOURCE=200809L)      XPG7
730  *
731  * In order to simplify the guards within the headers, the following
732  * implementation private test macros have been created. Applications
733  * must NOT use these private test macros as unexpected results will
734  * occur.
735  *
736  * Note that in general, the use of these private macros is cumulative.
737  * For example, the use of _XPG3 with no other restrictions on the X/Open
738  * namespace will make the symbols visible for XPG3 through XPG6
739  * compilation environments. The use of _XPG4_2 with no other X/Open
740  * namespace restrictions indicates that the symbols were introduced in
741  * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
742  * environments, but not for XPG3 or XPG4 compilation environments.
743  *
744  * _XPG3    X/Open Portability Guide, Issue 3 (XPG3)
745  * _XPG4    X/Open CAE Specification, Issue 4 (XPG4)
746  * _XPG4_2  X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
747  * _XPG5    X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
748  * _XPG6    Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
749  * _XPG7    Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
750  */
751 
752 /* X/Open Portability Guide, Issue 3 */
753 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
754 /*
755  * _XOPEN_VERSION is defined by the X/Open specifications and is not
756  * normally defined by the application, except in the case of an XPG4
757  * application.  On the implementation side, _XOPEN_VERSION defined with
758  * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
759  * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
760  * _XOPEN_VERSION  defined with a value of 500 indicates an XPG5 (UNIX 98)
761  * application and with a value of 600 indicates an XPG6 (UNIX 03)
762  * application and with a value of 700 indicates an XPG7 (UNIX 08).
763  * The appropriate version is determined by the use of the
764  * feature test macros described earlier.  The value of _XOPEN_VERSION
765  * defaults to 3 otherwise indicating support for XPG3 applications.
766  */
767 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
768 /*
769  * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
770  * conforming environments.  ISO 9899:1999 says it does.
771  *
772  * The presence of _LONGLONG_TYPE says "long long exists" which is therefore
773  * defined in all but strictly conforming environments that disallow it.
774  */
775 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
776 /*
777  * The following macro defines a value for the ISO C99 restrict
778  * keyword so that _RESTRICT_KYWD resolves to "restrict" if
779  * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
780  * if any other compiler is used. This allows for the use of single
781  * prototype declarations regardless of compiler version.
782  */
783 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
784 /*
785  * The following macro defines a value for the ISO C11 _Noreturn
786  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
787  * an ISO C11 compiler is used and "" (null string) if any other
788  * compiler is used. This allows for the use of single prototype
789  * declarations regardless of compiler version.
790  */
791 
792 
793 
794 
795 
796 
797 
798 /*
799  * The following macro indicates header support for the ANSI C++
800  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
801  */
802 
803 
804 /*
805  * The following macro indicates header support for the C99 standard,
806  * ISO/IEC 9899:1999, Programming Languages - C.
807  */
808 
809 
810 /*
811  * The following macro indicates header support for the C99 standard,
812  * ISO/IEC 9899:2011, Programming Languages - C.
813  */
814 
815 
816 /*
817  * The following macro indicates header support for DTrace. The value is an
818  * integer that corresponds to the major version number for DTrace.
819  */
820 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
821 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
822 /*
823  * CDDL HEADER START
824  *
825  * The contents of this file are subject to the terms of the
826  * Common Development and Distribution License (the "License").
827  * You may not use this file except in compliance with the License.
828  *
829  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
830  * or http://www.opensolaris.org/os/licensing.
831  * See the License for the specific language governing permissions
832  * and limitations under the License.
833  *
834  *
835  * When distributing Covered Code, include this CDDL HEADER in each
836  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
837  * If applicable, add the following below this CDDL HEADER, with the
838  * fields enclosed by brackets "[]" replaced with your own identifying
839  * information: Portions Copyright [yyyy] [name of copyright owner]
840  *
841  * CDDL HEADER END
842  */
843 
844 /*
845  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
846  * Use is subject to license terms.
847  * Copyright 2016 Joyent, Inc.
848  */
849 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
850 
851 /*
852  * Machine dependent definitions moved to <sys/machtypes.h>.
853  */
854 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1
855 /*
856  * CDDL HEADER START
857  *
858  * The contents of this file are subject to the terms of the
859  * Common Development and Distribution License, Version 1.0 only
860  * (the "License").  You may not use this file except in compliance
861  * with the License.
862  *
863  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
864  * or http://www.opensolaris.org/os/licensing.
865  * See the License for the specific language governing permissions
866  * and limitations under the License.
867  *
868  * When distributing Covered Code, include this CDDL HEADER in each
869  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
870  * If applicable, add the following below this CDDL HEADER, with the
871  * fields enclosed by brackets "[]" replaced with your own identifying
872  * information: Portions Copyright [yyyy] [name of copyright owner]
873  *
874  * CDDL HEADER END
875  */
876 /*
877  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
878  * Use is subject to license terms.
879  */
880 
881 
882 
883 
884 #pragma ident "%Z%%M%	%I%	%E% SMI"
885 
886 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
887 /*
888  * CDDL HEADER START
889  *
890  * The contents of this file are subject to the terms of the
891  * Common Development and Distribution License (the "License").
892  * You may not use this file except in compliance with the License.
893  *
894  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
895  * or http://www.opensolaris.org/os/licensing.
896  * See the License for the specific language governing permissions
897  * and limitations under the License.
898  *
899  * When distributing Covered Code, include this CDDL HEADER in each
900  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
901  * If applicable, add the following below this CDDL HEADER, with the
902  * fields enclosed by brackets "[]" replaced with your own identifying
903  * information: Portions Copyright [yyyy] [name of copyright owner]
904  *
905  * CDDL HEADER END
906  */
907 
908 /*
909  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
910  * Copyright 2016 Joyent, Inc.
911  *
912  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
913  * Use is subject to license terms.
914  */
915 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
916 
917 
918 
919 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1
920 /*
921  * CDDL HEADER START
922  *
923  * The contents of this file are subject to the terms of the
924  * Common Development and Distribution License (the "License").
925  * You may not use this file except in compliance with the License.
926  *
927  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
928  * or http://www.opensolaris.org/os/licensing.
929  * See the License for the specific language governing permissions
930  * and limitations under the License.
931  *
932  * When distributing Covered Code, include this CDDL HEADER in each
933  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
934  * If applicable, add the following below this CDDL HEADER, with the
935  * fields enclosed by brackets "[]" replaced with your own identifying
936  * information: Portions Copyright [yyyy] [name of copyright owner]
937  *
938  * CDDL HEADER END
939  */
940 /*
941  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
942  * Use is subject to license terms.
943  */
944 
945 
946 
947 
948 #pragma ident "%Z%%M%	%I%	%E% SMI"
949 
950 
951 
952 
953 
954 /*
955  * Machine dependent types:
956  *
957  *	intel ia32 Version
958  */
959 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h"
960 typedef struct _label_t { long val[6]; } label_t;
961 
962 
963 
964 typedef unsigned char lock_t; /* lock work for busy wait */
965 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
966 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
967 
968 /*
969  * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
970  * committee's working draft for the revision of the current ISO C standard,
971  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
972  * required by any standard but constitute a useful, general purpose set
973  * of type definitions which is namespace clean with respect to all standards.
974  */
975 
976 
977 
978 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
979 /*
980  * CDDL HEADER START
981  *
982  * The contents of this file are subject to the terms of the
983  * Common Development and Distribution License, Version 1.0 only
984  * (the "License").  You may not use this file except in compliance
985  * with the License.
986  *
987  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
988  * or http://www.opensolaris.org/os/licensing.
989  * See the License for the specific language governing permissions
990  * and limitations under the License.
991  *
992  * When distributing Covered Code, include this CDDL HEADER in each
993  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
994  * If applicable, add the following below this CDDL HEADER, with the
995  * fields enclosed by brackets "[]" replaced with your own identifying
996  * information: Portions Copyright [yyyy] [name of copyright owner]
997  *
998  * CDDL HEADER END
999  */
1000 /*
1001  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1002  *
1003  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1004  * Use is subject to license terms.
1005  */
1006 
1007 
1008 
1009 
1010 /*
1011  * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
1012  * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
1013  * Programming language - C.
1014  *
1015  * Programs/Modules should not directly include this file.  Access to the
1016  * types defined in this file should be through the inclusion of one of the
1017  * following files:
1018  *
1019  *	<sys/types.h>		Provides only the "_t" types defined in this
1020  *				file which is a subset of the contents of
1021  *				<inttypes.h>.  (This can be appropriate for
1022  *				all programs/modules except those claiming
1023  *				ANSI-C conformance.)
1024  *
1025  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
1026  *				components of <inttypes.h>.
1027  *
1028  *	<inttypes.h>		For use by applications.
1029  *
1030  * See these files for more details.
1031  */
1032 
1033 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1034 /*
1035  * CDDL HEADER START
1036  *
1037  * The contents of this file are subject to the terms of the
1038  * Common Development and Distribution License (the "License").
1039  * You may not use this file except in compliance with the License.
1040  *
1041  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1042  * or http://www.opensolaris.org/os/licensing.
1043  * See the License for the specific language governing permissions
1044  * and limitations under the License.
1045  *
1046  * When distributing Covered Code, include this CDDL HEADER in each
1047  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1048  * If applicable, add the following below this CDDL HEADER, with the
1049  * fields enclosed by brackets "[]" replaced with your own identifying
1050  * information: Portions Copyright [yyyy] [name of copyright owner]
1051  *
1052  * CDDL HEADER END
1053  */
1054 
1055 /*
1056  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1057  * Copyright 2016 Joyent, Inc.
1058  *
1059  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1060  * Use is subject to license terms.
1061  */
1062 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2
1063 
1064 
1065 
1066 
1067 
1068 /*
1069  * Basic / Extended integer types
1070  *
1071  * The following defines the basic fixed-size integer types.
1072  *
1073  * Implementations are free to typedef them to Standard C integer types or
1074  * extensions that they support. If an implementation does not support one
1075  * of the particular integer data types below, then it should not define the
1076  * typedefs and macros corresponding to that data type.  Note that int8_t
1077  * is not defined in -Xs mode on ISAs for which the ABI specifies "char"
1078  * as an unsigned entity because there is no way to define an eight bit
1079  * signed integral.
1080  */
1081 
1082 typedef char int8_t;
1083 
1084 
1085 
1086 typedef short int16_t;
1087 typedef int int32_t;
1088 
1089 
1090 
1091 
1092 
1093 
1094 typedef long long int64_t;
1095 
1096 
1097 
1098 typedef unsigned char uint8_t;
1099 typedef unsigned short uint16_t;
1100 typedef unsigned int uint32_t;
1101 
1102 
1103 
1104 
1105 typedef unsigned long long uint64_t;
1106 
1107 
1108 
1109 /*
1110  * intmax_t and uintmax_t are to be the longest (in number of bits) signed
1111  * and unsigned integer types supported by the implementation.
1112  */
1113 
1114 typedef int64_t intmax_t;
1115 typedef uint64_t uintmax_t;
1116 
1117 
1118 
1119 
1120 
1121 /*
1122  * intptr_t and uintptr_t are signed and unsigned integer types large enough
1123  * to hold any data pointer; that is, data pointers can be assigned into or
1124  * from these integer types without losing precision.
1125  */
1126 
1127 
1128 
1129 
1130 typedef int intptr_t;
1131 typedef unsigned int uintptr_t;
1132 
1133 
1134 /*
1135  * The following define the fastest integer types that can hold the
1136  * specified number of bits.
1137  */
1138 
1139 typedef char int_fast8_t;
1140 
1141 
1142 
1143 typedef int int_fast16_t;
1144 typedef int int_fast32_t;
1145 
1146 
1147 
1148 
1149 typedef long long int_fast64_t;
1150 
1151 
1152 
1153 typedef unsigned char uint_fast8_t;
1154 typedef unsigned int uint_fast16_t;
1155 typedef unsigned int uint_fast32_t;
1156 
1157 
1158 
1159 
1160 typedef unsigned long long uint_fast64_t;
1161 
1162 
1163 
1164 /*
1165  * The following define the smallest integer types that can hold the
1166  * specified number of bits.
1167  */
1168 
1169 typedef char int_least8_t;
1170 
1171 
1172 
1173 typedef short int_least16_t;
1174 typedef int int_least32_t;
1175 
1176 
1177 
1178 
1179 typedef long long int_least64_t;
1180 
1181 
1182 
1183 /*
1184  * If these are changed, please update char16_t and char32_t in head/uchar.h.
1185  */
1186 typedef unsigned char uint_least8_t;
1187 typedef unsigned short uint_least16_t;
1188 typedef unsigned int uint_least32_t;
1189 
1190 
1191 
1192 
1193 typedef unsigned long long uint_least64_t;
1194 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
1195 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1196 /*
1197  * Strictly conforming ANSI C environments prior to the 1999
1198  * revision of the C Standard (ISO/IEC 9899:1999) do not have
1199  * the long long data type.
1200  */
1201 
1202 typedef long long longlong_t;
1203 typedef unsigned long long u_longlong_t;
1204 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1205 /*
1206  * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
1207  * to use them instead of int32_t and uint32_t because DEC had
1208  * shipped 64-bit wide.
1209  */
1210 
1211 
1212 
1213 
1214 typedef long t_scalar_t; /* historical versions */
1215 typedef unsigned long t_uscalar_t;
1216 
1217 
1218 /*
1219  * POSIX Extensions
1220  */
1221 typedef unsigned char uchar_t;
1222 typedef unsigned short ushort_t;
1223 typedef unsigned int uint_t;
1224 typedef unsigned long ulong_t;
1225 
1226 typedef char *caddr_t; /* ?<core address> type */
1227 typedef long daddr_t; /* <disk address> type */
1228 typedef short cnt_t; /* ?<count> type */
1229 
1230 
1231 
1232 
1233 
1234 
1235 typedef int ptrdiff_t; /* (historical version) */
1236 
1237 
1238 
1239 /*
1240  * VM-related types
1241  */
1242 typedef ulong_t pfn_t; /* page frame number */
1243 typedef ulong_t pgcnt_t; /* number of pages */
1244 typedef long spgcnt_t; /* signed number of pages */
1245 
1246 typedef uchar_t use_t; /* use count for swap.  */
1247 typedef short sysid_t;
1248 typedef short index_t;
1249 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */
1250 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */
1251 
1252 /*
1253  * The size of off_t and related types depends on the setting of
1254  * _FILE_OFFSET_BITS.  (Note that other system headers define other types
1255  * related to those defined here.)
1256  *
1257  * If _LARGEFILE64_SOURCE is defined, variants of these types that are
1258  * explicitly 64 bits wide become available.
1259  */
1260 
1261 
1262 
1263 
1264 typedef long off_t; /* offsets within files */
1265 # 153 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1266 typedef longlong_t off64_t; /* offsets within files */
1267 
1268 
1269 
1270 
1271 
1272 
1273 typedef ulong_t ino_t; /* expanded inode type	*/
1274 typedef long blkcnt_t; /* count of file blocks */
1275 typedef ulong_t fsblkcnt_t; /* count of file system blocks */
1276 typedef ulong_t fsfilcnt_t; /* count of files */
1277 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1278 typedef u_longlong_t ino64_t; /* expanded inode type	*/
1279 typedef longlong_t blkcnt64_t; /* count of file blocks */
1280 typedef u_longlong_t fsblkcnt64_t; /* count of file system blocks */
1281 typedef u_longlong_t fsfilcnt64_t; /* count of files */
1282 
1283 
1284 
1285 
1286 
1287 
1288 typedef long blksize_t; /* used for block sizes */
1289 
1290 
1291 
1292 
1293 
1294 typedef enum { B_FALSE, B_TRUE } boolean_t;
1295 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1296 /*
1297  * The {u,}pad64_t types can be used in structures such that those structures
1298  * may be accessed by code produced by compilation environments which don't
1299  * support a 64 bit integral datatype.  The intention is not to allow
1300  * use of these fields in such environments, but to maintain the alignment
1301  * and offsets of the structure.
1302  *
1303  * Similar comments for {u,}pad128_t.
1304  *
1305  * Note that these types do NOT generate any stronger alignment constraints
1306  * than those available in the underlying ABI.  See <sys/isa_defs.h>
1307  */
1308 
1309 typedef int64_t pad64_t;
1310 typedef uint64_t upad64_t;
1311 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1312 typedef union {
1313  long double _q;
1314  int32_t _l[4];
1315 } pad128_t;
1316 
1317 typedef union {
1318  long double _q;
1319  uint32_t _l[4];
1320 } upad128_t;
1321 
1322 typedef longlong_t offset_t;
1323 typedef u_longlong_t u_offset_t;
1324 typedef u_longlong_t len_t;
1325 typedef u_longlong_t diskaddr_t;
1326 
1327 
1328 
1329 
1330 /*
1331  * Definitions remaining from previous partial support for 64-bit file
1332  * offsets.  This partial support for devices greater than 2gb requires
1333  * compiler support for long long.
1334  */
1335 
1336 typedef union {
1337  offset_t _f; /* Full 64 bit offset value */
1338  struct {
1339   int32_t _l; /* lower 32 bits of offset value */
1340   int32_t _u; /* upper 32 bits of offset value */
1341  } _p;
1342 } lloff_t;
1343 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1344 typedef union {
1345  longlong_t _f; /* Full 64 bit disk address value */
1346  struct {
1347   int32_t _l; /* lower 32 bits of disk address value */
1348   int32_t _u; /* upper 32 bits of disk address value */
1349  } _p;
1350 } lldaddr_t;
1351 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1352 typedef uint_t k_fltset_t; /* kernel fault set type */
1353 
1354 /*
1355  * The following type is for various kinds of identifiers.  The
1356  * actual type must be the same for all since some system calls
1357  * (such as sigsend) take arguments that may be any of these
1358  * types.  The enumeration type idtype_t defined in sys/procset.h
1359  * is used to indicate what type of id is being specified --
1360  * a process id, process group id, session id, scheduling class id,
1361  * user id, group id, project id, task id or zone id.
1362  */
1363 
1364 
1365 
1366 typedef long id_t; /* (historical version) */
1367 
1368 
1369 typedef id_t lgrp_id_t; /* lgroup ID */
1370 
1371 /*
1372  * Type useconds_t is an unsigned integral type capable of storing
1373  * values at least in the range of zero to 1,000,000.
1374  */
1375 typedef uint_t useconds_t; /* Time, in microseconds */
1376 
1377 
1378 
1379 typedef long suseconds_t; /* signed # of microseconds */
1380 
1381 
1382 /*
1383  * Typedefs for dev_t components.
1384  */
1385 
1386 
1387 
1388 
1389 typedef ulong_t major_t; /* (historical version) */
1390 typedef ulong_t minor_t; /* (historical version) */
1391 
1392 
1393 /*
1394  * The data type of a thread priority.
1395  */
1396 typedef short pri_t;
1397 
1398 /*
1399  * The data type for a CPU flags field.  (Can be extended to larger unsigned
1400  * types, if needed, limited by ability to update atomically.)
1401  */
1402 typedef ushort_t cpu_flag_t;
1403 
1404 /*
1405  * For compatibility reasons the following typedefs (prefixed o_)
1406  * can't grow regardless of the EFT definition. Although,
1407  * applications should not explicitly use these typedefs
1408  * they may be included via a system header definition.
1409  * WARNING: These typedefs may be removed in a future
1410  * release.
1411  *		ex. the definitions in s5inode.h (now obsoleted)
1412  *			remained small to preserve compatibility
1413  *			in the S5 file system type.
1414  */
1415 typedef ushort_t o_mode_t; /* old file attribute type */
1416 typedef short o_dev_t; /* old device type	*/
1417 typedef ushort_t o_uid_t; /* old UID type		*/
1418 typedef o_uid_t o_gid_t; /* old GID type		*/
1419 typedef short o_nlink_t; /* old file link type	*/
1420 typedef short o_pid_t; /* old process id type	*/
1421 typedef ushort_t o_ino_t; /* old inode type	*/
1422 
1423 
1424 /*
1425  * POSIX and XOPEN Declarations
1426  */
1427 typedef int key_t; /* IPC key type		*/
1428 
1429 
1430 
1431 typedef ulong_t mode_t; /* (historical version) */
1432 
1433 
1434 
1435 
1436 typedef unsigned int uid_t; /* UID type		*/
1437 
1438 
1439 typedef uid_t gid_t; /* GID type		*/
1440 
1441 typedef uint32_t datalink_id_t;
1442 typedef uint32_t vrid_t;
1443 
1444 typedef id_t taskid_t;
1445 typedef id_t projid_t;
1446 typedef id_t poolid_t;
1447 typedef id_t zoneid_t;
1448 typedef id_t ctid_t;
1449 
1450 /*
1451  * POSIX definitions are same as defined in thread.h and synch.h.
1452  * Any changes made to here should be reflected in corresponding
1453  * files as described in comments.
1454  */
1455 typedef uint_t pthread_t; /* = thread_t in thread.h */
1456 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */
1457 
1458 /* "Magic numbers" tagging synchronization object types */
1459 
1460 
1461 
1462 
1463 
1464 typedef struct _pthread_mutex { /* = mutex_t in synch.h */
1465  struct {
1466   uint16_t __pthread_mutex_flag1;
1467   uint8_t __pthread_mutex_flag2;
1468   uint8_t __pthread_mutex_ceiling;
1469   uint16_t __pthread_mutex_type;
1470   uint16_t __pthread_mutex_magic;
1471  } __pthread_mutex_flags;
1472  union {
1473   struct {
1474    uint8_t __pthread_mutex_pad[8];
1475   } __pthread_mutex_lock64;
1476   struct {
1477    uint32_t __pthread_ownerpid;
1478    uint32_t __pthread_lockword;
1479   } __pthread_mutex_lock32;
1480   upad64_t __pthread_mutex_owner64;
1481  } __pthread_mutex_lock;
1482  upad64_t __pthread_mutex_data;
1483 } pthread_mutex_t;
1484 
1485 typedef struct _pthread_cond { /* = cond_t in synch.h */
1486  struct {
1487   uint8_t __pthread_cond_flag[4];
1488   uint16_t __pthread_cond_type;
1489   uint16_t __pthread_cond_magic;
1490  } __pthread_cond_flags;
1491  upad64_t __pthread_cond_data;
1492 } pthread_cond_t;
1493 
1494 /*
1495  * UNIX 98 Extension
1496  */
1497 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */
1498  int32_t __pthread_rwlock_readers;
1499  uint16_t __pthread_rwlock_type;
1500  uint16_t __pthread_rwlock_magic;
1501  pthread_mutex_t __pthread_rwlock_mutex;
1502  pthread_cond_t __pthread_rwlock_readercv;
1503  pthread_cond_t __pthread_rwlock_writercv;
1504 } pthread_rwlock_t;
1505 
1506 /*
1507  * SUSV3
1508  */
1509 typedef struct {
1510  uint32_t __pthread_barrier_count;
1511  uint32_t __pthread_barrier_current;
1512  upad64_t __pthread_barrier_cycle;
1513  upad64_t __pthread_barrier_reserved;
1514  pthread_mutex_t __pthread_barrier_lock;
1515  pthread_cond_t __pthread_barrier_cond;
1516 } pthread_barrier_t;
1517 
1518 typedef pthread_mutex_t pthread_spinlock_t;
1519 
1520 /*
1521  * attributes for threads, dynamically allocated by library
1522  */
1523 typedef struct _pthread_attr {
1524  void *__pthread_attrp;
1525 } pthread_attr_t;
1526 
1527 /*
1528  * attributes for mutex, dynamically allocated by library
1529  */
1530 typedef struct _pthread_mutexattr {
1531  void *__pthread_mutexattrp;
1532 } pthread_mutexattr_t;
1533 
1534 /*
1535  * attributes for cond, dynamically allocated by library
1536  */
1537 typedef struct _pthread_condattr {
1538  void *__pthread_condattrp;
1539 } pthread_condattr_t;
1540 
1541 /*
1542  * pthread_once
1543  */
1544 typedef struct _once {
1545  upad64_t __pthread_once_pad[4];
1546 } pthread_once_t;
1547 
1548 /*
1549  * UNIX 98 Extensions
1550  * attributes for rwlock, dynamically allocated by library
1551  */
1552 typedef struct _pthread_rwlockattr {
1553  void *__pthread_rwlockattrp;
1554 } pthread_rwlockattr_t;
1555 
1556 /*
1557  * SUSV3
1558  * attributes for pthread_barrier_t, dynamically allocated by library
1559  */
1560 typedef struct {
1561  void *__pthread_barrierattrp;
1562 } pthread_barrierattr_t;
1563 
1564 typedef ulong_t dev_t; /* expanded device type */
1565 
1566 
1567 
1568 
1569 
1570 typedef ulong_t nlink_t; /* (historical version) */
1571 typedef long pid_t; /* (historical version) */
1572 
1573 
1574 
1575 
1576 
1577 
1578 
1579 typedef uint_t size_t; /* (historical version) */
1580 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1581 typedef int ssize_t; /* (historical version) */
1582 
1583 
1584 
1585 
1586 
1587 typedef long time_t; /* time of day in seconds */
1588 
1589 
1590 
1591 
1592 typedef long clock_t; /* relative time in a specified resolution */
1593 
1594 
1595 
1596 
1597 typedef int clockid_t; /* clock identifier type */
1598 
1599 
1600 
1601 
1602 typedef int timer_t; /* timer identifier type */
1603 
1604 
1605 
1606 
1607 /* BEGIN CSTYLED */
1608 typedef unsigned char unchar;
1609 typedef unsigned short ushort;
1610 typedef unsigned int uint;
1611 typedef unsigned long ulong;
1612 /* END CSTYLED */
1613 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1614 /*
1615  * The following is the value of type id_t to use to indicate the
1616  * caller's current id.  See procset.h for the type idtype_t
1617  * which defines which kind of id is being specified.
1618  */
1619 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1620 /*
1621  * The following value of type pfn_t is used to indicate
1622  * invalid page frame number.
1623  */
1624 
1625 
1626 
1627 /* BEGIN CSTYLED */
1628 typedef unsigned char u_char;
1629 typedef unsigned short u_short;
1630 typedef unsigned int u_int;
1631 typedef unsigned long u_long;
1632 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */
1633 typedef quad_t quad; /* used by UFS */
1634 /* END CSTYLED */
1635 
1636 /*
1637  * Nested include for BSD/sockets source compatibility.
1638  * (The select macros used to be defined here).
1639  */
1640 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
1641 /*
1642  * CDDL HEADER START
1643  *
1644  * The contents of this file are subject to the terms of the
1645  * Common Development and Distribution License (the "License").
1646  * You may not use this file except in compliance with the License.
1647  *
1648  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1649  * or http://www.opensolaris.org/os/licensing.
1650  * See the License for the specific language governing permissions
1651  * and limitations under the License.
1652  *
1653  * When distributing Covered Code, include this CDDL HEADER in each
1654  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1655  * If applicable, add the following below this CDDL HEADER, with the
1656  * fields enclosed by brackets "[]" replaced with your own identifying
1657  * information: Portions Copyright [yyyy] [name of copyright owner]
1658  *
1659  * CDDL HEADER END
1660  */
1661 
1662 /*
1663  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1664  *
1665  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
1666  *
1667  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
1668  * Use is subject to license terms.
1669  */
1670 
1671 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
1672 /*	  All Rights Reserved	*/
1673 
1674 /*
1675  * University Copyright- Copyright (c) 1982, 1986, 1988
1676  * The Regents of the University of California
1677  * All Rights Reserved
1678  *
1679  * University Acknowledgment- Portions of this document are derived from
1680  * software developed by the University of California, Berkeley, and its
1681  * contributors.
1682  */
1683 
1684 
1685 
1686 
1687 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1688 /*
1689  * CDDL HEADER START
1690  *
1691  * The contents of this file are subject to the terms of the
1692  * Common Development and Distribution License (the "License").
1693  * You may not use this file except in compliance with the License.
1694  *
1695  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1696  * or http://www.opensolaris.org/os/licensing.
1697  * See the License for the specific language governing permissions
1698  * and limitations under the License.
1699  *
1700  * When distributing Covered Code, include this CDDL HEADER in each
1701  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1702  * If applicable, add the following below this CDDL HEADER, with the
1703  * fields enclosed by brackets "[]" replaced with your own identifying
1704  * information: Portions Copyright [yyyy] [name of copyright owner]
1705  *
1706  * CDDL HEADER END
1707  */
1708 
1709 /*
1710  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1711  * Copyright 2016 Joyent, Inc.
1712  *
1713  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1714  * Use is subject to license terms.
1715  */
1716 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
1717 
1718 
1719 
1720 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
1721 /*
1722  * CDDL HEADER START
1723  *
1724  * The contents of this file are subject to the terms of the
1725  * Common Development and Distribution License, Version 1.0 only
1726  * (the "License").  You may not use this file except in compliance
1727  * with the License.
1728  *
1729  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1730  * or http://www.opensolaris.org/os/licensing.
1731  * See the License for the specific language governing permissions
1732  * and limitations under the License.
1733  *
1734  * When distributing Covered Code, include this CDDL HEADER in each
1735  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1736  * If applicable, add the following below this CDDL HEADER, with the
1737  * fields enclosed by brackets "[]" replaced with your own identifying
1738  * information: Portions Copyright [yyyy] [name of copyright owner]
1739  *
1740  * CDDL HEADER END
1741  */
1742 /*
1743  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
1744  * Use is subject to license terms.
1745  */
1746 
1747 /*
1748  * Implementation-private.  This header should not be included
1749  * directly by an application.  The application should instead
1750  * include <time.h> which includes this header conditionally
1751  * depending on which feature test macros are defined. By default,
1752  * this header is included by <time.h>.  X/Open and POSIX
1753  * standards requirements result in this header being included
1754  * by <time.h> only under a restricted set of conditions.
1755  */
1756 
1757 
1758 
1759 
1760 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1761 /*
1762  * CDDL HEADER START
1763  *
1764  * The contents of this file are subject to the terms of the
1765  * Common Development and Distribution License (the "License").
1766  * You may not use this file except in compliance with the License.
1767  *
1768  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1769  * or http://www.opensolaris.org/os/licensing.
1770  * See the License for the specific language governing permissions
1771  * and limitations under the License.
1772  *
1773  * When distributing Covered Code, include this CDDL HEADER in each
1774  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1775  * If applicable, add the following below this CDDL HEADER, with the
1776  * fields enclosed by brackets "[]" replaced with your own identifying
1777  * information: Portions Copyright [yyyy] [name of copyright owner]
1778  *
1779  * CDDL HEADER END
1780  */
1781 
1782 /*
1783  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1784  * Copyright 2016 Joyent, Inc.
1785  *
1786  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1787  * Use is subject to license terms.
1788  */
1789 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2
1790 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
1791 /*
1792  * Time expressed in seconds and nanoseconds
1793  */
1794 
1795 typedef struct timespec { /* definition per POSIX.4 */
1796  time_t tv_sec; /* seconds */
1797  long tv_nsec; /* and nanoseconds */
1798 } timespec_t;
1799 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
1800 typedef struct timespec timestruc_t; /* definition per SVr4 */
1801 
1802 /*
1803  * The following has been left in for backward compatibility. Portable
1804  * applications should not use the structure name timestruc.
1805  */
1806 
1807 
1808 
1809 
1810 
1811 /*
1812  * Timer specification
1813  */
1814 typedef struct itimerspec { /* definition per POSIX.4 */
1815  struct timespec it_interval; /* timer period */
1816  struct timespec it_value; /* timer expiration */
1817 } itimerspec_t;
1818 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
1819 
1820 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
1821 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
1822 /*	  All Rights Reserved  	*/
1823 
1824 
1825 /*
1826  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
1827  * All rights reserved.  The Berkeley software License Agreement
1828  * specifies the terms and conditions for redistribution.
1829  */
1830 
1831 /*
1832  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1833  *
1834  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
1835  * Use is subject to license terms.
1836  *
1837  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
1838  */
1839 
1840 /*
1841  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
1842  */
1843 
1844 
1845 
1846 
1847 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1848 /*
1849  * CDDL HEADER START
1850  *
1851  * The contents of this file are subject to the terms of the
1852  * Common Development and Distribution License (the "License").
1853  * You may not use this file except in compliance with the License.
1854  *
1855  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1856  * or http://www.opensolaris.org/os/licensing.
1857  * See the License for the specific language governing permissions
1858  * and limitations under the License.
1859  *
1860  * When distributing Covered Code, include this CDDL HEADER in each
1861  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1862  * If applicable, add the following below this CDDL HEADER, with the
1863  * fields enclosed by brackets "[]" replaced with your own identifying
1864  * information: Portions Copyright [yyyy] [name of copyright owner]
1865  *
1866  * CDDL HEADER END
1867  */
1868 
1869 /*
1870  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1871  * Copyright 2016 Joyent, Inc.
1872  *
1873  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1874  * Use is subject to license terms.
1875  */
1876 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
1877 
1878 /*
1879  * Structure returned by gettimeofday(2) system call,
1880  * and used in other calls.
1881  */
1882 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1883 struct timeval {
1884  time_t tv_sec; /* seconds */
1885  suseconds_t tv_usec; /* and microseconds */
1886 };
1887 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1888 struct timezone {
1889  int tz_minuteswest; /* minutes west of Greenwich */
1890  int tz_dsttime; /* type of dst correction */
1891 };
1892 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1893 /*
1894  * Needed for longlong_t type.  Placement of this due to <sys/types.h>
1895  * including <sys/select.h> which relies on the presense of the itimerval
1896  * structure.
1897  */
1898 
1899 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
1900 /*
1901  * CDDL HEADER START
1902  *
1903  * The contents of this file are subject to the terms of the
1904  * Common Development and Distribution License (the "License").
1905  * You may not use this file except in compliance with the License.
1906  *
1907  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1908  * or http://www.opensolaris.org/os/licensing.
1909  * See the License for the specific language governing permissions
1910  * and limitations under the License.
1911  *
1912  * When distributing Covered Code, include this CDDL HEADER in each
1913  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1914  * If applicable, add the following below this CDDL HEADER, with the
1915  * fields enclosed by brackets "[]" replaced with your own identifying
1916  * information: Portions Copyright [yyyy] [name of copyright owner]
1917  *
1918  * CDDL HEADER END
1919  */
1920 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
1921 /*	  All Rights Reserved  	*/
1922 
1923 
1924 /*
1925  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
1926  * Use is subject to license terms.
1927  *
1928  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
1929  * Copyright 2016 Joyent, Inc.
1930  */
1931 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
1932 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1933 /*
1934  * Operations on timevals.
1935  */
1936 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1937 /*
1938  * Names of the interval timers, and structure
1939  * defining a timer setting.
1940  */
1941 
1942 
1943 
1944     /* time and when system is running on */
1945     /* behalf of the process. */
1946 
1947     /* time profiling of multithreaded */
1948     /* programs. */
1949 
1950 
1951 struct itimerval {
1952  struct timeval it_interval; /* timer interval */
1953  struct timeval it_value; /* current value */
1954 };
1955 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1956 /*
1957  *	Definitions for commonly used resolutions.
1958  */
1959 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1960 /*
1961  * Time expressed as a 64-bit nanosecond counter.
1962  */
1963 typedef longlong_t hrtime_t;
1964 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1965 int adjtime(struct timeval *, struct timeval *);
1966 
1967 
1968 
1969 
1970 int futimesat(int, const char *, const struct timeval *);
1971 
1972 
1973 
1974 
1975 
1976 int getitimer(int, struct itimerval *);
1977 int utimes(const char *, const struct timeval *);
1978 
1979 
1980 
1981 
1982 int setitimer(int, struct itimerval *,
1983  struct itimerval *);
1984 
1985 
1986 
1987 
1988 /*
1989  * gettimeofday() and settimeofday() were included in SVr4 due to their
1990  * common use in BSD based applications.  They were to be included exactly
1991  * as in BSD, with two parameters.  However, AT&T/USL noted that the second
1992  * parameter was unused and deleted it, thereby making a routine included
1993  * for compatibility, incompatible.
1994  *
1995  * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two
1996  * parameters.
1997  *
1998  * This has caused general disagreement in the application community as to
1999  * the syntax of these routines.  Solaris defaults to the XSH4.2 definition.
2000  * The flag _SVID_GETTOD may be used to force the SVID version.
2001  */
2002 
2003 
2004 
2005 
2006 
2007 int settimeofday(struct timeval *, void *);
2008 
2009 hrtime_t gethrtime(void);
2010 hrtime_t gethrvtime(void);
2011 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
2012 int gettimeofday(struct timeval *, void *);
2013 
2014 
2015 
2016 
2017 /*
2018  * The inclusion of <time.h> is historical and was added for
2019  * backward compatibility in delta 1.2 when a number of definitions
2020  * were moved out of <sys/time.h>.  More recently, the timespec and
2021  * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
2022  * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
2023  * which is now included by <time.h>.  This change was due to POSIX
2024  * 1003.1b-1993 and X/Open UNIX 98 requirements.  For non-POSIX and
2025  * non-X/Open applications, including this header will still make
2026  * visible these definitions.
2027  */
2028 
2029 
2030 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
2031 /*
2032  * CDDL HEADER START
2033  *
2034  * The contents of this file are subject to the terms of the
2035  * Common Development and Distribution License (the "License").
2036  * You may not use this file except in compliance with the License.
2037  *
2038  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2039  * or http://www.opensolaris.org/os/licensing.
2040  * See the License for the specific language governing permissions
2041  * and limitations under the License.
2042  *
2043  * When distributing Covered Code, include this CDDL HEADER in each
2044  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2045  * If applicable, add the following below this CDDL HEADER, with the
2046  * fields enclosed by brackets "[]" replaced with your own identifying
2047  * information: Portions Copyright [yyyy] [name of copyright owner]
2048  *
2049  * CDDL HEADER END
2050  */
2051 /*	Copyright (c) 1988 AT&T	*/
2052 /*	  All Rights Reserved  	*/
2053 
2054 
2055 /*
2056  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2057  *
2058  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
2059  * Use is subject to license terms.
2060  */
2061 /*
2062  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
2063  * Copyright 2016 Joyent, Inc.
2064  */
2065 
2066 
2067 
2068 
2069 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2070 /*
2071  * CDDL HEADER START
2072  *
2073  * The contents of this file are subject to the terms of the
2074  * Common Development and Distribution License (the "License").
2075  * You may not use this file except in compliance with the License.
2076  *
2077  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2078  * or http://www.opensolaris.org/os/licensing.
2079  * See the License for the specific language governing permissions
2080  * and limitations under the License.
2081  *
2082  * When distributing Covered Code, include this CDDL HEADER in each
2083  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2084  * If applicable, add the following below this CDDL HEADER, with the
2085  * fields enclosed by brackets "[]" replaced with your own identifying
2086  * information: Portions Copyright [yyyy] [name of copyright owner]
2087  *
2088  * CDDL HEADER END
2089  */
2090 
2091 /*
2092  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2093  * Copyright 2016 Joyent, Inc.
2094  *
2095  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2096  * Use is subject to license terms.
2097  */
2098 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2099 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1
2100 /*
2101  * CDDL HEADER START
2102  *
2103  * The contents of this file are subject to the terms of the
2104  * Common Development and Distribution License, Version 1.0 only
2105  * (the "License").  You may not use this file except in compliance
2106  * with the License.
2107  *
2108  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2109  * or http://www.opensolaris.org/os/licensing.
2110  * See the License for the specific language governing permissions
2111  * and limitations under the License.
2112  *
2113  * When distributing Covered Code, include this CDDL HEADER in each
2114  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2115  * If applicable, add the following below this CDDL HEADER, with the
2116  * fields enclosed by brackets "[]" replaced with your own identifying
2117  * information: Portions Copyright [yyyy] [name of copyright owner]
2118  *
2119  * CDDL HEADER END
2120  */
2121 /*	Copyright (c) 1988 AT&T	*/
2122 /*	  All Rights Reserved  	*/
2123 
2124 /*
2125  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2126  * Copyright 2014 PALO, Richard.
2127  *
2128  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2129  * Use is subject to license terms.
2130  */
2131 
2132 /*
2133  * An application should not include this header directly.  Instead it
2134  * should be included only through the inclusion of other Sun headers.
2135  *
2136  * The contents of this header is limited to identifiers specified in the
2137  * C Standard.  Any new identifiers specified in future amendments to the
2138  * C Standard must be placed in this header.  If these new identifiers
2139  * are required to also be in the C++ Standard "std" namespace, then for
2140  * anything other than macro definitions, corresponding "using" directives
2141  * must also be added to <time.h.h>.
2142  */
2143 
2144 
2145 
2146 
2147 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2148 /*
2149  * CDDL HEADER START
2150  *
2151  * The contents of this file are subject to the terms of the
2152  * Common Development and Distribution License (the "License").
2153  * You may not use this file except in compliance with the License.
2154  *
2155  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2156  * or http://www.opensolaris.org/os/licensing.
2157  * See the License for the specific language governing permissions
2158  * and limitations under the License.
2159  *
2160  * When distributing Covered Code, include this CDDL HEADER in each
2161  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2162  * If applicable, add the following below this CDDL HEADER, with the
2163  * fields enclosed by brackets "[]" replaced with your own identifying
2164  * information: Portions Copyright [yyyy] [name of copyright owner]
2165  *
2166  * CDDL HEADER END
2167  */
2168 
2169 /*
2170  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2171  * Copyright 2016 Joyent, Inc.
2172  *
2173  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2174  * Use is subject to license terms.
2175  */
2176 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
2177 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
2178 /*
2179  * This file and its contents are supplied under the terms of the
2180  * Common Development and Distribution License ("CDDL"), version 1.0.
2181  * You may only use this file in accordance with the terms of version
2182  * 1.0 of the CDDL.
2183  *
2184  * A full copy of the text of the CDDL should have accompanied this
2185  * source.  A copy of the CDDL is also available via the Internet at
2186  * http://www.illumos.org/license/CDDL.
2187  */
2188 
2189 /*
2190  * Copyright 2014-2016 PALO, Richard.
2191  */
2192 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
2193 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h"
2194 struct tm { /* see ctime(3) */
2195  int tm_sec;
2196  int tm_min;
2197  int tm_hour;
2198  int tm_mday;
2199  int tm_mon;
2200  int tm_year;
2201  int tm_wday;
2202  int tm_yday;
2203  int tm_isdst;
2204 };
2205 
2206 
2207 extern char *asctime(const struct tm *);
2208 extern clock_t clock(void);
2209 extern char *ctime(const time_t *);
2210 extern double difftime(time_t, time_t);
2211 extern struct tm *gmtime(const time_t *);
2212 extern struct tm *localtime(const time_t *);
2213 extern time_t mktime(struct tm *);
2214 extern time_t time(time_t *);
2215 extern size_t strftime(char *, size_t, const char *,
2216  const struct tm *);
2217 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2218 /*
2219  * C11 requires sys/time_impl.h for the definition of the struct timespec.
2220  */
2221 
2222 
2223 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
2224 /*
2225  * CDDL HEADER START
2226  *
2227  * The contents of this file are subject to the terms of the
2228  * Common Development and Distribution License (the "License").
2229  * You may not use this file except in compliance with the License.
2230  *
2231  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2232  * or http://www.opensolaris.org/os/licensing.
2233  * See the License for the specific language governing permissions
2234  * and limitations under the License.
2235  *
2236  * When distributing Covered Code, include this CDDL HEADER in each
2237  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2238  * If applicable, add the following below this CDDL HEADER, with the
2239  * fields enclosed by brackets "[]" replaced with your own identifying
2240  * information: Portions Copyright [yyyy] [name of copyright owner]
2241  *
2242  * CDDL HEADER END
2243  */
2244 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2245 /*	  All Rights Reserved  	*/
2246 
2247 
2248 /*
2249  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
2250  * Use is subject to license terms.
2251  *
2252  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
2253  * Copyright 2016 Joyent, Inc.
2254  */
2255 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2256 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
2257 /*
2258  * CDDL HEADER START
2259  *
2260  * The contents of this file are subject to the terms of the
2261  * Common Development and Distribution License, Version 1.0 only
2262  * (the "License").  You may not use this file except in compliance
2263  * with the License.
2264  *
2265  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2266  * or http://www.opensolaris.org/os/licensing.
2267  * See the License for the specific language governing permissions
2268  * and limitations under the License.
2269  *
2270  * When distributing Covered Code, include this CDDL HEADER in each
2271  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2272  * If applicable, add the following below this CDDL HEADER, with the
2273  * fields enclosed by brackets "[]" replaced with your own identifying
2274  * information: Portions Copyright [yyyy] [name of copyright owner]
2275  *
2276  * CDDL HEADER END
2277  */
2278 /*
2279  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
2280  * Use is subject to license terms.
2281  */
2282 
2283 /*
2284  * Implementation-private.  This header should not be included
2285  * directly by an application.  The application should instead
2286  * include <time.h> which includes this header conditionally
2287  * depending on which feature test macros are defined. By default,
2288  * this header is included by <time.h>.  X/Open and POSIX
2289  * standards requirements result in this header being included
2290  * by <time.h> only under a restricted set of conditions.
2291  */
2292 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2293 
2294 
2295 /*
2296  * Allow global visibility for symbols defined in
2297  * C++ "std" namespace in <iso/time_iso.h>.
2298  */
2299 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2300 extern struct tm *gmtime_r(const time_t *,
2301    struct tm *);
2302 extern struct tm *localtime_r(const time_t *,
2303    struct tm *);
2304 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2305 extern char *strptime(const char *, const char *,
2306   struct tm *);
2307 
2308 
2309 
2310 
2311 
2312 /*
2313  * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
2314  * definition of the sigevent structure.  Both require the inclusion
2315  * of <signal.h> and <time.h> when using the timer_create() function.
2316  * However, X/Open also specifies that the sigevent structure be defined
2317  * in <time.h> as described in the header <signal.h>.  This prevents
2318  * compiler warnings for applications that only include <time.h> and not
2319  * also <signal.h>.  The sigval union and the sigevent structure is
2320  * therefore defined both here and in <sys/siginfo.h> which gets included
2321  * via inclusion of <signal.h>.
2322  */
2323 
2324 
2325 union sigval {
2326  int sival_int; /* integer value */
2327  void *sival_ptr; /* pointer value */
2328 };
2329 
2330 
2331 
2332 
2333 struct sigevent {
2334  int sigev_notify; /* notification mode */
2335  int sigev_signo; /* signal number */
2336  union sigval sigev_value; /* signal value */
2337  void (*sigev_notify_function)(union sigval);
2338  pthread_attr_t *sigev_notify_attributes;
2339  int __sigev_pad2;
2340 };
2341 
2342 
2343 extern int clock_getres(clockid_t, struct timespec *);
2344 extern int clock_gettime(clockid_t, struct timespec *);
2345 extern int clock_settime(clockid_t, const struct timespec *);
2346 extern int timer_create(clockid_t, struct sigevent *,
2347   timer_t *);
2348 extern int timer_delete(timer_t);
2349 extern int timer_getoverrun(timer_t);
2350 extern int timer_gettime(timer_t, struct itimerspec *);
2351 extern int timer_settime(timer_t, int, const struct itimerspec *,
2352   struct itimerspec *);
2353 
2354 extern int nanosleep(const struct timespec *, struct timespec *);
2355 extern int clock_nanosleep(clockid_t, int,
2356  const struct timespec *, struct timespec *);
2357 
2358 
2359 
2360 
2361 
2362 
2363 extern void tzset(void);
2364 extern char *tzname[2];
2365 
2366 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */
2367 
2368 
2369 extern long _sysconf(int); /* System Private interface to sysconf() */
2370 
2371     /* 3 is _SC_CLK_TCK */
2372 
2373 
2374 
2375 
2376 
2377 extern long timezone;
2378 extern int daylight;
2379 
2380 
2381 
2382 
2383 
2384 
2385 extern time_t timegm(struct tm *);
2386 extern int cftime(char *, char *, const time_t *);
2387 extern int ascftime(char *, const char *, const struct tm *);
2388 extern long altzone;
2389 
2390 
2391 
2392 
2393 extern struct tm *getdate(const char *);
2394 
2395 
2396 
2397 
2398 
2399 extern int getdate_err;
2400 
2401 
2402 
2403 /*
2404  * ctime_r() & asctime_r() prototypes are defined here.
2405  */
2406 
2407 /*
2408  * Previous releases of Solaris, starting at 2.3, provided definitions of
2409  * various functions as specified in POSIX.1c, Draft 6.  For some of these
2410  * functions, the final POSIX 1003.1c standard had a different number of
2411  * arguments and return values.
2412  *
2413  * The following segment of this header provides support for the standard
2414  * interfaces while supporting applications written under earlier
2415  * releases.  The application defines appropriate values of the feature
2416  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
2417  * whether it was written to expect the Draft 6 or standard versions of
2418  * these interfaces, before including this header.  This header then
2419  * provides a mapping from the source version of the interface to an
2420  * appropriate binary interface.  Such mappings permit an application
2421  * to be built from libraries and objects which have mixed expectations
2422  * of the definitions of these functions.
2423  *
2424  * For applications using the Draft 6 definitions, the binary symbol is the
2425  * same as the source symbol, and no explicit mapping is needed.  For the
2426  * standard interface, the function func() is mapped to the binary symbol
2427  * _posix_func().  The preferred mechanism for the remapping is a compiler
2428  * #pragma.  If the compiler does not provide such a #pragma, the header file
2429  * defines a static function func() which calls the _posix_func() version;
2430  * this has to be done instead of #define since POSIX specifies that an
2431  * application can #undef the symbol and still be bound to the correct
2432  * implementation.  Unfortunately, the statics confuse lint so we fallback to
2433  * #define in that case.
2434  *
2435  * NOTE: Support for the Draft 6 definitions is provided for compatibility
2436  * only.  New applications/libraries should use the standard definitions.
2437  */
2438 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2439 extern char *asctime_r(const struct tm *, char *, int);
2440 extern char *ctime_r(const time_t *, char *, int);
2441 # 292 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2442 typedef struct _locale *locale_t;
2443 
2444 
2445 extern size_t strftime_l(char *, size_t,
2446  const char *, const struct tm *, locale_t);
2447 
2448 
2449 
2450 
2451 
2452 /*
2453  * Note, the C11 standard requires that all the various base values that are
2454  * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one.
2455  */
2456 
2457 
2458 extern int timespec_get(struct timespec *, int);
2459 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
2460 
2461 
2462 /*
2463  * The inclusion of <sys/select.h> is needed for the FD_CLR,
2464  * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
2465  * select() prototype defined in the XOpen specifications
2466  * beginning with XSH4v2.  Placement required after definition
2467  * for itimerval.
2468  */
2469 
2470 
2471 
2472 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
2473 /*
2474  * CDDL HEADER START
2475  *
2476  * The contents of this file are subject to the terms of the
2477  * Common Development and Distribution License (the "License").
2478  * You may not use this file except in compliance with the License.
2479  *
2480  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2481  * or http://www.opensolaris.org/os/licensing.
2482  * See the License for the specific language governing permissions
2483  * and limitations under the License.
2484  *
2485  * When distributing Covered Code, include this CDDL HEADER in each
2486  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2487  * If applicable, add the following below this CDDL HEADER, with the
2488  * fields enclosed by brackets "[]" replaced with your own identifying
2489  * information: Portions Copyright [yyyy] [name of copyright owner]
2490  *
2491  * CDDL HEADER END
2492  */
2493 
2494 /*
2495  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2496  *
2497  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
2498  *
2499  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
2500  * Use is subject to license terms.
2501  */
2502 
2503 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2504 /*	  All Rights Reserved	*/
2505 
2506 /*
2507  * University Copyright- Copyright (c) 1982, 1986, 1988
2508  * The Regents of the University of California
2509  * All Rights Reserved
2510  *
2511  * University Acknowledgment- Portions of this document are derived from
2512  * software developed by the University of California, Berkeley, and its
2513  * contributors.
2514  */
2515 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
2516 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
2517 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2518 /*
2519  * The sigset_t type is defined in <sys/signal.h> and duplicated
2520  * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
2521  * now allows the visibility of signal.h in this header, however
2522  * an order of inclusion problem occurs as a result of inclusion
2523  * of <sys/select.h> in <signal.h> under certain conditions.
2524  * Rather than include <sys/signal.h> here, we've duplicated
2525  * the sigset_t type instead. This type is required for the XPG6
2526  * introduced pselect() function also declared in this header.
2527  */
2528 
2529 
2530 typedef struct { /* signal set type */
2531  unsigned int __sigbits[4];
2532 } sigset_t;
2533 
2534 
2535 
2536 
2537 /*
2538  * Select uses bit masks of file descriptors in longs.
2539  * These macros manipulate such bit fields.
2540  * FD_SETSIZE may be defined by the user, but the default here
2541  * should be >= NOFILE (param.h).
2542  */
2543 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2544 typedef long fd_mask;
2545 
2546 typedef long fds_mask;
2547 
2548 /*
2549  *  The value of _NBBY needs to be consistant with the value
2550  *  of NBBY in <sys/param.h>.
2551  */
2552 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2553 typedef struct fd_set {
2554 
2555 
2556 
2557  long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
2558 } fd_set;
2559 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2560 extern int select(int, fd_set *, fd_set *,
2561  fd_set *, struct timeval *);
2562 
2563 
2564 extern int pselect(int, fd_set *, fd_set *,
2565  fd_set *, const struct timespec *,
2566  const sigset_t *);
2567 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
2568 
2569 
2570 
2571 /*
2572  * _VOID was defined to be either void or char but this is not
2573  * required because previous SunOS compilers have accepted the void
2574  * type. However, because many system header and source files use the
2575  * void keyword, the volatile keyword, and ANSI C function prototypes,
2576  * non-ANSI compilers cannot compile the system anyway. The _VOID macro
2577  * should therefore not be used and remains for source compatibility
2578  * only.
2579  */
2580 /* CSTYLED */
2581 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h" 2
2582 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elftypes.h" 1
2583 /*
2584  * CDDL HEADER START
2585  *
2586  * The contents of this file are subject to the terms of the
2587  * Common Development and Distribution License, Version 1.0 only
2588  * (the "License").  You may not use this file except in compliance
2589  * with the License.
2590  *
2591  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2592  * or http://www.opensolaris.org/os/licensing.
2593  * See the License for the specific language governing permissions
2594  * and limitations under the License.
2595  *
2596  * When distributing Covered Code, include this CDDL HEADER in each
2597  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2598  * If applicable, add the following below this CDDL HEADER, with the
2599  * fields enclosed by brackets "[]" replaced with your own identifying
2600  * information: Portions Copyright [yyyy] [name of copyright owner]
2601  *
2602  * CDDL HEADER END
2603  */
2604 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2605 /*	  All Rights Reserved  	*/
2606 
2607 
2608 /*
2609  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2610  * Use is subject to license terms.
2611  */
2612 
2613 
2614 
2615 
2616 #pragma ident "%Z%%M%	%I%	%E% SMI"
2617 
2618 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2619 /*
2620  * CDDL HEADER START
2621  *
2622  * The contents of this file are subject to the terms of the
2623  * Common Development and Distribution License (the "License").
2624  * You may not use this file except in compliance with the License.
2625  *
2626  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2627  * or http://www.opensolaris.org/os/licensing.
2628  * See the License for the specific language governing permissions
2629  * and limitations under the License.
2630  *
2631  * When distributing Covered Code, include this CDDL HEADER in each
2632  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2633  * If applicable, add the following below this CDDL HEADER, with the
2634  * fields enclosed by brackets "[]" replaced with your own identifying
2635  * information: Portions Copyright [yyyy] [name of copyright owner]
2636  *
2637  * CDDL HEADER END
2638  */
2639 
2640 /*
2641  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2642  * Copyright 2016 Joyent, Inc.
2643  *
2644  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2645  * Use is subject to license terms.
2646  */
2647 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elftypes.h" 2
2648 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elftypes.h"
2649 typedef unsigned long Elf32_Addr;
2650 typedef unsigned short Elf32_Half;
2651 typedef unsigned long Elf32_Off;
2652 typedef long Elf32_Sword;
2653 typedef unsigned long Elf32_Word;
2654 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elftypes.h"
2655 typedef unsigned long long Elf64_Addr;
2656 typedef unsigned short Elf64_Half;
2657 typedef unsigned long long Elf64_Off;
2658 typedef int Elf64_Sword;
2659 typedef long long Elf64_Sxword;
2660 typedef unsigned int Elf64_Word;
2661 typedef unsigned long long Elf64_Xword;
2662 typedef unsigned long long Elf64_Lword;
2663 typedef unsigned long long Elf32_Lword;
2664 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h" 2
2665 
2666 
2667 
2668 
2669 
2670 
2671 /*
2672  * Communication structures for the runtime linker.
2673  */
2674 
2675 /*
2676  * The following data structure provides a self-identifying union consisting
2677  * of a tag from a known list and a value.
2678  */
2679 
2680 typedef struct {
2681  Elf32_Sword d_tag; /* how to interpret value */
2682  union {
2683   Elf32_Word d_val;
2684   Elf32_Addr d_ptr;
2685   Elf32_Off d_off;
2686  } d_un;
2687 } Elf32_Dyn;
2688 
2689 
2690 typedef struct {
2691  Elf64_Xword d_tag; /* how to interpret value */
2692  union {
2693   Elf64_Xword d_val;
2694   Elf64_Addr d_ptr;
2695  } d_un;
2696 } Elf64_Dyn;
2697 
2698 
2699 
2700 /*
2701  * Tag values
2702  */
2703 # 107 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
2704 /*
2705  * DT_* encoding rules: The value of each dynamic tag determines the
2706  * interpretation of the d_un union. This convention provides for simpler
2707  * interpretation of dynamic tags by external tools. A tag whose value
2708  * is an even number indicates a dynamic section entry that uses d_ptr.
2709  * A tag whose value is an odd number indicates a dynamic section entry
2710  * that uses d_val, or that uses neither d_ptr nor d_val.
2711  *
2712  * There are exceptions to the above rule:
2713  *	- Tags with values that are less than DT_ENCODING.
2714  *	- Tags with values that fall between DT_LOOS and DT_SUNW_ENCODING
2715  *	- Tags with values that fall between DT_HIOS and DT_LOPROC
2716  *
2717  * Third party tools must handle these exception ranges explicitly
2718  * on an item by item basis.
2719  */
2720 
2721      /*	start after this */
2722 
2723 
2724 
2725 
2726 
2727 /*
2728  * DT_* encoding rules do not apply between DT_LOOS and DT_SUNW_ENCODING
2729  */
2730 
2731 
2732 
2733 
2734 
2735       /*	capabilities */
2736 
2737       /*	symbols immediately */
2738       /*	preceding DT_SYMTAB */
2739 
2740 
2741 /*
2742  * DT_* encoding rules apply between DT_SUNW_ENCODING and DT_HIOS
2743  */
2744 
2745       /*	after this */
2746 
2747 
2748 
2749 
2750 
2751 
2752 
2753       /*	end of dynstr */
2754 
2755 
2756       /*	that produced object */
2757 
2758 
2759 
2760 /*
2761  * DT_* encoding rules do not apply between DT_HIOS and DT_LOPROC
2762  */
2763 
2764 
2765 /*
2766  * The following values have been deprecated and remain here to allow
2767  * compatibility with older binaries.
2768  */
2769 
2770 
2771 /*
2772  * DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
2773  * Dyn.d_un.d_val field of the Elf*_Dyn structure.
2774  */
2775 # 189 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
2776      /*	the following DT_* entry. */
2777      /*	See DF_P1_* definitions */
2778 
2779 
2780 
2781 
2782 /*
2783  * DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
2784  * Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
2785  *
2786  * If any adjustment is made to the ELF object after it has been
2787  * built, these entries will need to be adjusted.
2788  */
2789 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
2790 /*
2791  * The following DT_* entries should have been assigned within one of the
2792  * DT_* ranges, but existed before such ranges had been established.
2793  */
2794 
2795      /*	Solaris (see libld/update.c) */
2796 # 233 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
2797 /*
2798  * DT_* entries between DT_HIPROC and DT_LOPROC are reserved for processor
2799  * specific semantics.
2800  *
2801  * DT_* encoding rules apply to all tag values larger than DT_LOPROC.
2802  */
2803 
2804 
2805 
2806 
2807 
2808 
2809 
2810 /*
2811  * Values for DT_FLAGS
2812  */
2813 
2814 
2815 
2816 
2817 
2818 
2819 /*
2820  * Values for the DT_POSFLAG_1 .dynamic entry.
2821  * These values only affect the following DT_* entry.
2822  */
2823 
2824      /*	lazy loaded */
2825 
2826      /*	not available for general */
2827      /*	symbol bindings. */
2828 
2829 
2830 /*
2831  * Values for the DT_FLAGS_1 .dynamic entry.
2832  */
2833 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
2834      /*	cannot be directly bound to */
2835 
2836 
2837      /*	symbols via /dev/ksyms */
2838 
2839      /*	omits ELF & program headers */
2840 
2841      /*	being built by 'ld' */
2842 
2843 
2844      /*	exist */
2845 
2846 
2847 
2848 /*
2849  * Values set to DT_FEATURE_1 tag's d_val (unused obsolete tag)
2850  */
2851 
2852 
2853 
2854 
2855 /*
2856  * Version structures.  There are three types of version structure:
2857  *
2858  *  o	A definition of the versions within the image itself.
2859  *	Each version definition is assigned a unique index (starting from
2860  *	VER_NDX_BGNDEF)	which is used to cross-reference symbols associated to
2861  *	the version.  Each version can have one or more dependencies on other
2862  *	version definitions within the image.  The version name, and any
2863  *	dependency names, are specified in the version definition auxiliary
2864  *	array.  Version definition entries require a version symbol index table.
2865  *
2866  *  o	A version requirement on a needed dependency.  Each needed entry
2867  *	specifies the shared object dependency (as specified in DT_NEEDED).
2868  *	One or more versions required from this dependency are specified in the
2869  *	version needed auxiliary array.
2870  *
2871  *  o	A version symbol index table.  Each symbol indexes into this array
2872  *	to determine its version index.  Index values of VER_NDX_BGNDEF or
2873  *	greater indicate the version definition to which a symbol is associated.
2874  *	(the size of a symbol index entry is recorded in the sh_info field).
2875  */
2876 
2877 
2878 typedef struct { /* Version Definition Structure. */
2879  Elf32_Half vd_version; /* this structures version revision */
2880  Elf32_Half vd_flags; /* version information */
2881  Elf32_Half vd_ndx; /* version index */
2882  Elf32_Half vd_cnt; /* no. of associated aux entries */
2883  Elf32_Word vd_hash; /* version name hash value */
2884  Elf32_Word vd_aux; /* no. of bytes from start of this */
2885      /*	verdef to verdaux array */
2886  Elf32_Word vd_next; /* no. of bytes from start of this */
2887 } Elf32_Verdef; /*	verdef to next verdef entry */
2888 
2889 typedef struct { /* Verdef Auxiliary Structure. */
2890  Elf32_Word vda_name; /* first element defines the version */
2891      /*	name. Additional entries */
2892      /*	define dependency names. */
2893  Elf32_Word vda_next; /* no. of bytes from start of this */
2894 } Elf32_Verdaux; /*	verdaux to next verdaux entry */
2895 
2896 
2897 typedef struct { /* Version Requirement Structure. */
2898  Elf32_Half vn_version; /* this structures version revision */
2899  Elf32_Half vn_cnt; /* no. of associated aux entries */
2900  Elf32_Word vn_file; /* name of needed dependency (file) */
2901  Elf32_Word vn_aux; /* no. of bytes from start of this */
2902      /*	verneed to vernaux array */
2903  Elf32_Word vn_next; /* no. of bytes from start of this */
2904 } Elf32_Verneed; /*	verneed to next verneed entry */
2905 
2906 typedef struct { /* Verneed Auxiliary Structure. */
2907  Elf32_Word vna_hash; /* version name hash value */
2908  Elf32_Half vna_flags; /* version information */
2909  Elf32_Half vna_other;
2910  Elf32_Word vna_name; /* version name */
2911  Elf32_Word vna_next; /* no. of bytes from start of this */
2912 } Elf32_Vernaux; /*	vernaux to next vernaux entry */
2913 
2914 typedef Elf32_Half Elf32_Versym; /* Version symbol index array */
2915 
2916 typedef struct {
2917  Elf32_Half si_boundto; /* direct bindings - symbol bound to */
2918  Elf32_Half si_flags; /* per symbol flags */
2919 } Elf32_Syminfo;
2920 
2921 
2922 
2923 typedef struct {
2924  Elf64_Half vd_version; /* this structures version revision */
2925  Elf64_Half vd_flags; /* version information */
2926  Elf64_Half vd_ndx; /* version index */
2927  Elf64_Half vd_cnt; /* no. of associated aux entries */
2928  Elf64_Word vd_hash; /* version name hash value */
2929  Elf64_Word vd_aux; /* no. of bytes from start of this */
2930      /*	verdef to verdaux array */
2931  Elf64_Word vd_next; /* no. of bytes from start of this */
2932 } Elf64_Verdef; /*	verdef to next verdef entry */
2933 
2934 typedef struct {
2935  Elf64_Word vda_name; /* first element defines the version */
2936      /*	name. Additional entries */
2937      /*	define dependency names. */
2938  Elf64_Word vda_next; /* no. of bytes from start of this */
2939 } Elf64_Verdaux; /*	verdaux to next verdaux entry */
2940 
2941 typedef struct {
2942  Elf64_Half vn_version; /* this structures version revision */
2943  Elf64_Half vn_cnt; /* no. of associated aux entries */
2944  Elf64_Word vn_file; /* name of needed dependency (file) */
2945  Elf64_Word vn_aux; /* no. of bytes from start of this */
2946      /*	verneed to vernaux array */
2947  Elf64_Word vn_next; /* no. of bytes from start of this */
2948 } Elf64_Verneed; /*	verneed to next verneed entry */
2949 
2950 typedef struct {
2951  Elf64_Word vna_hash; /* version name hash value */
2952  Elf64_Half vna_flags; /* version information */
2953  Elf64_Half vna_other;
2954  Elf64_Word vna_name; /* version name */
2955  Elf64_Word vna_next; /* no. of bytes from start of this */
2956 } Elf64_Vernaux; /*	vernaux to next vernaux entry */
2957 
2958 typedef Elf64_Half Elf64_Versym;
2959 
2960 typedef struct {
2961  Elf64_Half si_boundto; /* direct bindings - symbol bound to */
2962  Elf64_Half si_flags; /* per symbol flags */
2963 } Elf64_Syminfo;
2964 
2965 
2966 
2967 
2968 /*
2969  * Versym symbol index values.  Values greater than VER_NDX_GLOBAL
2970  * and less then VER_NDX_LORESERVE associate symbols with user
2971  * specified version descriptors.
2972  */
2973 
2974 
2975      /*	the base version */
2976 
2977 
2978 
2979 /*
2980  * Verdef (vd_flags) and Vernaux (vna_flags) flags values.
2981  */
2982 
2983      /*	(Verdef only) */
2984 
2985 
2986      /*	informational purposes */
2987      /*	(Versym reference) only. No */
2988      /*	runtime verification is */
2989      /*	required. (Vernaux only) */
2990 
2991 /*
2992  * Verdef version values.
2993  */
2994 
2995 
2996 
2997 
2998 /*
2999  * Verneed version values.
3000  */
3001 
3002 
3003 
3004 
3005 
3006 /*
3007  * Syminfo flag values
3008  */
3009 
3010      /*	to object containing defn. */
3011 
3012      /* 	standard filter */
3013 
3014 
3015 
3016      /*	lazily-loaded */
3017 
3018      /*	object containing defn. */
3019 
3020      /*	directly bind to this symbol */
3021 
3022      /* 	auxiliary filter */
3023 
3024 
3025 
3026      /*	BIND_NOW relocations */
3027 
3028 /*
3029  * Syminfo.si_boundto values.
3030  */
3031 
3032 
3033 
3034 
3035 
3036 
3037 /*
3038  * Syminfo version values.
3039  */
3040 
3041 
3042 
3043 
3044 
3045 /*
3046  * Public structure defined and maintained within the runtime linker
3047  */
3048 
3049 
3050 typedef struct link_map Link_map;
3051 
3052 struct link_map {
3053  unsigned long l_addr; /* address at which object is mapped */
3054  char *l_name; /* full name of loaded object */
3055 
3056 
3057 
3058  Elf32_Dyn *l_ld; /* dynamic structure of object */
3059 
3060  Link_map *l_next; /* next link object */
3061  Link_map *l_prev; /* previous link object */
3062  char *l_refname; /* filters reference name */
3063 };
3064 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
3065 typedef enum {
3066  RT_CONSISTENT,
3067  RT_ADD,
3068  RT_DELETE
3069 } r_state_e;
3070 
3071 typedef enum {
3072  RD_FL_NONE = 0, /* no flags */
3073  RD_FL_ODBG = (1<<0), /* old style debugger present */
3074  RD_FL_DBG = (1<<1) /* debugging enabled */
3075 } rd_flags_e;
3076 
3077 
3078 
3079 /*
3080  * Debugging events enabled inside of the runtime linker.  To
3081  * access these events see the librtld_db interface.
3082  */
3083 typedef enum {
3084  RD_NONE = 0, /* no event */
3085  RD_PREINIT, /* the Initial rendezvous before .init */
3086  RD_POSTINIT, /* the Second rendezvous after .init */
3087  RD_DLACTIVITY /* a dlopen or dlclose has happened */
3088 } rd_event_e;
3089 
3090 struct r_debug {
3091  int r_version; /* debugging info version no. */
3092  Link_map *r_map; /* address of link_map */
3093  unsigned long r_brk; /* address of update routine */
3094  r_state_e r_state;
3095  unsigned long r_ldbase; /* base addr of ld.so */
3096  Link_map *r_ldsomap; /* address of ld.so.1's link map */
3097  rd_event_e r_rdevent; /* debug event */
3098  rd_flags_e r_flags; /* misc flags. */
3099 };
3100 # 584 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
3101 /*
3102  * Attribute/value structures used to bootstrap ELF-based dynamic linker.
3103  */
3104 
3105 typedef struct {
3106  Elf32_Sword eb_tag; /* what this one is */
3107  union { /* possible values */
3108   Elf32_Word eb_val;
3109   Elf32_Addr eb_ptr;
3110   Elf32_Off eb_off;
3111  } eb_un;
3112 } Elf32_Boot;
3113 
3114 
3115 typedef struct {
3116  Elf64_Xword eb_tag; /* what this one is */
3117  union { /* possible values */
3118   Elf64_Xword eb_val;
3119   Elf64_Addr eb_ptr;
3120   Elf64_Off eb_off;
3121  } eb_un;
3122 } Elf64_Boot;
3123 
3124 
3125 
3126 /*
3127  * Attributes
3128  */
3129 # 627 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h"
3130 /*
3131  * Concurrency communication structure for libc callbacks.
3132  */
3133 extern void _ld_libc(void *);
3134 
3135 #pragma unknown_control_flow(_ld_libc)
3136 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 2
3137 
3138 
3139 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/elf.h" 1
3140 /*
3141  * CDDL HEADER START
3142  *
3143  * The contents of this file are subject to the terms of the
3144  * Common Development and Distribution License, Version 1.0 only
3145  * (the "License").  You may not use this file except in compliance
3146  * with the License.
3147  *
3148  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3149  * or http://www.opensolaris.org/os/licensing.
3150  * See the License for the specific language governing permissions
3151  * and limitations under the License.
3152  *
3153  * When distributing Covered Code, include this CDDL HEADER in each
3154  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3155  * If applicable, add the following below this CDDL HEADER, with the
3156  * fields enclosed by brackets "[]" replaced with your own identifying
3157  * information: Portions Copyright [yyyy] [name of copyright owner]
3158  *
3159  * CDDL HEADER END
3160  */
3161 /*	Copyright (c) 1988 AT&T	*/
3162 /*	  All Rights Reserved  	*/
3163 
3164 
3165 
3166 
3167 
3168 #pragma ident "%Z%%M%	%I%	%E% SMI"
3169 
3170 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h" 1
3171 /*
3172  * CDDL HEADER START
3173  *
3174  * The contents of this file are subject to the terms of the
3175  * Common Development and Distribution License (the "License").
3176  * You may not use this file except in compliance with the License.
3177  *
3178  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3179  * or http://www.opensolaris.org/os/licensing.
3180  * See the License for the specific language governing permissions
3181  * and limitations under the License.
3182  *
3183  * When distributing Covered Code, include this CDDL HEADER in each
3184  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3185  * If applicable, add the following below this CDDL HEADER, with the
3186  * fields enclosed by brackets "[]" replaced with your own identifying
3187  * information: Portions Copyright [yyyy] [name of copyright owner]
3188  *
3189  * CDDL HEADER END
3190  */
3191 /*
3192  * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
3193  * Copyright (c) 2018, Joyent, Inc.
3194  */
3195 /*
3196  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
3197  * Use is subject to license terms.
3198  */
3199 
3200 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3201 /*	  All Rights Reserved  	*/
3202 
3203 
3204 
3205 
3206 
3207 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elftypes.h" 1
3208 /*
3209  * CDDL HEADER START
3210  *
3211  * The contents of this file are subject to the terms of the
3212  * Common Development and Distribution License, Version 1.0 only
3213  * (the "License").  You may not use this file except in compliance
3214  * with the License.
3215  *
3216  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3217  * or http://www.opensolaris.org/os/licensing.
3218  * See the License for the specific language governing permissions
3219  * and limitations under the License.
3220  *
3221  * When distributing Covered Code, include this CDDL HEADER in each
3222  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3223  * If applicable, add the following below this CDDL HEADER, with the
3224  * fields enclosed by brackets "[]" replaced with your own identifying
3225  * information: Portions Copyright [yyyy] [name of copyright owner]
3226  *
3227  * CDDL HEADER END
3228  */
3229 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3230 /*	  All Rights Reserved  	*/
3231 
3232 
3233 /*
3234  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3235  * Use is subject to license terms.
3236  */
3237 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h" 2
3238 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3239 /*
3240  *	"Enumerations" below use ...NUM as the number of
3241  *	values in the list.  It should be 1 greater than the
3242  *	highest "real" value.
3243  */
3244 
3245 /*
3246  *	ELF header
3247  */
3248 
3249 
3250 
3251 typedef struct {
3252  unsigned char e_ident[16]; /* ident bytes */
3253  Elf32_Half e_type; /* file type */
3254  Elf32_Half e_machine; /* target machine */
3255  Elf32_Word e_version; /* file version */
3256  Elf32_Addr e_entry; /* start address */
3257  Elf32_Off e_phoff; /* phdr file offset */
3258  Elf32_Off e_shoff; /* shdr file offset */
3259  Elf32_Word e_flags; /* file flags */
3260  Elf32_Half e_ehsize; /* sizeof ehdr */
3261  Elf32_Half e_phentsize; /* sizeof phdr */
3262  Elf32_Half e_phnum; /* number phdrs */
3263  Elf32_Half e_shentsize; /* sizeof shdr */
3264  Elf32_Half e_shnum; /* number shdrs */
3265  Elf32_Half e_shstrndx; /* shdr string index */
3266 } Elf32_Ehdr;
3267 
3268 
3269 typedef struct {
3270  unsigned char e_ident[16]; /* ident bytes */
3271  Elf64_Half e_type; /* file type */
3272  Elf64_Half e_machine; /* target machine */
3273  Elf64_Word e_version; /* file version */
3274  Elf64_Addr e_entry; /* start address */
3275  Elf64_Off e_phoff; /* phdr file offset */
3276  Elf64_Off e_shoff; /* shdr file offset */
3277  Elf64_Word e_flags; /* file flags */
3278  Elf64_Half e_ehsize; /* sizeof ehdr */
3279  Elf64_Half e_phentsize; /* sizeof phdr */
3280  Elf64_Half e_phnum; /* number phdrs */
3281  Elf64_Half e_shentsize; /* sizeof shdr */
3282  Elf64_Half e_shnum; /* number shdrs */
3283  Elf64_Half e_shstrndx; /* shdr string index */
3284 } Elf64_Ehdr;
3285 # 199 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3286     /*	Argonaut Technologies Inc. */
3287 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3288     /*	embedded processor family */
3289 # 225 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3290     /*	microcontroller */
3291 
3292     /*	microcontroller */
3293 
3294 
3295 
3296 
3297 
3298 
3299     /*	microcontroller */
3300 
3301 
3302     /*	embedded processor */
3303 
3304     /*	embedded processor */
3305 
3306 
3307 
3308     /*	64-bit processor */
3309 
3310     /*	machine-independent */
3311     /*	object files */
3312 # 263 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3313     /* Processor */
3314 
3315 
3316 
3317 
3318     /* microcontroller */
3319 
3320 
3321 
3322     /* microprocessor */
3323 
3324 
3325     /* msp430 */
3326 
3327 
3328 
3329 
3330 
3331     /* and MPRC of Peking University */
3332 
3333     /* CPU */
3334 
3335     /* Processor */
3336 
3337 
3338     /* microprocessor */
3339 
3340 
3341 
3342 
3343     /* Signal Controller */
3344 
3345 
3346 
3347 
3348 
3349 
3350     /* processors */
3351 
3352 
3353 
3354 
3355 
3356      /* architecture */
3357 
3358 
3359     /* family */
3360 
3361     /* family */
3362 
3363     /* family */
3364 
3365     /* RISC Processor, 32bit fetch */
3366 
3367     /* Unit */
3368 
3369 
3370     /* Processor */
3371 
3372 
3373 
3374     /* family */
3375 
3376 
3377 
3378     /* configurable and extensible RISC */
3379     /* processors */
3380 
3381     /* embedded RISC processor family */
3382 
3383 
3384 
3385     /* Micro-controllers */
3386 
3387 
3388 
3389 
3390 
3391     /* architecture */
3392 
3393     /* architecture */
3394 
3395 
3396     /* CR16 16-bit microprocessor */
3397 # 355 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3398     /* family */
3399 
3400     /* microcontroller */
3401 
3402     /* family */
3403 
3404     /* family */
3405 
3406     /* processor core */
3407 
3408 
3409     /* family */
3410 
3411 
3412     /* family */
3413 
3414     /* family */
3415 
3416 
3417 
3418 
3419 
3420 
3421     /* Controller (DSC) */
3422 # 400 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3423     /* processor */
3424 
3425     /* RISC architecture */
3426 # 433 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3427      /* multi-core OS */
3428 # 444 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3429 /*
3430  *	Program header
3431  */
3432 
3433 typedef struct {
3434  Elf32_Word p_type; /* entry type */
3435  Elf32_Off p_offset; /* file offset */
3436  Elf32_Addr p_vaddr; /* virtual address */
3437  Elf32_Addr p_paddr; /* physical address */
3438  Elf32_Word p_filesz; /* file size */
3439  Elf32_Word p_memsz; /* memory size */
3440  Elf32_Word p_flags; /* entry flags */
3441  Elf32_Word p_align; /* memory/file alignment */
3442 } Elf32_Phdr;
3443 
3444 
3445 typedef struct {
3446  Elf64_Word p_type; /* entry type */
3447  Elf64_Word p_flags; /* entry flags */
3448  Elf64_Off p_offset; /* file offset */
3449  Elf64_Addr p_vaddr; /* virtual address */
3450  Elf64_Addr p_paddr; /* physical address */
3451  Elf64_Xword p_filesz; /* file size */
3452  Elf64_Xword p_memsz; /* memory size */
3453  Elf64_Xword p_align; /* memory/file alignment */
3454 } Elf64_Phdr;
3455 # 485 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3456 /*
3457  * PT_SUNW_UNWIND and PT_SUNW_EH_FRAME perform the same function,
3458  * providing access to the .eh_frame_hdr section of the object.
3459  * PT_SUNW_UNWIND is the original value, while PT_SUNW_EH_FRAME is
3460  * required by the amd64 psABI. The Solaris link-editor (ld) tags output
3461  * objects with PT_SUNW_UNWIND, but the Solaris runtime linker (ld.so.1)
3462  * will accept and use either value.
3463  */
3464 
3465 
3466 
3467 
3468 /*
3469  * Linux specific program headers not currently used by Solaris
3470  */
3471 # 527 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3472 /*
3473  *	Section header
3474  */
3475 
3476 typedef struct {
3477  Elf32_Word sh_name; /* section name */
3478  Elf32_Word sh_type; /* SHT_... */
3479  Elf32_Word sh_flags; /* SHF_... */
3480  Elf32_Addr sh_addr; /* virtual address */
3481  Elf32_Off sh_offset; /* file offset */
3482  Elf32_Word sh_size; /* section size */
3483  Elf32_Word sh_link; /* misc info */
3484  Elf32_Word sh_info; /* misc info */
3485  Elf32_Word sh_addralign; /* memory alignment */
3486  Elf32_Word sh_entsize; /* entry size if table */
3487 } Elf32_Shdr;
3488 
3489 
3490 typedef struct {
3491  Elf64_Word sh_name; /* section name */
3492  Elf64_Word sh_type; /* SHT_... */
3493  Elf64_Xword sh_flags; /* SHF_... */
3494  Elf64_Addr sh_addr; /* virtual address */
3495  Elf64_Off sh_offset; /* file offset */
3496  Elf64_Xword sh_size; /* section size */
3497  Elf64_Word sh_link; /* misc info */
3498  Elf64_Word sh_info; /* misc info */
3499  Elf64_Xword sh_addralign; /* memory alignment */
3500  Elf64_Xword sh_entsize; /* entry size if table */
3501 } Elf64_Shdr;
3502 # 580 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3503 /* Solaris ABI specific values */
3504 # 606 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3505 /*
3506  * GNU/Linux OSABI specific values with different meanings than under Solaris.
3507  * Due to the overlap in assigned values with the Solaris OSABI, correct
3508  * interpretation of these values requires knowledge of the OSABI used by
3509  * the object.
3510  */
3511 # 655 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3512 /*
3513  *	Symbol table
3514  */
3515 
3516 typedef struct {
3517  Elf32_Word st_name;
3518  Elf32_Addr st_value;
3519  Elf32_Word st_size;
3520  unsigned char st_info; /* bind, type: ELF_32_ST_... */
3521  unsigned char st_other;
3522  Elf32_Half st_shndx; /* SHN_... */
3523 } Elf32_Sym;
3524 
3525 
3526 typedef struct {
3527  Elf64_Word st_name;
3528  unsigned char st_info; /* bind, type: ELF_64_ST_... */
3529  unsigned char st_other;
3530  Elf64_Half st_shndx; /* SHN_... */
3531  Elf64_Addr st_value;
3532  Elf64_Xword st_size;
3533 } Elf64_Sym;
3534 
3535 
3536 
3537 
3538 /*
3539  *	Macros to compose and decompose values for S.st_info
3540  *
3541  *	bind = ELF32_ST_BIND(S.st_info)
3542  *	type = ELF32_ST_TYPE(S.st_info)
3543  *	S.st_info = ELF32_ST_INFO(bind, type)
3544  */
3545 # 719 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3546 /*
3547  *	Macros to decompose values for S.st_other
3548  *
3549  *	visibility = ELF32_ST_VISIBILITY(S.st_other)
3550  */
3551 # 737 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3552 /*
3553  *	Relocation
3554  */
3555 
3556 typedef struct {
3557  Elf32_Addr r_offset;
3558  Elf32_Word r_info; /* sym, type: ELF32_R_... */
3559 } Elf32_Rel;
3560 
3561 typedef struct {
3562  Elf32_Addr r_offset;
3563  Elf32_Word r_info; /* sym, type: ELF32_R_... */
3564  Elf32_Sword r_addend;
3565 } Elf32_Rela;
3566 
3567 
3568 typedef struct {
3569  Elf64_Addr r_offset;
3570  Elf64_Xword r_info; /* sym, type: ELF64_R_... */
3571 } Elf64_Rel;
3572 
3573 typedef struct {
3574  Elf64_Addr r_offset;
3575  Elf64_Xword r_info; /* sym, type: ELF64_R_... */
3576  Elf64_Sxword r_addend;
3577 } Elf64_Rela;
3578 
3579 
3580 
3581 /*
3582  *	Macros to compose and decompose values for Rel.r_info, Rela.f_info
3583  *
3584  *	sym = ELF32_R_SYM(R.r_info)
3585  *	type = ELF32_R_TYPE(R.r_info)
3586  *	R.r_info = ELF32_R_INFO(sym, type)
3587  */
3588 # 783 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3589 /*
3590  * The r_info field is composed of two 32-bit components: the symbol
3591  * table index and the relocation type.  The relocation type for SPARC V9
3592  * is further decomposed into an 8-bit type identifier and a 24-bit type
3593  * dependent data field.  For the existing Elf32 relocation types,
3594  * that data field is zero.
3595  */
3596 
3597 
3598 
3599 
3600 
3601 
3602 /*
3603  * Section Group Flags (SHT_GROUP)
3604  */
3605 
3606 
3607 
3608 /*
3609  *	Note entry header
3610  */
3611 
3612 typedef struct {
3613  Elf32_Word n_namesz; /* length of note's name */
3614  Elf32_Word n_descsz; /* length of note's "desc" */
3615  Elf32_Word n_type; /* type of note */
3616 } Elf32_Nhdr;
3617 
3618 
3619 typedef struct {
3620  Elf64_Word n_namesz; /* length of note's name */
3621  Elf64_Word n_descsz; /* length of note's "desc" */
3622  Elf64_Word n_type; /* type of note */
3623 } Elf64_Nhdr;
3624 
3625 
3626 /*
3627  *	Move entry
3628  */
3629 
3630 typedef struct {
3631  Elf32_Lword m_value; /* symbol value */
3632  Elf32_Word m_info; /* size + index */
3633  Elf32_Word m_poffset; /* symbol offset */
3634  Elf32_Half m_repeat; /* repeat count */
3635  Elf32_Half m_stride; /* stride info */
3636 } Elf32_Move;
3637 
3638 /*
3639  *	Macros to compose and decompose values for Move.r_info
3640  *
3641  *	sym = ELF32_M_SYM(M.m_info)
3642  *	size = ELF32_M_SIZE(M.m_info)
3643  *	M.m_info = ELF32_M_INFO(sym, size)
3644  */
3645 
3646 
3647 
3648 
3649 typedef struct {
3650  Elf64_Lword m_value; /* symbol value */
3651  Elf64_Xword m_info; /* size + index */
3652  Elf64_Xword m_poffset; /* symbol offset */
3653  Elf64_Half m_repeat; /* repeat count */
3654  Elf64_Half m_stride; /* stride info */
3655 } Elf64_Move;
3656 
3657 
3658 
3659 
3660 
3661 
3662 
3663 /*
3664  *	Capabilities entry, Capabilities info and Capabilities chain.
3665  */
3666 
3667 typedef struct {
3668  Elf32_Word c_tag; /* how to interpret value */
3669  union {
3670   Elf32_Word c_val;
3671   Elf32_Addr c_ptr;
3672  } c_un;
3673 } Elf32_Cap;
3674 
3675 typedef Elf32_Word Elf32_Capinfo;
3676 typedef Elf32_Word Elf32_Capchain;
3677 
3678 /*
3679  *	Macros to compose and decompose values for capabilities info.
3680  *
3681  *	sym = ELF32_C_SYM(info)
3682  *	grp = ELF32_C_GROUP(info)
3683  *	info = ELF32_C_INFO(sym, grp)
3684  */
3685 
3686 
3687 
3688 
3689 
3690 
3691 typedef struct {
3692  Elf64_Xword c_tag; /* how to interpret value */
3693  union {
3694   Elf64_Xword c_val;
3695   Elf64_Addr c_ptr;
3696  } c_un;
3697 } Elf64_Cap;
3698 
3699 typedef Elf64_Xword Elf64_Capinfo;
3700 typedef Elf64_Word Elf64_Capchain;
3701 
3702 /*
3703  *	Macros to compose and decompose values for capabilities info.
3704  *
3705  *	sym = ELF64_C_SYM(info)
3706  *	grp = ELF64_C_GROUP(info)
3707  *	info = ELF64_C_INFO(sym, grp)
3708  */
3709 
3710 
3711 
3712 
3713 
3714 
3715 
3716 /*
3717  * Version numbers for SHT_SUNW_capinfo and SHT_SUNW_capchain.
3718  */
3719 # 921 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3720 /*
3721  * A SHT_SUNW_capinfo table mirrors a symbol table.  A capabilities symbol has
3722  * a SHT_SUNW_capinfo table entry that provides an index into the associated
3723  * SHT_SUNW_cap capabilities group, and the symbol index of the associated lead
3724  * symbol.  A capabilities symbol is a local symbol.  A global lead capabilities
3725  * symbol is tagged with a group CAPINFO_SUNW_GLOB.
3726  */
3727 
3728 
3729 /*
3730  * Capabilities values.
3731  */
3732 # 942 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h"
3733 /*
3734  * Define software capabilities (CA_SUNW_SF_1 values).  Note, hardware
3735  * capabilities (CA_SUNW_HW_1 values) are taken directly from sys/auxv_$MACH.h.
3736  */
3737 
3738 
3739 
3740 
3741 
3742 /*
3743  *	Known values for note entry types (e_type == ET_CORE)
3744  */
3745 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/elf.h" 2
3746 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 2
3747 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
3748 /*
3749  * CDDL HEADER START
3750  *
3751  * The contents of this file are subject to the terms of the
3752  * Common Development and Distribution License (the "License").
3753  * You may not use this file except in compliance with the License.
3754  *
3755  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3756  * or http://www.opensolaris.org/os/licensing.
3757  * See the License for the specific language governing permissions
3758  * and limitations under the License.
3759  *
3760  * When distributing Covered Code, include this CDDL HEADER in each
3761  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3762  * If applicable, add the following below this CDDL HEADER, with the
3763  * fields enclosed by brackets "[]" replaced with your own identifying
3764  * information: Portions Copyright [yyyy] [name of copyright owner]
3765  *
3766  * CDDL HEADER END
3767  */
3768 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3769 /*	  All Rights Reserved  	*/
3770 
3771 
3772 /*
3773  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3774  * Use is subject to license terms.
3775  *
3776  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3777  * Copyright 2016 Joyent, Inc.
3778  */
3779 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 2
3780 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 1
3781 /*
3782  * CDDL HEADER START
3783  *
3784  * The contents of this file are subject to the terms of the
3785  * Common Development and Distribution License (the "License").
3786  * You may not use this file except in compliance with the License.
3787  *
3788  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3789  * or http://www.opensolaris.org/os/licensing.
3790  * See the License for the specific language governing permissions
3791  * and limitations under the License.
3792  *
3793  * When distributing Covered Code, include this CDDL HEADER in each
3794  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3795  * If applicable, add the following below this CDDL HEADER, with the
3796  * fields enclosed by brackets "[]" replaced with your own identifying
3797  * information: Portions Copyright [yyyy] [name of copyright owner]
3798  *
3799  * CDDL HEADER END
3800  */
3801 /*
3802  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3803  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
3804  *
3805  *	Copyright (c) 1989 AT&T
3806  *	  All Rights Reserved
3807  *
3808  */
3809 
3810 
3811 
3812 
3813 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3814 /*
3815  * CDDL HEADER START
3816  *
3817  * The contents of this file are subject to the terms of the
3818  * Common Development and Distribution License (the "License").
3819  * You may not use this file except in compliance with the License.
3820  *
3821  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3822  * or http://www.opensolaris.org/os/licensing.
3823  * See the License for the specific language governing permissions
3824  * and limitations under the License.
3825  *
3826  * When distributing Covered Code, include this CDDL HEADER in each
3827  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3828  * If applicable, add the following below this CDDL HEADER, with the
3829  * fields enclosed by brackets "[]" replaced with your own identifying
3830  * information: Portions Copyright [yyyy] [name of copyright owner]
3831  *
3832  * CDDL HEADER END
3833  */
3834 
3835 /*
3836  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3837  * Copyright 2016 Joyent, Inc.
3838  *
3839  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3840  * Use is subject to license terms.
3841  */
3842 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 2
3843 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
3844 /*
3845  * CDDL HEADER START
3846  *
3847  * The contents of this file are subject to the terms of the
3848  * Common Development and Distribution License (the "License").
3849  * You may not use this file except in compliance with the License.
3850  *
3851  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3852  * or http://www.opensolaris.org/os/licensing.
3853  * See the License for the specific language governing permissions
3854  * and limitations under the License.
3855  *
3856  * When distributing Covered Code, include this CDDL HEADER in each
3857  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3858  * If applicable, add the following below this CDDL HEADER, with the
3859  * fields enclosed by brackets "[]" replaced with your own identifying
3860  * information: Portions Copyright [yyyy] [name of copyright owner]
3861  *
3862  * CDDL HEADER END
3863  */
3864 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3865 /*	  All Rights Reserved  	*/
3866 
3867 
3868 /*
3869  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3870  * Use is subject to license terms.
3871  *
3872  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3873  * Copyright 2016 Joyent, Inc.
3874  */
3875 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 2
3876 
3877 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h" 1
3878 /*
3879  * CDDL HEADER START
3880  *
3881  * The contents of this file are subject to the terms of the
3882  * Common Development and Distribution License (the "License").
3883  * You may not use this file except in compliance with the License.
3884  *
3885  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3886  * or http://www.opensolaris.org/os/licensing.
3887  * See the License for the specific language governing permissions
3888  * and limitations under the License.
3889  *
3890  * When distributing Covered Code, include this CDDL HEADER in each
3891  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3892  * If applicable, add the following below this CDDL HEADER, with the
3893  * fields enclosed by brackets "[]" replaced with your own identifying
3894  * information: Portions Copyright [yyyy] [name of copyright owner]
3895  *
3896  * CDDL HEADER END
3897  */
3898 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3899 /*	  All Rights Reserved  	*/
3900 
3901 
3902 /*
3903  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3904  *
3905  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3906  * Use is subject to license terms.
3907  */
3908 /*
3909  * Copyright 2016 Joyent, Inc.
3910  */
3911 
3912 
3913 
3914 
3915 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
3916 /*
3917  * CDDL HEADER START
3918  *
3919  * The contents of this file are subject to the terms of the
3920  * Common Development and Distribution License (the "License").
3921  * You may not use this file except in compliance with the License.
3922  *
3923  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3924  * or http://www.opensolaris.org/os/licensing.
3925  * See the License for the specific language governing permissions
3926  * and limitations under the License.
3927  *
3928  * When distributing Covered Code, include this CDDL HEADER in each
3929  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3930  * If applicable, add the following below this CDDL HEADER, with the
3931  * fields enclosed by brackets "[]" replaced with your own identifying
3932  * information: Portions Copyright [yyyy] [name of copyright owner]
3933  *
3934  * CDDL HEADER END
3935  */
3936 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3937 /*	  All Rights Reserved  	*/
3938 
3939 
3940 /*
3941  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3942  * Use is subject to license terms.
3943  *
3944  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3945  * Copyright 2016 Joyent, Inc.
3946  */
3947 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h" 2
3948 
3949 
3950 
3951 
3952 
3953 
3954 typedef struct
3955 {
3956  int a_type;
3957  union {
3958   long a_val;
3959   void *a_ptr;
3960   void (*a_fcn)();
3961  } a_un;
3962 } auxv_t;
3963 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h"
3964 /*
3965  * These relate to the original PPC ABI document; Linux reused
3966  * the values for other things (see below), so disambiguation of
3967  * these values may require additional context in PPC binaries.
3968  *
3969  * AT_DCACHEBSIZE	10	smallest data cache block size
3970  * AT_ICACHEBSIZE	11	smallest instruction cache block size
3971  * AT_UCACHEBSIZE	12	smallest unified cache block size
3972  *
3973  * These are the values from LSB 1.3, the first five are also described
3974  * in the draft amd64 ABI.
3975  *
3976  * At the time of writing, Solaris doesn't place any of these values into
3977  * the aux vector, except AT_CLKTCK which is placed on the aux vector for
3978  * lx branded processes; also, we do similar things via AT_SUN_ values.
3979  *
3980  * AT_NOTELF		10	program is not ELF?
3981  * AT_UID		11	real user id
3982  * AT_EUID		12	effective user id
3983  * AT_GID		13	real group id
3984  * AT_EGID		14	effective group id
3985  *
3986  * AT_PLATFORM		15
3987  * AT_HWCAP		16
3988  * AT_CLKTCK		17	c.f. _SC_CLK_TCK
3989  * AT_FPUCW		18
3990  *
3991  * AT_DCACHEBSIZE	19	(moved from 10)
3992  * AT_ICACHEBSIZE	20	(moved from 11)
3993  * AT_UCACHEBSIZE	21	(moved from 12)
3994  *
3995  * AT_IGNOREPPC		22
3996  */
3997 
3998 /*
3999  * Sun extensions begin here
4000  */
4001 
4002 
4003 
4004 
4005 
4006 /*
4007  * The following attributes are specific to the
4008  * kernel implementation of the linker/loader.
4009  */
4010 
4011 
4012 
4013 
4014 /*
4015  * The following aux vector provides a null-terminated platform
4016  * identification string. This information is the same as provided
4017  * by sysinfo(2) when invoked with the command SI_PLATFORM.
4018  */
4019 
4020 
4021 /*
4022  * These attributes communicate performance -hints- about processor
4023  * hardware capabilities that might be useful to library implementations.
4024  */
4025 # 157 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h"
4026 extern uint_t getisax(uint32_t *, uint_t);
4027 
4028 
4029 
4030 
4031 
4032 /*
4033  * The following aux vector provides a pointer to a null-terminated
4034  * path name, a copy of the path name passed to the exec() system
4035  * call but that has had all symlinks resolved (see resolvepath(2)).
4036  */
4037 
4038 
4039 
4040 
4041 
4042 
4043 
4044 /*
4045  * Used to indicate to the runtime linker the name of the emulation binary,
4046  * if one is being used. For brands, this is the name of the brand library.
4047  */
4048 
4049 
4050 
4051 
4052 /*
4053  * Aux vectors available for brand modules.
4054  */
4055 
4056 
4057 
4058 
4059 /*
4060  * Aux vector for comm page
4061  */
4062 
4063 
4064 /*
4065  * Note that 2023 is reserved for the AT_SUN_HWCAP2 word defined above.
4066  */
4067 
4068 /*
4069  * The kernel is in a better position to determine whether a process needs to
4070  * ignore dangerous LD environment variables.  If set, this flags tells
4071  * ld.so.1 to run "secure" and ignore the the environment.
4072  */
4073 
4074 
4075 /*
4076  * If set, this flag indicates that hardware capabilites can be verified
4077  * against the AT_SUN_HWCAP value.
4078  */
4079 
4080 
4081 /*
4082  * If set, this flag indicates that the the linker should not initialize
4083  * any of its link maps as primary link wrt the unified libc threading
4084  * interfaces.
4085  */
4086 # 228 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h"
4087 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv_386.h" 1
4088 /*
4089  * CDDL HEADER START
4090  *
4091  * The contents of this file are subject to the terms of the
4092  * Common Development and Distribution License (the "License").
4093  * You may not use this file except in compliance with the License.
4094  *
4095  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4096  * or http://www.opensolaris.org/os/licensing.
4097  * See the License for the specific language governing permissions
4098  * and limitations under the License.
4099  *
4100  * When distributing Covered Code, include this CDDL HEADER in each
4101  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4102  * If applicable, add the following below this CDDL HEADER, with the
4103  * fields enclosed by brackets "[]" replaced with your own identifying
4104  * information: Portions Copyright [yyyy] [name of copyright owner]
4105  *
4106  * CDDL HEADER END
4107  */
4108 /*
4109  * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
4110  * Copyright (c) 2015, Joyent, Inc.
4111  */
4112 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv_386.h"
4113 /*
4114  * Flags used in AT_SUN_HWCAP elements to describe various userland
4115  * instruction set extensions available on different processors.
4116  * The basic assumption is that of the i386 ABI; that is, i386 plus i387
4117  * floating point.
4118  *
4119  * Note that if a given bit is set; the implication is that the kernel
4120  * provides all the underlying architectural support for the correct
4121  * functioning of the extended instruction(s).
4122  */
4123 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv_386.h"
4124      /* 0x02000 withdrawn - do not assign */
4125 
4126      /* 0x08000 withdrawn - do not assign */
4127 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h" 2
4128 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 2
4129 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 1
4130 /*
4131  * CDDL HEADER START
4132  *
4133  * The contents of this file are subject to the terms of the
4134  * Common Development and Distribution License (the "License").
4135  * You may not use this file except in compliance with the License.
4136  *
4137  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4138  * or http://www.opensolaris.org/os/licensing.
4139  * See the License for the specific language governing permissions
4140  * and limitations under the License.
4141  *
4142  * When distributing Covered Code, include this CDDL HEADER in each
4143  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4144  * If applicable, add the following below this CDDL HEADER, with the
4145  * fields enclosed by brackets "[]" replaced with your own identifying
4146  * information: Portions Copyright [yyyy] [name of copyright owner]
4147  *
4148  * CDDL HEADER END
4149  */
4150 
4151 /* Copyright 2013 OmniTI Computer Consulting, Inc. All rights reserved. */
4152 /*
4153  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4154  *
4155  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
4156  * Use is subject to license terms.
4157  * Copyright 2015 Joyent, Inc.  All rights reserved.
4158  */
4159 
4160 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
4161 /*	  All Rights Reserved	*/
4162 
4163 /*
4164  * University Copyright- Copyright (c) 1982, 1986, 1988
4165  * The Regents of the University of California
4166  * All Rights Reserved
4167  *
4168  * University Acknowledgment- Portions of this document are derived from
4169  * software developed by the University of California, Berkeley, and its
4170  * contributors.
4171  */
4172 
4173 
4174 
4175 
4176 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4177 /*
4178  * CDDL HEADER START
4179  *
4180  * The contents of this file are subject to the terms of the
4181  * Common Development and Distribution License (the "License").
4182  * You may not use this file except in compliance with the License.
4183  *
4184  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4185  * or http://www.opensolaris.org/os/licensing.
4186  * See the License for the specific language governing permissions
4187  * and limitations under the License.
4188  *
4189  * When distributing Covered Code, include this CDDL HEADER in each
4190  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4191  * If applicable, add the following below this CDDL HEADER, with the
4192  * fields enclosed by brackets "[]" replaced with your own identifying
4193  * information: Portions Copyright [yyyy] [name of copyright owner]
4194  *
4195  * CDDL HEADER END
4196  */
4197 
4198 /*
4199  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4200  * Copyright 2016 Joyent, Inc.
4201  *
4202  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4203  * Use is subject to license terms.
4204  */
4205 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 2
4206 
4207 
4208 
4209 
4210 
4211 
4212 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4213 /*
4214  * CDDL HEADER START
4215  *
4216  * The contents of this file are subject to the terms of the
4217  * Common Development and Distribution License (the "License").
4218  * You may not use this file except in compliance with the License.
4219  *
4220  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4221  * or http://www.opensolaris.org/os/licensing.
4222  * See the License for the specific language governing permissions
4223  * and limitations under the License.
4224  *
4225  * When distributing Covered Code, include this CDDL HEADER in each
4226  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4227  * If applicable, add the following below this CDDL HEADER, with the
4228  * fields enclosed by brackets "[]" replaced with your own identifying
4229  * information: Portions Copyright [yyyy] [name of copyright owner]
4230  *
4231  * CDDL HEADER END
4232  */
4233 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4234 /*	  All Rights Reserved  	*/
4235 
4236 
4237 /*
4238  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4239  * Use is subject to license terms.
4240  *
4241  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4242  * Copyright 2016 Joyent, Inc.
4243  */
4244 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 2
4245 
4246 
4247 /*
4248  * Protections are chosen from these bits, or-ed together.
4249  * Note - not all implementations literally provide all possible
4250  * combinations.  PROT_WRITE is often implemented as (PROT_READ |
4251  * PROT_WRITE) and (PROT_EXECUTE as PROT_READ | PROT_EXECUTE).
4252  * However, no implementation will permit a write to succeed
4253  * where PROT_WRITE has not been set.  Also, no implementation will
4254  * allow any access to succeed where prot is specified as PROT_NONE.
4255  */
4256 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4257 /* sharing types:  must choose either SHARED or PRIVATE */
4258 
4259 
4260 
4261 
4262 /* other flags to mmap (or-ed in to MAP_SHARED or MAP_PRIVATE) */
4263 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4264 /* these flags not yet implemented */
4265 
4266 
4267 
4268 /* these flags are used by memcntl */
4269 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4270 /*
4271  * For the sake of backward object compatibility, we use the _MAP_NEW flag.
4272  * This flag will be automatically or'ed in by the C library for all
4273  * new mmap calls.  Previous binaries with old mmap calls will continue
4274  * to get 0 or -1 for return values.  New mmap calls will get the mapped
4275  * address as the return value if successful and -1 on errors.  By default,
4276  * new mmap calls automatically have the kernel assign the map address
4277  * unless the MAP_FIXED flag is given.
4278  */
4279 
4280 
4281 
4282 
4283 
4284 /* External flags for mmapobj syscall (Exclusive of MAP_* flags above) */
4285 
4286 
4287 
4288 
4289 
4290 /*
4291  * Values for mr_flags field of mmapobj_result_t below.
4292  * The bottom 16 bits are mutually exclusive and thus only one
4293  * of them can be set at a time.  Use MR_GET_TYPE below to check this value.
4294  * The top 16 bits are used for flags which are not mutually exclusive and
4295  * thus more than one of these flags can be set for a given mmapobj_result_t.
4296  *
4297  * MR_PADDING being set indicates that this memory range represents the user
4298  * requested padding.
4299  *
4300  * MR_HDR_ELF being set indicates that the ELF header of the mapped object
4301  * is mapped at mr_addr + mr_offset.
4302  *
4303  * MR_HDR_AOUT being set indicates that the AOUT (4.x) header of the mapped
4304  * object is mapped at mr_addr + mr_offset.
4305  */
4306 
4307 /*
4308  * External flags for mr_flags field below.
4309  */
4310 
4311 
4312 
4313 
4314 /*
4315  * Internal flags for mr_flags field below.
4316  */
4317 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4318 typedef struct mmapobj_result {
4319  caddr_t mr_addr; /* mapping address */
4320  size_t mr_msize; /* mapping size */
4321  size_t mr_fsize; /* file size */
4322  size_t mr_offset; /* offset into file */
4323  uint_t mr_prot; /* the protections provided */
4324  uint_t mr_flags; /* info on the mapping */
4325 } mmapobj_result_t;
4326 # 194 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4327 /*
4328  * large file compilation environment setup
4329  *
4330  * In the LP64 compilation environment, map large file interfaces
4331  * back to native versions where possible.
4332  */
4333 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4334 
4335 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4336 #pragma redefine_extname getpagesizes getpagesizes2
4337 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4338 
4339 
4340 
4341 
4342 
4343 /*
4344  * Except for old binaries mmap() will return the resultant
4345  * address of mapping on success and (caddr_t)-1 on error.
4346  */
4347 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4348 extern caddr_t mmap(caddr_t, size_t, int, int, int, off_t);
4349 extern int munmap(caddr_t, size_t);
4350 extern int mprotect(caddr_t, size_t, int);
4351 extern int msync(caddr_t, size_t, int);
4352 extern int mlock(caddr_t, size_t);
4353 extern int munlock(caddr_t, size_t);
4354 extern int mincore(caddr_t, size_t, char *);
4355 extern int memcntl(caddr_t, size_t, int, caddr_t, int, int);
4356 extern int madvise(caddr_t, size_t, int);
4357 
4358 extern int getpagesizes(size_t *, int);
4359 extern int getpagesizes2(size_t *, int);
4360 extern int mmapobj(int, uint_t, mmapobj_result_t *, uint_t *, void *);
4361 /* guard visibility of uint64_t */
4362 
4363 extern int meminfo(const uint64_t *, int, const uint_t *, int, uint64_t *,
4364  uint_t *);
4365 
4366 
4367 /* transitional large file interface version */
4368 
4369 extern caddr_t mmap64(caddr_t, size_t, int, int, int, off64_t);
4370 
4371 
4372 
4373 
4374 extern int mlockall(int);
4375 extern int munlockall(void);
4376 extern int shm_open(const char *, int, mode_t);
4377 extern int shm_unlink(const char *);
4378 
4379 
4380 
4381 extern int posix_madvise(void *, size_t, int);
4382 
4383 
4384 /* mmap failure value */
4385 
4386 
4387 
4388 
4389 
4390 
4391 
4392 /*
4393  * structure for memcntl hat advise operations.
4394  */
4395 struct memcntl_mha {
4396  uint_t mha_cmd; /* command(s) */
4397  uint_t mha_flags;
4398  size_t mha_pagesize;
4399 };
4400 # 306 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4401 /*
4402  * advice to madvise
4403  *
4404  * Note, if more than 4 bits worth of advice (eg. 16) are specified then
4405  * changes will be necessary to the struct vpage.
4406  */
4407 # 326 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4408 /* advice to posix_madvise */
4409 /* these values must be kept in sync with the MADV_* values, above */
4410 
4411 
4412 
4413 
4414 
4415 
4416 
4417 /* flags to msync */
4418 
4419      /* modified for UNIX98 compliance */
4420 
4421 
4422 
4423 
4424 
4425 /* functions to mctl */
4426 # 353 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4427 /* sub-commands for MC_HAT_ADVISE */
4428 
4429 
4430      /* for last bss adjacent to */
4431      /* brk area and brk area itself */
4432 
4433      /* processes main stack */
4434 
4435 
4436 
4437 
4438 /* flags to mlockall */
4439 
4440 
4441 
4442 
4443 
4444 
4445 /* definitions for meminfosys syscall */
4446 
4447 
4448 
4449 
4450 
4451 /* private structure for meminfo */
4452 typedef struct meminfo {
4453  const uint64_t *mi_inaddr; /* array of input addresses */
4454  const uint_t *mi_info_req; /* array of types of info requested */
4455  uint64_t *mi_outdata; /* array of results are placed */
4456  uint_t *mi_validity; /* array of bitwise result codes */
4457  int mi_info_count; /* number of pieces of info requested */
4458 } meminfo_t;
4459 # 399 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4460 /*
4461  * info_req request type definitions for meminfo
4462  * request types starting with MEMINFO_V are used for Virtual addresses
4463  * and should not be mixed with MEMINFO_PLGRP which is targeted for Physical
4464  * addresses
4465  */
4466 # 415 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
4467 /* maximum number of addresses meminfo() can process at a time */
4468 
4469 
4470 /* maximum number of request types */
4471 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 2
4472 
4473 
4474 
4475 
4476 
4477 
4478 /*
4479  * Information structures for various dlinfo() requests.
4480  */
4481 
4482 typedef struct dl_info {
4483  const char *dli_fname; /* file containing address range */
4484  void *dli_fbase; /* base address of file image */
4485  const char *dli_sname; /* symbol name */
4486  void *dli_saddr; /* symbol address */
4487 } Dl_info;
4488 typedef Dl_info Dl_info_t;
4489 
4490 typedef struct dl_serpath {
4491  char *dls_name; /* library search path name */
4492  uint_t dls_flags; /* path information */
4493 } Dl_serpath;
4494 typedef Dl_serpath Dl_serpath_t;
4495 
4496 typedef struct dl_serinfo {
4497  size_t dls_size; /* total buffer size */
4498  uint_t dls_cnt; /* number of path entries */
4499  Dl_serpath dls_serpath[1]; /* there may be more than one */
4500 } Dl_serinfo;
4501 typedef Dl_serinfo Dl_serinfo_t;
4502 
4503 typedef struct dl_argsinfo {
4504  long dla_argc; /* process argument count */
4505  char **dla_argv; /* process arguments */
4506  char **dla_envp; /* process environment variables */
4507  auxv_t *dla_auxv; /* process auxv vectors */
4508 } Dl_argsinfo;
4509 typedef Dl_argsinfo Dl_argsinfo_t;
4510 
4511 typedef struct {
4512  mmapobj_result_t *dlm_maps; /* mapping information */
4513  uint_t dlm_acnt; /* number of dlm_maps mappings */
4514  uint_t dlm_rcnt; /* number of returned mappings */
4515 } Dl_mapinfo_t;
4516 
4517 typedef struct {
4518  uint_t dlui_version; /* version # */
4519  uint_t dlui_flags; /* flags */
4520  char *dlui_objname; /* path to object */
4521  void *dlui_unwindstart; /* star of unwind hdr */
4522  void *dlui_unwindend; /* end of unwind hdr */
4523  void *dlui_segstart; /* start of segment described */
4524      /*  by unwind block */
4525  void *dlui_segend; /* end of segment described */
4526      /*  by unwind block */
4527 } Dl_amd64_unwindinfo;
4528 typedef Dl_amd64_unwindinfo Dl_amd64_unwindinfo_t;
4529 
4530 typedef struct {
4531  const char *dld_refname; /* reference name */
4532  const char *dld_depname; /* new dependency name */
4533 } Dl_definfo_t;
4534 
4535 
4536 
4537 
4538 typedef ulong_t Lmid_t;
4539 
4540 /*
4541  * Declarations used for dynamic linking support routines.
4542  */
4543 extern void *dlopen(const char *, int);
4544 extern void *dlsym(void *, const char *);
4545 extern int dlclose(void *);
4546 extern char *dlerror(void);
4547 
4548 extern void *dlmopen(Lmid_t, const char *, int);
4549 extern int dladdr(void *, Dl_info *);
4550 extern int dladdr1(void *, Dl_info *, void **, int);
4551 extern int dldump(const char *, const char *, int);
4552 extern int dlinfo(void *, int, void *);
4553 extern Dl_amd64_unwindinfo *dlamd64getunwind(void *, Dl_amd64_unwindinfo *);
4554 
4555 
4556 #pragma unknown_control_flow(dlopen, dlsym, dlclose, dlerror)
4557 
4558 #pragma unknown_control_flow(dlmopen, dladdr, dladdr1, dldump, dlinfo)
4559 
4560 
4561 /*
4562  * Valid values for handle argument to dlsym(3x).
4563  */
4564 
4565 
4566       /*	of current object */
4567 
4568 
4569       /*	of current object, */
4570       /*	using currently */
4571       /*	loaded objects only. */
4572 /*
4573  * Valid values for mode argument to dlopen.
4574  */
4575 
4576 
4577 
4578 
4579 
4580 
4581       /*	to group members */
4582 
4583       /*	a group dependencies */
4584 
4585       /*	members of the group */
4586 
4587       /*	global objects */
4588 
4589 
4590       /*	available for dlsym */
4591 
4592       /*	internal use only */
4593 
4594 /*
4595  * Valid values for flag argument to dldump.
4596  */
4597 
4598 
4599       /*	bind to main */
4600 
4601       /*	bind to dependencies */
4602 
4603       /*	bind to preload objs */
4604 
4605       /*	bind to ourself */
4606 
4607       /*	even if unresolved */
4608 
4609 
4610 
4611 
4612       /*	only */
4613 
4614 
4615       /*	internal use only */
4616 
4617 /*
4618  * Valid values for dladdr1() flags.
4619  */
4620 
4621 
4622 
4623 
4624 
4625 /*
4626  * Arguments for dlinfo()
4627  */
4628 
4629 
4630 
4631 
4632 
4633 
4634 
4635       /*    internal use only */
4636 
4637       /*    internal use only */
4638 
4639 
4640 
4641       /*    environment and auxv */
4642 
4643 
4644 
4645       /*    deferred dependency */
4646 
4647       /*    deferred dependency */
4648       /*    using a symbol name */
4649 
4650 
4651 
4652 /*
4653  * Version information for Dl_amd64_unwindinfo.dlui_version
4654  */
4655 
4656 
4657 
4658 /*
4659  * Valid flags for Dl_amd64_unwindinfo.dlfi_flags
4660  */
4661 
4662 
4663       /*  matching the pc provided */
4664 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 2
4665 
4666 
4667 
4668 
4669 
4670 
4671 
4672 /*
4673  * ld support library calls.
4674  *
4675  * These cannot be used in a 32bit large file capable environment because
4676  * libelf is not large-file safe.  Only define these interfaces if we are not
4677  * 32bit, or not in the large file environment.
4678  */
4679 
4680 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libelf.h" 1
4681 /*
4682  * CDDL HEADER START
4683  *
4684  * The contents of this file are subject to the terms of the
4685  * Common Development and Distribution License (the "License").
4686  * You may not use this file except in compliance with the License.
4687  *
4688  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4689  * or http://www.opensolaris.org/os/licensing.
4690  * See the License for the specific language governing permissions
4691  * and limitations under the License.
4692  *
4693  * When distributing Covered Code, include this CDDL HEADER in each
4694  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4695  * If applicable, add the following below this CDDL HEADER, with the
4696  * fields enclosed by brackets "[]" replaced with your own identifying
4697  * information: Portions Copyright [yyyy] [name of copyright owner]
4698  *
4699  * CDDL HEADER END
4700  */
4701 /*	Copyright (c) 1988 AT&T	*/
4702 /*	  All Rights Reserved  	*/
4703 
4704 /*
4705  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4706  * Use is subject to license terms.
4707  * Copyright 2014 PALO, Richard. All rights reserved.
4708  */
4709 
4710 
4711 
4712 
4713 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4714 /*
4715  * CDDL HEADER START
4716  *
4717  * The contents of this file are subject to the terms of the
4718  * Common Development and Distribution License (the "License").
4719  * You may not use this file except in compliance with the License.
4720  *
4721  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4722  * or http://www.opensolaris.org/os/licensing.
4723  * See the License for the specific language governing permissions
4724  * and limitations under the License.
4725  *
4726  * When distributing Covered Code, include this CDDL HEADER in each
4727  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4728  * If applicable, add the following below this CDDL HEADER, with the
4729  * fields enclosed by brackets "[]" replaced with your own identifying
4730  * information: Portions Copyright [yyyy] [name of copyright owner]
4731  *
4732  * CDDL HEADER END
4733  */
4734 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4735 /*	  All Rights Reserved  	*/
4736 
4737 
4738 /*
4739  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4740  * Use is subject to license terms.
4741  *
4742  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4743  * Copyright 2016 Joyent, Inc.
4744  */
4745 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libelf.h" 2
4746 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h" 1
4747 /*
4748  * CDDL HEADER START
4749  *
4750  * The contents of this file are subject to the terms of the
4751  * Common Development and Distribution License (the "License").
4752  * You may not use this file except in compliance with the License.
4753  *
4754  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4755  * or http://www.opensolaris.org/os/licensing.
4756  * See the License for the specific language governing permissions
4757  * and limitations under the License.
4758  *
4759  * When distributing Covered Code, include this CDDL HEADER in each
4760  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4761  * If applicable, add the following below this CDDL HEADER, with the
4762  * fields enclosed by brackets "[]" replaced with your own identifying
4763  * information: Portions Copyright [yyyy] [name of copyright owner]
4764  *
4765  * CDDL HEADER END
4766  */
4767 /*
4768  * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
4769  * Copyright (c) 2018, Joyent, Inc.
4770  */
4771 /*
4772  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
4773  * Use is subject to license terms.
4774  */
4775 
4776 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4777 /*	  All Rights Reserved  	*/
4778 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libelf.h" 2
4779 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libelf.h"
4780 typedef void Elf_Void;
4781 
4782 /*
4783  * Commands
4784  */
4785 typedef enum {
4786  ELF_C_NULL = 0, /* must be first, 0 */
4787  ELF_C_READ,
4788  ELF_C_WRITE,
4789  ELF_C_CLR,
4790  ELF_C_SET,
4791  ELF_C_FDDONE,
4792  ELF_C_FDREAD,
4793  ELF_C_RDWR,
4794  ELF_C_WRIMAGE,
4795  ELF_C_IMAGE,
4796  ELF_C_NUM /* must be last */
4797 } Elf_Cmd;
4798 
4799 
4800 /*
4801  * Flags
4802  */
4803 
4804 
4805 
4806 
4807 /*
4808  * File types
4809  */
4810 typedef enum {
4811  ELF_K_NONE = 0, /* must be first, 0 */
4812  ELF_K_AR,
4813  ELF_K_COFF,
4814  ELF_K_ELF,
4815  ELF_K_NUM /* must be last */
4816 } Elf_Kind;
4817 
4818 
4819 /*
4820  * Translation types
4821  */
4822 typedef enum {
4823  ELF_T_BYTE = 0, /* must be first, 0 */
4824  ELF_T_ADDR,
4825  ELF_T_DYN,
4826  ELF_T_EHDR,
4827  ELF_T_HALF,
4828  ELF_T_OFF,
4829  ELF_T_PHDR,
4830  ELF_T_RELA,
4831  ELF_T_REL,
4832  ELF_T_SHDR,
4833  ELF_T_SWORD,
4834  ELF_T_SYM,
4835  ELF_T_WORD,
4836  ELF_T_VDEF,
4837  ELF_T_VNEED,
4838  ELF_T_SXWORD,
4839  ELF_T_XWORD,
4840  ELF_T_SYMINFO,
4841  ELF_T_NOTE,
4842  ELF_T_MOVE,
4843  ELF_T_MOVEP,
4844  ELF_T_CAP,
4845  ELF_T_NUM /* must be last */
4846 } Elf_Type;
4847 
4848 
4849 typedef struct Elf Elf;
4850 typedef struct Elf_Scn Elf_Scn;
4851 
4852 
4853 /*
4854  * Archive member header
4855  */
4856 typedef struct {
4857  char *ar_name;
4858  time_t ar_date;
4859  uid_t ar_uid;
4860  gid_t ar_gid;
4861  mode_t ar_mode;
4862  off_t ar_size;
4863  char *ar_rawname;
4864 } Elf_Arhdr;
4865 
4866 
4867 /*
4868  * Archive symbol table
4869  */
4870 typedef struct {
4871  char *as_name;
4872  size_t as_off;
4873  unsigned long as_hash;
4874 } Elf_Arsym;
4875 
4876 
4877 /*
4878  * Data descriptor
4879  */
4880 typedef struct {
4881  Elf_Void *d_buf;
4882  Elf_Type d_type;
4883  size_t d_size;
4884  off_t d_off; /* offset into section */
4885  size_t d_align; /* alignment in section */
4886  unsigned d_version; /* elf version */
4887 } Elf_Data;
4888 
4889 
4890 /*
4891  * Function declarations
4892  */
4893 Elf *elf_begin(int, Elf_Cmd, Elf *);
4894 int elf_cntl(Elf *, Elf_Cmd);
4895 int elf_end(Elf *);
4896 const char *elf_errmsg(int);
4897 int elf_errno(void);
4898 void elf_fill(int);
4899 unsigned elf_flagdata(Elf_Data *, Elf_Cmd, unsigned);
4900 unsigned elf_flagehdr(Elf *, Elf_Cmd, unsigned);
4901 unsigned elf_flagelf(Elf *, Elf_Cmd, unsigned);
4902 unsigned elf_flagphdr(Elf *, Elf_Cmd, unsigned);
4903 unsigned elf_flagscn(Elf_Scn *, Elf_Cmd, unsigned);
4904 unsigned elf_flagshdr(Elf_Scn *, Elf_Cmd, unsigned);
4905 size_t elf32_fsize(Elf_Type, size_t, unsigned);
4906 Elf_Arhdr *elf_getarhdr(Elf *);
4907 Elf_Arsym *elf_getarsym(Elf *, size_t *);
4908 off_t elf_getbase(Elf *);
4909 Elf_Data *elf_getdata(Elf_Scn *, Elf_Data *);
4910 Elf32_Ehdr *elf32_getehdr(Elf *);
4911 char *elf_getident(Elf *, size_t *);
4912 Elf32_Phdr *elf32_getphdr(Elf *);
4913 Elf_Scn *elf_getscn(Elf *elf, size_t);
4914 Elf32_Shdr *elf32_getshdr(Elf_Scn *);
4915 int elf_getphnum(Elf *, size_t *);
4916 int elf_getphdrnum(Elf *, size_t *);
4917 int elf_getshnum(Elf *, size_t *);
4918 int elf_getshdrnum(Elf *, size_t *);
4919 int elf_getshstrndx(Elf *, size_t *);
4920 int elf_getshdrstrndx(Elf *, size_t *);
4921 unsigned long elf_hash(const char *);
4922 uint_t elf_sys_encoding(void);
4923 long elf32_checksum(Elf *);
4924 Elf_Kind elf_kind(Elf *);
4925 Elf *elf_memory(char *, size_t);
4926 size_t elf_ndxscn(Elf_Scn *);
4927 Elf_Data *elf_newdata(Elf_Scn *);
4928 Elf32_Ehdr *elf32_newehdr(Elf *);
4929 Elf32_Phdr *elf32_newphdr(Elf *, size_t);
4930 Elf_Scn *elf_newscn(Elf *);
4931 Elf_Scn *elf_nextscn(Elf *, Elf_Scn *);
4932 Elf_Cmd elf_next(Elf *);
4933 size_t elf_rand(Elf *, size_t);
4934 Elf_Data *elf_rawdata(Elf_Scn *, Elf_Data *);
4935 char *elf_rawfile(Elf *, size_t *);
4936 char *elf_strptr(Elf *, size_t, size_t);
4937 off_t elf_update(Elf *, Elf_Cmd);
4938 unsigned elf_version(unsigned);
4939 Elf_Data *elf32_xlatetof(Elf_Data *, const Elf_Data *, unsigned);
4940 Elf_Data *elf32_xlatetom(Elf_Data *, const Elf_Data *, unsigned);
4941 
4942 
4943 size_t elf64_fsize(Elf_Type, size_t, unsigned);
4944 Elf64_Ehdr *elf64_getehdr(Elf *);
4945 Elf64_Phdr *elf64_getphdr(Elf *);
4946 Elf64_Shdr *elf64_getshdr(Elf_Scn *);
4947 long elf64_checksum(Elf *);
4948 Elf64_Ehdr *elf64_newehdr(Elf *);
4949 Elf64_Phdr *elf64_newphdr(Elf *, size_t);
4950 Elf_Data *elf64_xlatetof(Elf_Data *, const Elf_Data *, unsigned);
4951 Elf_Data *elf64_xlatetom(Elf_Data *, const Elf_Data *, unsigned);
4952 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 2
4953 extern uint_t ld_version(uint_t);
4954 extern void ld_input_done(uint_t *);
4955 
4956 extern void ld_start(const char *, const Elf32_Half, const char *);
4957 extern void ld_atexit(int);
4958 extern void ld_open(const char **, const char **, int *, int, Elf **,
4959    Elf *, size_t, const Elf_Kind);
4960 extern void ld_file(const char *, const Elf_Kind, int, Elf *);
4961 extern void ld_input_section(const char *, Elf32_Shdr **, Elf32_Word,
4962    Elf_Data *, Elf *, uint_t *);
4963 extern void ld_section(const char *, Elf32_Shdr *, Elf32_Word,
4964    Elf_Data *, Elf *);
4965 
4966 
4967 extern void ld_start64(const char *, const Elf64_Half, const char *);
4968 extern void ld_atexit64(int);
4969 extern void ld_open64(const char **, const char **, int *, int, Elf **,
4970    Elf *, size_t, const Elf_Kind);
4971 extern void ld_file64(const char *, const Elf_Kind, int, Elf *);
4972 extern void ld_input_section64(const char *, Elf64_Shdr **, Elf64_Word,
4973    Elf_Data *, Elf *, uint_t *);
4974 extern void ld_section64(const char *, Elf64_Shdr *, Elf64_Word,
4975    Elf_Data *, Elf *);
4976 
4977 
4978 
4979 
4980 /*
4981  * ld_version() version values.
4982  */
4983 
4984 
4985 
4986 
4987 
4988 
4989 /*
4990  * Flags passed to ld support calls.
4991  */
4992 
4993 
4994 
4995 
4996 
4997 /*
4998  * Runtime link-map identifiers.
4999  */
5000 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5001 /*
5002  * Runtime Link-Edit Auditing.
5003  */
5004 # 118 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5005 /*
5006  * Flags that can be or'd into the la_objopen() return code
5007  */
5008 
5009 
5010 
5011 /*
5012  * Flags that can be or'd into the 'flags' argument of la_symbind()
5013  */
5014 
5015 
5016 
5017      /*	structure as it's return code */
5018 
5019      /*	a call to dlsym() */
5020 
5021      /*	by la_symbind() */
5022 
5023 /*
5024  * Flags that describe the object passed to la_objsearch()
5025  */
5026 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5027 /*
5028  * Flags that describe the la_activity()
5029  */
5030 # 163 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5031 typedef int lagreg_t;
5032 
5033 
5034 struct _la_sparc_regs {
5035  lagreg_t lr_rego0;
5036  lagreg_t lr_rego1;
5037  lagreg_t lr_rego2;
5038  lagreg_t lr_rego3;
5039  lagreg_t lr_rego4;
5040  lagreg_t lr_rego5;
5041  lagreg_t lr_rego6;
5042  lagreg_t lr_rego7;
5043 };
5044 # 190 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5045 typedef struct _la_sparc_regs La_sparcv8_regs;
5046 typedef struct {
5047  lagreg_t lr_esp;
5048  lagreg_t lr_ebp;
5049 } La_i86_regs;
5050 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5051 extern uint_t la_version(uint_t);
5052 extern void la_activity(uintptr_t *, uint_t);
5053 extern void la_preinit(uintptr_t *);
5054 extern char *la_objsearch(const char *, uintptr_t *, uint_t);
5055 extern uint_t la_objopen(Link_map *, Lmid_t, uintptr_t *);
5056 extern uint_t la_objclose(uintptr_t *);
5057 extern int la_objfilter(uintptr_t *, const char *, uintptr_t *,
5058     uint_t);
5059 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h"
5060 extern uintptr_t la_symbind32(Elf32_Sym *, uint_t, uintptr_t *,
5061     uintptr_t *, uint_t *);
5062 extern uintptr_t la_sparcv8_pltenter(Elf32_Sym *, uint_t, uintptr_t *,
5063     uintptr_t *, La_sparcv8_regs *, uint_t *);
5064 extern uintptr_t la_i86_pltenter(Elf32_Sym *, uint_t, uintptr_t *,
5065     uintptr_t *, La_i86_regs *, uint_t *);
5066 extern uintptr_t la_pltexit(Elf32_Sym *, uint_t, uintptr_t *,
5067     uintptr_t *, uintptr_t);
5068 
5069 
5070 /*
5071  * The ElfW() macro is a GNU/Linux feature, provided as support for
5072  * the dl_phdr_info structure used by dl_phdr_iterate(), which also
5073  * originated under Linux. Given an ELF data type, without the ElfXX_
5074  * prefix, it supplies the appropriate prefix (Elf32_ or Elf64_) for
5075  * the ELFCLASS of the code being compiled.
5076  *
5077  * Note that ElfW() is not suitable in situations in which the ELFCLASS
5078  * of the code being compiled does not match that of the objects that
5079  * code is intended to operate on (e.g. a 32-bit link-editor building
5080  * a 64-bit object). The macros defined in <sys/machelf.h> are
5081  * recommended in such cases.
5082  */
5083 
5084 
5085 
5086 
5087 
5088 
5089 /*
5090  * The callback function to dl_interate_phdr() receives a pointer
5091  * to a structure of this type.
5092  *
5093  * dlpi_addr is defined such that the address of any segment in
5094  * the program header array can be calculated as:
5095  *
5096  *	addr == info->dlpi_addr + info->dlpi_phdr[x].p_vaddr;
5097  *
5098  * It is therefore 0 for ET_EXEC objects, and the base address at
5099  * which the object is mapped otherwise.
5100  */
5101 struct dl_phdr_info {
5102  Elf32_Addr dlpi_addr; /* Base address of object */
5103  const char *dlpi_name; /* Null-terminated obj name */
5104  const Elf32_Phdr *dlpi_phdr; /* Ptr to ELF program hdr arr */
5105  Elf32_Half dlpi_phnum; /* # of items in dlpi_phdr[] */
5106 
5107  /*
5108 	 * Note: Following members were introduced after the first version
5109 	 * of this structure was available.  The dl_iterate_phdr() callback
5110 	 * function is passed a 'size' argument giving the size of the info
5111 	 * structure, and must compare that size to the offset of these fields
5112 	 * before accessing them to ensure that they are present.
5113 	 */
5114 
5115  /* Incremented when a new object is mapped into the process */
5116  u_longlong_t dlpi_adds;
5117  /* Incremented when an object is unmapped from the process */
5118  u_longlong_t dlpi_subs;
5119 };
5120 
5121 extern int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *),
5122      void *);
5123 # 29 "common/apptrace.c" 2
5124 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 1
5125 /*
5126  * CDDL HEADER START
5127  *
5128  * The contents of this file are subject to the terms of the
5129  * Common Development and Distribution License (the "License").
5130  * You may not use this file except in compliance with the License.
5131  *
5132  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5133  * or http://www.opensolaris.org/os/licensing.
5134  * See the License for the specific language governing permissions
5135  * and limitations under the License.
5136  *
5137  * When distributing Covered Code, include this CDDL HEADER in each
5138  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5139  * If applicable, add the following below this CDDL HEADER, with the
5140  * fields enclosed by brackets "[]" replaced with your own identifying
5141  * information: Portions Copyright [yyyy] [name of copyright owner]
5142  *
5143  * CDDL HEADER END
5144  */
5145 /*
5146  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5147  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
5148  *
5149  *	Copyright (c) 1989 AT&T
5150  *	  All Rights Reserved
5151  *
5152  */
5153 # 30 "common/apptrace.c" 2
5154 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5155 /*
5156  * CDDL HEADER START
5157  *
5158  * The contents of this file are subject to the terms of the
5159  * Common Development and Distribution License (the "License").
5160  * You may not use this file except in compliance with the License.
5161  *
5162  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5163  * or http://www.opensolaris.org/os/licensing.
5164  * See the License for the specific language governing permissions
5165  * and limitations under the License.
5166  *
5167  * When distributing Covered Code, include this CDDL HEADER in each
5168  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5169  * If applicable, add the following below this CDDL HEADER, with the
5170  * fields enclosed by brackets "[]" replaced with your own identifying
5171  * information: Portions Copyright [yyyy] [name of copyright owner]
5172  *
5173  * CDDL HEADER END
5174  */
5175 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5176 /*	  All Rights Reserved  	*/
5177 
5178 
5179 /*
5180  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5181  * Use is subject to license terms.
5182  *
5183  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5184  * Copyright 2016 Joyent, Inc.
5185  */
5186 # 31 "common/apptrace.c" 2
5187 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
5188 /*
5189  * CDDL HEADER START
5190  *
5191  * The contents of this file are subject to the terms of the
5192  * Common Development and Distribution License (the "License").
5193  * You may not use this file except in compliance with the License.
5194  *
5195  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5196  * or http://www.opensolaris.org/os/licensing.
5197  * See the License for the specific language governing permissions
5198  * and limitations under the License.
5199  *
5200  * When distributing Covered Code, include this CDDL HEADER in each
5201  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5202  * If applicable, add the following below this CDDL HEADER, with the
5203  * fields enclosed by brackets "[]" replaced with your own identifying
5204  * information: Portions Copyright [yyyy] [name of copyright owner]
5205  *
5206  * CDDL HEADER END
5207  */
5208 
5209 /*
5210  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
5211  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
5212  */
5213 
5214 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
5215 /*	  All Rights Reserved  	*/
5216 
5217 /*
5218  * University Copyright- Copyright (c) 1982, 1986, 1988
5219  * The Regents of the University of California
5220  * All Rights Reserved
5221  *
5222  * University Acknowledgment- Portions of this document are derived from
5223  * software developed by the University of California, Berkeley, and its
5224  * contributors.
5225  */
5226 
5227 
5228 
5229 
5230 
5231 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5232 /*
5233  * CDDL HEADER START
5234  *
5235  * The contents of this file are subject to the terms of the
5236  * Common Development and Distribution License (the "License").
5237  * You may not use this file except in compliance with the License.
5238  *
5239  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5240  * or http://www.opensolaris.org/os/licensing.
5241  * See the License for the specific language governing permissions
5242  * and limitations under the License.
5243  *
5244  * When distributing Covered Code, include this CDDL HEADER in each
5245  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5246  * If applicable, add the following below this CDDL HEADER, with the
5247  * fields enclosed by brackets "[]" replaced with your own identifying
5248  * information: Portions Copyright [yyyy] [name of copyright owner]
5249  *
5250  * CDDL HEADER END
5251  */
5252 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5253 /*	  All Rights Reserved  	*/
5254 
5255 
5256 /*
5257  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5258  * Use is subject to license terms.
5259  *
5260  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5261  * Copyright 2016 Joyent, Inc.
5262  */
5263 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
5265 /*
5266  * CDDL HEADER START
5267  *
5268  * The contents of this file are subject to the terms of the
5269  * Common Development and Distribution License (the "License").
5270  * You may not use this file except in compliance with the License.
5271  *
5272  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5273  * or http://www.opensolaris.org/os/licensing.
5274  * See the License for the specific language governing permissions
5275  * and limitations under the License.
5276  *
5277  *
5278  * When distributing Covered Code, include this CDDL HEADER in each
5279  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5280  * If applicable, add the following below this CDDL HEADER, with the
5281  * fields enclosed by brackets "[]" replaced with your own identifying
5282  * information: Portions Copyright [yyyy] [name of copyright owner]
5283  *
5284  * CDDL HEADER END
5285  */
5286 
5287 /*
5288  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
5289  * Use is subject to license terms.
5290  * Copyright 2016 Joyent, Inc.
5291  */
5292 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5293 
5294 
5295 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
5296 /*
5297  * This file and its contents are supplied under the terms of the
5298  * Common Development and Distribution License ("CDDL"), version 1.0.
5299  * You may only use this file in accordance with the terms of version
5300  * 1.0 of the CDDL.
5301  *
5302  * A full copy of the text of the CDDL should have accompanied this
5303  * source.  A copy of the CDDL is also available via the Internet at
5304  * http://www.illumos.org/license/CDDL.
5305  */
5306 
5307 /*
5308  * Copyright 2014-2016 PALO, Richard.
5309  */
5310 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5311 
5312 
5313 
5314 
5315 
5316 /*
5317  * Fundamental variables; don't change too often.
5318  */
5319 
5320 /*
5321  * _POSIX_VDISABLE has historically been defined in <sys/param.h> since
5322  * an early merge with AT&T source.  It has also historically been defined
5323  * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially
5324  * required the existence of _POSIX_VDISABLE in <sys/termios.h>.
5325  * Subsequent versions of the IEEE Standard as well as the X/Open
5326  * specifications required that _POSIX_VDISABLE be defined in <unistd.h>
5327  * while still allowing for it's existence in other headers.  With the
5328  * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>.
5329  */
5330 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5331     /* compatibility purposes only	*/
5332     /* and will be removed in a	*/
5333     /* later release		*/
5334 
5335 /*
5336  * These define the maximum and minimum allowable values of the
5337  * configurable parameter NGROUPS_MAX.
5338  */
5339 
5340 
5341 
5342 
5343 /*
5344  * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h.
5345  */
5346 
5347 
5348 /*
5349  * Default process priority.  Keep it in sync with limits.h.
5350  */
5351 
5352 
5353 /*
5354  * Fundamental constants of the implementation--cannot be changed easily.
5355  */
5356 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5357 /* REMOTE -- whether machine is primary, secondary, or regular */
5358 
5359 
5360 
5361 /*
5362  * MAXPATHLEN defines the longest permissible path length,
5363  * including the terminating null, after expanding symbolic links.
5364  * TYPICALMAXPATHLEN is used in a few places as an optimization
5365  * with a local buffer on the stack to avoid kmem_alloc().
5366  * MAXSYMLINKS defines the maximum number of symbolic links
5367  * that may be expanded in a path name. It should be set high
5368  * enough to allow all legitimate uses, but halt infinite loops
5369  * reasonably quickly.
5370  * MAXNAMELEN is the length (including the terminating null) of
5371  * the longest permissible file (component) name.
5372  */
5373 
5374 
5375 
5376 
5377 
5378 /*
5379  * MAXLINKNAMELEN defines the longest possible permitted datalink name,
5380  * including the terminating NUL.  Note that this must not be larger
5381  * than related networking constants such as LIFNAMSIZ.
5382  */
5383 
5384 
5385 
5386 
5387 
5388 
5389 /*
5390  * The following are defined to be the same as
5391  * defined in /usr/include/limits.h.  They are
5392  * needed for pipe and FIFO compatibility.
5393  */
5394 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5395 /* macros replacing interleaving functions */
5396 
5397 
5398 
5399 /*
5400  * File system parameters and macros.
5401  *
5402  * The file system is made out of blocks of at most MAXBSIZE units,
5403  * with smaller units (fragments) only in the last direct block.
5404  * MAXBSIZE primarily determines the size of buffers in the buffer
5405  * pool. It may be made larger without any effect on existing
5406  * file systems; however making it smaller make make some file
5407  * systems unmountable.
5408  *
5409  * Note that the blocked devices are assumed to have DEV_BSIZE
5410  * "sectors" and that fragments must be some multiple of this size.
5411  */
5412 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5413 /*	64 bit versions of btodb and dbtob */
5414 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5415 /*
5416  * Size of arg list passed in by user.
5417  */
5418 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5419 /*
5420  * Scale factor for scaled integers used to count
5421  * %cpu time and load averages.
5422  */
5423 
5424 
5425 
5426 /*
5427  * Delay units are in microseconds.
5428  *
5429  * XXX	These macros are not part of the DDI!
5430  */
5431 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5432 /*
5433  * The following is to free utilities from machine dependencies within
5434  * an architecture. Must be included after definition of DEV_BSIZE.
5435  */
5436 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5437 /*
5438  * The following are assorted machine dependent values which can be
5439  * obtained in a machine independent manner through sysconf(2) or
5440  * sysinfo(2). In order to guarantee that these provide the expected
5441  * value at all times, the System Private interface (leading underscore)
5442  * is used.
5443  */
5444 
5445 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
5446 /*
5447  * CDDL HEADER START
5448  *
5449  * The contents of this file are subject to the terms of the
5450  * Common Development and Distribution License (the "License").
5451  * You may not use this file except in compliance with the License.
5452  *
5453  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5454  * or http://www.opensolaris.org/os/licensing.
5455  * See the License for the specific language governing permissions
5456  * and limitations under the License.
5457  *
5458  * When distributing Covered Code, include this CDDL HEADER in each
5459  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5460  * If applicable, add the following below this CDDL HEADER, with the
5461  * fields enclosed by brackets "[]" replaced with your own identifying
5462  * information: Portions Copyright [yyyy] [name of copyright owner]
5463  *
5464  * CDDL HEADER END
5465  */
5466 
5467 /*
5468  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
5469  *	  All Rights Reserved
5470  *
5471  */
5472 
5473 /*
5474  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5475  * Use is subject to license terms.
5476  */
5477 
5478 /*
5479  * WARNING: This is an implementation-specific header,
5480  * its contents are not guaranteed. Applications
5481  * should include <unistd.h> and not this header.
5482  */
5483 
5484 
5485 
5486 
5487 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5488 /*
5489  * CDDL HEADER START
5490  *
5491  * The contents of this file are subject to the terms of the
5492  * Common Development and Distribution License (the "License").
5493  * You may not use this file except in compliance with the License.
5494  *
5495  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5496  * or http://www.opensolaris.org/os/licensing.
5497  * See the License for the specific language governing permissions
5498  * and limitations under the License.
5499  *
5500  * When distributing Covered Code, include this CDDL HEADER in each
5501  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5502  * If applicable, add the following below this CDDL HEADER, with the
5503  * fields enclosed by brackets "[]" replaced with your own identifying
5504  * information: Portions Copyright [yyyy] [name of copyright owner]
5505  *
5506  * CDDL HEADER END
5507  */
5508 
5509 /*
5510  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5511  * Copyright 2016 Joyent, Inc.
5512  *
5513  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5514  * Use is subject to license terms.
5515  */
5516 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2
5517 
5518 
5519 
5520 
5521 
5522 /* command names for confstr */
5523 
5524 
5525 
5526 /*
5527  * command names for large file configuration information
5528  */
5529 /* large file compilation environment configuration */
5530 
5531 
5532 
5533 
5534 /* transitional large file interface configuration */
5535 
5536 
5537 
5538 
5539 
5540 /* UNIX 98 */
5541 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5542 /* UNIX 03 */
5543 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5544 /* command names for POSIX sysconf */
5545 
5546 /* POSIX.1 names */
5547 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5548 /* SVR4 names */
5549 
5550 
5551 
5552 
5553 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
5554 
5555 
5556 
5557 
5558 /* POSIX.4 names */
5559 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5560 /* XPG4 names */
5561 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5562 /* additional XSH4/XCU4 command names for sysconf */
5563 
5564 
5565 
5566 /* additional XPG4v2 (UNIX 95) command names */
5567 
5568 
5569 
5570 
5571 
5572 /* defined for XTI (XNS Issue 5) */
5573 
5574 
5575 
5576 
5577 
5578 
5579 
5580 /*
5581  * Hardware specific items
5582  * Note that not all items are supported on all architectures
5583  */
5584 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5585 /*
5586  * POSIX.1c (pthreads) names. These values are defined above
5587  * the sub-500 range. See psarc case 1995/257.
5588  */
5589 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5590 /* UNIX 98 */
5591 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5592 /* UNIX 03 */
5593 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5594 /* command names for POSIX pathconf */
5595 
5596 /* POSIX.1 names */
5597 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5598 /* POSIX.4 names */
5599 
5600 
5601 
5602 /* UNIX 03 names */
5603 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5604 /* UNIX 08 names */
5605 
5606 
5607 /*
5608  * Large File Summit names
5609  *
5610  * This value matches the MIPS ABI choice, but leaves a large gap in the
5611  * value space.
5612  */
5613 
5614 
5615 /*
5616  * Extended attributes
5617  */
5618 
5619 
5620 
5621 /*
5622  * If you add a _PC define above 101, you must change _PC_LAST (and truss).
5623  */
5624 
5625 
5626 /*
5627  * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
5628  */
5629 
5630 
5631 
5632 /*
5633  * The value of 0 is returned when
5634  * ACL's are not supported
5635  */
5636 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5637 /*
5638  * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
5639  * should not rely on this value, it has been aligned with the current
5640  * standard to avoid confusion if used.
5641  */
5642 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5643 /* UNIX 03 names */
5644 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5645 
5646 
5647 
5648 
5649 
5650 
5651 extern long _sysconf(int); /* System Private interface to sysconf() */
5652 # 32 "common/apptrace.c" 2
5653 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 1
5654 /*
5655  * CDDL HEADER START
5656  *
5657  * The contents of this file are subject to the terms of the
5658  * Common Development and Distribution License (the "License").
5659  * You may not use this file except in compliance with the License.
5660  *
5661  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5662  * or http://www.opensolaris.org/os/licensing.
5663  * See the License for the specific language governing permissions
5664  * and limitations under the License.
5665  *
5666  * When distributing Covered Code, include this CDDL HEADER in each
5667  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5668  * If applicable, add the following below this CDDL HEADER, with the
5669  * fields enclosed by brackets "[]" replaced with your own identifying
5670  * information: Portions Copyright [yyyy] [name of copyright owner]
5671  *
5672  * CDDL HEADER END
5673  */
5674 /*
5675  * Copyright 2014 Garrrett D'Amore <garrett@damore.org>
5676  *
5677  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5678  * Use is subject to license terms.
5679  */
5680 
5681 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5682 /*	  All Rights Reserved  	*/
5683 
5684 /*
5685  * University Copyright- Copyright (c) 1982, 1986, 1988
5686  * The Regents of the University of California
5687  * All Rights Reserved
5688  *
5689  * University Acknowledgment- Portions of this document are derived from
5690  * software developed by the University of California, Berkeley, and its
5691  * contributors.
5692  */
5693 
5694 
5695 
5696 
5697 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5698 /*
5699  * CDDL HEADER START
5700  *
5701  * The contents of this file are subject to the terms of the
5702  * Common Development and Distribution License (the "License").
5703  * You may not use this file except in compliance with the License.
5704  *
5705  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5706  * or http://www.opensolaris.org/os/licensing.
5707  * See the License for the specific language governing permissions
5708  * and limitations under the License.
5709  *
5710  * When distributing Covered Code, include this CDDL HEADER in each
5711  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5712  * If applicable, add the following below this CDDL HEADER, with the
5713  * fields enclosed by brackets "[]" replaced with your own identifying
5714  * information: Portions Copyright [yyyy] [name of copyright owner]
5715  *
5716  * CDDL HEADER END
5717  */
5718 
5719 /*
5720  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5721  * Copyright 2016 Joyent, Inc.
5722  *
5723  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5724  * Use is subject to license terms.
5725  */
5726 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
5727 
5728 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5729 /*
5730  * CDDL HEADER START
5731  *
5732  * The contents of this file are subject to the terms of the
5733  * Common Development and Distribution License (the "License").
5734  * You may not use this file except in compliance with the License.
5735  *
5736  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5737  * or http://www.opensolaris.org/os/licensing.
5738  * See the License for the specific language governing permissions
5739  * and limitations under the License.
5740  *
5741  * When distributing Covered Code, include this CDDL HEADER in each
5742  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5743  * If applicable, add the following below this CDDL HEADER, with the
5744  * fields enclosed by brackets "[]" replaced with your own identifying
5745  * information: Portions Copyright [yyyy] [name of copyright owner]
5746  *
5747  * CDDL HEADER END
5748  */
5749 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5750 /*	  All Rights Reserved  	*/
5751 
5752 
5753 /*
5754  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5755  * Use is subject to license terms.
5756  *
5757  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5758  * Copyright 2016 Joyent, Inc.
5759  */
5760 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
5761 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
5762 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5763 /*	  All Rights Reserved  	*/
5764 
5765 
5766 /*
5767  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
5768  * All rights reserved.  The Berkeley software License Agreement
5769  * specifies the terms and conditions for redistribution.
5770  */
5771 
5772 /*
5773  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5774  *
5775  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5776  * Use is subject to license terms.
5777  *
5778  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5779  */
5780 
5781 /*
5782  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
5783  */
5784 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
5785 
5786 
5787 
5788 
5789 
5790 /*
5791  * Process priority specifications
5792  */
5793 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
5794 /*
5795  * Resource limits
5796  */
5797 # 91 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
5798 /*
5799  * The definitions of the following types and constants differ between the
5800  * regular and large file compilation environments.
5801  */
5802 
5803 
5804 typedef unsigned long rlim_t;
5805 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
5806 struct rlimit {
5807  rlim_t rlim_cur; /* current limit */
5808  rlim_t rlim_max; /* maximum value for rlim_cur */
5809 };
5810 
5811 /* transitional large file interface versions */
5812 
5813 
5814 typedef u_longlong_t rlim64_t;
5815 
5816 
5817 
5818 
5819 
5820 struct rlimit64 {
5821  rlim64_t rlim_cur; /* current limit */
5822  rlim64_t rlim_max; /* maximum value for rlim_cur */
5823 };
5824 
5825 
5826 
5827 /*
5828  * Although the saved rlimits were initially introduced by the large file API,
5829  * they are now available for all resource limits on the 64-bit kernel and for
5830  * cpu time and file size limits on the 32-bit kernel.
5831  */
5832 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
5833 struct rusage {
5834  struct timeval ru_utime; /* user time used */
5835  struct timeval ru_stime; /* system time used */
5836  long ru_maxrss; /* <unimp> */
5837  long ru_ixrss; /* <unimp> */
5838  long ru_idrss; /* <unimp> */
5839  long ru_isrss; /* <unimp> */
5840  long ru_minflt; /* any page faults not requiring I/O */
5841  long ru_majflt; /* any page faults requiring I/O */
5842  long ru_nswap; /* swaps */
5843  long ru_inblock; /* block input operations */
5844  long ru_oublock; /* block output operations */
5845  long ru_msgsnd; /* streams messsages sent */
5846  long ru_msgrcv; /* streams messages received */
5847  long ru_nsignals; /* signals received */
5848  long ru_nvcsw; /* voluntary context switches */
5849  long ru_nivcsw; /* involuntary " */
5850 };
5851 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
5852 extern int setrlimit(int, const struct rlimit *);
5853 extern int getrlimit(int, struct rlimit *);
5854 
5855 /* transitional large file interfaces */
5856 
5857 
5858 extern int setrlimit64(int, const struct rlimit64 *);
5859 extern int getrlimit64(int, struct rlimit64 *);
5860 
5861 
5862 extern int getpriority(int, id_t);
5863 extern int setpriority(int, id_t, int);
5864 extern int getrusage(int, struct rusage *);
5865 # 33 "common/apptrace.c" 2
5866 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
5867 /*
5868  * CDDL HEADER START
5869  *
5870  * The contents of this file are subject to the terms of the
5871  * Common Development and Distribution License (the "License").
5872  * You may not use this file except in compliance with the License.
5873  *
5874  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5875  * or http://www.opensolaris.org/os/licensing.
5876  * See the License for the specific language governing permissions
5877  * and limitations under the License.
5878  *
5879  * When distributing Covered Code, include this CDDL HEADER in each
5880  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5881  * If applicable, add the following below this CDDL HEADER, with the
5882  * fields enclosed by brackets "[]" replaced with your own identifying
5883  * information: Portions Copyright [yyyy] [name of copyright owner]
5884  *
5885  * CDDL HEADER END
5886  */
5887 
5888 /*
5889  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5890  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
5891  */
5892 
5893 /*	Copyright (c) 1988 AT&T	*/
5894 /*	  All Rights Reserved  	*/
5895 
5896 /*
5897  * User-visible pieces of the ANSI C standard I/O package.
5898  */
5899 
5900 
5901 
5902 
5903 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5904 /*
5905  * CDDL HEADER START
5906  *
5907  * The contents of this file are subject to the terms of the
5908  * Common Development and Distribution License (the "License").
5909  * You may not use this file except in compliance with the License.
5910  *
5911  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5912  * or http://www.opensolaris.org/os/licensing.
5913  * See the License for the specific language governing permissions
5914  * and limitations under the License.
5915  *
5916  * When distributing Covered Code, include this CDDL HEADER in each
5917  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5918  * If applicable, add the following below this CDDL HEADER, with the
5919  * fields enclosed by brackets "[]" replaced with your own identifying
5920  * information: Portions Copyright [yyyy] [name of copyright owner]
5921  *
5922  * CDDL HEADER END
5923  */
5924 
5925 /*
5926  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5927  * Copyright 2016 Joyent, Inc.
5928  *
5929  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5930  * Use is subject to license terms.
5931  */
5932 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
5933 
5934 
5935 
5936 
5937 
5938 /*
5939  * Do all of our 'redefine_extname' processing before
5940  * declarations of the associated functions are seen.
5941  * This is necessary to keep gcc happy.
5942  */
5943 
5944 
5945 /* large file compilation environment setup */
5946 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
5947 /* In the LP64 compilation environment, all APIs are already large file */
5948 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
5949 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1
5950 /*
5951  * CDDL HEADER START
5952  *
5953  * The contents of this file are subject to the terms of the
5954  * Common Development and Distribution License, Version 1.0 only
5955  * (the "License").  You may not use this file except in compliance
5956  * with the License.
5957  *
5958  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5959  * or http://www.opensolaris.org/os/licensing.
5960  * See the License for the specific language governing permissions
5961  * and limitations under the License.
5962  *
5963  * When distributing Covered Code, include this CDDL HEADER in each
5964  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5965  * If applicable, add the following below this CDDL HEADER, with the
5966  * fields enclosed by brackets "[]" replaced with your own identifying
5967  * information: Portions Copyright [yyyy] [name of copyright owner]
5968  *
5969  * CDDL HEADER END
5970  */
5971 /*
5972  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5973  * Copyright 2014 PALO, Richard.
5974  *
5975  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
5976  * Use is subject to license terms.
5977  */
5978 
5979 /*	Copyright (c) 1988 AT&T	*/
5980 /*	  All Rights Reserved  	*/
5981 
5982 /*
5983  * An application should not include this header directly.  Instead it
5984  * should be included only through the inclusion of other Sun headers.
5985  *
5986  * The contents of this header is limited to identifiers specified in the
5987  * C Standard.  Any new identifiers specified in future amendments to the
5988  * C Standard must be placed in this header.  If these new identifiers
5989  * are required to also be in the C++ Standard "std" namespace, then for
5990  * anything other than macro definitions, corresponding "using" directives
5991  * must also be added to <stdio.h>.
5992  */
5993 
5994 /*
5995  * User-visible pieces of the ANSI C standard I/O package.
5996  */
5997 
5998 
5999 
6000 
6001 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6002 /*
6003  * CDDL HEADER START
6004  *
6005  * The contents of this file are subject to the terms of the
6006  * Common Development and Distribution License (the "License").
6007  * You may not use this file except in compliance with the License.
6008  *
6009  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6010  * or http://www.opensolaris.org/os/licensing.
6011  * See the License for the specific language governing permissions
6012  * and limitations under the License.
6013  *
6014  * When distributing Covered Code, include this CDDL HEADER in each
6015  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6016  * If applicable, add the following below this CDDL HEADER, with the
6017  * fields enclosed by brackets "[]" replaced with your own identifying
6018  * information: Portions Copyright [yyyy] [name of copyright owner]
6019  *
6020  * CDDL HEADER END
6021  */
6022 
6023 /*
6024  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6025  * Copyright 2016 Joyent, Inc.
6026  *
6027  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6028  * Use is subject to license terms.
6029  */
6030 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
6031 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
6032 /*
6033  * This file and its contents are supplied under the terms of the
6034  * Common Development and Distribution License ("CDDL"), version 1.0.
6035  * You may only use this file in accordance with the terms of version
6036  * 1.0 of the CDDL.
6037  *
6038  * A full copy of the text of the CDDL should have accompanied this
6039  * source.  A copy of the CDDL is also available via the Internet at
6040  * http://www.illumos.org/license/CDDL.
6041  */
6042 
6043 /*
6044  * Copyright 2014-2016 PALO, Richard.
6045  */
6046 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
6047 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
6048 /*
6049  * CDDL HEADER START
6050  *
6051  * The contents of this file are subject to the terms of the
6052  * Common Development and Distribution License, Version 1.0 only
6053  * (the "License").  You may not use this file except in compliance
6054  * with the License.
6055  *
6056  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6057  * or http://www.opensolaris.org/os/licensing.
6058  * See the License for the specific language governing permissions
6059  * and limitations under the License.
6060  *
6061  * When distributing Covered Code, include this CDDL HEADER in each
6062  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6063  * If applicable, add the following below this CDDL HEADER, with the
6064  * fields enclosed by brackets "[]" replaced with your own identifying
6065  * information: Portions Copyright [yyyy] [name of copyright owner]
6066  *
6067  * CDDL HEADER END
6068  */
6069 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6070 /*	  All Rights Reserved	*/
6071 
6072 
6073 /*
6074  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6075  *
6076  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6077  * Use is subject to license terms.
6078  */
6079 
6080 
6081 
6082 
6083 /*
6084  * An application should not include this header directly.  Instead it
6085  * should be included only through the inclusion of other Sun headers.
6086  *
6087  * The purpose of this header is to provide the type definitions for
6088  * the va_list argument used by a number of printf and printf like
6089  * functions. The headers that define these various function prototypes
6090  * #include this header directly. These include but are not necessarily
6091  * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and
6092  * <syslog.h>. The type definitions included in this header are for
6093  * the benefit of consumers of va_list.
6094  *
6095  * Any application that accepts variable argument lists must as documented,
6096  * include either <varargs.h> or the preferred <stdarg.h>. Doing so will
6097  * pull in the appropriate compiler protocols defined in <sys/va_impl.h>
6098  * which is in turn is included by <varargs.h> and <stdarg.h>. See comments
6099  * in <sys/va_impl.h> for more detailed information regarding implementation
6100  * and compiler specific protocols.
6101  */
6102 
6103 /*
6104  * The common definitions exported by this header or compilers using
6105  * this header are:
6106  *
6107  * the identifier __builtin_va_alist for the variable list pseudo parameter
6108  * the type __va_alist_type for the variable list pseudo parameter
6109  * the type __va_list defining the type of the variable list iterator
6110  *
6111  * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros
6112  * (__GNUC__) and processor macros (e.g. __amd64) are intended to be
6113  * defined by the compilation system, not the user of the system.
6114  */
6115 
6116 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
6117 /*
6118  * CDDL HEADER START
6119  *
6120  * The contents of this file are subject to the terms of the
6121  * Common Development and Distribution License (the "License").
6122  * You may not use this file except in compliance with the License.
6123  *
6124  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6125  * or http://www.opensolaris.org/os/licensing.
6126  * See the License for the specific language governing permissions
6127  * and limitations under the License.
6128  *
6129  *
6130  * When distributing Covered Code, include this CDDL HEADER in each
6131  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6132  * If applicable, add the following below this CDDL HEADER, with the
6133  * fields enclosed by brackets "[]" replaced with your own identifying
6134  * information: Portions Copyright [yyyy] [name of copyright owner]
6135  *
6136  * CDDL HEADER END
6137  */
6138 
6139 /*
6140  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
6141  * Use is subject to license terms.
6142  * Copyright 2016 Joyent, Inc.
6143  */
6144 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2
6145 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h"
6146 typedef __builtin_va_list __gnuc_va_list;
6147 /*
6148  * XX64 This seems unnecessary .. but is needed because vcmn_err is
6149  *	defined with __va_list instead of plain old va_list.
6150  *	Perhaps that should be fixed!
6151  */
6152 typedef __builtin_va_list __va_list;
6153 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
6154 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1
6155 /*
6156  * CDDL HEADER START
6157  *
6158  * The contents of this file are subject to the terms of the
6159  * Common Development and Distribution License, Version 1.0 only
6160  * (the "License").  You may not use this file except in compliance
6161  * with the License.
6162  *
6163  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6164  * or http://www.opensolaris.org/os/licensing.
6165  * See the License for the specific language governing permissions
6166  * and limitations under the License.
6167  *
6168  * When distributing Covered Code, include this CDDL HEADER in each
6169  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6170  * If applicable, add the following below this CDDL HEADER, with the
6171  * fields enclosed by brackets "[]" replaced with your own identifying
6172  * information: Portions Copyright [yyyy] [name of copyright owner]
6173  *
6174  * CDDL HEADER END
6175  */
6176 /*
6177  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6178  * Use is subject to license terms.
6179  */
6180 
6181 
6182 
6183 
6184 #pragma ident "%Z%%M%	%I%	%E% SMI"
6185 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h"
6186 typedef struct __FILE __FILE;
6187 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
6188 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1
6189 /*
6190  * CDDL HEADER START
6191  *
6192  * The contents of this file are subject to the terms of the
6193  * Common Development and Distribution License (the "License").
6194  * You may not use this file except in compliance with the License.
6195  *
6196  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6197  * or http://www.opensolaris.org/os/licensing.
6198  * See the License for the specific language governing permissions
6199  * and limitations under the License.
6200  *
6201  * When distributing Covered Code, include this CDDL HEADER in each
6202  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6203  * If applicable, add the following below this CDDL HEADER, with the
6204  * fields enclosed by brackets "[]" replaced with your own identifying
6205  * information: Portions Copyright [yyyy] [name of copyright owner]
6206  *
6207  * CDDL HEADER END
6208  */
6209 
6210 /*
6211  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6212  * Use is subject to license terms.
6213  */
6214 
6215 
6216 
6217 
6218 #pragma ident "%Z%%M%	%I%	%E% SMI"
6219 
6220 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
6221 /*
6222  * CDDL HEADER START
6223  *
6224  * The contents of this file are subject to the terms of the
6225  * Common Development and Distribution License (the "License").
6226  * You may not use this file except in compliance with the License.
6227  *
6228  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6229  * or http://www.opensolaris.org/os/licensing.
6230  * See the License for the specific language governing permissions
6231  * and limitations under the License.
6232  *
6233  *
6234  * When distributing Covered Code, include this CDDL HEADER in each
6235  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6236  * If applicable, add the following below this CDDL HEADER, with the
6237  * fields enclosed by brackets "[]" replaced with your own identifying
6238  * information: Portions Copyright [yyyy] [name of copyright owner]
6239  *
6240  * CDDL HEADER END
6241  */
6242 
6243 /*
6244  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
6245  * Use is subject to license terms.
6246  * Copyright 2016 Joyent, Inc.
6247  */
6248 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2
6249 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h"
6250 struct __FILE /* needs to be binary-compatible with old versions */
6251 {
6252 
6253 
6254 
6255 
6256  int _cnt; /* number of available characters in buffer */
6257  unsigned char *_ptr; /* next character from/to here in buffer */
6258 
6259  unsigned char *_base; /* the buffer */
6260  unsigned char _flag; /* the state of the stream */
6261  unsigned char _magic; /* Old home of the file descriptor */
6262     /* Only fileno(3C) can retrieve the value now */
6263  unsigned __orientation:2; /* the orientation of the stream */
6264  unsigned __ionolock:1; /* turn off implicit locking */
6265  unsigned __seekable:1; /* is file seekable? */
6266  unsigned __extendedfd:1; /* enable extended FILE */
6267  unsigned __xf_nocheck:1; /* no extended FILE runtime check */
6268  unsigned __filler:10;
6269 };
6270 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
6271 
6272 /*
6273  * If feature test macros are set that enable interfaces that use types
6274  * defined in <sys/types.h>, get those types by doing the include.
6275  *
6276  * Note that in asking for the interfaces associated with this feature test
6277  * macro one also asks for definitions of the POSIX types.
6278  */
6279 
6280 
6281 
6282 
6283 
6284 
6285 /*
6286  * The following typedefs are adopted from ones in <sys/types.h> (with leading
6287  * underscores added to avoid polluting the ANSI C name space).  See the
6288  * commentary there for further explanation.
6289  */
6290 
6291 typedef long long __longlong_t;
6292 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
6293 typedef __FILE FILE;
6294 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
6295 typedef long fpos_t;
6296 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
6297 /*
6298  * The value of _NFILE is defined in the Processor Specific ABI.  The value
6299  * is chosen for historical reasons rather than for truly processor related
6300  * attribute.  Note that the SPARC Processor Specific ABI uses the common
6301  * UNIX historical value of 20 so it is allowed to fall through.
6302  */
6303 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
6304 extern __FILE __iob[60];
6305 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
6306 extern int remove(const char *);
6307 extern int rename(const char *, const char *);
6308 extern FILE *tmpfile(void);
6309 extern char *tmpnam(char *);
6310 extern int fclose(FILE *);
6311 extern int fflush(FILE *);
6312 extern FILE *fopen(const char *, const char *);
6313 extern FILE *freopen(const char *,
6314    const char *, FILE *);
6315 extern void setbuf(FILE *, char *);
6316 extern int setvbuf(FILE *, char *, int,
6317    size_t);
6318 /* PRINTFLIKE2 */
6319 extern int fprintf(FILE *, const char *, ...);
6320 /* SCANFLIKE2 */
6321 extern int fscanf(FILE *, const char *, ...);
6322 /* PRINTFLIKE1 */
6323 extern int printf(const char *, ...);
6324 /* SCANFLIKE1 */
6325 extern int scanf(const char *, ...);
6326 /* PRINTFLIKE2 */
6327 extern int sprintf(char *, const char *, ...);
6328 /* SCANFLIKE2 */
6329 extern int sscanf(const char *,
6330    const char *, ...);
6331 extern int vfprintf(FILE *, const char *,
6332    __va_list);
6333 extern int vprintf(const char *, __va_list);
6334 extern int vsprintf(char *, const char *,
6335    __va_list);
6336 extern int fgetc(FILE *);
6337 extern char *fgets(char *, int, FILE *);
6338 extern int fputc(int, FILE *);
6339 extern int fputs(const char *, FILE *);
6340 
6341 
6342 extern int getc(FILE *);
6343 extern int putc(int, FILE *);
6344 
6345 
6346 
6347 extern int getchar(void);
6348 extern int putchar(int);
6349 
6350 
6351 /*
6352  * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11
6353  * environment has been requested, we remove it.
6354  */
6355 
6356 extern char *gets(char *);
6357 
6358 extern int puts(const char *);
6359 extern int ungetc(int, FILE *);
6360 extern size_t fread(void *, size_t, size_t,
6361  FILE *);
6362 extern size_t fwrite(const void *, size_t, size_t,
6363  FILE *);
6364 
6365 extern int fgetpos(FILE *, fpos_t *);
6366 extern int fsetpos(FILE *, const fpos_t *);
6367 
6368 extern int fseek(FILE *, long, int);
6369 extern long ftell(FILE *);
6370 extern void rewind(FILE *);
6371 
6372 
6373 extern void clearerr(FILE *);
6374 extern int feof(FILE *);
6375 extern int ferror(FILE *);
6376 
6377 extern void perror(const char *);
6378 
6379 
6380 extern int __filbuf(FILE *);
6381 extern int __flsbuf(int, FILE *);
6382 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
6383 
6384 /*
6385  * If feature test macros are set that enable interfaces that use types
6386  * defined in <sys/types.h>, get those types by doing the include.
6387  *
6388  * Note that in asking for the interfaces associated with this feature test
6389  * macro one also asks for definitions of the POSIX types.
6390  */
6391 
6392 /*
6393  * Allow global visibility for symbols defined in
6394  * C++ "std" namespace in <iso/stdio_iso.h>.
6395  */
6396 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6397 /*
6398  * This header needs to be included here because it relies on the global
6399  * visibility of FILE and size_t in the C++ environment.
6400  */
6401 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1
6402 /*
6403  * CDDL HEADER START
6404  *
6405  * The contents of this file are subject to the terms of the
6406  * Common Development and Distribution License, Version 1.0 only
6407  * (the "License").  You may not use this file except in compliance
6408  * with the License.
6409  *
6410  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6411  * or http://www.opensolaris.org/os/licensing.
6412  * See the License for the specific language governing permissions
6413  * and limitations under the License.
6414  *
6415  * When distributing Covered Code, include this CDDL HEADER in each
6416  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6417  * If applicable, add the following below this CDDL HEADER, with the
6418  * fields enclosed by brackets "[]" replaced with your own identifying
6419  * information: Portions Copyright [yyyy] [name of copyright owner]
6420  *
6421  * CDDL HEADER END
6422  */
6423 /*
6424  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6425  *
6426  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6427  * Use is subject to license terms.
6428  */
6429 
6430 /*
6431  * An application should not include this header directly.  Instead it
6432  * should be included only through the inclusion of other Sun headers.
6433  *
6434  * The contents of this header is limited to identifiers specified in
6435  * the C99 standard and in conflict with the C++ implementation of the
6436  * standard header.  The C++ standard may adopt the C99 standard at
6437  * which point it is expected that the symbols included here will
6438  * become part of the C++ std namespace.
6439  */
6440 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
6441 /*
6442  * The following have been added as a result of the ISO/IEC 9899:1999
6443  * standard. For a strictly conforming C application, visibility is
6444  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
6445  * For non-strictly conforming C applications, there are no restrictions
6446  * on the C namespace.
6447  */
6448 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
6449 extern int vfscanf(FILE *, const char *, __va_list);
6450 extern int vscanf(const char *, __va_list);
6451 extern int vsscanf(const char *, const char *,
6452   __va_list);
6453 
6454 
6455 
6456 
6457 extern int snprintf(char *, size_t, const char *,
6458  ...);
6459 extern int vsnprintf(char *, size_t, const char *,
6460  __va_list);
6461 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
6462 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6463 typedef __longlong_t fpos64_t;
6464 
6465 
6466 
6467 /*
6468  * XPG4 requires that va_list be defined in <stdio.h> "as described in
6469  * <stdarg.h>".  ANSI-C and POSIX require that the namespace of <stdio.h>
6470  * not be polluted with this name.
6471  */
6472 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6473 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
6474 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6475 extern unsigned char _sibuf[], _sobuf[];
6476 
6477 
6478 /* large file compilation environment setup */
6479 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6480 extern unsigned char *_bufendtab[];
6481 extern FILE *_lastbuf;
6482 
6483 
6484 /* In the LP64 compilation environment, all APIs are already large file */
6485 # 268 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6486 extern char *tmpnam_r(char *);
6487 
6488 
6489 
6490 
6491 extern int fcloseall(void);
6492 extern void setbuffer(FILE *, char *, size_t);
6493 extern int setlinebuf(FILE *);
6494 /* PRINTFLIKE2 */
6495 extern int asprintf(char **, const char *, ...);
6496 /* PRINTFLIKE2 */
6497 extern int vasprintf(char **, const char *, __va_list);
6498 
6499 
6500 
6501 
6502  /* || defined(_XPG7) */
6503 extern ssize_t getdelim(char **, size_t *,
6504  int, FILE *);
6505 extern ssize_t getline(char **, size_t *,
6506  FILE *);
6507 
6508 
6509 /*
6510  * The following are known to POSIX and XOPEN, but not to ANSI-C.
6511  */
6512 
6513 
6514 
6515 extern FILE *fdopen(int, const char *);
6516 extern char *ctermid(char *);
6517 extern int fileno(FILE *);
6518 
6519 
6520 
6521 /*
6522  * The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
6523  */
6524 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
6525 /*
6526  * The following are known to XOPEN, but not to ANSI-C or POSIX.
6527  */
6528 
6529 
6530 extern FILE *popen(const char *, const char *);
6531 extern char *tempnam(const char *, const char *);
6532 extern int pclose(FILE *);
6533 
6534 extern int getsubopt(char **, char *const *, char **);
6535 
6536 
6537 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
6538 
6539 extern char *cuserid(char *);
6540 extern int getopt(int, char *const *, const char *);
6541 extern char *optarg;
6542 extern int optind, opterr, optopt;
6543 extern int getw(FILE *);
6544 extern int putw(int, FILE *);
6545 
6546 
6547 
6548 
6549 /*
6550  * The following are defined as part of the Large File Summit interfaces.
6551  */
6552 
6553 extern int fseeko(FILE *, off_t, int);
6554 extern off_t ftello(FILE *);
6555 
6556 
6557 /*
6558  * The following are defined as part of the transitional Large File Summit
6559  * interfaces.
6560  */
6561 
6562 
6563 extern FILE *fopen64(const char *, const char *);
6564 extern FILE *freopen64(const char *, const char *, FILE *);
6565 extern FILE *tmpfile64(void);
6566 extern int fgetpos64(FILE *, fpos64_t *);
6567 extern int fsetpos64(FILE *, const fpos64_t *);
6568 extern int fseeko64(FILE *, off64_t, int);
6569 extern off64_t ftello64(FILE *);
6570 
6571 
6572 /*
6573  * XPG7 symbols
6574  */
6575 
6576 extern FILE *fmemopen(void *, size_t,
6577       const char *);
6578 extern FILE *open_memstream(char **, size_t *);
6579 # 34 "common/apptrace.c" 2
6580 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1
6581 /*
6582  * CDDL HEADER START
6583  *
6584  * The contents of this file are subject to the terms of the
6585  * Common Development and Distribution License (the "License").
6586  * You may not use this file except in compliance with the License.
6587  *
6588  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6589  * or http://www.opensolaris.org/os/licensing.
6590  * See the License for the specific language governing permissions
6591  * and limitations under the License.
6592  *
6593  * When distributing Covered Code, include this CDDL HEADER in each
6594  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6595  * If applicable, add the following below this CDDL HEADER, with the
6596  * fields enclosed by brackets "[]" replaced with your own identifying
6597  * information: Portions Copyright [yyyy] [name of copyright owner]
6598  *
6599  * CDDL HEADER END
6600  */
6601 
6602 /*
6603  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6604  * Copyright (c) 2013 Gary Mills
6605  *
6606  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
6607  */
6608 
6609 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
6610 
6611 /*	Copyright (c) 1988 AT&T	*/
6612 /*	  All Rights Reserved  	*/
6613 
6614 
6615 
6616 
6617 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1
6618 /*
6619  * CDDL HEADER START
6620  *
6621  * The contents of this file are subject to the terms of the
6622  * Common Development and Distribution License, Version 1.0 only
6623  * (the "License").  You may not use this file except in compliance
6624  * with the License.
6625  *
6626  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6627  * or http://www.opensolaris.org/os/licensing.
6628  * See the License for the specific language governing permissions
6629  * and limitations under the License.
6630  *
6631  * When distributing Covered Code, include this CDDL HEADER in each
6632  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6633  * If applicable, add the following below this CDDL HEADER, with the
6634  * fields enclosed by brackets "[]" replaced with your own identifying
6635  * information: Portions Copyright [yyyy] [name of copyright owner]
6636  *
6637  * CDDL HEADER END
6638  */
6639 /*
6640  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6641  * Copyright 2014 PALO, Richard.
6642  *
6643  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
6644  * Use is subject to license terms.
6645  */
6646 
6647 /*	Copyright (c) 1988 AT&T	*/
6648 /*	  All Rights Reserved  	*/
6649 
6650 
6651 /*
6652  * An application should not include this header directly.  Instead it
6653  * should be included only through the inclusion of other Sun headers.
6654  *
6655  * The contents of this header is limited to identifiers specified in the
6656  * C Standard.  Any new identifiers specified in future amendments to the
6657  * C Standard must be placed in this header.  If these new identifiers
6658  * are required to also be in the C++ Standard "std" namespace, then for
6659  * anything other than macro definitions, corresponding "using" directives
6660  * must also be added to <locale.h>.
6661  */
6662 
6663 
6664 
6665 
6666 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6667 /*
6668  * CDDL HEADER START
6669  *
6670  * The contents of this file are subject to the terms of the
6671  * Common Development and Distribution License (the "License").
6672  * You may not use this file except in compliance with the License.
6673  *
6674  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6675  * or http://www.opensolaris.org/os/licensing.
6676  * See the License for the specific language governing permissions
6677  * and limitations under the License.
6678  *
6679  * When distributing Covered Code, include this CDDL HEADER in each
6680  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6681  * If applicable, add the following below this CDDL HEADER, with the
6682  * fields enclosed by brackets "[]" replaced with your own identifying
6683  * information: Portions Copyright [yyyy] [name of copyright owner]
6684  *
6685  * CDDL HEADER END
6686  */
6687 
6688 /*
6689  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6690  * Copyright 2016 Joyent, Inc.
6691  *
6692  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6693  * Use is subject to license terms.
6694  */
6695 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
6696 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
6697 /*
6698  * This file and its contents are supplied under the terms of the
6699  * Common Development and Distribution License ("CDDL"), version 1.0.
6700  * You may only use this file in accordance with the terms of version
6701  * 1.0 of the CDDL.
6702  *
6703  * A full copy of the text of the CDDL should have accompanied this
6704  * source.  A copy of the CDDL is also available via the Internet at
6705  * http://www.illumos.org/license/CDDL.
6706  */
6707 
6708 /*
6709  * Copyright 2014-2016 PALO, Richard.
6710  */
6711 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
6712 
6713 
6714 
6715 
6716 
6717 unsigned char __mb_cur_max(void);
6718 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
6719 typedef struct {
6720  int quot;
6721  int rem;
6722 } div_t;
6723 
6724 typedef struct {
6725  long quot;
6726  long rem;
6727 } ldiv_t;
6728 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
6729 /*
6730  * wchar_t is a built-in type in standard C++ and as such is not
6731  * defined here when using standard C++. However, the GNU compiler
6732  * fixincludes utility nonetheless creates its own version of this
6733  * header for use by gcc and g++. In that version it adds a redundant
6734  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
6735  * header we need to include the following magic comment:
6736  *
6737  * we must use the C++ compiler's type
6738  *
6739  * The above comment should not be removed or changed until GNU
6740  * gcc/fixinc/inclhack.def is updated to bypass this header.
6741  */
6742 
6743 
6744 
6745 
6746 
6747 
6748 typedef long wchar_t;
6749 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
6750 extern void abort(void) __attribute__((__noreturn__));
6751 extern int abs(int);
6752 extern int atexit(void (*)(void));
6753 extern double atof(const char *);
6754 extern int atoi(const char *);
6755 extern long int atol(const char *);
6756 extern void *bsearch(const void *, const void *, size_t, size_t,
6757  int (*)(const void *, const void *));
6758 
6759 
6760 
6761 
6762 
6763 
6764 extern void *calloc(size_t, size_t);
6765 extern div_t div(int, int);
6766 extern void exit(int)
6767  __attribute__((__noreturn__));
6768 extern void free(void *);
6769 extern char *getenv(const char *);
6770 extern long int labs(long);
6771 extern ldiv_t ldiv(long, long);
6772 extern void *malloc(size_t);
6773 extern int mblen(const char *, size_t);
6774 extern size_t mbstowcs(wchar_t *, const char *,
6775  size_t);
6776 extern int mbtowc(wchar_t *, const char *, size_t);
6777 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
6778 
6779 
6780 
6781 
6782 
6783 extern int rand(void);
6784 extern void *realloc(void *, size_t);
6785 extern void srand(unsigned int);
6786 extern double strtod(const char *, char **);
6787 extern long int strtol(const char *, char **, int);
6788 extern unsigned long int strtoul(const char *,
6789  char **, int);
6790 extern int system(const char *);
6791 extern int wctomb(char *, wchar_t);
6792 extern size_t wcstombs(char *, const wchar_t *,
6793  size_t);
6794 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
6795 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1
6796 /*
6797  * CDDL HEADER START
6798  *
6799  * The contents of this file are subject to the terms of the
6800  * Common Development and Distribution License, Version 1.0 only
6801  * (the "License").  You may not use this file except in compliance
6802  * with the License.
6803  *
6804  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6805  * or http://www.opensolaris.org/os/licensing.
6806  * See the License for the specific language governing permissions
6807  * and limitations under the License.
6808  *
6809  * When distributing Covered Code, include this CDDL HEADER in each
6810  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6811  * If applicable, add the following below this CDDL HEADER, with the
6812  * fields enclosed by brackets "[]" replaced with your own identifying
6813  * information: Portions Copyright [yyyy] [name of copyright owner]
6814  *
6815  * CDDL HEADER END
6816  */
6817 /*
6818  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6819  *
6820  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6821  * Use is subject to license terms.
6822  */
6823 
6824 /*
6825  * An application should not include this header directly.  Instead it
6826  * should be included only through the inclusion of other Sun headers.
6827  *
6828  * The contents of this header is limited to identifiers specified in
6829  * the C99 standard and in conflict with the C++ implementation of the
6830  * standard header.  The C++ standard may adopt the C99 standard at
6831  * which point it is expected that the symbols included here will
6832  * become part of the C++ std namespace.
6833  */
6834 
6835 
6836 
6837 
6838 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6839 /*
6840  * CDDL HEADER START
6841  *
6842  * The contents of this file are subject to the terms of the
6843  * Common Development and Distribution License (the "License").
6844  * You may not use this file except in compliance with the License.
6845  *
6846  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6847  * or http://www.opensolaris.org/os/licensing.
6848  * See the License for the specific language governing permissions
6849  * and limitations under the License.
6850  *
6851  * When distributing Covered Code, include this CDDL HEADER in each
6852  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6853  * If applicable, add the following below this CDDL HEADER, with the
6854  * fields enclosed by brackets "[]" replaced with your own identifying
6855  * information: Portions Copyright [yyyy] [name of copyright owner]
6856  *
6857  * CDDL HEADER END
6858  */
6859 
6860 /*
6861  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6862  * Copyright 2016 Joyent, Inc.
6863  *
6864  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6865  * Use is subject to license terms.
6866  */
6867 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2
6868 
6869 
6870 
6871 
6872 
6873 /*
6874  * The following have been added as a result of the ISO/IEC 9899:1999
6875  * standard. For a strictly conforming C application, visibility is
6876  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
6877  * For non-strictly conforming C applications, there are no restrictions
6878  * on the C namespace.
6879  */
6880 
6881 
6882 typedef struct {
6883  long long quot;
6884  long long rem;
6885 } lldiv_t;
6886 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h"
6887 extern void _Exit(int);
6888 extern float strtof(const char *, char **);
6889 extern long double strtold(const char *, char **);
6890 
6891 
6892 extern long long atoll(const char *);
6893 extern long long llabs(long long);
6894 extern lldiv_t lldiv(long long, long long);
6895 extern long long strtoll(const char *, char **,
6896  int);
6897 extern unsigned long long strtoull(const char *,
6898  char **, int);
6899 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
6900 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1
6901 /*
6902  * This file and its contents are supplied under the terms of the
6903  * Common Development and Distribution License ("CDDL"), version 1.0.
6904  * You may only use this file in accordance with the terms of version
6905  * 1.0 of the CDDL.
6906  *
6907  * A full copy of the text of the CDDL should have accompanied this
6908  * source.  A copy of the CDDL is also available via the Internet at
6909  * http://www.illumos.org/license/CDDL.
6910  */
6911 
6912 /*
6913  * Copyright 2016 Joyent, Inc.
6914  */
6915 
6916 /*
6917  * An application should not include this header directly.  Instead it
6918  * should be included only through the inclusion of other illumos headers.
6919  *
6920  * The contents of this header is limited to identifiers specified in
6921  * the C11 standard and in conflict with the C++ implementation of the
6922  * standard header.  The C++ standard may adopt the C11 standard at
6923  * which point it is expected that the symbols included here will
6924  * become part of the C++ std namespace.
6925  */
6926 
6927 
6928 
6929 
6930 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6931 /*
6932  * CDDL HEADER START
6933  *
6934  * The contents of this file are subject to the terms of the
6935  * Common Development and Distribution License (the "License").
6936  * You may not use this file except in compliance with the License.
6937  *
6938  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6939  * or http://www.opensolaris.org/os/licensing.
6940  * See the License for the specific language governing permissions
6941  * and limitations under the License.
6942  *
6943  * When distributing Covered Code, include this CDDL HEADER in each
6944  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6945  * If applicable, add the following below this CDDL HEADER, with the
6946  * fields enclosed by brackets "[]" replaced with your own identifying
6947  * information: Portions Copyright [yyyy] [name of copyright owner]
6948  *
6949  * CDDL HEADER END
6950  */
6951 
6952 /*
6953  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6954  * Copyright 2016 Joyent, Inc.
6955  *
6956  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6957  * Use is subject to license terms.
6958  */
6959 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2
6960 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
6961 /*
6962  * The following have been added as a result of the ISO/IEC 9899:2011
6963  * standard. For a strictly conforming C application, visibility is
6964  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
6965  * For non-strictly conforming C applications, there are no restrictions
6966  * on the C namespace.
6967  */
6968 
6969 /*
6970  * Work around fix-includes and other bad actors with using multiple headers.
6971  */
6972 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
6973 extern void *aligned_alloc(size_t, size_t);
6974 extern int at_quick_exit(void (*)(void));
6975 extern void quick_exit(int);
6976 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
6977 
6978 
6979 
6980 
6981 
6982 /*
6983  * Allow global visibility for symbols defined in
6984  * C++ "std" namespace in <iso/stdlib_iso.h>.
6985  */
6986 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
6987 /*
6988  * Allow global visibility for symbols defined in
6989  * C++ "std" namespace in <iso/stdlib_c11.h>.
6990  */
6991 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
6992 /* large file compilation environment setup */
6993 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
6994 /* In the LP64 compilation environment, all APIs are already large file */
6995 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
6996 extern int rand_r(unsigned int *);
6997 
6998 
6999 extern void _exithandle(void);
7000 
7001 
7002 
7003 
7004 extern double drand48(void);
7005 extern double erand48(unsigned short *);
7006 extern long jrand48(unsigned short *);
7007 extern void lcong48(unsigned short *);
7008 extern long lrand48(void);
7009 extern long mrand48(void);
7010 extern long nrand48(unsigned short *);
7011 extern unsigned short *seed48(unsigned short *);
7012 extern void srand48(long);
7013 extern int putenv(char *);
7014 extern void setkey(const char *);
7015 
7016 
7017 /*
7018  * swab() has historically been in <stdlib.h> as delivered from AT&T
7019  * and continues to be visible in the default compilation environment.
7020  * As of Issue 4 of the X/Open Portability Guides, swab() was declared
7021  * in <unistd.h>. As a result, with respect to X/Open namespace the
7022  * swab() declaration in this header is only visible for the XPG3
7023  * environment.
7024  */
7025 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
7026 extern void swab(const char *, char *, ssize_t);
7027 
7028 
7029 
7030 
7031 
7032 extern int mkstemp(char *);
7033 
7034 extern int mkstemps(char *, int);
7035 
7036 
7037 
7038 
7039 
7040 extern int mkstemp64(char *);
7041 
7042 extern int mkstemps64(char *, int);
7043 
7044 
7045 
7046 
7047 extern char *mkdtemp(char *);
7048 
7049 
7050 
7051 extern int mkostemp(char *, int);
7052 extern int mkostemps(char *, int, int);
7053 
7054 
7055 extern int mkostemp64(char *, int);
7056 extern int mkostemps64(char *, int, int);
7057 
7058 
7059 
7060 
7061 
7062 
7063 extern long a64l(const char *);
7064 extern char *ecvt(double, int, int *, int *);
7065 extern char *fcvt(double, int, int *, int *);
7066 extern char *gcvt(double, int, char *);
7067 extern int getsubopt(char **, char *const *, char **);
7068 extern int grantpt(int);
7069 extern char *initstate(unsigned, char *, size_t);
7070 extern char *l64a(long);
7071 extern char *mktemp(char *);
7072 extern char *ptsname(int);
7073 extern long random(void);
7074 extern char *realpath(const char *, char *);
7075 extern char *setstate(const char *);
7076 extern void srandom(unsigned);
7077 extern int unlockpt(int);
7078 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
7079 
7080 extern int ttyslot(void);
7081 extern void *valloc(size_t);
7082 
7083 
7084 
7085 
7086 
7087 
7088 extern int posix_memalign(void **, size_t, size_t);
7089 extern int posix_openpt(int);
7090 extern int setenv(const char *, const char *, int);
7091 extern int unsetenv(const char *);
7092 
7093 
7094 
7095 
7096 extern char *canonicalize_file_name(const char *);
7097 extern int clearenv(void);
7098 extern void closefrom(int);
7099 extern int daemon(int, int);
7100 extern int dup2(int, int);
7101 extern int dup3(int, int, int);
7102 extern int fdwalk(int (*)(void *, int), void *);
7103 extern char *qecvt(long double, int, int *, int *);
7104 extern char *qfcvt(long double, int, int *, int *);
7105 extern char *qgcvt(long double, int, char *);
7106 extern char *getcwd(char *, size_t);
7107 extern const char *getexecname(void);
7108 
7109 
7110 
7111 
7112 
7113 
7114 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
7115 #pragma redefine_extname getlogin getloginx
7116 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
7117 
7118 
7119 
7120 
7121 
7122 
7123 extern char *getlogin(void);
7124 
7125 
7126 extern int getopt(int, char *const *, const char *);
7127 extern char *optarg;
7128 extern int optind, opterr, optopt;
7129 extern char *getpass(const char *);
7130 extern char *getpassphrase(const char *);
7131 extern int getpw(uid_t, char *);
7132 extern int isatty(int);
7133 extern void *memalign(size_t, size_t);
7134 extern char *ttyname(int);
7135 extern char *mkdtemp(char *);
7136 extern const char *getprogname(void);
7137 extern void setprogname(const char *);
7138 
7139 
7140 extern char *lltostr(long long, char *);
7141 extern char *ulltostr(unsigned long long, char *);
7142 
7143 
7144 
7145 
7146 /* OpenBSD compatibility functions */
7147 
7148 
7149 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
7150 /*
7151  * CDDL HEADER START
7152  *
7153  * The contents of this file are subject to the terms of the
7154  * Common Development and Distribution License, Version 1.0 only
7155  * (the "License").  You may not use this file except in compliance
7156  * with the License.
7157  *
7158  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7159  * or http://www.opensolaris.org/os/licensing.
7160  * See the License for the specific language governing permissions
7161  * and limitations under the License.
7162  *
7163  * When distributing Covered Code, include this CDDL HEADER in each
7164  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7165  * If applicable, add the following below this CDDL HEADER, with the
7166  * fields enclosed by brackets "[]" replaced with your own identifying
7167  * information: Portions Copyright [yyyy] [name of copyright owner]
7168  *
7169  * CDDL HEADER END
7170  */
7171 /*
7172  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7173  *
7174  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
7175  * Use is subject to license terms.
7176  */
7177 
7178 
7179 
7180 
7181 /*
7182  * This file, <inttypes.h>, is specified by the ISO C standard,
7183  * standard, ISO/IEC 9899:1999 Programming language - C and is
7184  * also defined by SUSv3.
7185  *
7186  * ISO	  International Organization for Standardization.
7187  * SUSv3  Single Unix Specification, Version 3
7188  */
7189 
7190 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7191 /*
7192  * CDDL HEADER START
7193  *
7194  * The contents of this file are subject to the terms of the
7195  * Common Development and Distribution License (the "License").
7196  * You may not use this file except in compliance with the License.
7197  *
7198  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7199  * or http://www.opensolaris.org/os/licensing.
7200  * See the License for the specific language governing permissions
7201  * and limitations under the License.
7202  *
7203  * When distributing Covered Code, include this CDDL HEADER in each
7204  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7205  * If applicable, add the following below this CDDL HEADER, with the
7206  * fields enclosed by brackets "[]" replaced with your own identifying
7207  * information: Portions Copyright [yyyy] [name of copyright owner]
7208  *
7209  * CDDL HEADER END
7210  */
7211 
7212 /*
7213  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7214  * Copyright 2016 Joyent, Inc.
7215  *
7216  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7217  * Use is subject to license terms.
7218  */
7219 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
7220 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1
7221 /*
7222  * CDDL HEADER START
7223  *
7224  * The contents of this file are subject to the terms of the
7225  * Common Development and Distribution License, Version 1.0 only
7226  * (the "License").  You may not use this file except in compliance
7227  * with the License.
7228  *
7229  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7230  * or http://www.opensolaris.org/os/licensing.
7231  * See the License for the specific language governing permissions
7232  * and limitations under the License.
7233  *
7234  * When distributing Covered Code, include this CDDL HEADER in each
7235  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7236  * If applicable, add the following below this CDDL HEADER, with the
7237  * fields enclosed by brackets "[]" replaced with your own identifying
7238  * information: Portions Copyright [yyyy] [name of copyright owner]
7239  *
7240  * CDDL HEADER END
7241  */
7242 /*
7243  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
7244  * Use is subject to license terms.
7245  */
7246 
7247 
7248 
7249 
7250 #pragma ident "%Z%%M%	%I%	%E% SMI"
7251 
7252 /*
7253  * This header, <sys/inttypes.h>, contains (through nested inclusion) the
7254  * vast majority of the facilities specified for <inttypes.h> as defined
7255  * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
7256  *
7257  * Kernel/Driver developers are encouraged to include this file to access
7258  * the fixed size types, limits and utility macros. Application developers
7259  * should use the standard defined header <inttypes.h>.
7260  */
7261 
7262 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7263 /*
7264  * CDDL HEADER START
7265  *
7266  * The contents of this file are subject to the terms of the
7267  * Common Development and Distribution License (the "License").
7268  * You may not use this file except in compliance with the License.
7269  *
7270  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7271  * or http://www.opensolaris.org/os/licensing.
7272  * See the License for the specific language governing permissions
7273  * and limitations under the License.
7274  *
7275  * When distributing Covered Code, include this CDDL HEADER in each
7276  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7277  * If applicable, add the following below this CDDL HEADER, with the
7278  * fields enclosed by brackets "[]" replaced with your own identifying
7279  * information: Portions Copyright [yyyy] [name of copyright owner]
7280  *
7281  * CDDL HEADER END
7282  */
7283 
7284 /*
7285  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7286  * Copyright 2016 Joyent, Inc.
7287  *
7288  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7289  * Use is subject to license terms.
7290  */
7291 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
7292 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
7293 /*
7294  * CDDL HEADER START
7295  *
7296  * The contents of this file are subject to the terms of the
7297  * Common Development and Distribution License, Version 1.0 only
7298  * (the "License").  You may not use this file except in compliance
7299  * with the License.
7300  *
7301  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7302  * or http://www.opensolaris.org/os/licensing.
7303  * See the License for the specific language governing permissions
7304  * and limitations under the License.
7305  *
7306  * When distributing Covered Code, include this CDDL HEADER in each
7307  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7308  * If applicable, add the following below this CDDL HEADER, with the
7309  * fields enclosed by brackets "[]" replaced with your own identifying
7310  * information: Portions Copyright [yyyy] [name of copyright owner]
7311  *
7312  * CDDL HEADER END
7313  */
7314 /*
7315  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7316  *
7317  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7318  * Use is subject to license terms.
7319  */
7320 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
7321 
7322 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
7323 /*
7324  * CDDL HEADER START
7325  *
7326  * The contents of this file are subject to the terms of the
7327  * Common Development and Distribution License, Version 1.0 only
7328  * (the "License").  You may not use this file except in compliance
7329  * with the License.
7330  *
7331  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7332  * or http://www.opensolaris.org/os/licensing.
7333  * See the License for the specific language governing permissions
7334  * and limitations under the License.
7335  *
7336  * When distributing Covered Code, include this CDDL HEADER in each
7337  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7338  * If applicable, add the following below this CDDL HEADER, with the
7339  * fields enclosed by brackets "[]" replaced with your own identifying
7340  * information: Portions Copyright [yyyy] [name of copyright owner]
7341  *
7342  * CDDL HEADER END
7343  */
7344 /*
7345  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7346  *
7347  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7348  * Use is subject to license terms.
7349  */
7350 
7351 
7352 
7353 
7354 /*
7355  * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation
7356  * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999
7357  * Programming language - C.
7358  *
7359  * Programs/Modules should not directly include this file.  Access to the
7360  * types defined in this file should be through the inclusion of one of the
7361  * following files:
7362  *
7363  *	<limits.h>		This nested inclusion is disabled for strictly
7364  *				ANSI-C conforming compilations.  The *_MIN
7365  *				definitions are not visible to POSIX or XPG
7366  *				conforming applications (due to what may be
7367  *				a bug in the specification - this is under
7368  *				investigation)
7369  *
7370  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
7371  *				components of <inttypes.h>.
7372  *
7373  *	<inttypes.h>		For use by applications.
7374  *
7375  * See these files for more details.
7376  */
7377 
7378 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7379 /*
7380  * CDDL HEADER START
7381  *
7382  * The contents of this file are subject to the terms of the
7383  * Common Development and Distribution License (the "License").
7384  * You may not use this file except in compliance with the License.
7385  *
7386  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7387  * or http://www.opensolaris.org/os/licensing.
7388  * See the License for the specific language governing permissions
7389  * and limitations under the License.
7390  *
7391  * When distributing Covered Code, include this CDDL HEADER in each
7392  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7393  * If applicable, add the following below this CDDL HEADER, with the
7394  * fields enclosed by brackets "[]" replaced with your own identifying
7395  * information: Portions Copyright [yyyy] [name of copyright owner]
7396  *
7397  * CDDL HEADER END
7398  */
7399 
7400 /*
7401  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7402  * Copyright 2016 Joyent, Inc.
7403  *
7404  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7405  * Use is subject to license terms.
7406  */
7407 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2
7408 
7409 
7410 
7411 
7412 
7413 /*
7414  * Limits
7415  *
7416  * The following define the limits for the types defined in <sys/int_types.h>.
7417  *
7418  * INTMAX_MIN (minimum value of the largest supported signed integer type),
7419  * INTMAX_MAX (maximum value of the largest supported signed integer type),
7420  * and UINTMAX_MAX (maximum value of the largest supported unsigned integer
7421  * type) can be set to implementation defined limits.
7422  *
7423  * NOTE : A programmer can test to see whether an implementation supports
7424  * a particular size of integer by testing if the macro that gives the
7425  * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX
7426  * tests false, the implementation does not support unsigned 64 bit integers.
7427  *
7428  * The type of these macros is intentionally unspecified.
7429  *
7430  * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs
7431  * where the ABI specifies "char" as unsigned when the translation mode is
7432  * not ANSI-C.
7433  */
7434 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
7435 /*
7436  * The following 2 macros are provided for testing whether the types
7437  * intptr_t and uintptr_t (integers large enough to hold a void *) are
7438  * defined in this header. They are needed in case the architecture can't
7439  * represent a pointer in any standard integral type.
7440  */
7441 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
7442 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */
7443 
7444 
7445 
7446 
7447 
7448 
7449 /*
7450  * Maximum value of a "size_t".  SIZE_MAX was previously defined
7451  * in <limits.h>, however, the standards specify it be defined
7452  * in <stdint.h>. The <stdint.h> headers includes this header as
7453  * does <limits.h>. The value of SIZE_MAX should not deviate
7454  * from the value of ULONG_MAX defined <sys/types.h>.
7455  */
7456 
7457 
7458 
7459 
7460 
7461 
7462 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */
7463 
7464 
7465 
7466 
7467 /*
7468  * Maximum limit of wchar_t. The WCHAR_* macros are also
7469  * defined in <iso/wchar_iso.h>, but inclusion of that header
7470  * will break ISO/IEC C namespace.
7471  */
7472 
7473 
7474 
7475 
7476 /* Maximum limit of wint_t */
7477 
7478 
7479 
7480 
7481 /*
7482  * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that
7483  * when including <limits.h> that the suffix _MAX is reserved but not the
7484  * suffix _MIN.  However, until that issue is resolved....
7485  */
7486 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
7487 /* Minimum value of a pointer-holding signed integer type */
7488 
7489 
7490 
7491 
7492 
7493 
7494 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */
7495 
7496 
7497 
7498 
7499 
7500 
7501 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */
7502 
7503 
7504 
7505 
7506 /*
7507  * Minimum limit of wchar_t. The WCHAR_* macros are also
7508  * defined in <iso/wchar_iso.h>, but inclusion of that header
7509  * will break ISO/IEC C namespace.
7510  */
7511 
7512 
7513 
7514 
7515 /* Minimum limit of wint_t */
7516 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
7517 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
7518 /*
7519  * CDDL HEADER START
7520  *
7521  * The contents of this file are subject to the terms of the
7522  * Common Development and Distribution License, Version 1.0 only
7523  * (the "License").  You may not use this file except in compliance
7524  * with the License.
7525  *
7526  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7527  * or http://www.opensolaris.org/os/licensing.
7528  * See the License for the specific language governing permissions
7529  * and limitations under the License.
7530  *
7531  * When distributing Covered Code, include this CDDL HEADER in each
7532  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7533  * If applicable, add the following below this CDDL HEADER, with the
7534  * fields enclosed by brackets "[]" replaced with your own identifying
7535  * information: Portions Copyright [yyyy] [name of copyright owner]
7536  *
7537  * CDDL HEADER END
7538  */
7539 /*
7540  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7541  *
7542  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7543  * Use is subject to license terms.
7544  */
7545 
7546 
7547 
7548 
7549 /*
7550  * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation
7551  * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working
7552  * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990
7553  * Programming language - C.
7554  *
7555  * Programs/Modules should not directly include this file.  Access to the
7556  * types defined in this file should be through the inclusion of one of the
7557  * following files:
7558  *
7559  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
7560  *				components of <inttypes.h>.
7561  *
7562  *	<inttypes.h>		For use by applications.
7563  *
7564  * See these files for more details.
7565  *
7566  * Use at your own risk.  This file will track the evolution of the revision
7567  * of the current ISO C standard.  As of February 1996, the committee is
7568  * squarely behind the fixed sized types.
7569  */
7570 
7571 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7572 /*
7573  * CDDL HEADER START
7574  *
7575  * The contents of this file are subject to the terms of the
7576  * Common Development and Distribution License (the "License").
7577  * You may not use this file except in compliance with the License.
7578  *
7579  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7580  * or http://www.opensolaris.org/os/licensing.
7581  * See the License for the specific language governing permissions
7582  * and limitations under the License.
7583  *
7584  * When distributing Covered Code, include this CDDL HEADER in each
7585  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7586  * If applicable, add the following below this CDDL HEADER, with the
7587  * fields enclosed by brackets "[]" replaced with your own identifying
7588  * information: Portions Copyright [yyyy] [name of copyright owner]
7589  *
7590  * CDDL HEADER END
7591  */
7592 
7593 /*
7594  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7595  * Copyright 2016 Joyent, Inc.
7596  *
7597  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7598  * Use is subject to license terms.
7599  */
7600 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2
7601 
7602 
7603 
7604 
7605 
7606 /*
7607  * Constants
7608  *
7609  * The following macros create constants of the types defined in
7610  * <sys/int_types.h>. The intent is that:
7611  *	Constants defined using these macros have a specific size and
7612  *	signedness. The suffix used for int64_t and uint64_t (ll and ull)
7613  *	are for examples only. Implementations are permitted to use other
7614  *	suffixes.
7615  *
7616  * The "CSTYLED" comments are flags to an internal code style analysis tool
7617  * telling it to silently accept the line which follows.  This internal
7618  * standard requires a space between arguments, but the historical,
7619  * non-ANSI-C ``method'' of concatenation can't tolerate those spaces.
7620  */
7621 /* CSTYLED */
7622 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
7623 /* CSTYLED */
7624 
7625 
7626 
7627 
7628 /* CSTYLED */
7629 
7630 /* CSTYLED */
7631 
7632 /* CSTYLED */
7633 
7634 
7635 
7636 
7637 
7638 
7639 /* CSTYLED */
7640 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
7641 /* CSTYLED */
7642 
7643 /* CSTYLED */
7644 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
7645 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1
7646 /*
7647  * CDDL HEADER START
7648  *
7649  * The contents of this file are subject to the terms of the
7650  * Common Development and Distribution License, Version 1.0 only
7651  * (the "License").  You may not use this file except in compliance
7652  * with the License.
7653  *
7654  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7655  * or http://www.opensolaris.org/os/licensing.
7656  * See the License for the specific language governing permissions
7657  * and limitations under the License.
7658  *
7659  * When distributing Covered Code, include this CDDL HEADER in each
7660  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7661  * If applicable, add the following below this CDDL HEADER, with the
7662  * fields enclosed by brackets "[]" replaced with your own identifying
7663  * information: Portions Copyright [yyyy] [name of copyright owner]
7664  *
7665  * CDDL HEADER END
7666  */
7667 /*
7668  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7669  *
7670  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7671  * Use is subject to license terms.
7672  */
7673 
7674 
7675 
7676 
7677 /*
7678  * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation
7679  * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999
7680  * Programming language - C.
7681  *
7682  * ISO  International Organization for Standardization.
7683  *
7684  * Programs/Modules should not directly include this file.  Access to the
7685  * types defined in this file should be through the inclusion of one of the
7686  * following files:
7687  *
7688  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
7689  *				components of <inttypes.h>.
7690  *
7691  *	<inttypes.h>		For use by applications.
7692  *
7693  * See these files for more details.
7694  */
7695 
7696 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7697 /*
7698  * CDDL HEADER START
7699  *
7700  * The contents of this file are subject to the terms of the
7701  * Common Development and Distribution License (the "License").
7702  * You may not use this file except in compliance with the License.
7703  *
7704  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7705  * or http://www.opensolaris.org/os/licensing.
7706  * See the License for the specific language governing permissions
7707  * and limitations under the License.
7708  *
7709  * When distributing Covered Code, include this CDDL HEADER in each
7710  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7711  * If applicable, add the following below this CDDL HEADER, with the
7712  * fields enclosed by brackets "[]" replaced with your own identifying
7713  * information: Portions Copyright [yyyy] [name of copyright owner]
7714  *
7715  * CDDL HEADER END
7716  */
7717 
7718 /*
7719  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7720  * Copyright 2016 Joyent, Inc.
7721  *
7722  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7723  * Use is subject to license terms.
7724  */
7725 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2
7726 
7727 
7728 
7729 
7730 
7731 /*
7732  * Formatted I/O
7733  *
7734  * The following macros can be used even when an implementation has not
7735  * extended the printf/scanf family of functions.
7736  *
7737  * The form of the names of the macros is either "PRI" for printf specifiers
7738  * or "SCN" for scanf specifiers, followed by the conversion specifier letter
7739  * followed by the datatype size. For example, PRId32 is the macro for
7740  * the printf d conversion specifier with the flags for 32 bit datatype.
7741  *
7742  * An example using one of these macros:
7743  *
7744  *	uint64_t u;
7745  *	printf("u = %016" PRIx64 "\n", u);
7746  *
7747  * For the purpose of example, the definitions of the printf/scanf macros
7748  * below have the values appropriate for a machine with 8 bit shorts, 16
7749  * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation
7750  * mode, and 64 bit long longs.
7751  */
7752 
7753 /*
7754  * fprintf macros for signed integers
7755  */
7756 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
7757 /*
7758  * fprintf macros for unsigned integers
7759  */
7760 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
7761 /*
7762  * fprintf macros for pointers
7763  */
7764 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
7765 /*
7766  * fscanf macros for signed integers
7767  */
7768 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
7769 /*
7770  * fscanf macros for unsigned integers
7771  */
7772 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
7773 /*
7774  * The following macros define I/O formats for intmax_t and uintmax_t.
7775  */
7776 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
7777 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
7778 
7779 
7780 
7781 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1
7782 /*
7783  * CDDL HEADER START
7784  *
7785  * The contents of this file are subject to the terms of the
7786  * Common Development and Distribution License, Version 1.0 only
7787  * (the "License").  You may not use this file except in compliance
7788  * with the License.
7789  *
7790  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7791  * or http://www.opensolaris.org/os/licensing.
7792  * See the License for the specific language governing permissions
7793  * and limitations under the License.
7794  *
7795  * When distributing Covered Code, include this CDDL HEADER in each
7796  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7797  * If applicable, add the following below this CDDL HEADER, with the
7798  * fields enclosed by brackets "[]" replaced with your own identifying
7799  * information: Portions Copyright [yyyy] [name of copyright owner]
7800  *
7801  * CDDL HEADER END
7802  */
7803 /*
7804  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
7805  * Use is subject to license terms.
7806  */
7807 
7808 
7809 
7810 
7811 #pragma ident "%Z%%M%	%I%	%E% SMI"
7812 
7813 /*
7814  * This header is included by <stdint.h> which was introduced by
7815  * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
7816  * The header is a subset of the <inttypes.h> header.
7817  */
7818 
7819 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
7820 /*
7821  * CDDL HEADER START
7822  *
7823  * The contents of this file are subject to the terms of the
7824  * Common Development and Distribution License, Version 1.0 only
7825  * (the "License").  You may not use this file except in compliance
7826  * with the License.
7827  *
7828  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7829  * or http://www.opensolaris.org/os/licensing.
7830  * See the License for the specific language governing permissions
7831  * and limitations under the License.
7832  *
7833  * When distributing Covered Code, include this CDDL HEADER in each
7834  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7835  * If applicable, add the following below this CDDL HEADER, with the
7836  * fields enclosed by brackets "[]" replaced with your own identifying
7837  * information: Portions Copyright [yyyy] [name of copyright owner]
7838  *
7839  * CDDL HEADER END
7840  */
7841 /*
7842  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7843  *
7844  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7845  * Use is subject to license terms.
7846  */
7847 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
7848 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
7849 /*
7850  * CDDL HEADER START
7851  *
7852  * The contents of this file are subject to the terms of the
7853  * Common Development and Distribution License, Version 1.0 only
7854  * (the "License").  You may not use this file except in compliance
7855  * with the License.
7856  *
7857  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7858  * or http://www.opensolaris.org/os/licensing.
7859  * See the License for the specific language governing permissions
7860  * and limitations under the License.
7861  *
7862  * When distributing Covered Code, include this CDDL HEADER in each
7863  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7864  * If applicable, add the following below this CDDL HEADER, with the
7865  * fields enclosed by brackets "[]" replaced with your own identifying
7866  * information: Portions Copyright [yyyy] [name of copyright owner]
7867  *
7868  * CDDL HEADER END
7869  */
7870 /*
7871  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7872  *
7873  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7874  * Use is subject to license terms.
7875  */
7876 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
7877 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
7878 /*
7879  * CDDL HEADER START
7880  *
7881  * The contents of this file are subject to the terms of the
7882  * Common Development and Distribution License, Version 1.0 only
7883  * (the "License").  You may not use this file except in compliance
7884  * with the License.
7885  *
7886  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7887  * or http://www.opensolaris.org/os/licensing.
7888  * See the License for the specific language governing permissions
7889  * and limitations under the License.
7890  *
7891  * When distributing Covered Code, include this CDDL HEADER in each
7892  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7893  * If applicable, add the following below this CDDL HEADER, with the
7894  * fields enclosed by brackets "[]" replaced with your own identifying
7895  * information: Portions Copyright [yyyy] [name of copyright owner]
7896  *
7897  * CDDL HEADER END
7898  */
7899 /*
7900  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7901  *
7902  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7903  * Use is subject to license terms.
7904  */
7905 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
7906 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
7907 
7908 
7909 
7910 
7911 
7912 
7913 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */
7914 
7915 /*
7916  * wchar_t is a built-in type in standard C++ and as such is not
7917  * defined here when using standard C++. However, the GNU compiler
7918  * fixincludes utility nonetheless creates its own version of this
7919  * header for use by gcc and g++. In that version it adds a redundant
7920  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
7921  * header we need to include the following magic comment:
7922  *
7923  * we must use the C++ compiler's type
7924  *
7925  * The above comment should not be removed or changed until GNU
7926  * gcc/fixinc/inclhack.def is updated to bypass this header.
7927  */
7928 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
7929 typedef struct {
7930  intmax_t quot;
7931  intmax_t rem;
7932 } imaxdiv_t;
7933 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
7934 extern intmax_t imaxabs(intmax_t);
7935 extern imaxdiv_t imaxdiv(intmax_t, intmax_t);
7936 extern intmax_t strtoimax(const char *, char **,
7937  int);
7938 extern uintmax_t strtoumax(const char *, char **,
7939  int);
7940 extern intmax_t wcstoimax(const wchar_t *,
7941  wchar_t **, int);
7942 extern uintmax_t wcstoumax(const wchar_t *,
7943  wchar_t **, int);
7944 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
7945 extern uint32_t arc4random(void);
7946 extern void arc4random_buf(void *, size_t);
7947 extern uint32_t arc4random_uniform(uint32_t);
7948 extern void freezero(void *, size_t);
7949 extern void *recallocarray(void *, size_t, size_t, size_t);
7950 # 35 "common/apptrace.c" 2
7951 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1
7952 /*
7953  * CDDL HEADER START
7954  *
7955  * The contents of this file are subject to the terms of the
7956  * Common Development and Distribution License (the "License").
7957  * You may not use this file except in compliance with the License.
7958  *
7959  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7960  * or http://www.opensolaris.org/os/licensing.
7961  * See the License for the specific language governing permissions
7962  * and limitations under the License.
7963  *
7964  * When distributing Covered Code, include this CDDL HEADER in each
7965  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7966  * If applicable, add the following below this CDDL HEADER, with the
7967  * fields enclosed by brackets "[]" replaced with your own identifying
7968  * information: Portions Copyright [yyyy] [name of copyright owner]
7969  *
7970  * CDDL HEADER END
7971  */
7972 
7973 /*
7974  * Copyright 2014 PALO, Richard.
7975  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7976  * Copyright (c) 2013 Gary Mills
7977  *
7978  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
7979  */
7980 
7981 /*	Copyright (c) 1988 AT&T	*/
7982 /*	  All Rights Reserved  	*/
7983 
7984 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
7985 
7986 
7987 
7988 
7989 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7990 /*
7991  * CDDL HEADER START
7992  *
7993  * The contents of this file are subject to the terms of the
7994  * Common Development and Distribution License (the "License").
7995  * You may not use this file except in compliance with the License.
7996  *
7997  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7998  * or http://www.opensolaris.org/os/licensing.
7999  * See the License for the specific language governing permissions
8000  * and limitations under the License.
8001  *
8002  * When distributing Covered Code, include this CDDL HEADER in each
8003  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8004  * If applicable, add the following below this CDDL HEADER, with the
8005  * fields enclosed by brackets "[]" replaced with your own identifying
8006  * information: Portions Copyright [yyyy] [name of copyright owner]
8007  *
8008  * CDDL HEADER END
8009  */
8010 
8011 /*
8012  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
8013  * Copyright 2016 Joyent, Inc.
8014  *
8015  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
8016  * Use is subject to license terms.
8017  */
8018 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
8019 
8020 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
8021 /*
8022  * This file and its contents are supplied under the terms of the
8023  * Common Development and Distribution License ("CDDL"), version 1.0.
8024  * You may only use this file in accordance with the terms of version
8025  * 1.0 of the CDDL.
8026  *
8027  * A full copy of the text of the CDDL should have accompanied this
8028  * source.  A copy of the CDDL is also available via the Internet at
8029  * http://www.illumos.org/license/CDDL.
8030  */
8031 
8032 /*
8033  * Copyright 2014-2016 PALO, Richard.
8034  */
8035 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
8036 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8037 /*
8038  * CDDL HEADER START
8039  *
8040  * The contents of this file are subject to the terms of the
8041  * Common Development and Distribution License (the "License").
8042  * You may not use this file except in compliance with the License.
8043  *
8044  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8045  * or http://www.opensolaris.org/os/licensing.
8046  * See the License for the specific language governing permissions
8047  * and limitations under the License.
8048  *
8049  * When distributing Covered Code, include this CDDL HEADER in each
8050  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8051  * If applicable, add the following below this CDDL HEADER, with the
8052  * fields enclosed by brackets "[]" replaced with your own identifying
8053  * information: Portions Copyright [yyyy] [name of copyright owner]
8054  *
8055  * CDDL HEADER END
8056  */
8057 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8058 /*	  All Rights Reserved  	*/
8059 
8060 
8061 /*
8062  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8063  * Use is subject to license terms.
8064  *
8065  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8066  * Copyright 2016 Joyent, Inc.
8067  */
8068 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
8069 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
8070 /*
8071  * CDDL HEADER START
8072  *
8073  * The contents of this file are subject to the terms of the
8074  * Common Development and Distribution License (the "License").
8075  * You may not use this file except in compliance with the License.
8076  *
8077  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8078  * or http://www.opensolaris.org/os/licensing.
8079  * See the License for the specific language governing permissions
8080  * and limitations under the License.
8081  *
8082  * When distributing Covered Code, include this CDDL HEADER in each
8083  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8084  * If applicable, add the following below this CDDL HEADER, with the
8085  * fields enclosed by brackets "[]" replaced with your own identifying
8086  * information: Portions Copyright [yyyy] [name of copyright owner]
8087  *
8088  * CDDL HEADER END
8089  */
8090 
8091 /*
8092  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
8093  *	  All Rights Reserved
8094  *
8095  */
8096 
8097 /*
8098  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8099  * Use is subject to license terms.
8100  */
8101 
8102 /*
8103  * WARNING: This is an implementation-specific header,
8104  * its contents are not guaranteed. Applications
8105  * should include <unistd.h> and not this header.
8106  */
8107 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
8108 
8109 
8110 
8111 
8112 
8113 /* Symbolic constants for the "access" routine: */
8114 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8115 /* Symbolic constants for the "lseek" routine: */
8116 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8117 /* Path names: */
8118 
8119 
8120 
8121 
8122 /*
8123  * compile-time symbolic constants,
8124  * Support does not mean the feature is enabled.
8125  * Use pathconf/sysconf to obtain actual configuration value.
8126  */
8127 
8128 /* Values unchanged in UNIX 03 */
8129 
8130 
8131 
8132 
8133 
8134 /*
8135  * POSIX.1b compile-time symbolic constants.
8136  */
8137 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8138 /*
8139  * POSIX.1c compile-time symbolic constants.
8140  */
8141 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8142 /* New in UNIX 03 */
8143 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8144 /*
8145  * Support for the POSIX.1 mutex protocol attribute. For realtime applications
8146  * which need mutexes to support priority inheritance/ceiling.
8147  */
8148 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8149 /*
8150  * Large File Summit-related announcement macros.  The system supports both
8151  * the additional and transitional Large File Summit interfaces.  (The final
8152  * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.)
8153  */
8154 
8155 
8156 
8157 
8158 
8159 /* large file compilation environment setup */
8160 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8161 /* In the LP64 compilation environment, the APIs are already large file */
8162 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8163 extern int access(const char *, int);
8164 
8165 extern int acct(const char *);
8166 
8167 extern unsigned alarm(unsigned);
8168 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
8169 
8170 
8171 extern int brk(void *);
8172 
8173 extern int chdir(const char *);
8174 extern int chown(const char *, uid_t, gid_t);
8175 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
8176 
8177 
8178 extern int chroot(const char *);
8179 
8180 extern int close(int);
8181 
8182 
8183 
8184 
8185 
8186 
8187 extern char *ctermid(char *);
8188 
8189 
8190 extern char *ctermid_r(char *);
8191 
8192 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
8193 
8194 extern char *cuserid(char *);
8195 
8196 extern int dup(int);
8197 extern int dup2(int, int);
8198 extern int dup3(int, int, int);
8199 
8200 
8201 
8202 
8203 extern void endusershell(void);
8204 
8205 extern int execl(const char *, const char *, ...);
8206 extern int execle(const char *, const char *, ...);
8207 extern int execlp(const char *, const char *, ...);
8208 extern int execv(const char *, char *const *);
8209 extern int execve(const char *, char *const *, char *const *);
8210 extern int execvp(const char *, char *const *);
8211 extern void _exit(int)
8212  __attribute__((__noreturn__));
8213 /*
8214  * The following fattach prototype is duplicated in <stropts.h>. The
8215  * duplication is necessitated by XPG4.2 which requires the prototype
8216  * be defined in <stropts.h>.
8217  */
8218 
8219 extern int fattach(int, const char *);
8220 
8221 
8222 extern int fchdir(int);
8223 extern int fchown(int, uid_t, gid_t);
8224 
8225 
8226 extern int fchroot(int);
8227 
8228 
8229 
8230 extern int fdatasync(int);
8231 
8232 /*
8233  * The following fdetach prototype is duplicated in <stropts.h>. The
8234  * duplication is necessitated by XPG4.2 which requires the prototype
8235  * be defined in <stropts.h>.
8236  */
8237 
8238 extern int fdetach(const char *);
8239 
8240 extern pid_t fork(void);
8241 
8242 extern pid_t fork1(void);
8243 extern pid_t forkall(void);
8244 
8245 extern long fpathconf(int, int);
8246 
8247 
8248 extern int fsync(int);
8249 
8250 
8251 
8252 
8253 extern int ftruncate(int, off_t);
8254 
8255 extern char *getcwd(char *, size_t);
8256 
8257 
8258 extern int getdtablesize(void);
8259 
8260 extern gid_t getegid(void);
8261 extern uid_t geteuid(void);
8262 extern gid_t getgid(void);
8263 extern int getgroups(int, gid_t *);
8264 
8265 extern long gethostid(void);
8266 
8267 
8268 
8269 
8270 extern int gethostname(char *, int);
8271 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8272 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
8273 
8274 extern int getpagesize(void);
8275 
8276 extern pid_t getpgid(pid_t);
8277 
8278 extern pid_t getpid(void);
8279 extern pid_t getppid(void);
8280 extern pid_t getpgrp(void);
8281 
8282 
8283 char *gettxt(const char *, const char *);
8284 
8285 
8286 extern pid_t getsid(pid_t);
8287 
8288 extern uid_t getuid(void);
8289 
8290 extern char *getusershell(void);
8291 
8292 /*
8293  * The following ioctl prototype is duplicated in <stropts.h>. The
8294  * duplication is necessitated by XPG4.2 which requires the prototype
8295  * be defined in <stropts.h>.
8296  */
8297 
8298 extern int ioctl(int, int, ...);
8299 extern int isaexec(const char *, char *const *, char *const *);
8300 extern int issetugid(void);
8301 
8302 extern int isatty(int);
8303 
8304 extern int lchown(const char *, uid_t, gid_t);
8305 
8306 extern int link(const char *, const char *);
8307 
8308 extern offset_t llseek(int, offset_t, int);
8309 
8310 
8311 
8312 
8313 extern int lockf(int, int, off_t);
8314 
8315 extern off_t lseek(int, off_t, int);
8316 
8317 
8318 extern int nice(int);
8319 
8320 
8321 extern int mincore(caddr_t, size_t, char *);
8322 
8323 extern long pathconf(const char *, int);
8324 extern int pause(void);
8325 extern int pipe(int *);
8326 extern int pipe2(int *, int);
8327 
8328 
8329 
8330 extern ssize_t pread(int, void *, size_t, off_t);
8331 
8332 
8333 extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
8334 
8335 /*
8336  * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The
8337  * declarations are identical. A change to either one may also require
8338  * appropriate namespace updates in order to avoid redeclaration
8339  * warnings in the case where both prototypes are exposed via inclusion
8340  * of both <pthread.h> and <unistd.h>.
8341  */
8342 
8343 
8344 
8345 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
8346 
8347 
8348 
8349 extern int ptrace(int, pid_t, int, int);
8350 
8351 
8352 
8353 
8354 extern ssize_t pwrite(int, const void *, size_t, off_t);
8355 
8356 
8357 /* per RFC 3542; This is also defined in netdb.h */
8358 extern int rcmd_af(char **, unsigned short, const char *, const char *,
8359  const char *, int *, int);
8360 
8361 extern ssize_t read(int, void *, size_t);
8362 
8363 
8364 extern ssize_t readlink(const char *, char *,
8365  size_t);
8366 
8367 
8368 
8369 
8370 
8371 
8372 extern int rename(const char *, const char *);
8373 
8374 
8375 
8376 
8377 
8378 
8379 
8380 extern int resolvepath(const char *, char *, size_t);
8381 /* per RFC 3542; This is also defined in netdb.h */
8382 extern int rexec_af(char **, unsigned short, const char *, const char *,
8383  const char *, int *, int);
8384 
8385 extern int rmdir(const char *);
8386 
8387 /* per RFC 3542; This is also defined in netdb.h */
8388 extern int rresvport_af(int *, int);
8389 
8390 
8391 
8392 
8393 extern void *sbrk(intptr_t);
8394 
8395 
8396 extern int setegid(gid_t);
8397 extern int seteuid(uid_t);
8398 
8399 extern int setgid(gid_t);
8400 
8401 extern int setgroups(int, const gid_t *);
8402 extern int sethostname(char *, int);
8403 
8404 extern int setpgid(pid_t, pid_t);
8405 
8406 extern pid_t setpgrp(void);
8407 extern int setregid(gid_t, gid_t);
8408 extern int setreuid(uid_t, uid_t);
8409 
8410 extern pid_t setsid(void);
8411 extern int setuid(uid_t);
8412 
8413 extern void setusershell(void);
8414 
8415 extern unsigned sleep(unsigned);
8416 
8417 extern int stime(const time_t *);
8418 
8419 
8420 
8421 
8422 
8423 
8424 extern int symlink(const char *, const char *);
8425 extern void sync(void);
8426 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8427 extern long sysconf(int);
8428 extern pid_t tcgetpgrp(int);
8429 extern int tcsetpgrp(int, pid_t);
8430 
8431 
8432 
8433 extern off_t tell(int);
8434 
8435 
8436 
8437 
8438 extern int truncate(const char *, off_t);
8439 
8440 extern char *ttyname(int);
8441 
8442 extern useconds_t ualarm(useconds_t, useconds_t);
8443 
8444 extern int unlink(const char *);
8445 
8446 extern char *getwd(char *);
8447 extern int usleep(useconds_t);
8448 extern pid_t vfork(void) __attribute__((__returns_twice__));
8449 #pragma unknown_control_flow(vfork)
8450 
8451 
8452 extern void vhangup(void);
8453 
8454 extern ssize_t write(int, const void *, size_t);
8455 
8456 extern void yield(void);
8457 
8458 
8459 
8460 
8461  /* || defined(_XPG7) */
8462 extern int faccessat(int, const char *, int, int);
8463 extern int fchownat(int, const char *, uid_t, gid_t, int);
8464 extern int linkat(int, const char *, int, const char *, int);
8465 extern ssize_t readlinkat(int, const char *,
8466  char *, size_t);
8467 extern int renameat(int, const char *, int, const char *);
8468 extern int symlinkat(const char *, int, const char *);
8469 extern int unlinkat(int, const char *, int);
8470 
8471 
8472 extern int get_nprocs(void);
8473 extern int get_nprocs_conf(void);
8474 
8475 
8476 /* transitional large file interface versions */
8477 
8478 
8479 extern int ftruncate64(int, off64_t);
8480 extern off64_t lseek64(int, off64_t, int);
8481 extern ssize_t pread64(int, void *, size_t, off64_t);
8482 extern ssize_t pwrite64(int, const void *, size_t, off64_t);
8483 extern off64_t tell64(int);
8484 extern int truncate64(const char *, off64_t);
8485 extern int lockf64(int, int, off64_t);
8486 
8487 
8488 /*
8489  * getlogin_r() & ttyname_r() prototypes are defined here.
8490  */
8491 
8492 /*
8493  * Previous releases of Solaris, starting at 2.3, provided definitions of
8494  * various functions as specified in POSIX.1c, Draft 6.  For some of these
8495  * functions, the final POSIX 1003.1c standard had a different number of
8496  * arguments and return values.
8497  *
8498  * The following segment of this header provides support for the standard
8499  * interfaces while supporting applications written under earlier
8500  * releases.  The application defines appropriate values of the feature
8501  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
8502  * whether it was written to expect the Draft 6 or standard versions of
8503  * these interfaces, before including this header.  This header then
8504  * provides a mapping from the source version of the interface to an
8505  * appropriate binary interface.  Such mappings permit an application
8506  * to be built from libraries and objects which have mixed expectations
8507  * of the definitions of these functions.
8508  *
8509  * For applications using the Draft 6 definitions, the binary symbol is the
8510  * same as the source symbol, and no explicit mapping is needed.  For the
8511  * standard interface, the function func() is mapped to the binary symbol
8512  * _posix_func().  The preferred mechanism for the remapping is a compiler
8513  * #pragma.  If the compiler does not provide such a #pragma, the header file
8514  * defines a static function func() which calls the _posix_func() version;
8515  * this has to be done instead of #define since POSIX specifies that an
8516  * application can #undef the symbol and still be bound to the correct
8517  * implementation.  Unfortunately, the statics confuse lint so we fallback to
8518  * #define in that case.
8519  *
8520  * NOTE: Support for the Draft 6 definitions is provided for compatibility
8521  * only.  New applications/libraries should use the standard definitions.
8522  */
8523 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8524 
8525 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8526 #pragma redefine_extname getlogin_r getloginx_r
8527 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
8528 
8529 
8530 
8531 
8532 
8533 
8534 extern char *getlogin_r(char *, int);
8535 
8536 extern char *ttyname_r(int, char *, int);
8537 
8538 
8539 
8540 
8541 
8542 
8543 extern int getentropy(void *, size_t);
8544 # 36 "common/apptrace.c" 2
8545 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
8546 /*
8547  * CDDL HEADER START
8548  *
8549  * The contents of this file are subject to the terms of the
8550  * Common Development and Distribution License (the "License").
8551  * You may not use this file except in compliance with the License.
8552  *
8553  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8554  * or http://www.opensolaris.org/os/licensing.
8555  * See the License for the specific language governing permissions
8556  * and limitations under the License.
8557  *
8558  * When distributing Covered Code, include this CDDL HEADER in each
8559  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8560  * If applicable, add the following below this CDDL HEADER, with the
8561  * fields enclosed by brackets "[]" replaced with your own identifying
8562  * information: Portions Copyright [yyyy] [name of copyright owner]
8563  *
8564  * CDDL HEADER END
8565  */
8566 
8567 /*
8568  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8569  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
8570  */
8571 
8572 /*	Copyright (c) 1988 AT&T	*/
8573 /*	  All Rights Reserved  	*/
8574 
8575 
8576 
8577 
8578 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1
8579 /*
8580  * CDDL HEADER START
8581  *
8582  * The contents of this file are subject to the terms of the
8583  * Common Development and Distribution License, Version 1.0 only
8584  * (the "License").  You may not use this file except in compliance
8585  * with the License.
8586  *
8587  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8588  * or http://www.opensolaris.org/os/licensing.
8589  * See the License for the specific language governing permissions
8590  * and limitations under the License.
8591  *
8592  * When distributing Covered Code, include this CDDL HEADER in each
8593  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8594  * If applicable, add the following below this CDDL HEADER, with the
8595  * fields enclosed by brackets "[]" replaced with your own identifying
8596  * information: Portions Copyright [yyyy] [name of copyright owner]
8597  *
8598  * CDDL HEADER END
8599  */
8600 /*	Copyright (c) 1988 AT&T	*/
8601 /*	  All Rights Reserved  	*/
8602 
8603 
8604 /*
8605  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8606  * Copyright 2014 PALO, Richard.
8607  *
8608  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8609  * Use is subject to license terms.
8610  */
8611 
8612 /*
8613  * An application should not include this header directly.  Instead it
8614  * should be included only through the inclusion of other Sun headers.
8615  *
8616  * The contents of this header is limited to identifiers specified in the
8617  * C Standard.  Any new identifiers specified in future amendments to the
8618  * C Standard must be placed in this header.  If these new identifiers
8619  * are required to also be in the C++ Standard "std" namespace, then for
8620  * anything other than macro definitions, corresponding "using" directives
8621  * must also be added to <string.h>.
8622  */
8623 
8624 
8625 
8626 
8627 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
8628 /*
8629  * CDDL HEADER START
8630  *
8631  * The contents of this file are subject to the terms of the
8632  * Common Development and Distribution License (the "License").
8633  * You may not use this file except in compliance with the License.
8634  *
8635  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8636  * or http://www.opensolaris.org/os/licensing.
8637  * See the License for the specific language governing permissions
8638  * and limitations under the License.
8639  *
8640  * When distributing Covered Code, include this CDDL HEADER in each
8641  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8642  * If applicable, add the following below this CDDL HEADER, with the
8643  * fields enclosed by brackets "[]" replaced with your own identifying
8644  * information: Portions Copyright [yyyy] [name of copyright owner]
8645  *
8646  * CDDL HEADER END
8647  */
8648 
8649 /*
8650  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
8651  * Copyright 2016 Joyent, Inc.
8652  *
8653  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
8654  * Use is subject to license terms.
8655  */
8656 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
8657 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
8658 /*
8659  * This file and its contents are supplied under the terms of the
8660  * Common Development and Distribution License ("CDDL"), version 1.0.
8661  * You may only use this file in accordance with the terms of version
8662  * 1.0 of the CDDL.
8663  *
8664  * A full copy of the text of the CDDL should have accompanied this
8665  * source.  A copy of the CDDL is also available via the Internet at
8666  * http://www.illumos.org/license/CDDL.
8667  */
8668 
8669 /*
8670  * Copyright 2014-2016 PALO, Richard.
8671  */
8672 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
8673 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
8674 extern int memcmp(const void *, const void *, size_t);
8675 extern void *memcpy(void *, const void *, size_t);
8676 extern void *memmove(void *, const void *, size_t);
8677 extern void *memset(void *, int, size_t);
8678 extern char *strcat(char *, const char *);
8679 extern int strcmp(const char *, const char *);
8680 extern char *strcpy(char *, const char *);
8681 extern int strcoll(const char *, const char *);
8682 extern size_t strcspn(const char *, const char *);
8683 extern char *strerror(int);
8684 extern size_t strlen(const char *);
8685 extern char *strncat(char *, const char *, size_t);
8686 extern int strncmp(const char *, const char *, size_t);
8687 extern char *strncpy(char *, const char *, size_t);
8688 extern size_t strspn(const char *, const char *);
8689 extern char *strtok(char *, const char *);
8690 extern size_t strxfrm(char *, const char *, size_t);
8691 
8692 /*
8693  * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the
8694  * function signatures for the following functions be replaced by
8695  * two declarations, both of which have the same behavior.
8696  */
8697 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
8698 extern void *memchr(const void *, int, size_t);
8699 extern char *strchr(const char *, int);
8700 extern char *strpbrk(const char *, const char *);
8701 extern char *strrchr(const char *, int);
8702 extern char *strstr(const char *, const char *);
8703 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2
8704 
8705 /*
8706  * Allow global visibility for symbols defined in
8707  * C++ "std" namespace in <iso/string_iso.h>.
8708  */
8709 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h"
8710 extern int strerror_r(int, char *, size_t);
8711 
8712 
8713 
8714 
8715 
8716 extern char *strtok_r(char *, const char *,
8717  char **);
8718 
8719 
8720 
8721 
8722 extern void *memccpy(void *, const void *,
8723   int, size_t);
8724 
8725 
8726 
8727 
8728 extern char *stpcpy(char *, const char *);
8729 extern char *stpncpy(char *, const char *, size_t);
8730 extern char *strndup(const char *, size_t);
8731 extern size_t strnlen(const char *, size_t);
8732 extern char *strsignal(int);
8733 
8734 
8735 
8736 
8737 
8738 
8739 extern int strcoll_l(const char *, const char *, locale_t);
8740 extern size_t strxfrm_l(char *, const char *,
8741     size_t, locale_t);
8742 extern int strcasecmp_l(const char *, const char *, locale_t);
8743 extern int strncasecmp_l(const char *, const char *, size_t, locale_t);
8744 extern char *strerror_l(int, locale_t);
8745 
8746 
8747 
8748 
8749 
8750 /* Note that some of these are also declared in strings.h for XPG4_2+ */
8751 extern void explicit_bzero(void *, size_t);
8752 extern int uucopy(const void *, void *, size_t);
8753 extern int uucopystr(const void *, void *, size_t);
8754 extern int ffs(int);
8755 extern int ffsl(long);
8756 extern int ffsll(long long);
8757 extern int fls(int);
8758 extern int flsl(long);
8759 extern int flsll(long long);
8760 extern void *memmem(const void *, size_t, const void *, size_t);
8761 extern char *strcasestr(const char *, const char *);
8762 extern char *strnstr(const char *, const char *, size_t);
8763 extern size_t strlcpy(char *, const char *, size_t);
8764 extern size_t strlcat(char *, const char *, size_t);
8765 extern char *strsep(char **stringp, const char *delim);
8766 extern char *strchrnul(const char *, int);
8767 extern char *strcasestr_l(const char *, const char *, locale_t);
8768 extern int strcasecmp(const char *, const char *);
8769 extern int strncasecmp(const char *, const char *, size_t);
8770 
8771 
8772 
8773 
8774 
8775 extern char *strdup(const char *);
8776 
8777 
8778 
8779 
8780 
8781 
8782 /*
8783  * gcc provides this inlining facility but Studio C does not.
8784  * We should use it exclusively once Studio C also provides it.
8785  */
8786 extern void *__builtin_alloca(size_t);
8787 # 37 "common/apptrace.c" 2
8788 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 1
8789 /*
8790  * CDDL HEADER START
8791  *
8792  * The contents of this file are subject to the terms of the
8793  * Common Development and Distribution License, Version 1.0 only
8794  * (the "License").  You may not use this file except in compliance
8795  * with the License.
8796  *
8797  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8798  * or http://www.opensolaris.org/os/licensing.
8799  * See the License for the specific language governing permissions
8800  * and limitations under the License.
8801  *
8802  * When distributing Covered Code, include this CDDL HEADER in each
8803  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8804  * If applicable, add the following below this CDDL HEADER, with the
8805  * fields enclosed by brackets "[]" replaced with your own identifying
8806  * information: Portions Copyright [yyyy] [name of copyright owner]
8807  *
8808  * CDDL HEADER END
8809  */
8810 /*	Copyright (c) 1988 AT&T	*/
8811 /*	  All Rights Reserved  	*/
8812 
8813 
8814 /*
8815  * Copyright 1999-2003 Sun Microsystems, Inc.  All rights reserved.
8816  * Use is subject to license terms.
8817  */
8818 
8819 
8820 
8821 
8822 
8823 #pragma ident "%Z%%M%	%I%	%E% SMI"
8824 
8825 /*
8826  * Error codes
8827  */
8828 
8829 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1
8830 /*
8831  * CDDL HEADER START
8832  *
8833  * The contents of this file are subject to the terms of the
8834  * Common Development and Distribution License, Version 1.0 only
8835  * (the "License").  You may not use this file except in compliance
8836  * with the License.
8837  *
8838  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8839  * or http://www.opensolaris.org/os/licensing.
8840  * See the License for the specific language governing permissions
8841  * and limitations under the License.
8842  *
8843  * When distributing Covered Code, include this CDDL HEADER in each
8844  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8845  * If applicable, add the following below this CDDL HEADER, with the
8846  * fields enclosed by brackets "[]" replaced with your own identifying
8847  * information: Portions Copyright [yyyy] [name of copyright owner]
8848  *
8849  * CDDL HEADER END
8850  */
8851 /*
8852  * Copyright 2000 Sun Microsystems, Inc.  All rights reserved.
8853  * Use is subject to license terms.
8854  */
8855 
8856 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
8857 /*	  All Rights Reserved  	*/
8858 
8859 /*
8860  * University Copyright- Copyright (c) 1982, 1986, 1988
8861  * The Regents of the University of California
8862  * All Rights Reserved
8863  *
8864  * University Acknowledgment- Portions of this document are derived from
8865  * software developed by the University of California, Berkeley, and its
8866  * contributors.
8867  */
8868 
8869 
8870 
8871 
8872 #pragma ident "%Z%%M%	%I%	%E% SMI"
8873 
8874 
8875 
8876 
8877 
8878 /*
8879  * Error codes
8880  */
8881 # 102 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8882 /* Filesystem Quotas */
8883 
8884 
8885 /* Convergent Error Returns */
8886 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8887 /* Interprocess Robust Locks */
8888 
8889 
8890 
8891 /* stream problems */
8892 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8893 /* Interprocess Robust Locks */
8894 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8895 /* shared library problems */
8896 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8897 /* BSD Networking Software */
8898  /* argument errors */
8899 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8900     /* protocol family */
8901 
8902 
8903  /* operational errors */
8904 
8905 
8906 
8907     /* of reset */
8908 
8909 
8910 
8911 
8912 
8913 /* XENIX has 135 - 142 */
8914 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
8915 /* SUN Network File System */
8916 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 2
8917 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h"
8918 extern int *___errno();
8919 # 38 "common/apptrace.c" 2
8920 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/regex.h" 1
8921 /*
8922  * CDDL HEADER START
8923  *
8924  * The contents of this file are subject to the terms of the
8925  * Common Development and Distribution License, Version 1.0 only
8926  * (the "License").  You may not use this file except in compliance
8927  * with the License.
8928  *
8929  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8930  * or http://www.opensolaris.org/os/licensing.
8931  * See the License for the specific language governing permissions
8932  * and limitations under the License.
8933  *
8934  * When distributing Covered Code, include this CDDL HEADER in each
8935  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8936  * If applicable, add the following below this CDDL HEADER, with the
8937  * fields enclosed by brackets "[]" replaced with your own identifying
8938  * information: Portions Copyright [yyyy] [name of copyright owner]
8939  *
8940  * CDDL HEADER END
8941  */
8942 /*
8943  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8944  *
8945  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
8946  * Use is subject to license terms.
8947  */
8948 
8949 /*
8950  * Copyright 1989, 1994 by Mortice Kern Systems Inc.
8951  * All rights reserved.
8952  */
8953 /*
8954  * Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
8955  * Use is subject to license terms.
8956  */
8957 
8958 
8959 
8960 
8961 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
8962 /*
8963  * CDDL HEADER START
8964  *
8965  * The contents of this file are subject to the terms of the
8966  * Common Development and Distribution License (the "License").
8967  * You may not use this file except in compliance with the License.
8968  *
8969  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8970  * or http://www.opensolaris.org/os/licensing.
8971  * See the License for the specific language governing permissions
8972  * and limitations under the License.
8973  *
8974  * When distributing Covered Code, include this CDDL HEADER in each
8975  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8976  * If applicable, add the following below this CDDL HEADER, with the
8977  * fields enclosed by brackets "[]" replaced with your own identifying
8978  * information: Portions Copyright [yyyy] [name of copyright owner]
8979  *
8980  * CDDL HEADER END
8981  */
8982 
8983 /*
8984  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
8985  * Copyright 2016 Joyent, Inc.
8986  *
8987  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
8988  * Use is subject to license terms.
8989  */
8990 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/regex.h" 2
8991 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8992 /*
8993  * CDDL HEADER START
8994  *
8995  * The contents of this file are subject to the terms of the
8996  * Common Development and Distribution License (the "License").
8997  * You may not use this file except in compliance with the License.
8998  *
8999  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9000  * or http://www.opensolaris.org/os/licensing.
9001  * See the License for the specific language governing permissions
9002  * and limitations under the License.
9003  *
9004  * When distributing Covered Code, include this CDDL HEADER in each
9005  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9006  * If applicable, add the following below this CDDL HEADER, with the
9007  * fields enclosed by brackets "[]" replaced with your own identifying
9008  * information: Portions Copyright [yyyy] [name of copyright owner]
9009  *
9010  * CDDL HEADER END
9011  */
9012 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9013 /*	  All Rights Reserved  	*/
9014 
9015 
9016 /*
9017  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9018  * Use is subject to license terms.
9019  *
9020  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9021  * Copyright 2016 Joyent, Inc.
9022  */
9023 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/regex.h" 2
9024 
9025 
9026 
9027 
9028 
9029 
9030 /*
9031  * wchar_t is a built-in type in standard C++ and as such is not
9032  * defined here when using standard C++. However, the GNU compiler
9033  * fixincludes utility nonetheless creates its own version of this
9034  * header for use by gcc and g++. In that version it adds a redundant
9035  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
9036  * header we need to include the following magic comment:
9037  *
9038  * we must use the C++ compiler's type
9039  *
9040  * The above comment should not be removed or changed until GNU
9041  * gcc/fixinc/inclhack.def is updated to bypass this header.
9042  */
9043 # 73 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/regex.h"
9044 typedef ssize_t regoff_t;
9045 
9046 /* regcomp flags */
9047 
9048 
9049 
9050 
9051 
9052 
9053 
9054 /* non-standard flags - note that most of these are not supported */
9055 
9056 
9057 
9058 
9059 
9060 /* FreeBSD additions */
9061 
9062 
9063 
9064 
9065 
9066 /* internal flags */
9067 
9068 
9069 /* regexec flags */
9070 
9071 
9072 
9073 
9074 /* regcomp and regexec return codes */
9075 # 129 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/regex.h"
9076 typedef struct { /* regcomp() data saved for regexec() */
9077  size_t re_nsub; /* # of subexpressions in RE pattern */
9078 
9079  /*
9080 	 * Internal use only.  Note that any changes to this structure
9081 	 * have to preserve sizing, as it is baked into applications.
9082 	 */
9083  struct re_guts *re_g;
9084  int re_magic;
9085  const char *re_endp;
9086 
9087  /* here for compat */
9088  size_t re_len; /* # wchar_t chars in compiled pattern */
9089  struct _regex_ext_t *re_sc; /* for binary compatibility */
9090 } regex_t;
9091 
9092 /* subexpression positions */
9093 typedef struct {
9094  const char *rm_sp, *rm_ep; /* Start pointer, end pointer */
9095  regoff_t rm_so, rm_eo; /* Start offset, end offset */
9096  int rm_ss, rm_es; /* Used internally */
9097 } regmatch_t;
9098 
9099 
9100 /*
9101  * Additional API and structs to support regular expression manipulations
9102  * on wide characters.
9103  */
9104 
9105 extern int regcomp(regex_t *, const char *, int);
9106 extern int regexec(const regex_t *, const char *,
9107  size_t, regmatch_t *, int);
9108 extern size_t regerror(int, const regex_t *,
9109  char *, size_t);
9110 extern void regfree(regex_t *);
9111 # 39 "common/apptrace.c" 2
9112 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 1
9113 /*
9114  * CDDL HEADER START
9115  *
9116  * The contents of this file are subject to the terms of the
9117  * Common Development and Distribution License, Version 1.0 only
9118  * (the "License").  You may not use this file except in compliance
9119  * with the License.
9120  *
9121  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9122  * or http://www.opensolaris.org/os/licensing.
9123  * See the License for the specific language governing permissions
9124  * and limitations under the License.
9125  *
9126  * When distributing Covered Code, include this CDDL HEADER in each
9127  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9128  * If applicable, add the following below this CDDL HEADER, with the
9129  * fields enclosed by brackets "[]" replaced with your own identifying
9130  * information: Portions Copyright [yyyy] [name of copyright owner]
9131  *
9132  * CDDL HEADER END
9133  */
9134 /*	Copyright (c) 1988 AT&T	*/
9135 /*	  All Rights Reserved  	*/
9136 
9137 /*
9138  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
9139  *
9140  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
9141  * Use is subject to license terms.
9142  */
9143 
9144 
9145 
9146 
9147 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9148 /*
9149  * CDDL HEADER START
9150  *
9151  * The contents of this file are subject to the terms of the
9152  * Common Development and Distribution License (the "License").
9153  * You may not use this file except in compliance with the License.
9154  *
9155  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9156  * or http://www.opensolaris.org/os/licensing.
9157  * See the License for the specific language governing permissions
9158  * and limitations under the License.
9159  *
9160  * When distributing Covered Code, include this CDDL HEADER in each
9161  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9162  * If applicable, add the following below this CDDL HEADER, with the
9163  * fields enclosed by brackets "[]" replaced with your own identifying
9164  * information: Portions Copyright [yyyy] [name of copyright owner]
9165  *
9166  * CDDL HEADER END
9167  */
9168 
9169 /*
9170  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9171  * Copyright 2016 Joyent, Inc.
9172  *
9173  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9174  * Use is subject to license terms.
9175  */
9176 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
9177 
9178 
9179 
9180 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9181 /*
9182  * CDDL HEADER START
9183  *
9184  * The contents of this file are subject to the terms of the
9185  * Common Development and Distribution License (the "License").
9186  * You may not use this file except in compliance with the License.
9187  *
9188  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9189  * or http://www.opensolaris.org/os/licensing.
9190  * See the License for the specific language governing permissions
9191  * and limitations under the License.
9192  *
9193  * When distributing Covered Code, include this CDDL HEADER in each
9194  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9195  * If applicable, add the following below this CDDL HEADER, with the
9196  * fields enclosed by brackets "[]" replaced with your own identifying
9197  * information: Portions Copyright [yyyy] [name of copyright owner]
9198  *
9199  * CDDL HEADER END
9200  */
9201 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9202 /*	  All Rights Reserved  	*/
9203 
9204 
9205 /*
9206  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9207  * Use is subject to license terms.
9208  *
9209  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9210  * Copyright 2016 Joyent, Inc.
9211  */
9212 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
9213 
9214 
9215 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/signal_iso.h" 1
9216 /*
9217  * CDDL HEADER START
9218  *
9219  * The contents of this file are subject to the terms of the
9220  * Common Development and Distribution License, Version 1.0 only
9221  * (the "License").  You may not use this file except in compliance
9222  * with the License.
9223  *
9224  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9225  * or http://www.opensolaris.org/os/licensing.
9226  * See the License for the specific language governing permissions
9227  * and limitations under the License.
9228  *
9229  * When distributing Covered Code, include this CDDL HEADER in each
9230  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9231  * If applicable, add the following below this CDDL HEADER, with the
9232  * fields enclosed by brackets "[]" replaced with your own identifying
9233  * information: Portions Copyright [yyyy] [name of copyright owner]
9234  *
9235  * CDDL HEADER END
9236  */
9237 /*	Copyright (c) 1988 AT&T	*/
9238 /*	  All Rights Reserved  	*/
9239 
9240 
9241 /*
9242  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
9243  *
9244  * Copyright (c) 1998-1999, by Sun Microsystems, Inc.
9245  * All rights reserved.
9246  */
9247 
9248 /*
9249  * An application should not include this header directly.  Instead it
9250  * should be included only through the inclusion of other Sun headers.
9251  *
9252  * The contents of this header is limited to identifiers specified in the
9253  * C Standard.  Any new identifiers specified in future amendments to the
9254  * C Standard must be placed in this header.  If these new identifiers
9255  * are required to also be in the C++ Standard "std" namespace, then for
9256  * anything other than macro definitions, corresponding "using" directives
9257  * must also be added to <signal.h>.
9258  */
9259 
9260 
9261 
9262 
9263 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 1
9264 /*
9265  * CDDL HEADER START
9266  *
9267  * The contents of this file are subject to the terms of the
9268  * Common Development and Distribution License (the "License").
9269  * You may not use this file except in compliance with the License.
9270  *
9271  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9272  * or http://www.opensolaris.org/os/licensing.
9273  * See the License for the specific language governing permissions
9274  * and limitations under the License.
9275  *
9276  * When distributing Covered Code, include this CDDL HEADER in each
9277  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9278  * If applicable, add the following below this CDDL HEADER, with the
9279  * fields enclosed by brackets "[]" replaced with your own identifying
9280  * information: Portions Copyright [yyyy] [name of copyright owner]
9281  *
9282  * CDDL HEADER END
9283  */
9284 
9285 /*
9286  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
9287  * Use is subject to license terms.
9288  */
9289 
9290 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9291 /*	  All Rights Reserved  	*/
9292 
9293 /*
9294  * An application should not include this header directly.  Instead it
9295  * should be included only through the inclusion of other Sun headers.
9296  *
9297  * The contents of this header is limited to identifiers specified in the
9298  * C Standard.  Any new identifiers specified in future amendments to the
9299  * C Standard must be placed in this header.  If these new identifiers
9300  * are required to also be in the C++ Standard "std" namespace, then for
9301  * anything other than macro definitions, corresponding "using" directives
9302  * must also be added to <sys/signal.h.h>.
9303  */
9304 
9305 
9306 
9307 
9308 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
9309 /*
9310  * CDDL HEADER START
9311  *
9312  * The contents of this file are subject to the terms of the
9313  * Common Development and Distribution License (the "License").
9314  * You may not use this file except in compliance with the License.
9315  *
9316  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9317  * or http://www.opensolaris.org/os/licensing.
9318  * See the License for the specific language governing permissions
9319  * and limitations under the License.
9320  *
9321  * When distributing Covered Code, include this CDDL HEADER in each
9322  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9323  * If applicable, add the following below this CDDL HEADER, with the
9324  * fields enclosed by brackets "[]" replaced with your own identifying
9325  * information: Portions Copyright [yyyy] [name of copyright owner]
9326  *
9327  * CDDL HEADER END
9328  */
9329 
9330 /*
9331  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
9332  *	  All Rights Reserved
9333  *
9334  */
9335 
9336 /*
9337  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9338  * Use is subject to license terms.
9339  */
9340 
9341 /*
9342  * WARNING: This is an implementation-specific header,
9343  * its contents are not guaranteed. Applications
9344  * should include <unistd.h> and not this header.
9345  */
9346 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 2
9347 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h"
9348 /* insert new signals here, and move _SIGRTM* appropriately */
9349 
9350 
9351 extern long _sysconf(int); /* System Private interface to sysconf() */
9352 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/signal_iso.h" 2
9353 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/signal_iso.h"
9354 typedef int sig_atomic_t;
9355 
9356 
9357 
9358 
9359 extern void (*signal(int, void (*)(int)))(int);
9360 
9361 extern int raise(int);
9362 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
9363 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
9364 /*
9365  * CDDL HEADER START
9366  *
9367  * The contents of this file are subject to the terms of the
9368  * Common Development and Distribution License (the "License").
9369  * You may not use this file except in compliance with the License.
9370  *
9371  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9372  * or http://www.opensolaris.org/os/licensing.
9373  * See the License for the specific language governing permissions
9374  * and limitations under the License.
9375  *
9376  * When distributing Covered Code, include this CDDL HEADER in each
9377  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9378  * If applicable, add the following below this CDDL HEADER, with the
9379  * fields enclosed by brackets "[]" replaced with your own identifying
9380  * information: Portions Copyright [yyyy] [name of copyright owner]
9381  *
9382  * CDDL HEADER END
9383  */
9384 
9385 /*
9386  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
9387  * Use is subject to license terms.
9388  */
9389 
9390 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9391 /*	  All Rights Reserved  	*/
9392 
9393 /*
9394  * University Copyright- Copyright (c) 1982, 1986, 1988
9395  * The Regents of the University of California
9396  * All Rights Reserved
9397  *
9398  * University Acknowledgment- Portions of this document are derived from
9399  * software developed by the University of California, Berkeley, and its
9400  * contributors.
9401  */
9402 
9403 
9404 
9405 
9406 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9407 /*
9408  * CDDL HEADER START
9409  *
9410  * The contents of this file are subject to the terms of the
9411  * Common Development and Distribution License (the "License").
9412  * You may not use this file except in compliance with the License.
9413  *
9414  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9415  * or http://www.opensolaris.org/os/licensing.
9416  * See the License for the specific language governing permissions
9417  * and limitations under the License.
9418  *
9419  * When distributing Covered Code, include this CDDL HEADER in each
9420  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9421  * If applicable, add the following below this CDDL HEADER, with the
9422  * fields enclosed by brackets "[]" replaced with your own identifying
9423  * information: Portions Copyright [yyyy] [name of copyright owner]
9424  *
9425  * CDDL HEADER END
9426  */
9427 
9428 /*
9429  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9430  * Copyright 2016 Joyent, Inc.
9431  *
9432  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9433  * Use is subject to license terms.
9434  */
9435 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
9436 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 1
9437 /*
9438  * CDDL HEADER START
9439  *
9440  * The contents of this file are subject to the terms of the
9441  * Common Development and Distribution License (the "License").
9442  * You may not use this file except in compliance with the License.
9443  *
9444  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9445  * or http://www.opensolaris.org/os/licensing.
9446  * See the License for the specific language governing permissions
9447  * and limitations under the License.
9448  *
9449  * When distributing Covered Code, include this CDDL HEADER in each
9450  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9451  * If applicable, add the following below this CDDL HEADER, with the
9452  * fields enclosed by brackets "[]" replaced with your own identifying
9453  * information: Portions Copyright [yyyy] [name of copyright owner]
9454  *
9455  * CDDL HEADER END
9456  */
9457 
9458 /*
9459  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
9460  * Use is subject to license terms.
9461  */
9462 
9463 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9464 /*	  All Rights Reserved  	*/
9465 
9466 /*
9467  * An application should not include this header directly.  Instead it
9468  * should be included only through the inclusion of other Sun headers.
9469  *
9470  * The contents of this header is limited to identifiers specified in the
9471  * C Standard.  Any new identifiers specified in future amendments to the
9472  * C Standard must be placed in this header.  If these new identifiers
9473  * are required to also be in the C++ Standard "std" namespace, then for
9474  * anything other than macro definitions, corresponding "using" directives
9475  * must also be added to <sys/signal.h.h>.
9476  */
9477 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
9478 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
9479 /*
9480  * We need <sys/siginfo.h> for the declaration of siginfo_t.
9481  */
9482 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 1
9483 /*
9484  * CDDL HEADER START
9485  *
9486  * The contents of this file are subject to the terms of the
9487  * Common Development and Distribution License, Version 1.0 only
9488  * (the "License").  You may not use this file except in compliance
9489  * with the License.
9490  *
9491  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9492  * or http://www.opensolaris.org/os/licensing.
9493  * See the License for the specific language governing permissions
9494  * and limitations under the License.
9495  *
9496  * When distributing Covered Code, include this CDDL HEADER in each
9497  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9498  * If applicable, add the following below this CDDL HEADER, with the
9499  * fields enclosed by brackets "[]" replaced with your own identifying
9500  * information: Portions Copyright [yyyy] [name of copyright owner]
9501  *
9502  * CDDL HEADER END
9503  */
9504 /*
9505  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
9506  * Use is subject to license terms.
9507  */
9508 
9509 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9510 /*	  All Rights Reserved  	*/
9511 
9512 
9513 
9514 
9515 #pragma ident "%Z%%M%	%I%	%E% SMI"
9516 
9517 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9518 /*
9519  * CDDL HEADER START
9520  *
9521  * The contents of this file are subject to the terms of the
9522  * Common Development and Distribution License (the "License").
9523  * You may not use this file except in compliance with the License.
9524  *
9525  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9526  * or http://www.opensolaris.org/os/licensing.
9527  * See the License for the specific language governing permissions
9528  * and limitations under the License.
9529  *
9530  * When distributing Covered Code, include this CDDL HEADER in each
9531  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9532  * If applicable, add the following below this CDDL HEADER, with the
9533  * fields enclosed by brackets "[]" replaced with your own identifying
9534  * information: Portions Copyright [yyyy] [name of copyright owner]
9535  *
9536  * CDDL HEADER END
9537  */
9538 
9539 /*
9540  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9541  * Copyright 2016 Joyent, Inc.
9542  *
9543  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9544  * Use is subject to license terms.
9545  */
9546 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9547 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9548 /*
9549  * CDDL HEADER START
9550  *
9551  * The contents of this file are subject to the terms of the
9552  * Common Development and Distribution License (the "License").
9553  * You may not use this file except in compliance with the License.
9554  *
9555  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9556  * or http://www.opensolaris.org/os/licensing.
9557  * See the License for the specific language governing permissions
9558  * and limitations under the License.
9559  *
9560  * When distributing Covered Code, include this CDDL HEADER in each
9561  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9562  * If applicable, add the following below this CDDL HEADER, with the
9563  * fields enclosed by brackets "[]" replaced with your own identifying
9564  * information: Portions Copyright [yyyy] [name of copyright owner]
9565  *
9566  * CDDL HEADER END
9567  */
9568 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9569 /*	  All Rights Reserved  	*/
9570 
9571 
9572 /*
9573  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9574  * Use is subject to license terms.
9575  *
9576  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9577  * Copyright 2016 Joyent, Inc.
9578  */
9579 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9580 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9581 /*
9582  * The union sigval is also defined in <time.h> as per X/Open and
9583  * POSIX requirements.
9584  */
9585 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9586 /*
9587  * The sigevent structure is also defined in <time.h> as per X/Open and
9588  * POSIX requirements.
9589  */
9590 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9591 /* values of sigev_notify */
9592 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9593 /*
9594  * negative signal codes are reserved for future use for user generated
9595  * signals
9596  */
9597 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9598 /*
9599  * Get the machine dependent signal codes (SIGILL, SIGFPE, SIGSEGV, and
9600  * SIGBUS) from <sys/machsig.h>
9601  */
9602 
9603 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 1
9604 /*
9605  * CDDL HEADER START
9606  *
9607  * The contents of this file are subject to the terms of the
9608  * Common Development and Distribution License, Version 1.0 only
9609  * (the "License").  You may not use this file except in compliance
9610  * with the License.
9611  *
9612  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9613  * or http://www.opensolaris.org/os/licensing.
9614  * See the License for the specific language governing permissions
9615  * and limitations under the License.
9616  *
9617  * When distributing Covered Code, include this CDDL HEADER in each
9618  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9619  * If applicable, add the following below this CDDL HEADER, with the
9620  * fields enclosed by brackets "[]" replaced with your own identifying
9621  * information: Portions Copyright [yyyy] [name of copyright owner]
9622  *
9623  * CDDL HEADER END
9624  */
9625 /*
9626  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
9627  * Use is subject to license terms.
9628  */
9629 
9630 /*	Copyright (c) 1988 AT&T	*/
9631 /*	  All Rights Reserved  	*/
9632 
9633 
9634 
9635 
9636 
9637 #pragma ident "%Z%%M%	%I%	%E% SMI"
9638 
9639 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9640 /*
9641  * CDDL HEADER START
9642  *
9643  * The contents of this file are subject to the terms of the
9644  * Common Development and Distribution License (the "License").
9645  * You may not use this file except in compliance with the License.
9646  *
9647  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9648  * or http://www.opensolaris.org/os/licensing.
9649  * See the License for the specific language governing permissions
9650  * and limitations under the License.
9651  *
9652  * When distributing Covered Code, include this CDDL HEADER in each
9653  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9654  * If applicable, add the following below this CDDL HEADER, with the
9655  * fields enclosed by brackets "[]" replaced with your own identifying
9656  * information: Portions Copyright [yyyy] [name of copyright owner]
9657  *
9658  * CDDL HEADER END
9659  */
9660 
9661 /*
9662  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9663  * Copyright 2016 Joyent, Inc.
9664  *
9665  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9666  * Use is subject to license terms.
9667  */
9668 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 2
9669 
9670 
9671 
9672 
9673 
9674 /*
9675  * machsig.h is the machine dependent portion of siginfo.h (and is
9676  * included by siginfo.h). A version of machsig.h should exist for
9677  * each architecture. The codes for SIGILL, SIGFPU, SIGSEGV and SIGBUS
9678  * are in this file. The codes for SIGTRAP, SIGCLD(SIGCHLD), and
9679  * SIGPOLL are architecture independent and may be found in siginfo.h.
9680  */
9681 
9682 
9683 
9684 
9685 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/vm/faultcode.h" 1
9686 /*
9687  * CDDL HEADER START
9688  *
9689  * The contents of this file are subject to the terms of the
9690  * Common Development and Distribution License (the "License").
9691  * You may not use this file except in compliance with the License.
9692  *
9693  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9694  * or http://www.opensolaris.org/os/licensing.
9695  * See the License for the specific language governing permissions
9696  * and limitations under the License.
9697  *
9698  * When distributing Covered Code, include this CDDL HEADER in each
9699  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9700  * If applicable, add the following below this CDDL HEADER, with the
9701  * fields enclosed by brackets "[]" replaced with your own identifying
9702  * information: Portions Copyright [yyyy] [name of copyright owner]
9703  *
9704  * CDDL HEADER END
9705  */
9706 /*
9707  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
9708  * Use is subject to license terms.
9709  */
9710 
9711 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9712 /*	  All Rights Reserved  	*/
9713 
9714 /*
9715  * University Copyright- Copyright (c) 1982, 1986, 1988
9716  * The Regents of the University of California
9717  * All Rights Reserved
9718  *
9719  * University Acknowledgment- Portions of this document are derived from
9720  * software developed by the University of California, Berkeley, and its
9721  * contributors.
9722  */
9723 
9724 
9725 
9726 
9727 #pragma ident "%Z%%M%	%I%	%E% SMI"
9728 
9729 
9730 
9731 
9732 
9733 /*
9734  * This file describes the data type returned by vm routines
9735  * which handle faults.
9736  *
9737  * If FC_CODE(fc) == FC_OBJERR, then FC_ERRNO(fc) contains the errno value
9738  * returned by the underlying object mapped at the fault address.
9739  */
9740 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/vm/faultcode.h"
9741 typedef int faultcode_t; /* type returned by vm fault routines */
9742 
9743 extern int fc_decode(faultcode_t);
9744 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 2
9745 
9746 
9747 /*
9748  * SIGILL signal codes
9749  */
9750 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h"
9751 /*
9752  * SIGEMT signal codes
9753  */
9754 
9755 
9756 
9757 
9758 
9759 
9760 /*
9761  * SIGFPE signal codes
9762  */
9763 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h"
9764 /*
9765  * SIGSEGV signal codes
9766  */
9767 
9768 
9769 
9770 
9771 
9772 
9773 
9774 /*
9775  * SIGBUS signal codes
9776  */
9777 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9778 
9779 /*
9780  * SIGTRAP signal codes
9781  */
9782 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9783 /*
9784  * SIGCLD signal codes
9785  */
9786 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9787 /*
9788  * SIGPOLL signal codes
9789  */
9790 # 195 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9791 /*
9792  * SIGPROF signal codes
9793  */
9794 # 215 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9795 /*
9796  * Inclusion of <sys/time_impl.h> is needed for the declaration of
9797  * timestruc_t.  However, since inclusion of <sys/time_impl.h> results
9798  * in X/Open and POSIX namespace pollution, the definition for
9799  * timestruct_t has been duplicated in a standards namespace safe header
9800  * <sys/time_std_impl.h>.  In <sys/time_std_impl.h>, the structure
9801  * name, tag, and member names, as well as the type itself, all have
9802  * leading underscores to protect namespace.
9803  */
9804 
9805 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
9806 /*
9807  * CDDL HEADER START
9808  *
9809  * The contents of this file are subject to the terms of the
9810  * Common Development and Distribution License, Version 1.0 only
9811  * (the "License").  You may not use this file except in compliance
9812  * with the License.
9813  *
9814  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9815  * or http://www.opensolaris.org/os/licensing.
9816  * See the License for the specific language governing permissions
9817  * and limitations under the License.
9818  *
9819  * When distributing Covered Code, include this CDDL HEADER in each
9820  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9821  * If applicable, add the following below this CDDL HEADER, with the
9822  * fields enclosed by brackets "[]" replaced with your own identifying
9823  * information: Portions Copyright [yyyy] [name of copyright owner]
9824  *
9825  * CDDL HEADER END
9826  */
9827 /*
9828  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
9829  * Use is subject to license terms.
9830  */
9831 
9832 /*
9833  * Implementation-private.  This header should not be included
9834  * directly by an application.  The application should instead
9835  * include <time.h> which includes this header conditionally
9836  * depending on which feature test macros are defined. By default,
9837  * this header is included by <time.h>.  X/Open and POSIX
9838  * standards requirements result in this header being included
9839  * by <time.h> only under a restricted set of conditions.
9840  */
9841 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9842 
9843 
9844 
9845 
9846 /*
9847  * The inclusion of <sys/types.h> is needed for definitions of pid_t, etc.
9848  * Placement here is due to a dependency in <sys/select.h> which is included
9849  * by <sys/types.h> for the sigevent structure.  Hence this inclusion must
9850  * follow that definition.
9851  */
9852 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9853 /*
9854  * CDDL HEADER START
9855  *
9856  * The contents of this file are subject to the terms of the
9857  * Common Development and Distribution License (the "License").
9858  * You may not use this file except in compliance with the License.
9859  *
9860  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9861  * or http://www.opensolaris.org/os/licensing.
9862  * See the License for the specific language governing permissions
9863  * and limitations under the License.
9864  *
9865  * When distributing Covered Code, include this CDDL HEADER in each
9866  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9867  * If applicable, add the following below this CDDL HEADER, with the
9868  * fields enclosed by brackets "[]" replaced with your own identifying
9869  * information: Portions Copyright [yyyy] [name of copyright owner]
9870  *
9871  * CDDL HEADER END
9872  */
9873 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9874 /*	  All Rights Reserved  	*/
9875 
9876 
9877 /*
9878  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9879  * Use is subject to license terms.
9880  *
9881  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9882  * Copyright 2016 Joyent, Inc.
9883  */
9884 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9885 
9886 
9887 typedef struct siginfo { /* pollutes POSIX/XOPEN namespace */
9888 
9889 
9890 
9891  int si_signo; /* signal from signal.h	*/
9892  int si_code; /* code from above	*/
9893  int si_errno; /* error from errno.h	*/
9894 
9895 
9896 
9897  union {
9898 
9899   int __pad[((128 / sizeof (int)) - 3)]; /* for future growth	*/
9900 
9901   struct { /* kill(), SIGCLD, siqqueue() */
9902    pid_t __pid; /* process ID		*/
9903    union {
9904     struct {
9905      uid_t __uid;
9906 
9907 
9908      union sigval __value;
9909 
9910 
9911 
9912     } __kill;
9913     struct {
9914      clock_t __utime;
9915      int __status;
9916      clock_t __stime;
9917     } __cld;
9918    } __pdata;
9919    ctid_t __ctid; /* contract ID		*/
9920    zoneid_t __zoneid; /* zone ID		*/
9921   } __proc;
9922 
9923   struct { /* SIGSEGV, SIGBUS, SIGILL, SIGTRAP, SIGFPE */
9924    void *__addr; /* faulting address	*/
9925    int __trapno; /* illegal trap number	*/
9926    caddr_t __pc; /* instruction address	*/
9927   } __fault;
9928 
9929   struct { /* SIGPOLL, SIGXFSZ	*/
9930   /* fd not currently available for SIGPOLL */
9931    int __fd; /* file descriptor	*/
9932    long __band;
9933   } __file;
9934 
9935   struct { /* SIGPROF */
9936    caddr_t __faddr; /* last fault address	*/
9937 
9938    timestruc_t __tstamp; /* real time stamp	*/
9939 
9940 
9941 
9942    short __syscall; /* current syscall	*/
9943    char __nsysarg; /* number of arguments	*/
9944    char __fault; /* last fault type	*/
9945    long __sysarg[8]; /* syscall arguments	*/
9946    int __mstate[10]; /* see <sys/msacct.h>	*/
9947   } __prof;
9948 
9949   struct { /* SI_RCTL */
9950    int32_t __entity; /* type of entity exceeding */
9951   } __rctl;
9952  } __data;
9953 
9954 } siginfo_t;
9955 # 374 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9956 /*
9957  * XXX -- internal version is identical to siginfo_t but without the padding.
9958  * This must be maintained in sync with it.
9959  */
9960 
9961 
9962 
9963 typedef struct k_siginfo {
9964  int si_signo; /* signal from signal.h	*/
9965  int si_code; /* code from above	*/
9966  int si_errno; /* error from errno.h	*/
9967 
9968 
9969 
9970  union {
9971   struct { /* kill(), SIGCLD, siqqueue() */
9972    pid_t __pid; /* process ID		*/
9973    union {
9974     struct {
9975      uid_t __uid;
9976      union sigval __value;
9977     } __kill;
9978     struct {
9979      clock_t __utime;
9980      int __status;
9981      clock_t __stime;
9982     } __cld;
9983    } __pdata;
9984    ctid_t __ctid; /* contract ID		*/
9985    zoneid_t __zoneid; /* zone ID		*/
9986   } __proc;
9987 
9988   struct { /* SIGSEGV, SIGBUS, SIGILL, SIGTRAP, SIGFPE */
9989    void *__addr; /* faulting address	*/
9990    int __trapno; /* illegal trap number	*/
9991    caddr_t __pc; /* instruction address	*/
9992   } __fault;
9993 
9994   struct { /* SIGPOLL, SIGXFSZ	*/
9995   /* fd not currently available for SIGPOLL */
9996    int __fd; /* file descriptor	*/
9997    long __band;
9998   } __file;
9999 
10000   struct { /* SIGPROF */
10001    caddr_t __faddr; /* last fault address	*/
10002 
10003 
10004    timestruc_t __tstamp; /* real time stamp	*/
10005 
10006 
10007 
10008    short __syscall; /* current syscall	*/
10009    char __nsysarg; /* number of arguments	*/
10010    char __fault; /* last fault type	*/
10011    /* these are omitted to keep k_siginfo_t small	*/
10012    /* long	__sysarg[8]; */
10013    /* int	__mstate[10]; */
10014   } __prof;
10015 
10016   struct { /* SI_RCTL */
10017    int32_t __entity; /* type of entity exceeding */
10018   } __rctl;
10019 
10020  } __data;
10021 
10022 } k_siginfo_t;
10023 
10024 typedef struct sigqueue {
10025  struct sigqueue *sq_next;
10026  k_siginfo_t sq_info;
10027  void (*sq_func)(struct sigqueue *); /* destructor function */
10028  void *sq_backptr; /* pointer to the data structure */
10029      /* associated by sq_func()	*/
10030  int sq_external; /* comes from outside the contract */
10031 } sigqueue_t;
10032 
10033 /*  indication whether to queue the signal or not */
10034 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
10035 
10036 
10037 /* Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements */
10038 
10039 
10040 
10041 
10042 
10043 
10044 
10045 typedef struct {
10046  unsigned int __sigbits[3];
10047 } k_sigset_t;
10048 
10049 /*
10050  * The signal handler routine can have either one or three arguments.
10051  * Existing C code has used either form so not specifing the arguments
10052  * neatly finesses the problem.  C++ doesn't accept this.  To C++
10053  * "(*sa_handler)()" indicates a routine with no arguments (ANSI C would
10054  * specify this as "(*sa_handler)(void)").  One or the other form must be
10055  * used for C++ and the only logical choice is "(*sa_handler)(int)" to allow
10056  * the SIG_* defines to work.  "(*sa_sigaction)(int, siginfo_t *, void *)"
10057  * can be used for the three argument form.
10058  */
10059 
10060 /*
10061  * Note: storage overlap by sa_handler and sa_sigaction
10062  */
10063 struct sigaction {
10064  int sa_flags;
10065  union {
10066 
10067 
10068 
10069   void (*_handler)();
10070 
10071 
10072 
10073 
10074   void (*_sigaction)(int, siginfo_t *, void *);
10075 
10076  } _funcptr;
10077  sigset_t sa_mask;
10078 
10079  int sa_resv[2];
10080 
10081 };
10082 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10083 /* this is only valid for SIGCLD */
10084 
10085 
10086 
10087 
10088 
10089 
10090 
10091    /* non-conformant ANSI compilation	*/
10092 
10093 /* definitions for the sa_flags field */
10094 # 153 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10095 /* this is only valid for SIGCLD */
10096 
10097 
10098 
10099 /*
10100  * use of these symbols by applications is injurious
10101  *	to binary compatibility
10102  */
10103 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10104 /* Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements. */
10105 
10106 
10107 
10108 typedef struct sigaltstack {
10109 
10110 
10111 
10112  void *ss_sp;
10113  size_t ss_size;
10114  int ss_flags;
10115 } stack_t;
10116 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10117 /* signotify id used only by libc for mq_notify()/aio_notify() */
10118 typedef struct signotify_id { /* signotify id struct		*/
10119  pid_t sn_pid; /* pid of proc to be notified	*/
10120  int sn_index; /* index in preallocated pool	*/
10121  int sn_pad; /* reserved			*/
10122 } signotify_id_t;
10123 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10124 /* Command codes for sig_notify call */
10125 
10126 
10127 
10128 
10129 
10130 
10131 
10132 /* Added as per XPG4v2 */
10133 
10134 
10135 
10136 struct sigstack {
10137  void *ss_sp;
10138  int ss_onstack;
10139 };
10140 
10141 
10142 /*
10143  * For definition of ucontext_t; must follow struct definition
10144  * for  sigset_t
10145  */
10146 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
10147 
10148 /*
10149  * Allow global visibility for symbols defined in
10150  * C++ "std" namespace in <iso/signal_iso.h>.
10151  */
10152 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h"
10153 extern const char **_sys_siglistp; /* signal descriptions */
10154 extern const int _sys_siglistn; /* # of signal descriptions */
10155 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h"
10156 extern int kill(pid_t, int);
10157 extern int sigaction(int, const struct sigaction *,
10158  struct sigaction *);
10159 
10160 extern int sigaddset(sigset_t *, int);
10161 extern int sigdelset(sigset_t *, int);
10162 extern int sigemptyset(sigset_t *);
10163 extern int sigfillset(sigset_t *);
10164 extern int sigismember(const sigset_t *, int);
10165 
10166 extern int sigpending(sigset_t *);
10167 extern int sigprocmask(int, const sigset_t *,
10168  sigset_t *);
10169 extern int sigsuspend(const sigset_t *);
10170 
10171 
10172 
10173 
10174 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
10175 /*
10176  * CDDL HEADER START
10177  *
10178  * The contents of this file are subject to the terms of the
10179  * Common Development and Distribution License, Version 1.0 only
10180  * (the "License").  You may not use this file except in compliance
10181  * with the License.
10182  *
10183  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10184  * or http://www.opensolaris.org/os/licensing.
10185  * See the License for the specific language governing permissions
10186  * and limitations under the License.
10187  *
10188  * When distributing Covered Code, include this CDDL HEADER in each
10189  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10190  * If applicable, add the following below this CDDL HEADER, with the
10191  * fields enclosed by brackets "[]" replaced with your own identifying
10192  * information: Portions Copyright [yyyy] [name of copyright owner]
10193  *
10194  * CDDL HEADER END
10195  */
10196 /*
10197  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
10198  * Use is subject to license terms.
10199  */
10200 
10201 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10202 /*	  All Rights Reserved  	*/
10203 
10204 
10205 
10206 
10207 
10208 #pragma ident "%Z%%M%	%I%	%E% SMI"
10209 
10210 
10211 
10212 
10213 
10214 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
10215 /*
10216  * CDDL HEADER START
10217  *
10218  * The contents of this file are subject to the terms of the
10219  * Common Development and Distribution License (the "License").
10220  * You may not use this file except in compliance with the License.
10221  *
10222  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10223  * or http://www.opensolaris.org/os/licensing.
10224  * See the License for the specific language governing permissions
10225  * and limitations under the License.
10226  *
10227  * When distributing Covered Code, include this CDDL HEADER in each
10228  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10229  * If applicable, add the following below this CDDL HEADER, with the
10230  * fields enclosed by brackets "[]" replaced with your own identifying
10231  * information: Portions Copyright [yyyy] [name of copyright owner]
10232  *
10233  * CDDL HEADER END
10234  */
10235 
10236 /*
10237  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
10238  * Copyright 2016 Joyent, Inc.
10239  *
10240  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
10241  * Use is subject to license terms.
10242  */
10243 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
10244 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10245 /*
10246  * CDDL HEADER START
10247  *
10248  * The contents of this file are subject to the terms of the
10249  * Common Development and Distribution License (the "License").
10250  * You may not use this file except in compliance with the License.
10251  *
10252  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10253  * or http://www.opensolaris.org/os/licensing.
10254  * See the License for the specific language governing permissions
10255  * and limitations under the License.
10256  *
10257  * When distributing Covered Code, include this CDDL HEADER in each
10258  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10259  * If applicable, add the following below this CDDL HEADER, with the
10260  * fields enclosed by brackets "[]" replaced with your own identifying
10261  * information: Portions Copyright [yyyy] [name of copyright owner]
10262  *
10263  * CDDL HEADER END
10264  */
10265 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10266 /*	  All Rights Reserved  	*/
10267 
10268 
10269 /*
10270  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10271  * Use is subject to license terms.
10272  *
10273  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10274  * Copyright 2016 Joyent, Inc.
10275  */
10276 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
10277 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
10278 /*
10279  * CDDL HEADER START
10280  *
10281  * The contents of this file are subject to the terms of the
10282  * Common Development and Distribution License (the "License").
10283  * You may not use this file except in compliance with the License.
10284  *
10285  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10286  * or http://www.opensolaris.org/os/licensing.
10287  * See the License for the specific language governing permissions
10288  * and limitations under the License.
10289  *
10290  * When distributing Covered Code, include this CDDL HEADER in each
10291  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10292  * If applicable, add the following below this CDDL HEADER, with the
10293  * fields enclosed by brackets "[]" replaced with your own identifying
10294  * information: Portions Copyright [yyyy] [name of copyright owner]
10295  *
10296  * CDDL HEADER END
10297  */
10298 
10299 /*
10300  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
10301  * Use is subject to license terms.
10302  */
10303 
10304 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10305 /*	  All Rights Reserved  	*/
10306 
10307 /*
10308  * University Copyright- Copyright (c) 1982, 1986, 1988
10309  * The Regents of the University of California
10310  * All Rights Reserved
10311  *
10312  * University Acknowledgment- Portions of this document are derived from
10313  * software developed by the University of California, Berkeley, and its
10314  * contributors.
10315  */
10316 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
10317 
10318 /*
10319  *	This file defines the data needed to specify a set of
10320  *	processes.  These types are used by the sigsend, sigsendset,
10321  *	priocntl, priocntlset, waitid, evexit, and evexitset system
10322  *	calls.
10323  */
10324 
10325 
10326 
10327 
10328 
10329 /*
10330  *	The following defines the values for an identifier type.  It
10331  *	specifies the interpretation of an id value.  An idtype and
10332  *	id together define a simple set of processes.
10333  */
10334 typedef enum
10335 
10336  idtype /* pollutes XPG4.2 namespace */
10337 
10338   {
10339  P_PID, /* A process identifier.		*/
10340  P_PPID, /* A parent process identifier.		*/
10341  P_PGID, /* A process group (job control group)	*/
10342    /* identifier.				*/
10343  P_SID, /* A session identifier.		*/
10344  P_CID, /* A scheduling class identifier.	*/
10345  P_UID, /* A user identifier.			*/
10346  P_GID, /* A group identifier.			*/
10347  P_ALL, /* All processes.			*/
10348  P_LWPID, /* An LWP identifier.			*/
10349  P_TASKID, /* A task identifier.			*/
10350  P_PROJID, /* A project identifier.		*/
10351  P_POOLID, /* A pool identifier.			*/
10352  P_ZONEID, /* A zone identifier.			*/
10353  P_CTID, /* A (process) contract identifier.	*/
10354  P_CPUID, /* CPU identifier.			*/
10355  P_PSETID /* Processor set identifier		*/
10356 } idtype_t;
10357 
10358 
10359 /*
10360  *	The following defines the operations which can be performed to
10361  *	combine two simple sets of processes to form another set of
10362  *	processes.
10363  */
10364 
10365 typedef enum idop {
10366  POP_DIFF, /* Set difference.  The processes which	*/
10367    /* are in the left operand set and not	*/
10368    /* in the right operand set.		*/
10369  POP_AND, /* Set disjunction.  The processes	*/
10370    /* which are in both the left and right	*/
10371    /* operand sets.			*/
10372  POP_OR, /* Set conjunction.  The processes	*/
10373    /* which are in either the left or the	*/
10374    /* right operand sets (or both).	*/
10375  POP_XOR /* Set exclusive or.  The processes 	*/
10376    /* which are in either the left or	*/
10377    /* right operand sets but not in both.	*/
10378 } idop_t;
10379 
10380 
10381 /*
10382  *	The following structure is used to define a set of processes.
10383  *	The set is defined in terms of two simple sets of processes
10384  *	and an operator which operates on these two operand sets.
10385  */
10386 typedef struct procset {
10387  idop_t p_op; /* The operator connection the	*/
10388     /* following two operands each	*/
10389     /* of which is a simple set of	*/
10390     /* processes.			*/
10391 
10392  idtype_t p_lidtype;
10393     /* The type of the left operand	*/
10394     /* simple set.			*/
10395  id_t p_lid; /* The id of the left operand.	*/
10396 
10397  idtype_t p_ridtype;
10398     /* The type of the right	*/
10399     /* operand simple set.		*/
10400  id_t p_rid; /* The id of the right operand.	*/
10401 } procset_t;
10402 
10403 /*
10404  *	The following macro can be used to initialize a procset_t
10405  *	structure.
10406  */
10407 # 89 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
10408 extern int gsignal(int);
10409 extern int (*ssignal(int, int (*)(int)))(int);
10410 extern int sigsend(idtype_t, id_t, int);
10411 extern int sigsendset(const procset_t *, int);
10412 extern int sig2str(int, char *);
10413 extern int str2sig(const char *, int *);
10414 
10415 
10416 
10417 
10418 
10419 extern void (*bsd_signal(int, void (*)(int)))(int);
10420 extern int killpg(pid_t, int);
10421 extern int siginterrupt(int, int);
10422 extern int sigaltstack(const stack_t *, stack_t *);
10423 extern int sighold(int);
10424 extern int sigignore(int);
10425 extern int sigpause(int);
10426 extern int sigrelse(int);
10427 extern void (*sigset(int, void (*)(int)))(int);
10428 
10429 
10430 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
10431 
10432 
10433 
10434 extern int sigstack(struct sigstack *, struct sigstack *);
10435 
10436 
10437 
10438 
10439 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 1
10440 /*
10441  * CDDL HEADER START
10442  *
10443  * The contents of this file are subject to the terms of the
10444  * Common Development and Distribution License, Version 1.0 only
10445  * (the "License").  You may not use this file except in compliance
10446  * with the License.
10447  *
10448  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10449  * or http://www.opensolaris.org/os/licensing.
10450  * See the License for the specific language governing permissions
10451  * and limitations under the License.
10452  *
10453  * When distributing Covered Code, include this CDDL HEADER in each
10454  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10455  * If applicable, add the following below this CDDL HEADER, with the
10456  * fields enclosed by brackets "[]" replaced with your own identifying
10457  * information: Portions Copyright [yyyy] [name of copyright owner]
10458  *
10459  * CDDL HEADER END
10460  */
10461 /*
10462  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
10463  * Use is subject to license terms.
10464  */
10465 
10466 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10467 /*	  All Rights Reserved  	*/
10468 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
10469 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
10470 /*
10471  * CDDL HEADER START
10472  *
10473  * The contents of this file are subject to the terms of the
10474  * Common Development and Distribution License (the "License").
10475  * You may not use this file except in compliance with the License.
10476  *
10477  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10478  * or http://www.opensolaris.org/os/licensing.
10479  * See the License for the specific language governing permissions
10480  * and limitations under the License.
10481  *
10482  * When distributing Covered Code, include this CDDL HEADER in each
10483  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10484  * If applicable, add the following below this CDDL HEADER, with the
10485  * fields enclosed by brackets "[]" replaced with your own identifying
10486  * information: Portions Copyright [yyyy] [name of copyright owner]
10487  *
10488  * CDDL HEADER END
10489  */
10490 /*	Copyright (c) 1988 AT&T	*/
10491 /*	  All Rights Reserved  	*/
10492 
10493 
10494 /*
10495  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10496  *
10497  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
10498  * Use is subject to license terms.
10499  */
10500 /*
10501  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
10502  * Copyright 2016 Joyent, Inc.
10503  */
10504 # 122 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 2
10505 extern int pthread_kill(pthread_t, int);
10506 extern int pthread_sigmask(int, const sigset_t *,
10507  sigset_t *);
10508 extern int sigwaitinfo(const sigset_t *,
10509  siginfo_t *);
10510 extern int sigtimedwait(const sigset_t *,
10511  siginfo_t *, const struct timespec *);
10512 extern int sigqueue(pid_t, int, const union sigval);
10513 
10514 
10515 /*
10516  * sigwait() prototype is defined here.
10517  */
10518 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h"
10519 extern int sigwait(sigset_t *);
10520 # 40 "common/apptrace.c" 2
10521 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h" 1
10522 /*
10523  * CDDL HEADER START
10524  *
10525  * The contents of this file are subject to the terms of the
10526  * Common Development and Distribution License (the "License").
10527  * You may not use this file except in compliance with the License.
10528  *
10529  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10530  * or http://www.opensolaris.org/os/licensing.
10531  * See the License for the specific language governing permissions
10532  * and limitations under the License.
10533  *
10534  * When distributing Covered Code, include this CDDL HEADER in each
10535  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10536  * If applicable, add the following below this CDDL HEADER, with the
10537  * fields enclosed by brackets "[]" replaced with your own identifying
10538  * information: Portions Copyright [yyyy] [name of copyright owner]
10539  *
10540  * CDDL HEADER END
10541  */
10542 
10543 /*
10544  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10545  * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
10546  */
10547 
10548 
10549 
10550 
10551 /*
10552  * synch.h:
10553  * definitions needed to use the thread synchronization interface
10554  */
10555 
10556 
10557 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1
10558 /*
10559  * CDDL HEADER START
10560  *
10561  * The contents of this file are subject to the terms of the
10562  * Common Development and Distribution License (the "License").
10563  * You may not use this file except in compliance with the License.
10564  *
10565  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10566  * or http://www.opensolaris.org/os/licensing.
10567  * See the License for the specific language governing permissions
10568  * and limitations under the License.
10569  *
10570  * When distributing Covered Code, include this CDDL HEADER in each
10571  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10572  * If applicable, add the following below this CDDL HEADER, with the
10573  * fields enclosed by brackets "[]" replaced with your own identifying
10574  * information: Portions Copyright [yyyy] [name of copyright owner]
10575  *
10576  * CDDL HEADER END
10577  */
10578 /*
10579  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
10580  * Use is subject to license terms.
10581  * Copyright 2016 Joyent, Inc.
10582  */
10583 
10584 
10585 
10586 
10587 #pragma ident "%Z%%M%	%I%	%E% SMI"
10588 
10589 
10590 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10591 /*
10592  * CDDL HEADER START
10593  *
10594  * The contents of this file are subject to the terms of the
10595  * Common Development and Distribution License (the "License").
10596  * You may not use this file except in compliance with the License.
10597  *
10598  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10599  * or http://www.opensolaris.org/os/licensing.
10600  * See the License for the specific language governing permissions
10601  * and limitations under the License.
10602  *
10603  * When distributing Covered Code, include this CDDL HEADER in each
10604  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10605  * If applicable, add the following below this CDDL HEADER, with the
10606  * fields enclosed by brackets "[]" replaced with your own identifying
10607  * information: Portions Copyright [yyyy] [name of copyright owner]
10608  *
10609  * CDDL HEADER END
10610  */
10611 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10612 /*	  All Rights Reserved  	*/
10613 
10614 
10615 /*
10616  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10617  * Use is subject to license terms.
10618  *
10619  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10620  * Copyright 2016 Joyent, Inc.
10621  */
10622 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
10623 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
10624 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10625 /*	  All Rights Reserved  	*/
10626 
10627 
10628 /*
10629  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
10630  * All rights reserved.  The Berkeley software License Agreement
10631  * specifies the terms and conditions for redistribution.
10632  */
10633 
10634 /*
10635  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10636  *
10637  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10638  * Use is subject to license terms.
10639  *
10640  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10641  */
10642 
10643 /*
10644  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
10645  */
10646 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
10647 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
10648 typedef lock_t disp_lock_t; /* dispatcher lock type */
10649 
10650 /*
10651  * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or
10652  * an adaptive mutex, depending on what interrupt levels use it.
10653  */
10654 
10655 
10656 /*
10657  * Macro to control loops which spin on a lock and then check state
10658  * periodically.  Its passed an integer, and returns a boolean value
10659  * that if true indicates its a good time to get the scheduler lock and
10660  * check the state of the current owner of the lock.
10661  */
10662 
10663 
10664 /*
10665  * Externs for CLOCK_LOCK and clock resolution
10666  */
10667 extern volatile uint32_t hres_lock;
10668 extern hrtime_t hrtime_base;
10669 extern int clock_res;
10670 
10671 
10672 
10673 /*
10674  * The definitions of the symbolic interrupt levels:
10675  *
10676  *   CLOCK_LEVEL =>  The level at which one must be to block the clock.
10677  *
10678  *   LOCK_LEVEL  =>  The highest level at which one may block (and thus the
10679  *                   highest level at which one may acquire adaptive locks)
10680  *                   Also the highest level at which one may be preempted.
10681  *
10682  *   DISP_LEVEL  =>  The level at which one must be to perform dispatcher
10683  *                   operations.
10684  *
10685  * The constraints on the platform:
10686  *
10687  *  - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL
10688  *  - LOCK_LEVEL must be less than DISP_LEVEL
10689  *  - DISP_LEVEL should be as close to LOCK_LEVEL as possible
10690  *
10691  * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal;
10692  * changing this relationship is probably possible but not advised.
10693  *
10694  */
10695 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
10696 /*
10697  * The following mask is for the cpu_intr_actv bits corresponding to
10698  * high-level PILs. It should equal:
10699  * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1)
10700  */
10701 
10702 
10703 /*
10704  * The semaphore code depends on being able to represent a lock plus
10705  * owner in a single 32-bit word.  (Mutexes used to have a similar
10706  * dependency, but no longer.)  Thus the owner must contain at most
10707  * 24 significant bits.  At present only threads and semaphores
10708  * must be aware of this vile constraint.  Different ISAs may handle this
10709  * differently depending on their capabilities (e.g. compare-and-swap)
10710  * and limitations (e.g. constraints on alignment and/or KERNELBASE).
10711  */
10712 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h" 2
10713 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
10714 /*
10715  * CDDL HEADER START
10716  *
10717  * The contents of this file are subject to the terms of the
10718  * Common Development and Distribution License, Version 1.0 only
10719  * (the "License").  You may not use this file except in compliance
10720  * with the License.
10721  *
10722  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10723  * or http://www.opensolaris.org/os/licensing.
10724  * See the License for the specific language governing permissions
10725  * and limitations under the License.
10726  *
10727  * When distributing Covered Code, include this CDDL HEADER in each
10728  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10729  * If applicable, add the following below this CDDL HEADER, with the
10730  * fields enclosed by brackets "[]" replaced with your own identifying
10731  * information: Portions Copyright [yyyy] [name of copyright owner]
10732  *
10733  * CDDL HEADER END
10734  */
10735 /*
10736  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
10737  * Use is subject to license terms.
10738  */
10739 
10740 /*
10741  * Implementation-private.  This header should not be included
10742  * directly by an application.  The application should instead
10743  * include <time.h> which includes this header conditionally
10744  * depending on which feature test macros are defined. By default,
10745  * this header is included by <time.h>.  X/Open and POSIX
10746  * standards requirements result in this header being included
10747  * by <time.h> only under a restricted set of conditions.
10748  */
10749 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h" 2
10750 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/synch.h" 1
10751 /*
10752  * CDDL HEADER START
10753  *
10754  * The contents of this file are subject to the terms of the
10755  * Common Development and Distribution License (the "License").
10756  * You may not use this file except in compliance with the License.
10757  *
10758  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10759  * or http://www.opensolaris.org/os/licensing.
10760  * See the License for the specific language governing permissions
10761  * and limitations under the License.
10762  *
10763  * When distributing Covered Code, include this CDDL HEADER in each
10764  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10765  * If applicable, add the following below this CDDL HEADER, with the
10766  * fields enclosed by brackets "[]" replaced with your own identifying
10767  * information: Portions Copyright [yyyy] [name of copyright owner]
10768  *
10769  * CDDL HEADER END
10770  */
10771 
10772 /*
10773  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
10774  * Use is subject to license terms.
10775  */
10776 
10777 
10778 
10779 
10780 #pragma ident "%Z%%M%	%I%	%E% SMI"
10781 
10782 
10783 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10784 /*
10785  * CDDL HEADER START
10786  *
10787  * The contents of this file are subject to the terms of the
10788  * Common Development and Distribution License (the "License").
10789  * You may not use this file except in compliance with the License.
10790  *
10791  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10792  * or http://www.opensolaris.org/os/licensing.
10793  * See the License for the specific language governing permissions
10794  * and limitations under the License.
10795  *
10796  * When distributing Covered Code, include this CDDL HEADER in each
10797  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10798  * If applicable, add the following below this CDDL HEADER, with the
10799  * fields enclosed by brackets "[]" replaced with your own identifying
10800  * information: Portions Copyright [yyyy] [name of copyright owner]
10801  *
10802  * CDDL HEADER END
10803  */
10804 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10805 /*	  All Rights Reserved  	*/
10806 
10807 
10808 /*
10809  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10810  * Use is subject to license terms.
10811  *
10812  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10813  * Copyright 2016 Joyent, Inc.
10814  */
10815 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/synch.h" 2
10816 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
10817 /*
10818  * CDDL HEADER START
10819  *
10820  * The contents of this file are subject to the terms of the
10821  * Common Development and Distribution License, Version 1.0 only
10822  * (the "License").  You may not use this file except in compliance
10823  * with the License.
10824  *
10825  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10826  * or http://www.opensolaris.org/os/licensing.
10827  * See the License for the specific language governing permissions
10828  * and limitations under the License.
10829  *
10830  * When distributing Covered Code, include this CDDL HEADER in each
10831  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10832  * If applicable, add the following below this CDDL HEADER, with the
10833  * fields enclosed by brackets "[]" replaced with your own identifying
10834  * information: Portions Copyright [yyyy] [name of copyright owner]
10835  *
10836  * CDDL HEADER END
10837  */
10838 /*
10839  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10840  *
10841  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
10842  * Use is subject to license terms.
10843  */
10844 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/synch.h" 2
10845 
10846 
10847 
10848 
10849 
10850 
10851 
10852 /*
10853  * Thread and LWP mutexes have the same type
10854  * definitions.
10855  *
10856  * NOTE:
10857  *
10858  * POSIX requires that <pthread.h> define the structures pthread_mutex_t
10859  * and pthread_cond_t.  Although these structures are identical to mutex_t
10860  * (lwp_mutex_t) and cond_t (lwp_cond_t), defined here, a typedef of these
10861  * types would require including <synch.h> in <pthread.h>, pulling in
10862  * non-posix symbols/constants, violating POSIX namespace restrictions.  Hence,
10863  * pthread_mutex_t/pthread_cond_t have been redefined (in <sys/types.h>).
10864  * Any modifications done to mutex_t/lwp_mutex_t or cond_t/lwp_cond_t must
10865  * also be done to pthread_mutex_t/pthread_cond_t.
10866  */
10867 typedef struct _lwp_mutex {
10868  struct {
10869   uint16_t flag1;
10870   uint8_t flag2;
10871   uint8_t ceiling;
10872   union {
10873    uint16_t bcptype;
10874    struct {
10875     uint8_t count_type1;
10876     uint8_t count_type2;
10877    } mtype_rcount;
10878   } mbcp_type_un;
10879   uint16_t magic;
10880  } flags;
10881  union {
10882   struct {
10883    uint8_t pad[8];
10884   } lock64;
10885   struct {
10886    uint32_t ownerpid;
10887    uint32_t lockword;
10888   } lock32;
10889   upad64_t owner64;
10890  } lock;
10891  upad64_t data;
10892 } lwp_mutex_t;
10893 
10894 /*
10895  * Thread and LWP condition variables have the same
10896  * type definition.
10897  * NOTE:
10898  * The layout of the following structure should be kept in sync with the
10899  * layout of pthread_cond_t in sys/types.h. See NOTE above for lwp_mutex_t.
10900  */
10901 typedef struct _lwp_cond {
10902  struct {
10903   uint8_t flag[4];
10904   uint16_t type;
10905   uint16_t magic;
10906  } flags;
10907  upad64_t data;
10908 } lwp_cond_t;
10909 
10910 /*
10911  * LWP semaphores
10912  */
10913 typedef struct _lwp_sema {
10914  uint32_t count; /* semaphore count */
10915  uint16_t type;
10916  uint16_t magic;
10917  uint8_t flags[8]; /* last byte reserved for waiters */
10918  upad64_t data; /* optional data */
10919 } lwp_sema_t;
10920 
10921 /*
10922  * Thread and LWP rwlocks have the same type definition.
10923  * NOTE: The layout of this structure should be kept in sync with the layout
10924  * of the correponding structure of pthread_rwlock_t in sys/types.h.
10925  * Also, because we have to deal with C++, there is an identical structure
10926  * for rwlock_t in head/sync.h that we cannot change.
10927  */
10928 typedef struct _lwp_rwlock {
10929  int32_t readers; /* rwstate word */
10930  uint16_t type;
10931  uint16_t magic;
10932  lwp_mutex_t mutex; /* used with process-shared rwlocks */
10933  lwp_cond_t readercv; /* used only to indicate ownership */
10934  lwp_cond_t writercv; /* used only to indicate ownership */
10935 } lwp_rwlock_t;
10936 
10937 
10938 /*
10939  * Definitions of synchronization types.
10940  */
10941 
10942 
10943 
10944 /* Keep the following values in sync with pthread.h */
10945 # 143 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/synch.h"
10946 /*
10947  * USYNC_PROCESS_ROBUST is a deprecated historical type.  It is mapped
10948  * into (USYNC_PROCESS | LOCK_ROBUST) by mutex_init().  Application code
10949  * should be revised to use (USYNC_PROCESS | LOCK_ROBUST) rather than this.
10950  */
10951 
10952 
10953 /*
10954  * lwp_mutex_t flags
10955  */
10956 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h" 2
10957 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h"
10958 /*
10959  * Semaphores
10960  */
10961 typedef struct _sema {
10962  /* this structure must be the same as sem_t in <semaphore.h> */
10963  uint32_t count; /* semaphore count */
10964  uint16_t type;
10965  uint16_t magic;
10966  upad64_t pad1[3]; /* reserved for a mutex_t */
10967  upad64_t pad2[2]; /* reserved for a cond_t */
10968 } sema_t;
10969 
10970 /*
10971  * POSIX.1c Note:
10972  * POSIX.1c requires that <pthread.h> define the structures pthread_mutex_t
10973  * and pthread_cond_t.  These structures are identical to mutex_t (lwp_mutex_t)
10974  * and cond_t (lwp_cond_t) which are defined in <synch.h>.  A nested included
10975  * of <synch.h> (to allow a "#typedef mutex_t  pthread_mutex_t") would pull in
10976  * non-posix symbols/constants violating the namespace restrictions.  Hence,
10977  * pthread_mutex_t/pthread_cond_t have been redefined in <pthread.h> (actually
10978  * in <sys/types.h>).  Any modifications done to mutex_t/lwp_mutex_t or
10979  * cond_t/lwp_cond_t should also be done to pthread_mutex_t/pthread_cond_t.
10980  */
10981 typedef lwp_mutex_t mutex_t;
10982 typedef lwp_cond_t cond_t;
10983 
10984 /*
10985  * Readers/writer locks
10986  *
10987  * NOTE: The layout of this structure should be kept in sync with the layout
10988  * of the correponding structure of pthread_rwlock_t in sys/types.h.
10989  * Also, there is an identical structure for lwp_rwlock_t in <sys/synch.h>.
10990  * Because we have to deal with C++, we cannot redefine this one as that one.
10991  */
10992 typedef struct _rwlock {
10993  int32_t readers; /* rwstate word */
10994  uint16_t type;
10995  uint16_t magic;
10996  mutex_t mutex; /* used with process-shared rwlocks */
10997  cond_t readercv; /* used only to indicate ownership */
10998  cond_t writercv; /* used only to indicate ownership */
10999 } rwlock_t;
11000 
11001 int _lwp_mutex_lock(lwp_mutex_t *);
11002 int _lwp_mutex_unlock(lwp_mutex_t *);
11003 int _lwp_mutex_trylock(lwp_mutex_t *);
11004 int _lwp_cond_wait(lwp_cond_t *, lwp_mutex_t *);
11005 int _lwp_cond_timedwait(lwp_cond_t *, lwp_mutex_t *, timespec_t *);
11006 int _lwp_cond_reltimedwait(lwp_cond_t *, lwp_mutex_t *, timespec_t *);
11007 int _lwp_cond_signal(lwp_cond_t *);
11008 int _lwp_cond_broadcast(lwp_cond_t *);
11009 int _lwp_sema_init(lwp_sema_t *, int);
11010 int _lwp_sema_wait(lwp_sema_t *);
11011 int _lwp_sema_trywait(lwp_sema_t *);
11012 int _lwp_sema_post(lwp_sema_t *);
11013 int cond_init(cond_t *, int, void *);
11014 int cond_destroy(cond_t *);
11015 int cond_wait(cond_t *, mutex_t *);
11016 int cond_timedwait(cond_t *, mutex_t *, const timespec_t *);
11017 int cond_reltimedwait(cond_t *, mutex_t *, const timespec_t *);
11018 int cond_signal(cond_t *);
11019 int cond_broadcast(cond_t *);
11020 int mutex_init(mutex_t *, int, void *);
11021 int mutex_destroy(mutex_t *);
11022 int mutex_consistent(mutex_t *);
11023 int mutex_lock(mutex_t *);
11024 int mutex_trylock(mutex_t *);
11025 int mutex_unlock(mutex_t *);
11026 int rwlock_init(rwlock_t *, int, void *);
11027 int rwlock_destroy(rwlock_t *);
11028 int rw_rdlock(rwlock_t *);
11029 int rw_wrlock(rwlock_t *);
11030 int rw_unlock(rwlock_t *);
11031 int rw_tryrdlock(rwlock_t *);
11032 int rw_trywrlock(rwlock_t *);
11033 int sema_init(sema_t *, unsigned int, int, void *);
11034 int sema_destroy(sema_t *);
11035 int sema_wait(sema_t *);
11036 int sema_timedwait(sema_t *, const timespec_t *);
11037 int sema_reltimedwait(sema_t *, const timespec_t *);
11038 int sema_post(sema_t *);
11039 int sema_trywait(sema_t *);
11040 
11041 
11042 
11043 /* "Magic numbers" tagging synchronization object types */
11044 
11045 
11046 
11047 
11048 
11049 /*
11050  * POSIX.1c Note:
11051  * DEFAULTMUTEX is defined same as PTHREAD_MUTEX_INITIALIZER in <pthread.h>.
11052  * DEFAULTCV is defined same as PTHREAD_COND_INITIALIZER in <pthread.h>.
11053  * DEFAULTRWLOCK is defined same as PTHREAD_RWLOCK_INITIALIZER in <pthread.h>.
11054  * Any changes to these macros should be reflected in <pthread.h>
11055  */
11056 # 173 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h"
11057 /*
11058  * Tests on lock states.
11059  */
11060 
11061 
11062 
11063 
11064 
11065 
11066 /*
11067  * The following definitions are for assertions which can be checked
11068  * statically by tools like lock_lint.  You can also define your own
11069  * run-time test for each.  If you don't, we define them to 1 so that
11070  * such assertions simply pass.
11071  */
11072 # 197 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h"
11073 /*
11074  * The *_held() functions apply equally well to Solaris threads
11075  * and to Posix threads synchronization objects, but the formal
11076  * type declarations are different, so we just declare the argument
11077  * to each *_held() function to be a void *, expecting that they will
11078  * be called with the proper type of argument in each case.
11079  */
11080 int _sema_held(void *); /* sema_t or sem_t */
11081 int _rw_read_held(void *); /* rwlock_t or pthread_rwlock_t */
11082 int _rw_write_held(void *); /* rwlock_t or pthread_rwlock_t */
11083 int _mutex_held(void *); /* mutex_t or pthread_mutex_t */
11084 
11085 /* Pause API */
11086 void smt_pause(void);
11087 
11088 
11089 
11090 /*
11091  * Panicking versions of our favorite friends.
11092  */
11093 void mutex_enter(mutex_t *);
11094 void mutex_exit(mutex_t *);
11095 # 41 "common/apptrace.c" 2
11096 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1
11097 /*
11098  * CDDL HEADER START
11099  *
11100  * The contents of this file are subject to the terms of the
11101  * Common Development and Distribution License (the "License").
11102  * You may not use this file except in compliance with the License.
11103  *
11104  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11105  * or http://www.opensolaris.org/os/licensing.
11106  * See the License for the specific language governing permissions
11107  * and limitations under the License.
11108  *
11109  * When distributing Covered Code, include this CDDL HEADER in each
11110  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11111  * If applicable, add the following below this CDDL HEADER, with the
11112  * fields enclosed by brackets "[]" replaced with your own identifying
11113  * information: Portions Copyright [yyyy] [name of copyright owner]
11114  *
11115  * CDDL HEADER END
11116  */
11117 
11118 /*
11119  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11120  *
11121  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
11122  * Use is subject to license terms.
11123  */
11124 
11125 /*	Copyright (c) 1988 AT&T	*/
11126 /*	  All Rights Reserved  	*/
11127 
11128 
11129 
11130 
11131 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
11132 /*
11133  * CDDL HEADER START
11134  *
11135  * The contents of this file are subject to the terms of the
11136  * Common Development and Distribution License (the "License").
11137  * You may not use this file except in compliance with the License.
11138  *
11139  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11140  * or http://www.opensolaris.org/os/licensing.
11141  * See the License for the specific language governing permissions
11142  * and limitations under the License.
11143  *
11144  * When distributing Covered Code, include this CDDL HEADER in each
11145  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11146  * If applicable, add the following below this CDDL HEADER, with the
11147  * fields enclosed by brackets "[]" replaced with your own identifying
11148  * information: Portions Copyright [yyyy] [name of copyright owner]
11149  *
11150  * CDDL HEADER END
11151  */
11152 
11153 /*
11154  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
11155  * Copyright 2016 Joyent, Inc.
11156  *
11157  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
11158  * Use is subject to license terms.
11159  */
11160 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2
11161 
11162 
11163 
11164 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
11165 /*
11166  * CDDL HEADER START
11167  *
11168  * The contents of this file are subject to the terms of the
11169  * Common Development and Distribution License (the "License").
11170  * You may not use this file except in compliance with the License.
11171  *
11172  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11173  * or http://www.opensolaris.org/os/licensing.
11174  * See the License for the specific language governing permissions
11175  * and limitations under the License.
11176  *
11177  * When distributing Covered Code, include this CDDL HEADER in each
11178  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11179  * If applicable, add the following below this CDDL HEADER, with the
11180  * fields enclosed by brackets "[]" replaced with your own identifying
11181  * information: Portions Copyright [yyyy] [name of copyright owner]
11182  *
11183  * CDDL HEADER END
11184  */
11185 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11186 /*	  All Rights Reserved  	*/
11187 
11188 
11189 /*
11190  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11191  * Use is subject to license terms.
11192  *
11193  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
11194  * Copyright 2016 Joyent, Inc.
11195  */
11196 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2
11197 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 1
11198 /*
11199  * CDDL HEADER START
11200  *
11201  * The contents of this file are subject to the terms of the
11202  * Common Development and Distribution License (the "License").
11203  * You may not use this file except in compliance with the License.
11204  *
11205  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11206  * or http://www.opensolaris.org/os/licensing.
11207  * See the License for the specific language governing permissions
11208  * and limitations under the License.
11209  *
11210  * When distributing Covered Code, include this CDDL HEADER in each
11211  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11212  * If applicable, add the following below this CDDL HEADER, with the
11213  * fields enclosed by brackets "[]" replaced with your own identifying
11214  * information: Portions Copyright [yyyy] [name of copyright owner]
11215  *
11216  * CDDL HEADER END
11217  */
11218 
11219 /*
11220  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
11221  */
11222 
11223 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11224 /*	  All Rights Reserved  	*/
11225 
11226 /*
11227  * University Copyright- Copyright (c) 1982, 1986, 1988
11228  * The Regents of the University of California
11229  * All Rights Reserved
11230  *
11231  * University Acknowledgment- Portions of this document are derived from
11232  * software developed by the University of California, Berkeley, and its
11233  * contributors.
11234  */
11235 
11236 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
11237 /* Copyright 2015, Joyent, Inc. */
11238 
11239 
11240 
11241 
11242 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
11243 /*
11244  * CDDL HEADER START
11245  *
11246  * The contents of this file are subject to the terms of the
11247  * Common Development and Distribution License (the "License").
11248  * You may not use this file except in compliance with the License.
11249  *
11250  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11251  * or http://www.opensolaris.org/os/licensing.
11252  * See the License for the specific language governing permissions
11253  * and limitations under the License.
11254  *
11255  * When distributing Covered Code, include this CDDL HEADER in each
11256  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11257  * If applicable, add the following below this CDDL HEADER, with the
11258  * fields enclosed by brackets "[]" replaced with your own identifying
11259  * information: Portions Copyright [yyyy] [name of copyright owner]
11260  *
11261  * CDDL HEADER END
11262  */
11263 
11264 /*
11265  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
11266  * Copyright 2016 Joyent, Inc.
11267  *
11268  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
11269  * Use is subject to license terms.
11270  */
11271 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2
11272 
11273 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
11274 /*
11275  * CDDL HEADER START
11276  *
11277  * The contents of this file are subject to the terms of the
11278  * Common Development and Distribution License (the "License").
11279  * You may not use this file except in compliance with the License.
11280  *
11281  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11282  * or http://www.opensolaris.org/os/licensing.
11283  * See the License for the specific language governing permissions
11284  * and limitations under the License.
11285  *
11286  * When distributing Covered Code, include this CDDL HEADER in each
11287  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11288  * If applicable, add the following below this CDDL HEADER, with the
11289  * fields enclosed by brackets "[]" replaced with your own identifying
11290  * information: Portions Copyright [yyyy] [name of copyright owner]
11291  *
11292  * CDDL HEADER END
11293  */
11294 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11295 /*	  All Rights Reserved  	*/
11296 
11297 
11298 /*
11299  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11300  * Use is subject to license terms.
11301  *
11302  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
11303  * Copyright 2016 Joyent, Inc.
11304  */
11305 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2
11306 
11307 
11308 
11309 
11310 
11311 /*
11312  * Flag values accessible to open(2) and fcntl(2)
11313  * The first five can only be set (exclusively) by open(2).
11314  */
11315 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11316     /* defines read/write file integrity */
11317 
11318 
11319 
11320 
11321 
11322 
11323 /*
11324  * Flag values accessible only to open(2).
11325  */
11326 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11327 /*
11328  * fcntl(2) requests
11329  *
11330  * N.B.: values are not necessarily assigned sequentially below.
11331  */
11332 
11333 
11334 
11335 
11336 
11337 
11338 
11339 /*
11340  * Applications that read /dev/mem must be built like the kernel.  A
11341  * new symbol "_KMEMUSER" is defined for this purpose.
11342  */
11343 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11344      /* EINVAL is fildes matches arg1 */
11345 # 137 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11346 /*
11347  * Numbers 20-22 have been removed and should not be reused.
11348  */
11349 
11350 
11351 
11352 
11353 
11354     /* manager */
11355 
11356 /*
11357  * Commands that refer to flock structures.  The argument types differ between
11358  * the large and small file environments; therefore, the #defined values must
11359  * as well.
11360  * The NBMAND forms are private and should not be used.
11361  * The FLOCK forms are also private and should not be used.
11362  */
11363 
11364 
11365 /* "Native" application compilation environment */
11366 # 190 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11367 /*
11368  * transitional large file interface version
11369  * These are only valid in a 32 bit application compiled with large files
11370  * option, for source compatibility, the 64-bit versions are mapped back
11371  * to the native versions.
11372  */
11373 # 233 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11374 /*
11375  * File segment locking set data type - information passed to system by user.
11376  */
11377 
11378 /* regular version, for both small and large file compilation environment */
11379 typedef struct flock {
11380  short l_type;
11381  short l_whence;
11382  off_t l_start;
11383  off_t l_len; /* len == 0 means until end of file */
11384  int l_sysid;
11385  pid_t l_pid;
11386  long l_pad[4]; /* reserve area */
11387 } flock_t;
11388 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11389 /* transitional large file interface version */
11390 
11391 
11392 
11393 typedef struct flock64 {
11394  short l_type;
11395  short l_whence;
11396  off64_t l_start;
11397  off64_t l_len; /* len == 0 means until end of file */
11398  int l_sysid;
11399  pid_t l_pid;
11400  long l_pad[4]; /* reserve area */
11401 } flock64_t;
11402 # 328 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11403 /*
11404  * File segment locking types.
11405  */
11406 
11407 
11408 
11409 
11410 
11411 /*
11412  * POSIX constants
11413  */
11414 
11415 /* Mask for file access modes */
11416 
11417 
11418 
11419 /*
11420  * DIRECTIO
11421  */
11422 
11423 
11424 
11425 
11426 /*
11427  * File share reservation type
11428  */
11429 typedef struct fshare {
11430  short f_access;
11431  short f_deny;
11432  int f_id;
11433 } fshare_t;
11434 
11435 /*
11436  * f_access values
11437  */
11438 
11439 
11440 
11441 
11442 
11443 
11444 /*
11445  * f_deny values
11446  */
11447 # 381 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11448 /*
11449  * Special flags for functions such as openat(), fstatat()....
11450  */
11451 
11452 
11453  /* || defined(_XPG7) */
11454 # 396 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
11455 /* advice for posix_fadvise */
11456 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2
11457 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
11458 /* large file compilation environment setup */
11459 # 131 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
11460 extern int fcntl(int, int, ...);
11461 extern int open(const char *, int, ...);
11462 extern int creat(const char *, mode_t);
11463 
11464 extern int posix_fadvise(int, off_t, off_t, int);
11465 extern int posix_fallocate(int, off_t, off_t);
11466 
11467 
11468 
11469 extern int openat(int, const char *, int, ...);
11470 extern int attropen(const char *, const char *, int, ...);
11471 
11472 
11473 extern int directio(int, int);
11474 
11475 
11476 /* transitional large file interface versions */
11477 
11478 
11479 extern int open64(const char *, int, ...);
11480 extern int creat64(const char *, mode_t);
11481 
11482 extern int posix_fadvise64(int, off64_t, off64_t, int);
11483 extern int posix_fallocate64(int, off64_t, off64_t);
11484 
11485 
11486 
11487 extern int openat64(int, const char *, int, ...);
11488 extern int attropen64(const char *, const char *, int, ...);
11489 # 42 "common/apptrace.c" 2
11490 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1
11491 /*
11492  * CDDL HEADER START
11493  *
11494  * The contents of this file are subject to the terms of the
11495  * Common Development and Distribution License (the "License").
11496  * You may not use this file except in compliance with the License.
11497  *
11498  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11499  * or http://www.opensolaris.org/os/licensing.
11500  * See the License for the specific language governing permissions
11501  * and limitations under the License.
11502  *
11503  * When distributing Covered Code, include this CDDL HEADER in each
11504  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11505  * If applicable, add the following below this CDDL HEADER, with the
11506  * fields enclosed by brackets "[]" replaced with your own identifying
11507  * information: Portions Copyright [yyyy] [name of copyright owner]
11508  *
11509  * CDDL HEADER END
11510  */
11511 
11512 /*
11513  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11514  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
11515  */
11516 
11517 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
11518 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
11519 /*	All Rights Reserved	*/
11520 
11521 
11522 
11523 
11524 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
11525 /*
11526  * CDDL HEADER START
11527  *
11528  * The contents of this file are subject to the terms of the
11529  * Common Development and Distribution License (the "License").
11530  * You may not use this file except in compliance with the License.
11531  *
11532  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11533  * or http://www.opensolaris.org/os/licensing.
11534  * See the License for the specific language governing permissions
11535  * and limitations under the License.
11536  *
11537  * When distributing Covered Code, include this CDDL HEADER in each
11538  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11539  * If applicable, add the following below this CDDL HEADER, with the
11540  * fields enclosed by brackets "[]" replaced with your own identifying
11541  * information: Portions Copyright [yyyy] [name of copyright owner]
11542  *
11543  * CDDL HEADER END
11544  */
11545 
11546 /*
11547  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
11548  * Copyright 2016 Joyent, Inc.
11549  *
11550  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
11551  * Use is subject to license terms.
11552  */
11553 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
11554 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
11555 /*
11556  * CDDL HEADER START
11557  *
11558  * The contents of this file are subject to the terms of the
11559  * Common Development and Distribution License (the "License").
11560  * You may not use this file except in compliance with the License.
11561  *
11562  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11563  * or http://www.opensolaris.org/os/licensing.
11564  * See the License for the specific language governing permissions
11565  * and limitations under the License.
11566  *
11567  * When distributing Covered Code, include this CDDL HEADER in each
11568  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11569  * If applicable, add the following below this CDDL HEADER, with the
11570  * fields enclosed by brackets "[]" replaced with your own identifying
11571  * information: Portions Copyright [yyyy] [name of copyright owner]
11572  *
11573  * CDDL HEADER END
11574  */
11575 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11576 /*	  All Rights Reserved  	*/
11577 
11578 
11579 /*
11580  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11581  * Use is subject to license terms.
11582  *
11583  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
11584  * Copyright 2016 Joyent, Inc.
11585  */
11586 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
11587 
11588 
11589 
11590 
11591 
11592 /*
11593  * The implementation specific header <sys/time_impl.h> includes a
11594  * definition for timestruc_t needed by the stat structure.  However,
11595  * including either <time.h>, which includes <sys/time_impl.h>, or
11596  * including <sys/time_impl.h> directly will break both X/Open and
11597  * POSIX namespace. Preceeding tag, structure, and structure member
11598  * names with underscores eliminates the namespace breakage and at the
11599  * same time, with unique type names, eliminates the possibility of
11600  * timespec_t or timestruct_t naming conflicts that could otherwise
11601  * result based on the order of inclusion of <sys/stat.h> and
11602  * <sys/time.h>.  The header <sys/time_std_impl.h> contains the
11603  * standards namespace safe versions of these definitions.
11604  */
11605 
11606 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
11607 /*
11608  * CDDL HEADER START
11609  *
11610  * The contents of this file are subject to the terms of the
11611  * Common Development and Distribution License, Version 1.0 only
11612  * (the "License").  You may not use this file except in compliance
11613  * with the License.
11614  *
11615  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11616  * or http://www.opensolaris.org/os/licensing.
11617  * See the License for the specific language governing permissions
11618  * and limitations under the License.
11619  *
11620  * When distributing Covered Code, include this CDDL HEADER in each
11621  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11622  * If applicable, add the following below this CDDL HEADER, with the
11623  * fields enclosed by brackets "[]" replaced with your own identifying
11624  * information: Portions Copyright [yyyy] [name of copyright owner]
11625  *
11626  * CDDL HEADER END
11627  */
11628 /*
11629  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
11630  * Use is subject to license terms.
11631  */
11632 
11633 /*
11634  * Implementation-private.  This header should not be included
11635  * directly by an application.  The application should instead
11636  * include <time.h> which includes this header conditionally
11637  * depending on which feature test macros are defined. By default,
11638  * this header is included by <time.h>.  X/Open and POSIX
11639  * standards requirements result in this header being included
11640  * by <time.h> only under a restricted set of conditions.
11641  */
11642 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
11643 
11644 
11645 
11646 
11647 
11648 
11649 /*
11650  * stat structure, used by stat(2) and fstat(2)
11651  */
11652 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11653 /*
11654  * large file compilation environment setup
11655  */
11656 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11657 /*
11658  * In the LP64 compilation environment, map large file interfaces
11659  * back to native versions where possible.
11660  */
11661 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11662 /*
11663  * User level stat structure definitions.
11664  */
11665 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11666 struct stat {
11667  dev_t st_dev;
11668  long st_pad1[3]; /* reserved for network id */
11669  ino_t st_ino;
11670  mode_t st_mode;
11671  nlink_t st_nlink;
11672  uid_t st_uid;
11673  gid_t st_gid;
11674  dev_t st_rdev;
11675  long st_pad2[2];
11676  off_t st_size;
11677 
11678  long st_pad3; /* future off_t expansion */
11679 
11680 
11681  timestruc_t st_atim;
11682  timestruc_t st_mtim;
11683  timestruc_t st_ctim;
11684 
11685 
11686 
11687 
11688 
11689  blksize_t st_blksize;
11690  blkcnt_t st_blocks;
11691  char st_fstype[16];
11692  long st_pad4[8]; /* expansion area */
11693 };
11694 
11695 
11696 
11697 /* transitional large file interface version */
11698 # 303 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11699 struct stat64 {
11700  dev_t st_dev;
11701  long st_pad1[3]; /* reserved for network id */
11702  ino64_t st_ino;
11703  mode_t st_mode;
11704  nlink_t st_nlink;
11705  uid_t st_uid;
11706  gid_t st_gid;
11707  dev_t st_rdev;
11708  long st_pad2[2];
11709  off64_t st_size;
11710 
11711  timestruc_t st_atim;
11712  timestruc_t st_mtim;
11713  timestruc_t st_ctim;
11714 
11715 
11716 
11717 
11718 
11719  blksize_t st_blksize;
11720  blkcnt64_t st_blocks;
11721  char st_fstype[16];
11722  long st_pad4[8]; /* expansion area */
11723 };
11724 # 401 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11725 /* MODE MASKS */
11726 
11727 /* de facto standard definitions */
11728 
11729 
11730 
11731 
11732 
11733 
11734 /* XENIX definitions are not relevant to Solaris */
11735 # 428 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11736 /* the following macros are for POSIX conformance */
11737 # 454 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11738 /* POSIX.4 macros */
11739 
11740 
11741 
11742 
11743 
11744 
11745 /*
11746  * A version number is included in the x86 SVR4 stat and mknod interfaces
11747  * so that SVR4 binaries can be supported.  An LP64 kernel that supports
11748  * the i386 ABI need to be aware of this too.
11749  */
11750 # 476 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11751  /* || defined(_XPG7) */
11752 /* for use with futimens() and utimensat() */
11753 # 486 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
11754 extern int fchmod(int, mode_t);
11755 
11756 
11757 extern int chmod(const char *, mode_t);
11758 extern int mkdir(const char *, mode_t);
11759 extern int mkfifo(const char *, mode_t);
11760 extern mode_t umask(mode_t);
11761 
11762 /* transitional large file interfaces */
11763 
11764 
11765 extern int fstat64(int, struct stat64 *);
11766 extern int stat64(const char *, struct stat64 *);
11767 extern int lstat64(const char *, struct stat64 *);
11768 
11769 
11770 extern int fstatat64(int, const char *, struct stat64 *, int);
11771 
11772 
11773 
11774 
11775 
11776  /* || defined(_XPG7) */
11777 extern int mkdirat(int, const char *, mode_t);
11778 extern int mkfifoat(int, const char *, mode_t);
11779 extern int mknodat(int, const char *, mode_t, dev_t);
11780 extern int fchmodat(int, const char *, mode_t, int);
11781 extern int futimens(int, const struct timespec[2]);
11782 extern int utimensat(int, const char *, const struct timespec[2], int);
11783 
11784 
11785 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 1
11786 /*
11787  * CDDL HEADER START
11788  *
11789  * The contents of this file are subject to the terms of the
11790  * Common Development and Distribution License (the "License").
11791  * You may not use this file except in compliance with the License.
11792  *
11793  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11794  * or http://www.opensolaris.org/os/licensing.
11795  * See the License for the specific language governing permissions
11796  * and limitations under the License.
11797  *
11798  * When distributing Covered Code, include this CDDL HEADER in each
11799  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11800  * If applicable, add the following below this CDDL HEADER, with the
11801  * fields enclosed by brackets "[]" replaced with your own identifying
11802  * information: Portions Copyright [yyyy] [name of copyright owner]
11803  *
11804  * CDDL HEADER END
11805  */
11806 
11807 /*
11808  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
11809  * Use is subject to license terms.
11810  */
11811 
11812 
11813 
11814 
11815 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
11816 /*
11817  * CDDL HEADER START
11818  *
11819  * The contents of this file are subject to the terms of the
11820  * Common Development and Distribution License (the "License").
11821  * You may not use this file except in compliance with the License.
11822  *
11823  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11824  * or http://www.opensolaris.org/os/licensing.
11825  * See the License for the specific language governing permissions
11826  * and limitations under the License.
11827  *
11828  * When distributing Covered Code, include this CDDL HEADER in each
11829  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11830  * If applicable, add the following below this CDDL HEADER, with the
11831  * fields enclosed by brackets "[]" replaced with your own identifying
11832  * information: Portions Copyright [yyyy] [name of copyright owner]
11833  *
11834  * CDDL HEADER END
11835  */
11836 
11837 /*
11838  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
11839  * Copyright 2016 Joyent, Inc.
11840  *
11841  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
11842  * Use is subject to license terms.
11843  */
11844 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2
11845 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
11846 /*
11847  * CDDL HEADER START
11848  *
11849  * The contents of this file are subject to the terms of the
11850  * Common Development and Distribution License (the "License").
11851  * You may not use this file except in compliance with the License.
11852  *
11853  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11854  * or http://www.opensolaris.org/os/licensing.
11855  * See the License for the specific language governing permissions
11856  * and limitations under the License.
11857  *
11858  * When distributing Covered Code, include this CDDL HEADER in each
11859  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11860  * If applicable, add the following below this CDDL HEADER, with the
11861  * fields enclosed by brackets "[]" replaced with your own identifying
11862  * information: Portions Copyright [yyyy] [name of copyright owner]
11863  *
11864  * CDDL HEADER END
11865  */
11866 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11867 /*	  All Rights Reserved  	*/
11868 
11869 
11870 /*
11871  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11872  * Use is subject to license terms.
11873  *
11874  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
11875  * Copyright 2016 Joyent, Inc.
11876  */
11877 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2
11878 
11879 
11880 
11881 
11882 
11883 /*
11884  * The implementation specific header for <sys/stat.h>
11885  */
11886 
11887 
11888 
11889 
11890 
11891 extern int fstat(int, struct stat *);
11892 extern int stat(const char *, struct stat *);
11893 
11894 
11895 
11896 extern int fstatat(int, const char *, struct stat *, int);
11897 
11898 
11899 
11900 extern int lstat(const char *, struct stat *);
11901 extern int mknod(const char *, mode_t, dev_t);
11902 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h"
11903 /*
11904  * Obsolete SVR3 compatibility functions.
11905  * Application software should NOT program to the _xstat interface.
11906  */
11907 
11908 
11909 extern int _fxstat(const int, int, struct stat *);
11910 extern int _xstat(const int, const char *, struct stat *);
11911 extern int _lxstat(const int, const char *, struct stat *);
11912 extern int _xmknod(const int, const char *, mode_t, dev_t);
11913 # 518 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
11914 # 43 "common/apptrace.c" 2
11915 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 1
11916 /*
11917  * CDDL HEADER START
11918  *
11919  * The contents of this file are subject to the terms of the
11920  * Common Development and Distribution License, Version 1.0 only
11921  * (the "License").  You may not use this file except in compliance
11922  * with the License.
11923  *
11924  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11925  * or http://www.opensolaris.org/os/licensing.
11926  * See the License for the specific language governing permissions
11927  * and limitations under the License.
11928  *
11929  * When distributing Covered Code, include this CDDL HEADER in each
11930  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11931  * If applicable, add the following below this CDDL HEADER, with the
11932  * fields enclosed by brackets "[]" replaced with your own identifying
11933  * information: Portions Copyright [yyyy] [name of copyright owner]
11934  *
11935  * CDDL HEADER END
11936  */
11937 /*
11938  * Copyright (c) 1998-2000 by Sun Microsystems, Inc.
11939  * All rights reserved.
11940  */
11941 
11942 
11943 
11944 
11945 #pragma ident "%Z%%M%	%I%	%E% SMI"
11946 
11947 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
11948 /*
11949  * CDDL HEADER START
11950  *
11951  * The contents of this file are subject to the terms of the
11952  * Common Development and Distribution License (the "License").
11953  * You may not use this file except in compliance with the License.
11954  *
11955  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11956  * or http://www.opensolaris.org/os/licensing.
11957  * See the License for the specific language governing permissions
11958  * and limitations under the License.
11959  *
11960  * When distributing Covered Code, include this CDDL HEADER in each
11961  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11962  * If applicable, add the following below this CDDL HEADER, with the
11963  * fields enclosed by brackets "[]" replaced with your own identifying
11964  * information: Portions Copyright [yyyy] [name of copyright owner]
11965  *
11966  * CDDL HEADER END
11967  */
11968 
11969 /*
11970  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11971  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
11972  */
11973 
11974 /*	Copyright (c) 1988 AT&T	*/
11975 /*	  All Rights Reserved  	*/
11976 
11977 /*
11978  * User-visible pieces of the ANSI C standard I/O package.
11979  */
11980 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
11981 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
11982 /*
11983  * CDDL HEADER START
11984  *
11985  * The contents of this file are subject to the terms of the
11986  * Common Development and Distribution License (the "License").
11987  * You may not use this file except in compliance with the License.
11988  *
11989  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11990  * or http://www.opensolaris.org/os/licensing.
11991  * See the License for the specific language governing permissions
11992  * and limitations under the License.
11993  *
11994  * When distributing Covered Code, include this CDDL HEADER in each
11995  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11996  * If applicable, add the following below this CDDL HEADER, with the
11997  * fields enclosed by brackets "[]" replaced with your own identifying
11998  * information: Portions Copyright [yyyy] [name of copyright owner]
11999  *
12000  * CDDL HEADER END
12001  */
12002 
12003 /*
12004  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12005  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
12006  */
12007 
12008 /*	Copyright (c) 1988 AT&T	*/
12009 /*	  All Rights Reserved  	*/
12010 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
12011 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1
12012 /*
12013  * CDDL HEADER START
12014  *
12015  * The contents of this file are subject to the terms of the
12016  * Common Development and Distribution License, Version 1.0 only
12017  * (the "License").  You may not use this file except in compliance
12018  * with the License.
12019  *
12020  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12021  * or http://www.opensolaris.org/os/licensing.
12022  * See the License for the specific language governing permissions
12023  * and limitations under the License.
12024  *
12025  * When distributing Covered Code, include this CDDL HEADER in each
12026  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12027  * If applicable, add the following below this CDDL HEADER, with the
12028  * fields enclosed by brackets "[]" replaced with your own identifying
12029  * information: Portions Copyright [yyyy] [name of copyright owner]
12030  *
12031  * CDDL HEADER END
12032  */
12033 /*	Copyright (c) 1988 AT&T	*/
12034 /*	  All Rights Reserved	*/
12035 
12036 /*
12037  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12038  *
12039  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12040  * Use is subject to license terms.
12041  */
12042 
12043 
12044 
12045 
12046 /*
12047  * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999
12048  * variable argument definitions.  For legacy support, it also defines
12049  * the pre-standard variable argument definitions.
12050  *
12051  * The varargs definitions within this header are defined in terms of
12052  * implementation definitions.  These implementation definitions reside
12053  * in <sys/va_list.h>.  This organization enables protected use of
12054  * the implementation by other standard headers without introducing
12055  * names into the users' namespace.
12056  */
12057 
12058 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1
12059 /*
12060  * CDDL HEADER START
12061  *
12062  * The contents of this file are subject to the terms of the
12063  * Common Development and Distribution License, Version 1.0 only
12064  * (the "License").  You may not use this file except in compliance
12065  * with the License.
12066  *
12067  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12068  * or http://www.opensolaris.org/os/licensing.
12069  * See the License for the specific language governing permissions
12070  * and limitations under the License.
12071  *
12072  * When distributing Covered Code, include this CDDL HEADER in each
12073  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12074  * If applicable, add the following below this CDDL HEADER, with the
12075  * fields enclosed by brackets "[]" replaced with your own identifying
12076  * information: Portions Copyright [yyyy] [name of copyright owner]
12077  *
12078  * CDDL HEADER END
12079  */
12080 /*	Copyright (c) 1988 AT&T	*/
12081 /*	  All Rights Reserved  	*/
12082 
12083 
12084 /*
12085  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12086  * Use is subject to license terms.
12087  */
12088 
12089 /*
12090  * An application should not include this header directly.  Instead it
12091  * should be included only through the inclusion of other Sun headers.
12092  *
12093  * The contents of this header is limited to identifiers specified in the
12094  * C Standard.  Any new identifiers specified in future amendments to the
12095  * C Standard must be placed in this header.  If these new identifiers
12096  * are required to also be in the C++ Standard "std" namespace, then for
12097  * anything other than macro definitions, corresponding "using" directives
12098  * must also be added to <stdarg.h>.
12099  */
12100 
12101 
12102 
12103 
12104 #pragma ident "%Z%%M%	%I%	%E% SMI"
12105 
12106 /*
12107  * This header defines the ISO C 1989 and ISO C++ 1998 variable
12108  * argument definitions.
12109  *
12110  * The varargs definitions within this header are defined in terms of
12111  * implementation definitions.  These implementation definitions reside
12112  * in <sys/va_impl.h>.  This organization enables protected use of
12113  * the implementation by other standard headers without introducing
12114  * names into the users' namespace.
12115  */
12116 
12117 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1
12118 /*
12119  * CDDL HEADER START
12120  *
12121  * The contents of this file are subject to the terms of the
12122  * Common Development and Distribution License, Version 1.0 only
12123  * (the "License").  You may not use this file except in compliance
12124  * with the License.
12125  *
12126  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12127  * or http://www.opensolaris.org/os/licensing.
12128  * See the License for the specific language governing permissions
12129  * and limitations under the License.
12130  *
12131  * When distributing Covered Code, include this CDDL HEADER in each
12132  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12133  * If applicable, add the following below this CDDL HEADER, with the
12134  * fields enclosed by brackets "[]" replaced with your own identifying
12135  * information: Portions Copyright [yyyy] [name of copyright owner]
12136  *
12137  * CDDL HEADER END
12138  */
12139 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12140 /*	  All Rights Reserved	*/
12141 
12142 
12143 /*
12144  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12145  *
12146  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12147  * Use is subject to license terms.
12148  */
12149 
12150 
12151 
12152 
12153 /*
12154  * An application should not include this header directly.  Instead it
12155  * should be included only through the inclusion of other Sun headers,
12156  * specifically <stdarg.h> and <varargs.h>.
12157  *
12158  * This header serves two purposes.
12159  *
12160  * First, it provides a common set of definitions that implementations
12161  * of the various standards for variable argument lists may use.  These
12162  * various standards are implemented in <varargs.h>, <stdarg.h>,
12163  * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>.
12164  *
12165  * Second, it provides varying implementations of the common definitions,
12166  * depending upon the compiler.
12167  */
12168 
12169 /*
12170  * The common definitions exported by this header or compilers using
12171  * this header are:
12172  *
12173  * the macro __va_start(list, name) starting the list iteration
12174  * the macro __va_arg(list, type) getting the current arg and iterating
12175  * the macro __va_copy(to, from) to bookmark the list iteration
12176  * the macro __va_end(list) to end the iteration
12177  *
12178  * In addition, the following are exported via inclusion of <sys/va_list.h>:
12179  *
12180  * the identifier __builtin_va_alist for the variable list pseudo parameter
12181  * the type __va_alist_type for the variable list pseudo parameter
12182  * the type __va_list defining the type of the variable list iterator
12183  */
12184 
12185 /*
12186  * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and
12187  * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor
12188  * macros (e.g. __sparc) to determine the protocol appropriate to the
12189  * current compilation.  It is intended that the compilation system
12190  * define the feature, processor, and compiler macros, not the user of
12191  * the system.
12192  */
12193 
12194 /*
12195  * Many compilation systems depend upon the use of special functions
12196  * built into the the compilation system to handle variable argument
12197  * lists.  These built-in symbols may include one or more of the
12198  * following:
12199  *
12200  *      __builtin_va_alist
12201  *      __builtin_va_start
12202  *      __builtin_va_arg_incr
12203  *      __builtin_stdarg_start
12204  *      __builtin_va_end
12205  *      __builtin_va_arg
12206  *      __builtin_va_copy
12207  */
12208 
12209 /*
12210  * The following are defined in <sys/va_list.h>:
12211  *
12212  *      __va_alist_type
12213  *      __va_void()
12214  *      __va_ptr_base
12215  *      ISA definitions via inclusion of <sys/isa_defs.h>
12216  *
12217  * Inclusion of this header also makes visible the symbols in <sys/va_list.h>.
12218  * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h>
12219  * via inclusion of <iso/stdarg_iso.h>.
12220  */
12221 
12222 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
12223 /*
12224  * CDDL HEADER START
12225  *
12226  * The contents of this file are subject to the terms of the
12227  * Common Development and Distribution License, Version 1.0 only
12228  * (the "License").  You may not use this file except in compliance
12229  * with the License.
12230  *
12231  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12232  * or http://www.opensolaris.org/os/licensing.
12233  * See the License for the specific language governing permissions
12234  * and limitations under the License.
12235  *
12236  * When distributing Covered Code, include this CDDL HEADER in each
12237  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12238  * If applicable, add the following below this CDDL HEADER, with the
12239  * fields enclosed by brackets "[]" replaced with your own identifying
12240  * information: Portions Copyright [yyyy] [name of copyright owner]
12241  *
12242  * CDDL HEADER END
12243  */
12244 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12245 /*	  All Rights Reserved	*/
12246 
12247 
12248 /*
12249  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12250  *
12251  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12252  * Use is subject to license terms.
12253  */
12254 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2
12255 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2
12256 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h"
12257 typedef __va_list va_list;
12258 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2
12259 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1
12260 /*
12261  * CDDL HEADER START
12262  *
12263  * The contents of this file are subject to the terms of the
12264  * Common Development and Distribution License, Version 1.0 only
12265  * (the "License").  You may not use this file except in compliance
12266  * with the License.
12267  *
12268  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12269  * or http://www.opensolaris.org/os/licensing.
12270  * See the License for the specific language governing permissions
12271  * and limitations under the License.
12272  *
12273  * When distributing Covered Code, include this CDDL HEADER in each
12274  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12275  * If applicable, add the following below this CDDL HEADER, with the
12276  * fields enclosed by brackets "[]" replaced with your own identifying
12277  * information: Portions Copyright [yyyy] [name of copyright owner]
12278  *
12279  * CDDL HEADER END
12280  */
12281 /*	Copyright (c) 1988 AT&T	*/
12282 /*	  All Rights Reserved	*/
12283 
12284 
12285 /*
12286  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12287  * Use is subject to license terms.
12288  */
12289 
12290 
12291 
12292 
12293 #pragma ident "%Z%%M%	%I%	%E% SMI"
12294 
12295 /*
12296  * An application should not include this header directly.  Instead it
12297  * should be included only through the inclusion of other Sun headers.
12298  *
12299  * This header defines the va_copy variable argument macro, which is
12300  * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++
12301  * 1998.  Because this macro is a long-standing Solaris extension, it
12302  * is also permitted in other contexts.
12303  *
12304  * The varargs definitions within this header are defined in terms of
12305  * implementation definitions.  These implementation definitions reside
12306  * in <sys/va_list.h>.  This organization enables protected use of
12307  * the implementation by other standard headers without introducing
12308  * names into the users' namespace.
12309  */
12310 
12311 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
12312 /*
12313  * CDDL HEADER START
12314  *
12315  * The contents of this file are subject to the terms of the
12316  * Common Development and Distribution License (the "License").
12317  * You may not use this file except in compliance with the License.
12318  *
12319  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12320  * or http://www.opensolaris.org/os/licensing.
12321  * See the License for the specific language governing permissions
12322  * and limitations under the License.
12323  *
12324  * When distributing Covered Code, include this CDDL HEADER in each
12325  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12326  * If applicable, add the following below this CDDL HEADER, with the
12327  * fields enclosed by brackets "[]" replaced with your own identifying
12328  * information: Portions Copyright [yyyy] [name of copyright owner]
12329  *
12330  * CDDL HEADER END
12331  */
12332 
12333 /*
12334  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
12335  * Copyright 2016 Joyent, Inc.
12336  *
12337  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12338  * Use is subject to license terms.
12339  */
12340 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2
12341 
12342 
12343 
12344 
12345 
12346 /*
12347  * va_copy was initially a Solaris extension to provide a portable
12348  * way to perform a variable argument list ``bookmarking'' function.
12349  * It is now specified in the ISO/IEC 9899:1999 standard.
12350  */
12351 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2
12352 
12353 /*
12354  * Allow global visibility for symbols defined in
12355  * C++ "std" namespace in <iso/stdarg_iso.h>.
12356  */
12357 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
12358 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/dlfcn.h" 1
12359 /*
12360  * CDDL HEADER START
12361  *
12362  * The contents of this file are subject to the terms of the
12363  * Common Development and Distribution License (the "License").
12364  * You may not use this file except in compliance with the License.
12365  *
12366  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12367  * or http://www.opensolaris.org/os/licensing.
12368  * See the License for the specific language governing permissions
12369  * and limitations under the License.
12370  *
12371  * When distributing Covered Code, include this CDDL HEADER in each
12372  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12373  * If applicable, add the following below this CDDL HEADER, with the
12374  * fields enclosed by brackets "[]" replaced with your own identifying
12375  * information: Portions Copyright [yyyy] [name of copyright owner]
12376  *
12377  * CDDL HEADER END
12378  */
12379 /*
12380  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12381  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
12382  *
12383  *	Copyright (c) 1989 AT&T
12384  *	  All Rights Reserved
12385  *
12386  */
12387 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
12388 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 1
12389 /*
12390  * CDDL HEADER START
12391  *
12392  * The contents of this file are subject to the terms of the
12393  * Common Development and Distribution License (the "License").
12394  * You may not use this file except in compliance with the License.
12395  *
12396  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12397  * or http://www.opensolaris.org/os/licensing.
12398  * See the License for the specific language governing permissions
12399  * and limitations under the License.
12400  *
12401  * When distributing Covered Code, include this CDDL HEADER in each
12402  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12403  * If applicable, add the following below this CDDL HEADER, with the
12404  * fields enclosed by brackets "[]" replaced with your own identifying
12405  * information: Portions Copyright [yyyy] [name of copyright owner]
12406  *
12407  * CDDL HEADER END
12408  */
12409 /*
12410  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12411  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
12412  */
12413 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
12414 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/signal.h" 1
12415 /*
12416  * CDDL HEADER START
12417  *
12418  * The contents of this file are subject to the terms of the
12419  * Common Development and Distribution License, Version 1.0 only
12420  * (the "License").  You may not use this file except in compliance
12421  * with the License.
12422  *
12423  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12424  * or http://www.opensolaris.org/os/licensing.
12425  * See the License for the specific language governing permissions
12426  * and limitations under the License.
12427  *
12428  * When distributing Covered Code, include this CDDL HEADER in each
12429  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12430  * If applicable, add the following below this CDDL HEADER, with the
12431  * fields enclosed by brackets "[]" replaced with your own identifying
12432  * information: Portions Copyright [yyyy] [name of copyright owner]
12433  *
12434  * CDDL HEADER END
12435  */
12436 /*	Copyright (c) 1988 AT&T	*/
12437 /*	  All Rights Reserved  	*/
12438 
12439 /*
12440  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12441  *
12442  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12443  * Use is subject to license terms.
12444  */
12445 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
12446 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h" 1
12447 /*
12448  * CDDL HEADER START
12449  *
12450  * The contents of this file are subject to the terms of the
12451  * Common Development and Distribution License (the "License").
12452  * You may not use this file except in compliance with the License.
12453  *
12454  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12455  * or http://www.opensolaris.org/os/licensing.
12456  * See the License for the specific language governing permissions
12457  * and limitations under the License.
12458  *
12459  * When distributing Covered Code, include this CDDL HEADER in each
12460  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12461  * If applicable, add the following below this CDDL HEADER, with the
12462  * fields enclosed by brackets "[]" replaced with your own identifying
12463  * information: Portions Copyright [yyyy] [name of copyright owner]
12464  *
12465  * CDDL HEADER END
12466  */
12467 
12468 /*
12469  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12470  * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
12471  */
12472 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
12473 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h" 1
12474 /*
12475  * CDDL HEADER START
12476  *
12477  * The contents of this file are subject to the terms of the
12478  * Common Development and Distribution License (the "License").
12479  * You may not use this file except in compliance with the License.
12480  *
12481  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12482  * or http://www.opensolaris.org/os/licensing.
12483  * See the License for the specific language governing permissions
12484  * and limitations under the License.
12485  *
12486  * When distributing Covered Code, include this CDDL HEADER in each
12487  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12488  * If applicable, add the following below this CDDL HEADER, with the
12489  * fields enclosed by brackets "[]" replaced with your own identifying
12490  * information: Portions Copyright [yyyy] [name of copyright owner]
12491  *
12492  * CDDL HEADER END
12493  */
12494 
12495 /*
12496  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12497  * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved.
12498  */
12499 
12500 
12501 
12502 
12503 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
12504 /*
12505  * CDDL HEADER START
12506  *
12507  * The contents of this file are subject to the terms of the
12508  * Common Development and Distribution License (the "License").
12509  * You may not use this file except in compliance with the License.
12510  *
12511  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12512  * or http://www.opensolaris.org/os/licensing.
12513  * See the License for the specific language governing permissions
12514  * and limitations under the License.
12515  *
12516  * When distributing Covered Code, include this CDDL HEADER in each
12517  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12518  * If applicable, add the following below this CDDL HEADER, with the
12519  * fields enclosed by brackets "[]" replaced with your own identifying
12520  * information: Portions Copyright [yyyy] [name of copyright owner]
12521  *
12522  * CDDL HEADER END
12523  */
12524 
12525 /*
12526  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
12527  * Copyright 2016 Joyent, Inc.
12528  *
12529  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12530  * Use is subject to license terms.
12531  */
12532 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h" 2
12533 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 1
12534 /*
12535  * CDDL HEADER START
12536  *
12537  * The contents of this file are subject to the terms of the
12538  * Common Development and Distribution License (the "License").
12539  * You may not use this file except in compliance with the License.
12540  *
12541  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12542  * or http://www.opensolaris.org/os/licensing.
12543  * See the License for the specific language governing permissions
12544  * and limitations under the License.
12545  *
12546  * When distributing Covered Code, include this CDDL HEADER in each
12547  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12548  * If applicable, add the following below this CDDL HEADER, with the
12549  * fields enclosed by brackets "[]" replaced with your own identifying
12550  * information: Portions Copyright [yyyy] [name of copyright owner]
12551  *
12552  * CDDL HEADER END
12553  */
12554 
12555 /*
12556  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12557  * Copyright 2014 PALO, Richard.
12558  *
12559  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12560  * Use is subject to license terms.
12561  */
12562 
12563 /*
12564  * An application should not include this header directly.  Instead it
12565  * should be included only through the inclusion of other Sun headers.
12566  *
12567  * The contents of this header is limited to identifiers specified in the
12568  * C Standard.  Any new identifiers specified in future amendments to the
12569  * C Standard must be placed in this header.  If these new identifiers
12570  * are required to also be in the C++ Standard "std" namespace, then for
12571  * anything other than macro definitions, corresponding "using" directives
12572  * must also be added to <wchar.h>.
12573  */
12574 
12575 
12576 
12577 
12578 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
12579 /*
12580  * CDDL HEADER START
12581  *
12582  * The contents of this file are subject to the terms of the
12583  * Common Development and Distribution License (the "License").
12584  * You may not use this file except in compliance with the License.
12585  *
12586  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12587  * or http://www.opensolaris.org/os/licensing.
12588  * See the License for the specific language governing permissions
12589  * and limitations under the License.
12590  *
12591  * When distributing Covered Code, include this CDDL HEADER in each
12592  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12593  * If applicable, add the following below this CDDL HEADER, with the
12594  * fields enclosed by brackets "[]" replaced with your own identifying
12595  * information: Portions Copyright [yyyy] [name of copyright owner]
12596  *
12597  * CDDL HEADER END
12598  */
12599 
12600 /*
12601  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
12602  * Copyright 2016 Joyent, Inc.
12603  *
12604  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12605  * Use is subject to license terms.
12606  */
12607 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12608 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
12609 /*
12610  * This file and its contents are supplied under the terms of the
12611  * Common Development and Distribution License ("CDDL"), version 1.0.
12612  * You may only use this file in accordance with the terms of version
12613  * 1.0 of the CDDL.
12614  *
12615  * A full copy of the text of the CDDL should have accompanied this
12616  * source.  A copy of the CDDL is also available via the Internet at
12617  * http://www.illumos.org/license/CDDL.
12618  */
12619 
12620 /*
12621  * Copyright 2014-2016 PALO, Richard.
12622  */
12623 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12624 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1
12625 /*
12626  * CDDL HEADER START
12627  *
12628  * The contents of this file are subject to the terms of the
12629  * Common Development and Distribution License, Version 1.0 only
12630  * (the "License").  You may not use this file except in compliance
12631  * with the License.
12632  *
12633  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12634  * or http://www.opensolaris.org/os/licensing.
12635  * See the License for the specific language governing permissions
12636  * and limitations under the License.
12637  *
12638  * When distributing Covered Code, include this CDDL HEADER in each
12639  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12640  * If applicable, add the following below this CDDL HEADER, with the
12641  * fields enclosed by brackets "[]" replaced with your own identifying
12642  * information: Portions Copyright [yyyy] [name of copyright owner]
12643  *
12644  * CDDL HEADER END
12645  */
12646 /*
12647  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12648  * Use is subject to license terms.
12649  */
12650 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12651 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar_impl.h" 1
12652 /*
12653  * CDDL HEADER START
12654  *
12655  * The contents of this file are subject to the terms of the
12656  * Common Development and Distribution License, Version 1.0 only
12657  * (the "License").  You may not use this file except in compliance
12658  * with the License.
12659  *
12660  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12661  * or http://www.opensolaris.org/os/licensing.
12662  * See the License for the specific language governing permissions
12663  * and limitations under the License.
12664  *
12665  * When distributing Covered Code, include this CDDL HEADER in each
12666  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12667  * If applicable, add the following below this CDDL HEADER, with the
12668  * fields enclosed by brackets "[]" replaced with your own identifying
12669  * information: Portions Copyright [yyyy] [name of copyright owner]
12670  *
12671  * CDDL HEADER END
12672  */
12673 /*
12674  * Copyright (c) 1998 by Sun Microsystems, Inc.
12675  * All rights reserved.
12676  */
12677 
12678 
12679 
12680 
12681 #pragma ident "%Z%%M%	%I%	%E% SMI"
12682 
12683 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
12684 /*
12685  * CDDL HEADER START
12686  *
12687  * The contents of this file are subject to the terms of the
12688  * Common Development and Distribution License (the "License").
12689  * You may not use this file except in compliance with the License.
12690  *
12691  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12692  * or http://www.opensolaris.org/os/licensing.
12693  * See the License for the specific language governing permissions
12694  * and limitations under the License.
12695  *
12696  *
12697  * When distributing Covered Code, include this CDDL HEADER in each
12698  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12699  * If applicable, add the following below this CDDL HEADER, with the
12700  * fields enclosed by brackets "[]" replaced with your own identifying
12701  * information: Portions Copyright [yyyy] [name of copyright owner]
12702  *
12703  * CDDL HEADER END
12704  */
12705 
12706 /*
12707  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
12708  * Use is subject to license terms.
12709  * Copyright 2016 Joyent, Inc.
12710  */
12711 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar_impl.h" 2
12712 
12713 
12714 
12715 
12716 
12717 
12718 
12719 typedef struct __mbstate_t {
12720 
12721 
12722 
12723  int __filler[6];
12724 
12725 } __mbstate_t;
12726 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12727 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1
12728 /*
12729  * CDDL HEADER START
12730  *
12731  * The contents of this file are subject to the terms of the
12732  * Common Development and Distribution License, Version 1.0 only
12733  * (the "License").  You may not use this file except in compliance
12734  * with the License.
12735  *
12736  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12737  * or http://www.opensolaris.org/os/licensing.
12738  * See the License for the specific language governing permissions
12739  * and limitations under the License.
12740  *
12741  * When distributing Covered Code, include this CDDL HEADER in each
12742  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12743  * If applicable, add the following below this CDDL HEADER, with the
12744  * fields enclosed by brackets "[]" replaced with your own identifying
12745  * information: Portions Copyright [yyyy] [name of copyright owner]
12746  *
12747  * CDDL HEADER END
12748  */
12749 /*	Copyright (c) 1988 AT&T	*/
12750 /*	  All Rights Reserved  	*/
12751 
12752 /*
12753  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12754  * Copyright 2014 PALO, Richard.
12755  *
12756  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12757  * Use is subject to license terms.
12758  */
12759 
12760 /*
12761  * An application should not include this header directly.  Instead it
12762  * should be included only through the inclusion of other Sun headers.
12763  *
12764  * The contents of this header is limited to identifiers specified in the
12765  * C Standard.  Any new identifiers specified in future amendments to the
12766  * C Standard must be placed in this header.  If these new identifiers
12767  * are required to also be in the C++ Standard "std" namespace, then for
12768  * anything other than macro definitions, corresponding "using" directives
12769  * must also be added to <time.h.h>.
12770  */
12771 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12772 
12773 
12774 
12775 
12776 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
12777 /*
12778  * CDDL HEADER START
12779  *
12780  * The contents of this file are subject to the terms of the
12781  * Common Development and Distribution License (the "License").
12782  * You may not use this file except in compliance with the License.
12783  *
12784  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12785  * or http://www.opensolaris.org/os/licensing.
12786  * See the License for the specific language governing permissions
12787  * and limitations under the License.
12788  *
12789  * When distributing Covered Code, include this CDDL HEADER in each
12790  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12791  * If applicable, add the following below this CDDL HEADER, with the
12792  * fields enclosed by brackets "[]" replaced with your own identifying
12793  * information: Portions Copyright [yyyy] [name of copyright owner]
12794  *
12795  * CDDL HEADER END
12796  */
12797 
12798 /*
12799  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12800  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
12801  */
12802 
12803 /*	Copyright (c) 1988 AT&T	*/
12804 /*	  All Rights Reserved  	*/
12805 
12806 /*
12807  * User-visible pieces of the ANSI C standard I/O package.
12808  */
12809 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12810 
12811 
12812 
12813 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1
12814 /*
12815  * CDDL HEADER START
12816  *
12817  * The contents of this file are subject to the terms of the
12818  * Common Development and Distribution License, Version 1.0 only
12819  * (the "License").  You may not use this file except in compliance
12820  * with the License.
12821  *
12822  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12823  * or http://www.opensolaris.org/os/licensing.
12824  * See the License for the specific language governing permissions
12825  * and limitations under the License.
12826  *
12827  * When distributing Covered Code, include this CDDL HEADER in each
12828  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12829  * If applicable, add the following below this CDDL HEADER, with the
12830  * fields enclosed by brackets "[]" replaced with your own identifying
12831  * information: Portions Copyright [yyyy] [name of copyright owner]
12832  *
12833  * CDDL HEADER END
12834  */
12835 /*	Copyright (c) 1988 AT&T	*/
12836 /*	  All Rights Reserved  	*/
12837 
12838 
12839 /*
12840  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12841  *
12842  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12843  * Use is subject to license terms.
12844  */
12845 
12846 
12847 
12848 
12849 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 1
12850 /*
12851  * CDDL HEADER START
12852  *
12853  * The contents of this file are subject to the terms of the
12854  * Common Development and Distribution License, Version 1.0 only
12855  * (the "License").  You may not use this file except in compliance
12856  * with the License.
12857  *
12858  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12859  * or http://www.opensolaris.org/os/licensing.
12860  * See the License for the specific language governing permissions
12861  * and limitations under the License.
12862  *
12863  * When distributing Covered Code, include this CDDL HEADER in each
12864  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12865  * If applicable, add the following below this CDDL HEADER, with the
12866  * fields enclosed by brackets "[]" replaced with your own identifying
12867  * information: Portions Copyright [yyyy] [name of copyright owner]
12868  *
12869  * CDDL HEADER END
12870  */
12871 /*	Copyright (c) 1988 AT&T	*/
12872 /*	  All Rights Reserved  	*/
12873 
12874 /*
12875  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12876  *
12877  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
12878  * Use is subject to license terms.
12879  */
12880 
12881 /*
12882  * An application should not include this header directly.  Instead it
12883  * should be included only through the inclusion of other Sun headers.
12884  *
12885  * The contents of this header is limited to identifiers specified in the
12886  * C Standard.  Any new identifiers specified in future amendments to the
12887  * C Standard must be placed in this header.  If these new identifiers
12888  * are required to also be in the C++ Standard "std" namespace, then for
12889  * anything other than macro definitions, corresponding "using" directives
12890  * must also be added to <ctype.h>.
12891  */
12892 
12893 
12894 
12895 
12896 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
12897 /*
12898  * CDDL HEADER START
12899  *
12900  * The contents of this file are subject to the terms of the
12901  * Common Development and Distribution License (the "License").
12902  * You may not use this file except in compliance with the License.
12903  *
12904  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12905  * or http://www.opensolaris.org/os/licensing.
12906  * See the License for the specific language governing permissions
12907  * and limitations under the License.
12908  *
12909  * When distributing Covered Code, include this CDDL HEADER in each
12910  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12911  * If applicable, add the following below this CDDL HEADER, with the
12912  * fields enclosed by brackets "[]" replaced with your own identifying
12913  * information: Portions Copyright [yyyy] [name of copyright owner]
12914  *
12915  * CDDL HEADER END
12916  */
12917 
12918 /*
12919  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
12920  * Copyright 2016 Joyent, Inc.
12921  *
12922  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12923  * Use is subject to license terms.
12924  */
12925 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 2
12926 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h"
12927 extern unsigned char __ctype[];
12928 extern unsigned int *__ctype_mask;
12929 extern int *__trans_upper;
12930 extern int *__trans_lower;
12931 
12932 
12933 
12934 
12935 
12936 /*
12937  * These used to be macros, which while more efficient, precludes operation
12938  * with thread specific locales.  The old macros will still work, but new
12939  * code compiles to use functions.  This is specifically permitted by the
12940  * various standards.  Only _tolower and _toupper were required to be
12941  * delivered in macro form.
12942  */
12943 extern int isalnum(int);
12944 extern int isalpha(int);
12945 extern int iscntrl(int);
12946 extern int isdigit(int);
12947 extern int isgraph(int);
12948 extern int islower(int);
12949 extern int isprint(int);
12950 extern int ispunct(int);
12951 extern int isspace(int);
12952 extern int isupper(int);
12953 extern int isxdigit(int);
12954 
12955 extern int isblank(int);
12956 
12957 
12958 extern int tolower(int);
12959 extern int toupper(int);
12960 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 2
12961 
12962 /*
12963  * Allow global visibility for symbols defined in
12964  * C++ "std" namespace in <iso/ctype_iso.h>.
12965  */
12966 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h"
12967 extern int isascii(int);
12968 extern int toascii(int);
12969 extern int _tolower(int);
12970 extern int _toupper(int);
12971 # 98 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h"
12972 extern int isalnum_l(int, locale_t);
12973 extern int isalpha_l(int, locale_t);
12974 extern int isblank_l(int, locale_t);
12975 extern int iscntrl_l(int, locale_t);
12976 extern int isdigit_l(int, locale_t);
12977 extern int isgraph_l(int, locale_t);
12978 extern int islower_l(int, locale_t);
12979 extern int isprint_l(int, locale_t);
12980 extern int ispunct_l(int, locale_t);
12981 extern int isspace_l(int, locale_t);
12982 extern int isupper_l(int, locale_t);
12983 extern int isxdigit_l(int, locale_t);
12984 extern int tolower_l(int, locale_t);
12985 extern int toupper_l(int, locale_t);
12986 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
12987 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1
12988 /*
12989  * CDDL HEADER START
12990  *
12991  * The contents of this file are subject to the terms of the
12992  * Common Development and Distribution License, Version 1.0 only
12993  * (the "License").  You may not use this file except in compliance
12994  * with the License.
12995  *
12996  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12997  * or http://www.opensolaris.org/os/licensing.
12998  * See the License for the specific language governing permissions
12999  * and limitations under the License.
13000  *
13001  * When distributing Covered Code, include this CDDL HEADER in each
13002  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13003  * If applicable, add the following below this CDDL HEADER, with the
13004  * fields enclosed by brackets "[]" replaced with your own identifying
13005  * information: Portions Copyright [yyyy] [name of copyright owner]
13006  *
13007  * CDDL HEADER END
13008  */
13009 /*	Copyright (c) 1988 AT&T	*/
13010 /*	  All Rights Reserved  	*/
13011 
13012 
13013 /*
13014  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
13015  * Use is subject to license terms.
13016  */
13017 
13018 
13019 
13020 
13021 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
13022 /*
13023  * CDDL HEADER START
13024  *
13025  * The contents of this file are subject to the terms of the
13026  * Common Development and Distribution License (the "License").
13027  * You may not use this file except in compliance with the License.
13028  *
13029  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13030  * or http://www.opensolaris.org/os/licensing.
13031  * See the License for the specific language governing permissions
13032  * and limitations under the License.
13033  *
13034  *
13035  * When distributing Covered Code, include this CDDL HEADER in each
13036  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13037  * If applicable, add the following below this CDDL HEADER, with the
13038  * fields enclosed by brackets "[]" replaced with your own identifying
13039  * information: Portions Copyright [yyyy] [name of copyright owner]
13040  *
13041  * CDDL HEADER END
13042  */
13043 
13044 /*
13045  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
13046  * Use is subject to license terms.
13047  * Copyright 2016 Joyent, Inc.
13048  */
13049 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2
13050 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 1
13051 /*
13052  * CDDL HEADER START
13053  *
13054  * The contents of this file are subject to the terms of the
13055  * Common Development and Distribution License, Version 1.0 only
13056  * (the "License").  You may not use this file except in compliance
13057  * with the License.
13058  *
13059  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13060  * or http://www.opensolaris.org/os/licensing.
13061  * See the License for the specific language governing permissions
13062  * and limitations under the License.
13063  *
13064  * When distributing Covered Code, include this CDDL HEADER in each
13065  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13066  * If applicable, add the following below this CDDL HEADER, with the
13067  * fields enclosed by brackets "[]" replaced with your own identifying
13068  * information: Portions Copyright [yyyy] [name of copyright owner]
13069  *
13070  * CDDL HEADER END
13071  */
13072 /*	Copyright (c) 1988 AT&T	*/
13073 /*	  All Rights Reserved  	*/
13074 
13075 
13076 /*
13077  * Copyright 1999-2003 Sun Microsystems, Inc.  All rights reserved.
13078  * Use is subject to license terms.
13079  */
13080 
13081 /*
13082  * Copyright 2014 PALO, Richard.
13083  * Copyright 2016 Joyent, Inc.
13084  */
13085 
13086 /*
13087  * An application should not include this header directly.  Instead it
13088  * should be included only through the inclusion of other Sun headers.
13089  *
13090  * The contents of this header is limited to identifiers specified in the
13091  * C Standard.  Any new identifiers specified in future amendments to the
13092  * C Standard must be placed in this header.  If these new identifiers
13093  * are required to also be in the C++ Standard "std" namespace, then for
13094  * anything other than macro definitions, corresponding "using" directives
13095  * must also be added to <stddef.h.h>.
13096  */
13097 
13098 
13099 
13100 
13101 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
13102 /*
13103  * CDDL HEADER START
13104  *
13105  * The contents of this file are subject to the terms of the
13106  * Common Development and Distribution License (the "License").
13107  * You may not use this file except in compliance with the License.
13108  *
13109  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13110  * or http://www.opensolaris.org/os/licensing.
13111  * See the License for the specific language governing permissions
13112  * and limitations under the License.
13113  *
13114  *
13115  * When distributing Covered Code, include this CDDL HEADER in each
13116  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13117  * If applicable, add the following below this CDDL HEADER, with the
13118  * fields enclosed by brackets "[]" replaced with your own identifying
13119  * information: Portions Copyright [yyyy] [name of copyright owner]
13120  *
13121  * CDDL HEADER END
13122  */
13123 
13124 /*
13125  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
13126  * Use is subject to license terms.
13127  * Copyright 2016 Joyent, Inc.
13128  */
13129 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2
13130 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
13131 /*
13132  * CDDL HEADER START
13133  *
13134  * The contents of this file are subject to the terms of the
13135  * Common Development and Distribution License (the "License").
13136  * You may not use this file except in compliance with the License.
13137  *
13138  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13139  * or http://www.opensolaris.org/os/licensing.
13140  * See the License for the specific language governing permissions
13141  * and limitations under the License.
13142  *
13143  * When distributing Covered Code, include this CDDL HEADER in each
13144  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13145  * If applicable, add the following below this CDDL HEADER, with the
13146  * fields enclosed by brackets "[]" replaced with your own identifying
13147  * information: Portions Copyright [yyyy] [name of copyright owner]
13148  *
13149  * CDDL HEADER END
13150  */
13151 
13152 /*
13153  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
13154  * Copyright 2016 Joyent, Inc.
13155  *
13156  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
13157  * Use is subject to license terms.
13158  */
13159 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2
13160 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
13161 /*
13162  * This file and its contents are supplied under the terms of the
13163  * Common Development and Distribution License ("CDDL"), version 1.0.
13164  * You may only use this file in accordance with the terms of version
13165  * 1.0 of the CDDL.
13166  *
13167  * A full copy of the text of the CDDL should have accompanied this
13168  * source.  A copy of the CDDL is also available via the Internet at
13169  * http://www.illumos.org/license/CDDL.
13170  */
13171 
13172 /*
13173  * Copyright 2014-2016 PALO, Richard.
13174  */
13175 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2
13176 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h"
13177 typedef long max_align_t;
13178 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2
13179 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1
13180 /*
13181  * This file and its contents are supplied under the terms of the
13182  * Common Development and Distribution License ("CDDL"), version 1.0.
13183  * You may only use this file in accordance with the terms of version
13184  * 1.0 of the CDDL.
13185  *
13186  * A full copy of the text of the CDDL should have accompanied this
13187  * source.  A copy of the CDDL is also available via the Internet at
13188  * http://www.illumos.org/license/CDDL.
13189  */
13190 
13191 /*
13192  * Copyright 2017 Toomas Soome <tsoome@me.com>
13193  */
13194 
13195 
13196 
13197 
13198 /*
13199  * Commonly used macros and definitions.
13200  */
13201 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h"
13202 /*
13203  * We must not expose container_of() to userland, but we want it
13204  * to be available for early boot and for the kernel.
13205  */
13206 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2
13207 
13208 /*
13209  * Allow global visibility for symbols defined in
13210  * C++ "std" namespace in <iso/stddef_iso.h>.
13211  */
13212 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h"
13213 /*
13214  * wchar_t is a built-in type in standard C++ and as such is not
13215  * defined here when using standard C++. However, the GNU compiler
13216  * fixincludes utility nonetheless creates its own version of this
13217  * header for use by gcc and g++. In that version it adds a redundant
13218  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
13219  * header we need to include the following magic comment:
13220  *
13221  * we must use the C++ compiler's type
13222  *
13223  * The above comment should not be removed or changed until GNU
13224  * gcc/fixinc/inclhack.def is updated to bypass this header.
13225  */
13226 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
13227 
13228 
13229 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
13230 /*
13231  * CDDL HEADER START
13232  *
13233  * The contents of this file are subject to the terms of the
13234  * Common Development and Distribution License, Version 1.0 only
13235  * (the "License").  You may not use this file except in compliance
13236  * with the License.
13237  *
13238  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13239  * or http://www.opensolaris.org/os/licensing.
13240  * See the License for the specific language governing permissions
13241  * and limitations under the License.
13242  *
13243  * When distributing Covered Code, include this CDDL HEADER in each
13244  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13245  * If applicable, add the following below this CDDL HEADER, with the
13246  * fields enclosed by brackets "[]" replaced with your own identifying
13247  * information: Portions Copyright [yyyy] [name of copyright owner]
13248  *
13249  * CDDL HEADER END
13250  */
13251 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13252 /*	  All Rights Reserved	*/
13253 
13254 
13255 /*
13256  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13257  *
13258  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
13259  * Use is subject to license terms.
13260  */
13261 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h" 2
13262 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13263 /*
13264  * wchar_t is a built-in type in standard C++ and as such is not
13265  * defined here when using standard C++. However, the GNU compiler
13266  * fixincludes utility nonetheless creates its own version of this
13267  * header for use by gcc and g++. In that version it adds a redundant
13268  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
13269  * header we need to include the following magic comment:
13270  *
13271  * we must use the C++ compiler's type
13272  *
13273  * The above comment should not be removed or changed until GNU
13274  * gcc/fixinc/inclhack.def is updated to bypass this header.
13275  */
13276 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13277 typedef long wint_t;
13278 # 122 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13279 /* not XPG4 and not XPG4v2 */
13280 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13281 typedef __mbstate_t mbstate_t;
13282 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13283 /* not XPG4 and not XPG4v2 */
13284 
13285 
13286 
13287 # 172 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13288 #pragma redefine_extname fgetwc __fgetwc_xpg5
13289 # 172 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13290 
13291 
13292 # 173 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13293 #pragma redefine_extname getwc __getwc_xpg5
13294 # 173 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13295 
13296 
13297 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13298 #pragma redefine_extname getwchar __getwchar_xpg5
13299 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13300 
13301 
13302 # 175 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13303 #pragma redefine_extname fputwc __fputwc_xpg5
13304 # 175 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13305 
13306 
13307 # 176 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13308 #pragma redefine_extname putwc __putwc_xpg5
13309 # 176 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13310 
13311 
13312 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13313 #pragma redefine_extname putwchar __putwchar_xpg5
13314 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13315 
13316 
13317 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13318 #pragma redefine_extname fgetws __fgetws_xpg5
13319 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13320 
13321 
13322 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13323 #pragma redefine_extname fputws __fputws_xpg5
13324 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13325 
13326 
13327 # 180 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13328 #pragma redefine_extname ungetwc __ungetwc_xpg5
13329 # 180 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13330 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13331 extern wint_t fgetwc(__FILE *);
13332 extern wchar_t *fgetws(wchar_t *, int, __FILE *);
13333 extern wint_t fputwc(wint_t, __FILE *);
13334 extern int fputws(const wchar_t *, __FILE *);
13335 extern wint_t ungetwc(wint_t, __FILE *);
13336 extern wint_t getwc(__FILE *);
13337 extern wint_t getwchar(void);
13338 extern wint_t putwc(wint_t, __FILE *);
13339 extern wint_t putwchar(wint_t);
13340 extern double wcstod(const wchar_t *, wchar_t **);
13341 extern long wcstol(const wchar_t *, wchar_t **,
13342  int);
13343 extern unsigned long wcstoul(const wchar_t *,
13344  wchar_t **, int);
13345 extern wchar_t *wcscat(wchar_t *, const wchar_t *);
13346 extern int wcscmp(const wchar_t *, const wchar_t *);
13347 extern int wcscoll(const wchar_t *, const wchar_t *);
13348 extern wchar_t *wcscpy(wchar_t *, const wchar_t *);
13349 extern size_t wcscspn(const wchar_t *, const wchar_t *);
13350 extern size_t wcslen(const wchar_t *);
13351 extern wchar_t *wcsncat(wchar_t *, const wchar_t *,
13352  size_t);
13353 extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
13354 extern wchar_t *wcsncpy(wchar_t *, const wchar_t *,
13355  size_t);
13356 extern size_t wcsspn(const wchar_t *, const wchar_t *);
13357 extern size_t wcsxfrm(wchar_t *, const wchar_t *,
13358  size_t);
13359 # 253 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13360 extern wchar_t *wcschr(const wchar_t *, wchar_t);
13361 extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
13362 extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
13363 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13364 
13365 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13366 #pragma redefine_extname wcstok __wcstok_xpg5
13367 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13368 
13369 
13370 # 265 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13371 #pragma redefine_extname wcsftime __wcsftime_xpg5
13372 # 265 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13373 
13374 extern wchar_t *wcstok(wchar_t *, const wchar_t *,
13375  wchar_t **);
13376 extern size_t wcsftime(wchar_t *, size_t,
13377  const wchar_t *, const struct tm *);
13378 # 281 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13379 /* not XPG4 and not XPG4v2 */
13380 
13381 extern wint_t btowc(int);
13382 extern int fwprintf(__FILE *, const wchar_t *,
13383    ...);
13384 extern int fwscanf(__FILE *, const wchar_t *,
13385    ...);
13386 extern int fwide(__FILE *, int);
13387 extern int mbsinit(const mbstate_t *);
13388 extern size_t mbrlen(const char *, size_t,
13389    mbstate_t *);
13390 extern size_t mbrtowc(wchar_t *, const char *,
13391    size_t, mbstate_t *);
13392 extern size_t mbsrtowcs(wchar_t *, const char **,
13393    size_t, mbstate_t *);
13394 extern int swprintf(wchar_t *, size_t,
13395    const wchar_t *, ...);
13396 extern int swscanf(const wchar_t *,
13397    const wchar_t *, ...);
13398 extern int vfwprintf(__FILE *, const wchar_t *,
13399    __va_list);
13400 extern int vwprintf(const wchar_t *, __va_list);
13401 extern int vswprintf(wchar_t *, size_t,
13402    const wchar_t *, __va_list);
13403 extern size_t wcrtomb(char *, wchar_t,
13404    mbstate_t *);
13405 extern size_t wcsrtombs(char *, const wchar_t **,
13406    size_t, mbstate_t *);
13407 
13408 extern size_t wcsnrtombs(char *, const wchar_t **,
13409    size_t, size_t, mbstate_t *);
13410 
13411 extern int wctob(wint_t);
13412 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t);
13413 extern wchar_t *wmemcpy(wchar_t *,
13414    const wchar_t *, size_t);
13415 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
13416 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t);
13417 extern int wprintf(const wchar_t *, ...);
13418 extern int wscanf(const wchar_t *, ...);
13419 # 335 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_iso.h"
13420 extern wchar_t *wcsstr(const wchar_t *,
13421  const wchar_t *);
13422 extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
13423 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h" 2
13424 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_c99.h" 1
13425 /*
13426  * CDDL HEADER START
13427  *
13428  * The contents of this file are subject to the terms of the
13429  * Common Development and Distribution License, Version 1.0 only
13430  * (the "License").  You may not use this file except in compliance
13431  * with the License.
13432  *
13433  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13434  * or http://www.opensolaris.org/os/licensing.
13435  * See the License for the specific language governing permissions
13436  * and limitations under the License.
13437  *
13438  * When distributing Covered Code, include this CDDL HEADER in each
13439  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13440  * If applicable, add the following below this CDDL HEADER, with the
13441  * fields enclosed by brackets "[]" replaced with your own identifying
13442  * information: Portions Copyright [yyyy] [name of copyright owner]
13443  *
13444  * CDDL HEADER END
13445  */
13446 /*
13447  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13448  *
13449  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
13450  * Use is subject to license terms.
13451  */
13452 
13453 /*
13454  * An application should not include this header directly.  Instead it
13455  * should be included only through the inclusion of other Sun headers.
13456  *
13457  * The contents of this header is limited to identifiers specified in
13458  * the C99 standard and in conflict with the C++ implementation of the
13459  * standard header.  The C++ standard may adopt the C99 standard at
13460  * which point it is expected that the symbols included here will
13461  * become part of the C++ std namespace.
13462  */
13463 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_c99.h"
13464 /* Introduced in ISO/IEC 9899:1999 standard */
13465 # 64 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/wchar_c99.h"
13466 extern int vfwscanf(__FILE *, const wchar_t *,
13467   __va_list);
13468 extern int vswscanf(const wchar_t *,
13469   const wchar_t *, __va_list);
13470 extern int vwscanf(const wchar_t *, __va_list);
13471 extern float wcstof(const wchar_t *,
13472   wchar_t **);
13473 
13474 extern long double wcstold(const wchar_t *,
13475   wchar_t **);
13476 extern long long wcstoll(const wchar_t *,
13477   wchar_t **, int);
13478 extern unsigned long long wcstoull(const wchar_t *,
13479   wchar_t **, int);
13480 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h" 2
13481 
13482 /*
13483  * Allow global visibility for symbols defined in
13484  * C++ "std" namespace in <iso/wchar_iso.h>.
13485  */
13486 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h"
13487 typedef int wctype_t;
13488 
13489 
13490 
13491 /*
13492  * XPG6 requires that va_list be defined as defined in <stdarg.h>,
13493  * however, inclusion of <stdarg.h> breaks Standard C namespace.
13494  */
13495 # 127 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h"
13496 extern int iswalpha(wint_t);
13497 extern int iswupper(wint_t);
13498 extern int iswlower(wint_t);
13499 extern int iswdigit(wint_t);
13500 extern int iswxdigit(wint_t);
13501 extern int iswalnum(wint_t);
13502 extern int iswspace(wint_t);
13503 extern int iswpunct(wint_t);
13504 extern int iswprint(wint_t);
13505 extern int iswgraph(wint_t);
13506 extern int iswcntrl(wint_t);
13507 extern int iswctype(wint_t, wctype_t);
13508 extern wint_t towlower(wint_t);
13509 extern wint_t towupper(wint_t);
13510 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
13511 extern int wcswidth(const wchar_t *, size_t);
13512 extern int wcwidth(wchar_t);
13513 extern wctype_t wctype(const char *);
13514 # 176 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/wchar.h"
13515 extern size_t wcsnlen(const wchar_t *, size_t);
13516 extern wchar_t *wcpcpy(wchar_t *, const wchar_t *);
13517 extern wchar_t *wcpncpy(wchar_t *, const wchar_t *,
13518     size_t);
13519 extern size_t wcsxfrm_l(wchar_t *, const wchar_t *,
13520     size_t, locale_t);
13521 extern int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
13522 extern wchar_t *wcsdup(const wchar_t *);
13523 extern int wcscasecmp(const wchar_t *, const wchar_t *);
13524 extern int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t);
13525 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
13526 extern int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t);
13527 extern size_t mbsnrtowcs(wchar_t *, const char **,
13528     size_t, size_t, mbstate_t *);
13529 
13530 extern FILE *open_wmemstream(wchar_t **, size_t *);
13531 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
13532 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/thread.h" 1
13533 /*
13534  * CDDL HEADER START
13535  *
13536  * The contents of this file are subject to the terms of the
13537  * Common Development and Distribution License (the "License").
13538  * You may not use this file except in compliance with the License.
13539  *
13540  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13541  * or http://www.opensolaris.org/os/licensing.
13542  * See the License for the specific language governing permissions
13543  * and limitations under the License.
13544  *
13545  * When distributing Covered Code, include this CDDL HEADER in each
13546  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13547  * If applicable, add the following below this CDDL HEADER, with the
13548  * fields enclosed by brackets "[]" replaced with your own identifying
13549  * information: Portions Copyright [yyyy] [name of copyright owner]
13550  *
13551  * CDDL HEADER END
13552  */
13553 
13554 /*
13555  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13556  *
13557  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
13558  * Use is subject to license terms.
13559  */
13560 
13561 
13562 
13563 
13564 /*
13565  * thread.h:
13566  * definitions needed to use the thread interface except synchronization.
13567  * use <synch.h> for thread synchronization.
13568  */
13569 
13570 
13571 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
13572 /*
13573  * CDDL HEADER START
13574  *
13575  * The contents of this file are subject to the terms of the
13576  * Common Development and Distribution License (the "License").
13577  * You may not use this file except in compliance with the License.
13578  *
13579  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13580  * or http://www.opensolaris.org/os/licensing.
13581  * See the License for the specific language governing permissions
13582  * and limitations under the License.
13583  *
13584  * When distributing Covered Code, include this CDDL HEADER in each
13585  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13586  * If applicable, add the following below this CDDL HEADER, with the
13587  * fields enclosed by brackets "[]" replaced with your own identifying
13588  * information: Portions Copyright [yyyy] [name of copyright owner]
13589  *
13590  * CDDL HEADER END
13591  */
13592 
13593 /*
13594  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
13595  * Use is subject to license terms.
13596  */
13597 
13598 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13599 /*	  All Rights Reserved  	*/
13600 
13601 /*
13602  * University Copyright- Copyright (c) 1982, 1986, 1988
13603  * The Regents of the University of California
13604  * All Rights Reserved
13605  *
13606  * University Acknowledgment- Portions of this document are derived from
13607  * software developed by the University of California, Berkeley, and its
13608  * contributors.
13609  */
13610 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/thread.h" 2
13611 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
13612 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13613 /*	  All Rights Reserved  	*/
13614 
13615 
13616 /*
13617  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
13618  * All rights reserved.  The Berkeley software License Agreement
13619  * specifies the terms and conditions for redistribution.
13620  */
13621 
13622 /*
13623  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13624  *
13625  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13626  * Use is subject to license terms.
13627  *
13628  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
13629  */
13630 
13631 /*
13632  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
13633  */
13634 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/thread.h" 2
13635 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/synch.h" 1
13636 /*
13637  * CDDL HEADER START
13638  *
13639  * The contents of this file are subject to the terms of the
13640  * Common Development and Distribution License (the "License").
13641  * You may not use this file except in compliance with the License.
13642  *
13643  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13644  * or http://www.opensolaris.org/os/licensing.
13645  * See the License for the specific language governing permissions
13646  * and limitations under the License.
13647  *
13648  * When distributing Covered Code, include this CDDL HEADER in each
13649  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13650  * If applicable, add the following below this CDDL HEADER, with the
13651  * fields enclosed by brackets "[]" replaced with your own identifying
13652  * information: Portions Copyright [yyyy] [name of copyright owner]
13653  *
13654  * CDDL HEADER END
13655  */
13656 
13657 /*
13658  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13659  * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
13660  */
13661 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/thread.h" 2
13662 
13663 
13664 
13665 
13666 
13667 
13668 
13669 typedef unsigned int thread_t;
13670 typedef unsigned int thread_key_t;
13671 
13672 extern int thr_create(void *, size_t, void *(*)(void *), void *, long,
13673    thread_t *);
13674 extern int thr_join(thread_t, thread_t *, void **);
13675 extern int thr_setconcurrency(int);
13676 extern int thr_getconcurrency(void);
13677 extern void thr_exit(void *) __attribute__((__noreturn__));
13678 extern thread_t thr_self(void);
13679 
13680 /*
13681  * the definition of thr_sigsetmask() is not strict ansi-c since sigset_t is
13682  * not in the strict ansi-c name space. Hence, include the prototype for
13683  * thr_sigsetmask() only if strict ansi-c conformance is not turned on.
13684  */
13685 
13686 extern int thr_sigsetmask(int, const sigset_t *, sigset_t *);
13687 
13688 
13689 /*
13690  * the definition of thr_stksegment() is not strict ansi-c since stack_t is
13691  * not in the strict ansi-c name space. Hence, include the prototype for
13692  * thr_stksegment() only if strict ansi-c conformance is not turned on.
13693  */
13694 
13695 extern int thr_stksegment(stack_t *);
13696 
13697 
13698 extern int thr_main(void);
13699 extern int thr_kill(thread_t, int);
13700 extern int thr_suspend(thread_t);
13701 extern int thr_continue(thread_t);
13702 extern void thr_yield(void);
13703 extern int thr_setprio(thread_t, int);
13704 extern int thr_getprio(thread_t, int *);
13705 extern int thr_keycreate(thread_key_t *, void(*)(void *));
13706 extern int thr_keycreate_once(thread_key_t *, void(*)(void *));
13707 extern int thr_setspecific(thread_key_t, void *);
13708 extern int thr_getspecific(thread_key_t, void **);
13709 extern size_t thr_min_stack(void);
13710 
13711 
13712 
13713 
13714 /*
13715  * thread flags (one word bit mask)
13716  */
13717 /*
13718  * POSIX.1c Note:
13719  * THR_BOUND is defined same as PTHREAD_SCOPE_SYSTEM in <pthread.h>
13720  * THR_DETACHED is defined same as PTHREAD_CREATE_DETACHED in <pthread.h>
13721  * Any changes in these definitions should be reflected in <pthread.h>
13722  */
13723 
13724 
13725 
13726 
13727 
13728 
13729 /*
13730  * The key to be created by thr_keycreate_once()
13731  * must be statically initialized with THR_ONCE_KEY.
13732  * This must be the same as PTHREAD_ONCE_KEY_NP in <pthread.h>
13733  */
13734 
13735 
13736 /*
13737  * The available register states returned by thr_getstate().
13738  */
13739 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
13740 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace_impl.h" 1
13741 /*
13742  * CDDL HEADER START
13743  *
13744  * The contents of this file are subject to the terms of the
13745  * Common Development and Distribution License (the "License").
13746  * You may not use this file except in compliance with the License.
13747  *
13748  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13749  * or http://www.opensolaris.org/os/licensing.
13750  * See the License for the specific language governing permissions
13751  * and limitations under the License.
13752  *
13753  * When distributing Covered Code, include this CDDL HEADER in each
13754  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13755  * If applicable, add the following below this CDDL HEADER, with the
13756  * fields enclosed by brackets "[]" replaced with your own identifying
13757  * information: Portions Copyright [yyyy] [name of copyright owner]
13758  *
13759  * CDDL HEADER END
13760  */
13761 /*
13762  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13763  *
13764  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
13765  * Use is subject to license terms.
13766  */
13767 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace_impl.h"
13768 typedef struct abisym {
13769  void *a_real;
13770  int a_vflag;
13771  int a_tflag;
13772 } abisym_t;
13773 
13774 /*
13775  * From the apptrace auditing object
13776  */
13777 extern FILE *__abi_outfile;
13778 extern struct liblist *__abi_pflib_list;
13779 
13780 extern sigset_t abisigset;
13781 
13782 extern void abilock(sigset_t *);
13783 extern void abiunlock(sigset_t *);
13784 
13785 extern int is_empty_string(char const *);
13786 
13787 extern int (*abi_thr_main)(void);
13788 extern thread_t (*abi_thr_self)(void);
13789 extern int (*abi_sigsetmask)(int, const sigset_t *, sigset_t *);
13790 extern int (*abi_sigaction)(int, const struct sigaction *, struct sigaction *);
13791 extern int (*abi_mutex_lock)(mutex_t *);
13792 extern int (*abi_mutex_unlock)(mutex_t *);
13793 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h" 2
13794 
13795 
13796 
13797 
13798 
13799 /*
13800  * Extract the verbosity flag.
13801  */
13802 
13803 
13804 
13805 /*
13806  * Extract the function pointer to the real ABI function.
13807  */
13808 
13809 
13810 
13811 /*
13812  * Macro to create the part of a function call prior
13813  * to the arg list.
13814  *   cast is a full cast expression for a _pointer_ to
13815  *   the ABI function being called.
13816  *
13817  * e.g.  ABI_CALL_REAL(libc, getpid, (pid_t (*)(void)))  ();
13818  */
13819 
13820 
13821 
13822 
13823 
13824 
13825 /*
13826  * The following declarations and macros are needed for
13827  * anybody needing the vprintf family of calls where they
13828  * MUST come from the BASE link map instead of the auditing
13829  * link map.
13830  */
13831 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/apptrace.h"
13832 /* From libstabspf */
13833 typedef enum {
13834  STAB_SUCCESS = 0, /* All is well. */
13835  STAB_FAIL = -1, /* Parsing error. */
13836  STAB_NA = -2, /* Information is Not Applicable. */
13837  STAB_NOMEM = -3 /* Out of Memory! */
13838 } stabsret_t;
13839 
13840 extern int (*__abi_real_vfprintf)(FILE *, const char *, va_list);
13841 extern int (*__abi_real_vfwprintf)(FILE *, const wchar_t *, va_list);
13842 extern int (*__abi_real_vprintf)(const char *, va_list);
13843 extern int (*__abi_real_vsnprintf)(char *, size_t, const char *, va_list);
13844 extern int (*__abi_real_vsprintf)(char *, const char *, va_list);
13845 extern int (*__abi_real_vswprintf)(wchar_t *, size_t, const wchar_t *, va_list);
13846 extern int (*__abi_real_vwprintf)(const wchar_t *, va_list);
13847 extern int *(*__abi_real_errno)(void);
13848 
13849 extern void *abi_malloc(size_t);
13850 extern void *abi_calloc(size_t, size_t);
13851 extern void *abi_realloc(void *, size_t);
13852 extern int abi_putc(int, FILE *);
13853 extern int abi_fputs(const char *, FILE *);
13854 extern void abi_free(void *);
13855 
13856 /* From libstabspf */
13857 extern stabsret_t spf_load_stabs(const char *);
13858 extern int spf_prtype(FILE *, char const *, int, void const *);
13859 
13860 extern int abi_strpsz; /* size constraint for string printing */
13861 # 44 "common/apptrace.c" 2
13862 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
13863 /*
13864  * CDDL HEADER START
13865  *
13866  * The contents of this file are subject to the terms of the
13867  * Common Development and Distribution License (the "License").
13868  * You may not use this file except in compliance with the License.
13869  *
13870  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13871  * or http://www.opensolaris.org/os/licensing.
13872  * See the License for the specific language governing permissions
13873  * and limitations under the License.
13874  *
13875  * When distributing Covered Code, include this CDDL HEADER in each
13876  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13877  * If applicable, add the following below this CDDL HEADER, with the
13878  * fields enclosed by brackets "[]" replaced with your own identifying
13879  * information: Portions Copyright [yyyy] [name of copyright owner]
13880  *
13881  * CDDL HEADER END
13882  */
13883 /*
13884  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13885  *
13886  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
13887  * Use is subject to license terms.
13888  */
13889 
13890 
13891 
13892 
13893 
13894 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
13895 /*
13896  * CDDL HEADER START
13897  *
13898  * The contents of this file are subject to the terms of the
13899  * Common Development and Distribution License (the "License").
13900  * You may not use this file except in compliance with the License.
13901  *
13902  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13903  * or http://www.opensolaris.org/os/licensing.
13904  * See the License for the specific language governing permissions
13905  * and limitations under the License.
13906  *
13907  *
13908  * When distributing Covered Code, include this CDDL HEADER in each
13909  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13910  * If applicable, add the following below this CDDL HEADER, with the
13911  * fields enclosed by brackets "[]" replaced with your own identifying
13912  * information: Portions Copyright [yyyy] [name of copyright owner]
13913  *
13914  * CDDL HEADER END
13915  */
13916 
13917 /*
13918  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
13919  * Use is subject to license terms.
13920  * Copyright 2016 Joyent, Inc.
13921  */
13922 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2
13923 
13924 
13925 
13926 
13927 
13928 /*
13929  * wchar_t is a built-in type in standard C++ and as such is not
13930  * defined here when using standard C++. However, the GNU compiler
13931  * fixincludes utility nonetheless creates its own version of this
13932  * header for use by gcc and g++. In that version it adds a redundant
13933  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
13934  * header we need to include the following magic comment:
13935  *
13936  * we must use the C++ compiler's type
13937  *
13938  * The above comment should not be removed or changed until GNU
13939  * gcc/fixinc/inclhack.def is updated to bypass this header.
13940  */
13941 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h"
13942 extern char *dcgettext(const char *, const char *, const int);
13943 extern char *dgettext(const char *, const char *);
13944 extern char *gettext(const char *);
13945 extern char *textdomain(const char *);
13946 extern char *bindtextdomain(const char *, const char *);
13947 
13948 /*
13949  * LI18NUX 2000 Globalization Specification Version 1.0
13950  * with Amendment 2
13951  */
13952 extern char *dcngettext(const char *, const char *,
13953  const char *, unsigned long int, int);
13954 extern char *dngettext(const char *, const char *,
13955  const char *, unsigned long int);
13956 extern char *ngettext(const char *, const char *, unsigned long int);
13957 extern char *bind_textdomain_codeset(const char *, const char *);
13958 
13959 /* Word handling functions --- requires dynamic linking */
13960 /* Warning: these are experimental and subject to change. */
13961 extern int wdinit(void);
13962 extern int wdchkind(wchar_t);
13963 extern int wdbindf(wchar_t, wchar_t, int);
13964 extern wchar_t *wddelim(wchar_t, wchar_t, int);
13965 extern wchar_t mcfiller(void);
13966 extern int mcwrap(void);
13967 # 45 "common/apptrace.c" 2
13968 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 1
13969 /*
13970  * CDDL HEADER START
13971  *
13972  * The contents of this file are subject to the terms of the
13973  * Common Development and Distribution License, Version 1.0 only
13974  * (the "License").  You may not use this file except in compliance
13975  * with the License.
13976  *
13977  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13978  * or http://www.opensolaris.org/os/licensing.
13979  * See the License for the specific language governing permissions
13980  * and limitations under the License.
13981  *
13982  * When distributing Covered Code, include this CDDL HEADER in each
13983  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13984  * If applicable, add the following below this CDDL HEADER, with the
13985  * fields enclosed by brackets "[]" replaced with your own identifying
13986  * information: Portions Copyright [yyyy] [name of copyright owner]
13987  *
13988  * CDDL HEADER END
13989  */
13990 /*
13991  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
13992  * Use is subject to license terms.
13993  */
13994 
13995 /*
13996  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13997  *
13998  * Portions of this file developed by Garrett D'Amore are licensed
13999  * under the terms of the Common Development and Distribution License (CDDL)
14000  * version 1.0 only.  The use of subsequent versions of the License are
14001  * is specifically prohibited unless those terms are not in conflict with
14002  * version 1.0 of the License.  You can find this license on-line at
14003  * http://www.illumos.org/license/CDDL
14004  */
14005 
14006 
14007 
14008 
14009 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 1
14010 /*
14011  * CDDL HEADER START
14012  *
14013  * The contents of this file are subject to the terms of the
14014  * Common Development and Distribution License, Version 1.0 only
14015  * (the "License").  You may not use this file except in compliance
14016  * with the License.
14017  *
14018  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14019  * or http://www.opensolaris.org/os/licensing.
14020  * See the License for the specific language governing permissions
14021  * and limitations under the License.
14022  *
14023  * When distributing Covered Code, include this CDDL HEADER in each
14024  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14025  * If applicable, add the following below this CDDL HEADER, with the
14026  * fields enclosed by brackets "[]" replaced with your own identifying
14027  * information: Portions Copyright [yyyy] [name of copyright owner]
14028  *
14029  * CDDL HEADER END
14030  */
14031 /*
14032  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
14033  * Copyright 2014 PALO, Richard.
14034  *
14035  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
14036  * Use is subject to license terms.
14037  */
14038 
14039 /*	Copyright (c) 1988 AT&T	*/
14040 /*	  All Rights Reserved  	*/
14041 
14042 
14043 /*
14044  * An application should not include this header directly.  Instead it
14045  * should be included only through the inclusion of other Sun headers.
14046  *
14047  * The contents of this header is limited to identifiers specified in the
14048  * C Standard.  Any new identifiers specified in future amendments to the
14049  * C Standard must be placed in this header.  If these new identifiers
14050  * are required to also be in the C++ Standard "std" namespace, then for
14051  * anything other than macro definitions, corresponding "using" directives
14052  * must also be added to <locale.h>.
14053  */
14054 
14055 
14056 
14057 
14058 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
14059 /*
14060  * CDDL HEADER START
14061  *
14062  * The contents of this file are subject to the terms of the
14063  * Common Development and Distribution License (the "License").
14064  * You may not use this file except in compliance with the License.
14065  *
14066  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14067  * or http://www.opensolaris.org/os/licensing.
14068  * See the License for the specific language governing permissions
14069  * and limitations under the License.
14070  *
14071  * When distributing Covered Code, include this CDDL HEADER in each
14072  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14073  * If applicable, add the following below this CDDL HEADER, with the
14074  * fields enclosed by brackets "[]" replaced with your own identifying
14075  * information: Portions Copyright [yyyy] [name of copyright owner]
14076  *
14077  * CDDL HEADER END
14078  */
14079 
14080 /*
14081  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
14082  * Copyright 2016 Joyent, Inc.
14083  *
14084  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
14085  * Use is subject to license terms.
14086  */
14087 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2
14088 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
14089 /*
14090  * This file and its contents are supplied under the terms of the
14091  * Common Development and Distribution License ("CDDL"), version 1.0.
14092  * You may only use this file in accordance with the terms of version
14093  * 1.0 of the CDDL.
14094  *
14095  * A full copy of the text of the CDDL should have accompanied this
14096  * source.  A copy of the CDDL is also available via the Internet at
14097  * http://www.illumos.org/license/CDDL.
14098  */
14099 
14100 /*
14101  * Copyright 2014-2016 PALO, Richard.
14102  */
14103 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2
14104 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
14105 struct lconv {
14106  char *decimal_point;
14107  char *thousands_sep;
14108  char *grouping;
14109  char *int_curr_symbol;
14110  char *currency_symbol;
14111  char *mon_decimal_point;
14112  char *mon_thousands_sep;
14113  char *mon_grouping;
14114  char *positive_sign;
14115  char *negative_sign;
14116  char int_frac_digits;
14117  char frac_digits;
14118  char p_cs_precedes;
14119  char p_sep_by_space;
14120  char n_cs_precedes;
14121  char n_sep_by_space;
14122  char p_sign_posn;
14123  char n_sign_posn;
14124 
14125 /*
14126  * New in IEEE Std 1003.1-2001 for alignment with the ISO/IEC 9899:1999
14127  * standard.  Namespace and binary compatibility dictate that visibility
14128  * of these new members be limited.  Visibility is limited to a strictly
14129  * conforming ANSI C environment (-Xc) or if _LCONV_C99 is defined.
14130  */
14131 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
14132 };
14133 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
14134 extern char *setlocale(int, const char *);
14135 extern struct lconv *localeconv(void);
14136 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2
14137 
14138 
14139 
14140 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
14141 /*
14142  * CDDL HEADER START
14143  *
14144  * The contents of this file are subject to the terms of the
14145  * Common Development and Distribution License (the "License").
14146  * You may not use this file except in compliance with the License.
14147  *
14148  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14149  * or http://www.opensolaris.org/os/licensing.
14150  * See the License for the specific language governing permissions
14151  * and limitations under the License.
14152  *
14153  * When distributing Covered Code, include this CDDL HEADER in each
14154  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14155  * If applicable, add the following below this CDDL HEADER, with the
14156  * fields enclosed by brackets "[]" replaced with your own identifying
14157  * information: Portions Copyright [yyyy] [name of copyright owner]
14158  *
14159  * CDDL HEADER END
14160  */
14161 /*
14162  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
14163  *
14164  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
14165  * Use is subject to license terms.
14166  */
14167 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2
14168 
14169 
14170 /*
14171  * Allow global visibility for symbols defined in
14172  * C++ "std" namespace in <iso/locale_iso.h>.
14173  */
14174 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h"
14175 /*
14176  * These were added in POSIX 2008 as part of the newlocale() specification.
14177  */
14178 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h"
14179 extern locale_t duplocale(locale_t);
14180 extern void freelocale(locale_t);
14181 extern locale_t newlocale(int, const char *, locale_t);
14182 extern locale_t uselocale(locale_t);
14183 
14184 
14185 extern locale_t __global_locale(void);
14186 # 46 "common/apptrace.c" 2
14187 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
14188 /*
14189  * CDDL HEADER START
14190  *
14191  * The contents of this file are subject to the terms of the
14192  * Common Development and Distribution License (the "License").
14193  * You may not use this file except in compliance with the License.
14194  *
14195  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14196  * or http://www.opensolaris.org/os/licensing.
14197  * See the License for the specific language governing permissions
14198  * and limitations under the License.
14199  *
14200  * When distributing Covered Code, include this CDDL HEADER in each
14201  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14202  * If applicable, add the following below this CDDL HEADER, with the
14203  * fields enclosed by brackets "[]" replaced with your own identifying
14204  * information: Portions Copyright [yyyy] [name of copyright owner]
14205  *
14206  * CDDL HEADER END
14207  */
14208 
14209 /*
14210  * Copyright (c) 2013 Gary Mills
14211  *
14212  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
14213  * Use is subject to license terms.
14214  */
14215 
14216 /*	Copyright (c) 1988 AT&T	*/
14217 /*	  All Rights Reserved  	*/
14218 
14219 
14220 
14221 
14222 
14223 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
14224 /*
14225  * CDDL HEADER START
14226  *
14227  * The contents of this file are subject to the terms of the
14228  * Common Development and Distribution License (the "License").
14229  * You may not use this file except in compliance with the License.
14230  *
14231  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14232  * or http://www.opensolaris.org/os/licensing.
14233  * See the License for the specific language governing permissions
14234  * and limitations under the License.
14235  *
14236  * When distributing Covered Code, include this CDDL HEADER in each
14237  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14238  * If applicable, add the following below this CDDL HEADER, with the
14239  * fields enclosed by brackets "[]" replaced with your own identifying
14240  * information: Portions Copyright [yyyy] [name of copyright owner]
14241  *
14242  * CDDL HEADER END
14243  */
14244 
14245 /*
14246  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
14247  * Copyright 2016 Joyent, Inc.
14248  *
14249  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
14250  * Use is subject to license terms.
14251  */
14252 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
14253 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
14254 /*
14255  * CDDL HEADER START
14256  *
14257  * The contents of this file are subject to the terms of the
14258  * Common Development and Distribution License (the "License").
14259  * You may not use this file except in compliance with the License.
14260  *
14261  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14262  * or http://www.opensolaris.org/os/licensing.
14263  * See the License for the specific language governing permissions
14264  * and limitations under the License.
14265  *
14266  *
14267  * When distributing Covered Code, include this CDDL HEADER in each
14268  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14269  * If applicable, add the following below this CDDL HEADER, with the
14270  * fields enclosed by brackets "[]" replaced with your own identifying
14271  * information: Portions Copyright [yyyy] [name of copyright owner]
14272  *
14273  * CDDL HEADER END
14274  */
14275 
14276 /*
14277  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
14278  * Use is subject to license terms.
14279  * Copyright 2016 Joyent, Inc.
14280  */
14281 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
14282 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1
14283 /*
14284  * CDDL HEADER START
14285  *
14286  * The contents of this file are subject to the terms of the
14287  * Common Development and Distribution License, Version 1.0 only
14288  * (the "License").  You may not use this file except in compliance
14289  * with the License.
14290  *
14291  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14292  * or http://www.opensolaris.org/os/licensing.
14293  * See the License for the specific language governing permissions
14294  * and limitations under the License.
14295  *
14296  * When distributing Covered Code, include this CDDL HEADER in each
14297  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14298  * If applicable, add the following below this CDDL HEADER, with the
14299  * fields enclosed by brackets "[]" replaced with your own identifying
14300  * information: Portions Copyright [yyyy] [name of copyright owner]
14301  *
14302  * CDDL HEADER END
14303  */
14304 /*
14305  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
14306  * Use is subject to license terms.
14307  */
14308 
14309 /*	Copyright (c) 1988 AT&T	*/
14310 /*	  All Rights Reserved  	*/
14311 
14312 
14313 /*
14314  * An application should not include this header directly.  Instead it
14315  * should be included only through the inclusion of other Sun headers.
14316  *
14317  * The contents of this header is limited to identifiers specified in the
14318  * C Standard.  Any new identifiers specified in future amendments to the
14319  * C Standard must be placed in this header.  If these new identifiers
14320  * are required to also be in the C++ Standard "std" namespace, then for
14321  * anything other than macro definitions, corresponding "using" directives
14322  * must also be added to <limits.h>.
14323  */
14324 
14325 
14326 
14327 
14328 #pragma ident "%Z%%M%	%I%	%E% SMI"
14329 
14330 
14331 
14332 
14333 
14334 /*
14335  * Sizes of integral types
14336  */
14337 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h"
14338      /* min value of a "long int" */
14339 
14340 
14341 
14342 
14343 
14344      /* min value of a long long */
14345 
14346      /* max value of a long long */
14347 
14348      /* max value of "unsigned long long */
14349 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
14350 
14351 /*
14352  * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C
14353  * committee's working draft for the revision of the current ISO C standard,
14354  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
14355  * required by any standard but constitute a useful, general purpose set
14356  * of type definitions and limits which is namespace clean with respect to
14357  * all standards.
14358  */
14359 
14360 
14361 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
14362 /*
14363  * CDDL HEADER START
14364  *
14365  * The contents of this file are subject to the terms of the
14366  * Common Development and Distribution License, Version 1.0 only
14367  * (the "License").  You may not use this file except in compliance
14368  * with the License.
14369  *
14370  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14371  * or http://www.opensolaris.org/os/licensing.
14372  * See the License for the specific language governing permissions
14373  * and limitations under the License.
14374  *
14375  * When distributing Covered Code, include this CDDL HEADER in each
14376  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14377  * If applicable, add the following below this CDDL HEADER, with the
14378  * fields enclosed by brackets "[]" replaced with your own identifying
14379  * information: Portions Copyright [yyyy] [name of copyright owner]
14380  *
14381  * CDDL HEADER END
14382  */
14383 /*
14384  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
14385  *
14386  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
14387  * Use is subject to license terms.
14388  */
14389 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
14390 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14391 /*
14392  * ARG_MAX is calculated as follows:
14393  * NCARGS - space for other stuff on initial stack
14394  * like aux vectors, saved registers, etc..
14395  */
14396 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14397 /*
14398  * POSIX conformant definitions - An implementation may define
14399  * other symbols which reflect the actual implementation. Alternate
14400  * definitions may not be as restrictive as the POSIX definitions.
14401  */
14402 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14403 /* POSIX.1c conformant */
14404 
14405 
14406 
14407 
14408 
14409 /* UNIX 03 conformant */
14410 
14411 
14412 
14413 
14414 
14415 /*
14416  * POSIX.2 and XPG4-XSH4 conformant definitions
14417  */
14418 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14419 /* UNIX 03 conformant */
14420 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14421 /*
14422  * For dual definitions for PASS_MAX and sysconf.c
14423  */
14424 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14425     /* NLS printf() and scanf() */
14426 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14427 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */
14428 
14429 
14430 
14431        /* of a double */
14432 
14433 
14434        /* of a "float" */
14435 
14436 
14437 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */
14438 
14439 
14440        /* of a double */
14441 
14442        /* of a float */
14443 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14444 /*
14445  * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the
14446  * related text states:
14447  *
14448  * A definition of one of the values from Table 2-5 shall be omitted from the
14449  * <limits.h> on specific implementations where the corresponding value is
14450  * equal to or greater than the stated minimum, but where the value can vary
14451  * depending on the file to which it is applied. The actual value supported for
14452  * a specific pathname shall be provided by the pathconf() (5.7.1) function.
14453  *
14454  * This is clear that any machine supporting multiple file system types
14455  * and/or a network can not include this define, regardless of protection
14456  * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags.
14457  *
14458  * #define	NAME_MAX	14
14459  */
14460 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
14461     /* Increased for illumos */
14462 # 47 "common/apptrace.c" 2
14463 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h" 1
14464 /*
14465  * CDDL HEADER START
14466  *
14467  * The contents of this file are subject to the terms of the
14468  * Common Development and Distribution License (the "License").
14469  * You may not use this file except in compliance with the License.
14470  *
14471  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14472  * or http://www.opensolaris.org/os/licensing.
14473  * See the License for the specific language governing permissions
14474  * and limitations under the License.
14475  *
14476  * When distributing Covered Code, include this CDDL HEADER in each
14477  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14478  * If applicable, add the following below this CDDL HEADER, with the
14479  * fields enclosed by brackets "[]" replaced with your own identifying
14480  * information: Portions Copyright [yyyy] [name of copyright owner]
14481  *
14482  * CDDL HEADER END
14483  */
14484 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
14485 /*	  All Rights Reserved  	*/
14486 
14487 
14488 /*
14489  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
14490  * Use is subject to license terms.
14491  *
14492  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
14493  *
14494  * Copyright 2018 Joyent Inc.
14495  */
14496 
14497 
14498 
14499 
14500 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
14501 /*
14502  * CDDL HEADER START
14503  *
14504  * The contents of this file are subject to the terms of the
14505  * Common Development and Distribution License (the "License").
14506  * You may not use this file except in compliance with the License.
14507  *
14508  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14509  * or http://www.opensolaris.org/os/licensing.
14510  * See the License for the specific language governing permissions
14511  * and limitations under the License.
14512  *
14513  * When distributing Covered Code, include this CDDL HEADER in each
14514  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14515  * If applicable, add the following below this CDDL HEADER, with the
14516  * fields enclosed by brackets "[]" replaced with your own identifying
14517  * information: Portions Copyright [yyyy] [name of copyright owner]
14518  *
14519  * CDDL HEADER END
14520  */
14521 
14522 /*
14523  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
14524  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
14525  */
14526 
14527 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
14528 /*	  All Rights Reserved  	*/
14529 
14530 /*
14531  * University Copyright- Copyright (c) 1982, 1986, 1988
14532  * The Regents of the University of California
14533  * All Rights Reserved
14534  *
14535  * University Acknowledgment- Portions of this document are derived from
14536  * software developed by the University of California, Berkeley, and its
14537  * contributors.
14538  */
14539 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h" 2
14540 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1
14541 /*
14542  * This file and its contents are supplied under the terms of the
14543  * Common Development and Distribution License ("CDDL"), version 1.0.
14544  * You may only use this file in accordance with the terms of version
14545  * 1.0 of the CDDL.
14546  *
14547  * A full copy of the text of the CDDL should have accompanied this
14548  * source.  A copy of the CDDL is also available via the Internet at
14549  * http://www.illumos.org/license/CDDL.
14550  */
14551 
14552 /*
14553  * Copyright 2017 Toomas Soome <tsoome@me.com>
14554  */
14555 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h" 2
14556 
14557 
14558 
14559 
14560 
14561 /*
14562  * Some macros for units conversion
14563  */
14564 /*
14565  * Disk blocks (sectors) and bytes.
14566  */
14567 
14568 
14569 
14570 
14571 
14572 /* common macros */
14573 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
14574 /*
14575  * WARNING: The device number macros defined here should not be used by device
14576  * drivers or user software. Device drivers should use the device functions
14577  * defined in the DDI/DKI interface (see also ddi.h). Application software
14578  * should make use of the library routines available in makedev(3). A set of
14579  * new device macros are provided to operate on the expanded device number
14580  * format supported in SVR4. Macro versions of the DDI device functions are
14581  * provided for use by kernel proper routines only. Macro routines bmajor(),
14582  * major(), minor(), emajor(), eminor(), and makedev() will be removed or
14583  * their definitions changed at the next major release following SVR4.
14584  */
14585 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
14586     /* For 3b2 hardware devices the minor is */
14587     /* restricted to 256 (0-255) */
14588 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
14589 /* major part of a device external from the kernel (same as emajor below) */
14590 
14591 
14592 
14593 /* minor part of a device external from the kernel  (same as eminor below) */
14594 
14595 
14596 
14597 
14598 
14599 /* create old device number */
14600 
14601 
14602 
14603 /* make an new device number */
14604 
14605 
14606 
14607 
14608 /*
14609  * emajor() allows kernel/driver code to print external major numbers
14610  * eminor() allows kernel/driver code to print external minor numbers
14611  */
14612 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
14613 /*
14614  * get external major and minor device
14615  * components from expanded device number
14616  */
14617 
14618 
14619 
14620 
14621 /*
14622  * These are versions of the kernel routines for compressing and
14623  * expanding long device numbers that don't return errors.
14624  */
14625 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
14626 /* convert to old (SVR3.2) dev format */
14627 
14628 
14629 
14630 
14631 
14632 
14633 /* convert to new (SVR4) dev format */
14634 
14635 
14636 
14637 
14638 
14639 /*
14640  * Macro for checking power of 2 address alignment.
14641  */
14642 
14643 
14644 /*
14645  * Macros for counting and rounding.
14646  */
14647 
14648 
14649 
14650 /*
14651  * Macro to determine if value is a power of 2
14652  */
14653 
14654 
14655 /*
14656  * Macros for various sorts of alignment and rounding.  The "align" must
14657  * be a power of 2.  Often times it is a block, sector, or page.
14658  */
14659 
14660 /*
14661  * return x rounded down to an align boundary
14662  * eg, P2ALIGN(1200, 1024) == 1024 (1*align)
14663  * eg, P2ALIGN(1024, 1024) == 1024 (1*align)
14664  * eg, P2ALIGN(0x1234, 0x100) == 0x1200 (0x12*align)
14665  * eg, P2ALIGN(0x5600, 0x100) == 0x5600 (0x56*align)
14666  */
14667 
14668 
14669 /*
14670  * return x % (mod) align
14671  * eg, P2PHASE(0x1234, 0x100) == 0x34 (x-0x12*align)
14672  * eg, P2PHASE(0x5600, 0x100) == 0x00 (x-0x56*align)
14673  */
14674 
14675 
14676 /*
14677  * return how much space is left in this block (but if it's perfectly
14678  * aligned, return 0).
14679  * eg, P2NPHASE(0x1234, 0x100) == 0xcc (0x13*align-x)
14680  * eg, P2NPHASE(0x5600, 0x100) == 0x00 (0x56*align-x)
14681  */
14682 
14683 
14684 /*
14685  * return x rounded up to an align boundary
14686  * eg, P2ROUNDUP(0x1234, 0x100) == 0x1300 (0x13*align)
14687  * eg, P2ROUNDUP(0x5600, 0x100) == 0x5600 (0x56*align)
14688  */
14689 
14690 
14691 /*
14692  * return the ending address of the block that x is in
14693  * eg, P2END(0x1234, 0x100) == 0x12ff (0x13*align - 1)
14694  * eg, P2END(0x5600, 0x100) == 0x56ff (0x57*align - 1)
14695  */
14696 
14697 
14698 /*
14699  * return x rounded up to the next phase (offset) within align.
14700  * phase should be < align.
14701  * eg, P2PHASEUP(0x1234, 0x100, 0x10) == 0x1310 (0x13*align + phase)
14702  * eg, P2PHASEUP(0x5600, 0x100, 0x10) == 0x5610 (0x56*align + phase)
14703  */
14704 
14705 
14706 /*
14707  * return TRUE if adding len to off would cause it to cross an align
14708  * boundary.
14709  * eg, P2BOUNDARY(0x1234, 0xe0, 0x100) == TRUE (0x1234 + 0xe0 == 0x1314)
14710  * eg, P2BOUNDARY(0x1234, 0x50, 0x100) == FALSE (0x1234 + 0x50 == 0x1284)
14711  */
14712 
14713 
14714 
14715 /*
14716  * Return TRUE if they have the same highest bit set.
14717  * eg, P2SAMEHIGHBIT(0x1234, 0x1001) == TRUE (the high bit is 0x1000)
14718  * eg, P2SAMEHIGHBIT(0x1234, 0x3010) == FALSE (high bit of 0x3010 is 0x2000)
14719  */
14720 
14721 
14722 /*
14723  * Typed version of the P2* macros.  These macros should be used to ensure
14724  * that the result is correctly calculated based on the data type of (x),
14725  * which is passed in as the last argument, regardless of the data
14726  * type of the alignment.  For example, if (x) is of type uint64_t,
14727  * and we want to round it up to a page boundary using "PAGESIZE" as
14728  * the alignment, we can do either
14729  *	P2ROUNDUP(x, (uint64_t)PAGESIZE)
14730  * or
14731  *	P2ROUNDUP_TYPED(x, PAGESIZE, uint64_t)
14732  */
14733 # 325 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
14734 /*
14735  * Macros to atomically increment/decrement a variable.  mutex and var
14736  * must be pointers.
14737  */
14738 
14739 
14740 
14741 /*
14742  * Macros to declare bitfields - the order in the parameter list is
14743  * Low to High - that is, declare bit 0 first.  We only support 8-bit bitfields
14744  * because if a field crosses a byte boundary it's not likely to be meaningful
14745  * without reassembly in its nonnative endianness.
14746  */
14747 # 48 "common/apptrace.c" 2
14748 # 1 "common/abienv.h" 1
14749 /*
14750  * CDDL HEADER START
14751  *
14752  * The contents of this file are subject to the terms of the
14753  * Common Development and Distribution License, Version 1.0 only
14754  * (the "License").  You may not use this file except in compliance
14755  * with the License.
14756  *
14757  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14758  * or http://www.opensolaris.org/os/licensing.
14759  * See the License for the specific language governing permissions
14760  * and limitations under the License.
14761  *
14762  * When distributing Covered Code, include this CDDL HEADER in each
14763  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14764  * If applicable, add the following below this CDDL HEADER, with the
14765  * fields enclosed by brackets "[]" replaced with your own identifying
14766  * information: Portions Copyright [yyyy] [name of copyright owner]
14767  *
14768  * CDDL HEADER END
14769  */
14770 /*
14771  * Copyright (c) 1996-1999 by Sun Microsystems, Inc.
14772  * All rights reserved.
14773  */
14774 
14775 
14776 
14777 
14778 #pragma ident "%Z%%M%	%I%	%E% SMI"
14779 
14780 typedef struct liblist {
14781  char *l_libname;
14782  void *l_handle;
14783  struct liblist *l_next;
14784 } Liblist;
14785 
14786 typedef struct intlist {
14787  char *i_name;
14788  struct intlist *i_next;
14789 } Intlist;
14790 
14791 extern void appendlist(Liblist **, Liblist **,
14792     char const *, int);
14793 extern void build_env_list(Liblist **, char const *);
14794 extern void build_env_list1(Liblist **, Liblist **, char const *);
14795 extern Liblist *check_list(Liblist *, char const *);
14796 extern char *checkenv(char const *);
14797 extern int build_interceptor_path(char *, size_t, char const *);
14798 extern char *abibasename(char const *);
14799 
14800 extern void env_to_intlist(Intlist **, char const *);
14801 extern int check_intlist(Intlist *, char const *);
14802 # 49 "common/apptrace.c" 2
14803 # 1 "common/mach.h" 1
14804 /*
14805  * CDDL HEADER START
14806  *
14807  * The contents of this file are subject to the terms of the
14808  * Common Development and Distribution License, Version 1.0 only
14809  * (the "License").  You may not use this file except in compliance
14810  * with the License.
14811  *
14812  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14813  * or http://www.opensolaris.org/os/licensing.
14814  * See the License for the specific language governing permissions
14815  * and limitations under the License.
14816  *
14817  * When distributing Covered Code, include this CDDL HEADER in each
14818  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14819  * If applicable, add the following below this CDDL HEADER, with the
14820  * fields enclosed by brackets "[]" replaced with your own identifying
14821  * information: Portions Copyright [yyyy] [name of copyright owner]
14822  *
14823  * CDDL HEADER END
14824  */
14825 /*
14826  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
14827  * Use is subject to license terms.
14828  */
14829 
14830 
14831 
14832 
14833 #pragma ident "%Z%%M%	%I%	%E% SMI"
14834 
14835 
14836 
14837 
14838 
14839 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/reg.h" 1
14840 /*
14841  * CDDL HEADER START
14842  *
14843  * The contents of this file are subject to the terms of the
14844  * Common Development and Distribution License, Version 1.0 only
14845  * (the "License").  You may not use this file except in compliance
14846  * with the License.
14847  *
14848  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14849  * or http://www.opensolaris.org/os/licensing.
14850  * See the License for the specific language governing permissions
14851  * and limitations under the License.
14852  *
14853  * When distributing Covered Code, include this CDDL HEADER in each
14854  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14855  * If applicable, add the following below this CDDL HEADER, with the
14856  * fields enclosed by brackets "[]" replaced with your own identifying
14857  * information: Portions Copyright [yyyy] [name of copyright owner]
14858  *
14859  * CDDL HEADER END
14860  */
14861 /*
14862  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
14863  * Use is subject to license terms.
14864  */
14865 
14866 
14867 
14868 
14869 #pragma ident "%Z%%M%	%I%	%E% SMI"
14870 
14871 
14872 
14873 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/reg.h" 1
14874 /*
14875  * CDDL HEADER START
14876  *
14877  * The contents of this file are subject to the terms of the
14878  * Common Development and Distribution License, Version 1.0 only
14879  * (the "License").  You may not use this file except in compliance
14880  * with the License.
14881  *
14882  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14883  * or http://www.opensolaris.org/os/licensing.
14884  * See the License for the specific language governing permissions
14885  * and limitations under the License.
14886  *
14887  * When distributing Covered Code, include this CDDL HEADER in each
14888  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14889  * If applicable, add the following below this CDDL HEADER, with the
14890  * fields enclosed by brackets "[]" replaced with your own identifying
14891  * information: Portions Copyright [yyyy] [name of copyright owner]
14892  *
14893  * CDDL HEADER END
14894  */
14895 /*
14896  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
14897  * Use is subject to license terms.
14898  */
14899 
14900 
14901 
14902 
14903 #pragma ident "%Z%%M%	%I%	%E% SMI"
14904 
14905 
14906 
14907 
14908 
14909 /*
14910  * This file only exists for i386 backwards compatibility.
14911  * Kernel code should not include it.
14912  */
14913 
14914 
14915 
14916 
14917 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h" 1
14918 /*
14919  * CDDL HEADER START
14920  *
14921  * The contents of this file are subject to the terms of the
14922  * Common Development and Distribution License (the "License").
14923  * You may not use this file except in compliance with the License.
14924  *
14925  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14926  * or http://www.opensolaris.org/os/licensing.
14927  * See the License for the specific language governing permissions
14928  * and limitations under the License.
14929  *
14930  * When distributing Covered Code, include this CDDL HEADER in each
14931  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14932  * If applicable, add the following below this CDDL HEADER, with the
14933  * fields enclosed by brackets "[]" replaced with your own identifying
14934  * information: Portions Copyright [yyyy] [name of copyright owner]
14935  *
14936  * CDDL HEADER END
14937  */
14938 /*
14939  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
14940  *
14941  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
14942  */
14943 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
14944 
14945 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T		*/
14946 /*	All Rights Reserved	*/
14947 
14948 
14949 
14950 
14951 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
14952 /*
14953  * CDDL HEADER START
14954  *
14955  * The contents of this file are subject to the terms of the
14956  * Common Development and Distribution License (the "License").
14957  * You may not use this file except in compliance with the License.
14958  *
14959  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14960  * or http://www.opensolaris.org/os/licensing.
14961  * See the License for the specific language governing permissions
14962  * and limitations under the License.
14963  *
14964  * When distributing Covered Code, include this CDDL HEADER in each
14965  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14966  * If applicable, add the following below this CDDL HEADER, with the
14967  * fields enclosed by brackets "[]" replaced with your own identifying
14968  * information: Portions Copyright [yyyy] [name of copyright owner]
14969  *
14970  * CDDL HEADER END
14971  */
14972 
14973 /*
14974  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
14975  * Copyright 2016 Joyent, Inc.
14976  *
14977  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
14978  * Use is subject to license terms.
14979  */
14980 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h" 2
14981 
14982 
14983 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
14984 /*
14985  * CDDL HEADER START
14986  *
14987  * The contents of this file are subject to the terms of the
14988  * Common Development and Distribution License (the "License").
14989  * You may not use this file except in compliance with the License.
14990  *
14991  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14992  * or http://www.opensolaris.org/os/licensing.
14993  * See the License for the specific language governing permissions
14994  * and limitations under the License.
14995  *
14996  * When distributing Covered Code, include this CDDL HEADER in each
14997  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14998  * If applicable, add the following below this CDDL HEADER, with the
14999  * fields enclosed by brackets "[]" replaced with your own identifying
15000  * information: Portions Copyright [yyyy] [name of copyright owner]
15001  *
15002  * CDDL HEADER END
15003  */
15004 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15005 /*	  All Rights Reserved  	*/
15006 
15007 
15008 /*
15009  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15010  * Use is subject to license terms.
15011  *
15012  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15013  * Copyright 2016 Joyent, Inc.
15014  */
15015 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h" 2
15016 
15017 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h" 1
15018 /*
15019  * CDDL HEADER START
15020  *
15021  * The contents of this file are subject to the terms of the
15022  * Common Development and Distribution License (the "License").
15023  * You may not use this file except in compliance with the License.
15024  *
15025  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15026  * or http://www.opensolaris.org/os/licensing.
15027  * See the License for the specific language governing permissions
15028  * and limitations under the License.
15029  *
15030  * When distributing Covered Code, include this CDDL HEADER in each
15031  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15032  * If applicable, add the following below this CDDL HEADER, with the
15033  * fields enclosed by brackets "[]" replaced with your own identifying
15034  * information: Portions Copyright [yyyy] [name of copyright owner]
15035  *
15036  * CDDL HEADER END
15037  */
15038 /*
15039  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
15040  *
15041  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
15042  */
15043 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
15044 
15045 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T		*/
15046 /*	All Rights Reserved	*/
15047 
15048 /*
15049  * Essential struct definitions for mcontext_t needed by ucontext.h
15050  * These were formerly in regset.h, which now includes this file.
15051  */
15052 
15053 
15054 
15055 
15056 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
15057 /*
15058  * CDDL HEADER START
15059  *
15060  * The contents of this file are subject to the terms of the
15061  * Common Development and Distribution License (the "License").
15062  * You may not use this file except in compliance with the License.
15063  *
15064  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15065  * or http://www.opensolaris.org/os/licensing.
15066  * See the License for the specific language governing permissions
15067  * and limitations under the License.
15068  *
15069  * When distributing Covered Code, include this CDDL HEADER in each
15070  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15071  * If applicable, add the following below this CDDL HEADER, with the
15072  * fields enclosed by brackets "[]" replaced with your own identifying
15073  * information: Portions Copyright [yyyy] [name of copyright owner]
15074  *
15075  * CDDL HEADER END
15076  */
15077 
15078 /*
15079  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
15080  * Copyright 2016 Joyent, Inc.
15081  *
15082  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
15083  * Use is subject to license terms.
15084  */
15085 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h" 2
15086 
15087 
15088 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
15089 /*
15090  * CDDL HEADER START
15091  *
15092  * The contents of this file are subject to the terms of the
15093  * Common Development and Distribution License (the "License").
15094  * You may not use this file except in compliance with the License.
15095  *
15096  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15097  * or http://www.opensolaris.org/os/licensing.
15098  * See the License for the specific language governing permissions
15099  * and limitations under the License.
15100  *
15101  * When distributing Covered Code, include this CDDL HEADER in each
15102  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15103  * If applicable, add the following below this CDDL HEADER, with the
15104  * fields enclosed by brackets "[]" replaced with your own identifying
15105  * information: Portions Copyright [yyyy] [name of copyright owner]
15106  *
15107  * CDDL HEADER END
15108  */
15109 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15110 /*	  All Rights Reserved  	*/
15111 
15112 
15113 /*
15114  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15115  * Use is subject to license terms.
15116  *
15117  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15118  * Copyright 2016 Joyent, Inc.
15119  */
15120 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h" 2
15121 
15122 
15123 
15124 
15125 
15126 
15127 /*
15128  * A gregset_t is defined as an array type for compatibility with the reference
15129  * source. This is important due to differences in the way the C language
15130  * treats arrays and structures as parameters.
15131  */
15132 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h"
15133 typedef int greg_t;
15134 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h"
15135 typedef greg_t gregset_t[19];
15136 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h"
15137 /*
15138  * Floating point definitions.
15139  */
15140 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h"
15141 /*
15142  * This definition of the floating point structure is binary
15143  * compatible with the Intel386 psABI definition, and source
15144  * compatible with that specification for x87-style floating point.
15145  * It also allows SSE/SSE2 state to be accessed on machines that
15146  * possess such hardware capabilities.
15147  */
15148 typedef struct _fpu {
15149  union {
15150   struct _fpchip_state {
15151    uint32_t state[27]; /* 287/387 saved state */
15152    uint32_t status; /* saved at exception */
15153    uint32_t mxcsr; /* SSE control and status */
15154    uint32_t xstatus; /* SSE mxcsr at exception */
15155    uint32_t __pad[2]; /* align to 128-bits */
15156    upad128_t xmm[8]; /* %xmm0-%xmm7 */
15157   } fpchip_state;
15158   struct _fp_emul_space { /* for emulator(s) */
15159    uint8_t fp_emul[246];
15160    uint8_t fp_epad[2];
15161   } fp_emul_space;
15162   uint32_t f_fpregs[95]; /* union of the above */
15163  } fp_reg_set;
15164 } fpregset_t;
15165 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h"
15166 /*
15167  * Structure mcontext defines the complete hardware machine state.
15168  * (This structure is specified in the i386 ABI suppl.)
15169  */
15170 typedef struct {
15171  gregset_t gregs; /* general register set */
15172  fpregset_t fpregs; /* floating point register set */
15173 } mcontext_t;
15174 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h" 2
15175 
15176 
15177 
15178 
15179 
15180 /*
15181  * The names and offsets defined here should be specified by the
15182  * AMD64 ABI suppl.
15183  *
15184  * We make fsbase and gsbase part of the lwp context (since they're
15185  * the only way to access the full 64-bit address range via the segment
15186  * registers) and thus belong here too.  However we treat them as
15187  * read-only; if %fs or %gs are updated, the results of the descriptor
15188  * table lookup that those updates implicitly cause will be reflected
15189  * in the corresponding fsbase and/or gsbase values the next time the
15190  * context can be inspected.  However it is NOT possible to override
15191  * the fsbase/gsbase settings via this interface.
15192  *
15193  * Direct modification of the base registers (thus overriding the
15194  * descriptor table base address) can be achieved with _lwp_setprivate.
15195  */
15196 # 92 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h"
15197 /*
15198  * The names and offsets defined here are specified by i386 ABI suppl.
15199  */
15200 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h"
15201 /* aliases for portability */
15202 # 143 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h"
15203 /*
15204  * (This structure definition is specified in the i386 ABI supplement)
15205  * It's likely we can just get rid of the struct __old_fpu or maybe
15206  * move it to $SRC/uts/intel/ia32/os/fpu.c which appears to be the
15207  * only place that uses it.  See: www.illumos.org/issues/6284
15208  */
15209 typedef struct __old_fpu {
15210  union {
15211   struct __old_fpchip_state /* fp extension state */
15212   {
15213    int state[27]; /* 287/387 saved state */
15214    int status; /* status word saved at */
15215       /* exception */
15216   } fpchip_state;
15217   struct __old_fp_emul_space /* for emulator(s) */
15218   {
15219    char fp_emul[246];
15220    char fp_epad[2];
15221   } fp_emul_space;
15222   int f_fpregs[62]; /* union of the above */
15223  } fp_reg_set;
15224  long f_wregs[33]; /* saved weitek state */
15225 } __old_fpregset_t;
15226 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h"
15227 typedef struct dbregset {
15228  unsigned long debugreg[8];
15229 } dbregset_t;
15230 
15231 
15232 
15233 /*
15234  * The version of privregs.h that is used on implementations that run on
15235  * processors that support the AMD64 instruction set is deliberately not
15236  * imported here.
15237  *
15238  * The amd64 'struct regs' definition may -not- compatible with either
15239  * 32-bit or 64-bit core file contents, nor with the ucontext.  As a result,
15240  * the 'regs' structure cannot be used portably by applications, and should
15241  * only be used by the kernel implementation.
15242  *
15243  * The inclusion of the i386 version of privregs.h allows for some limited
15244  * source compatibility with 32-bit applications who expect to use
15245  * 'struct regs' to match the context of a 32-bit core file, or a ucontext_t.
15246  *
15247  * Note that the ucontext_t actually describes the general register in terms
15248  * of the gregset_t data type, as described in this file.  Note also
15249  * that the core file content is defined by core(4) in terms of data types
15250  * defined by procfs -- see proc(4).
15251  */
15252 
15253 
15254 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/privregs.h" 1
15255 /*
15256  * CDDL HEADER START
15257  *
15258  * The contents of this file are subject to the terms of the
15259  * Common Development and Distribution License, Version 1.0 only
15260  * (the "License").  You may not use this file except in compliance
15261  * with the License.
15262  *
15263  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15264  * or http://www.opensolaris.org/os/licensing.
15265  * See the License for the specific language governing permissions
15266  * and limitations under the License.
15267  *
15268  * When distributing Covered Code, include this CDDL HEADER in each
15269  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15270  * If applicable, add the following below this CDDL HEADER, with the
15271  * fields enclosed by brackets "[]" replaced with your own identifying
15272  * information: Portions Copyright [yyyy] [name of copyright owner]
15273  *
15274  * CDDL HEADER END
15275  */
15276 /*
15277  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
15278  * Use is subject to license terms.
15279  */
15280 
15281 
15282 
15283 
15284 #pragma ident "%Z%%M%	%I%	%E% SMI"
15285 
15286 
15287 
15288 
15289 
15290 
15291 
15292 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/privregs.h" 1
15293 /*
15294  * CDDL HEADER START
15295  *
15296  * The contents of this file are subject to the terms of the
15297  * Common Development and Distribution License (the "License").
15298  * You may not use this file except in compliance with the License.
15299  *
15300  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15301  * or http://www.opensolaris.org/os/licensing.
15302  * See the License for the specific language governing permissions
15303  * and limitations under the License.
15304  *
15305  * When distributing Covered Code, include this CDDL HEADER in each
15306  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15307  * If applicable, add the following below this CDDL HEADER, with the
15308  * fields enclosed by brackets "[]" replaced with your own identifying
15309  * information: Portions Copyright [yyyy] [name of copyright owner]
15310  *
15311  * CDDL HEADER END
15312  */
15313 
15314 /*
15315  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
15316  * Use is subject to license terms.
15317  */
15318 
15319 
15320 
15321 
15322 #pragma ident "%Z%%M%	%I%	%E% SMI"
15323 
15324 
15325 
15326 
15327 
15328 /*
15329  * This file describes the cpu's privileged register set, and
15330  * how the machine state is saved on the stack when a trap occurs.
15331  */
15332 
15333 
15334 
15335 
15336 
15337 
15338 
15339 /*
15340  * This is NOT the structure to use for general purpose debugging;
15341  * see /proc for that.  This is NOT the structure to use to decode
15342  * the ucontext or grovel about in a core file; see <sys/regset.h>.
15343  */
15344 
15345 struct regs {
15346  /*
15347 	 * Extra frame for mdb to follow through high level interrupts and
15348 	 * system traps.  Set them to 0 to terminate stacktrace.
15349 	 */
15350  greg_t r_savfp; /* a copy of %ebp */
15351  greg_t r_savpc; /* a copy of %eip */
15352 
15353  greg_t r_gs;
15354  greg_t r_fs;
15355  greg_t r_es;
15356  greg_t r_ds;
15357  greg_t r_edi;
15358  greg_t r_esi;
15359  greg_t r_ebp;
15360  greg_t r_esp;
15361  greg_t r_ebx;
15362  greg_t r_edx;
15363  greg_t r_ecx;
15364  greg_t r_eax;
15365  greg_t r_trapno;
15366  greg_t r_err;
15367  greg_t r_eip;
15368  greg_t r_cs;
15369  greg_t r_efl;
15370  greg_t r_uesp;
15371  greg_t r_ss;
15372 };
15373 # 219 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/privregs.h"
15374 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h" 1
15375 /*
15376  * CDDL HEADER START
15377  *
15378  * The contents of this file are subject to the terms of the
15379  * Common Development and Distribution License (the "License").
15380  * You may not use this file except in compliance with the License.
15381  *
15382  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15383  * or http://www.opensolaris.org/os/licensing.
15384  * See the License for the specific language governing permissions
15385  * and limitations under the License.
15386  *
15387  * When distributing Covered Code, include this CDDL HEADER in each
15388  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15389  * If applicable, add the following below this CDDL HEADER, with the
15390  * fields enclosed by brackets "[]" replaced with your own identifying
15391  * information: Portions Copyright [yyyy] [name of copyright owner]
15392  *
15393  * CDDL HEADER END
15394  */
15395 /*
15396  * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
15397  * Copyright 2015, Joyent, Inc.
15398  */
15399 
15400 
15401 
15402 
15403 
15404 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
15405 /*
15406  * CDDL HEADER START
15407  *
15408  * The contents of this file are subject to the terms of the
15409  * Common Development and Distribution License (the "License").
15410  * You may not use this file except in compliance with the License.
15411  *
15412  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15413  * or http://www.opensolaris.org/os/licensing.
15414  * See the License for the specific language governing permissions
15415  * and limitations under the License.
15416  *
15417  * When distributing Covered Code, include this CDDL HEADER in each
15418  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15419  * If applicable, add the following below this CDDL HEADER, with the
15420  * fields enclosed by brackets "[]" replaced with your own identifying
15421  * information: Portions Copyright [yyyy] [name of copyright owner]
15422  *
15423  * CDDL HEADER END
15424  */
15425 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15426 /*	  All Rights Reserved  	*/
15427 
15428 
15429 /*
15430  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15431  * Use is subject to license terms.
15432  *
15433  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15434  * Copyright 2016 Joyent, Inc.
15435  */
15436 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h" 2
15437 
15438 
15439 
15440 
15441 
15442 
15443 /*
15444  * This file describes the x86 architecture control registers which
15445  * are part of the privileged architecture.
15446  *
15447  * Many of these definitions are shared between IA-32-style and
15448  * AMD64-style processors.
15449  */
15450 
15451 /* CR0 Register */
15452 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h"
15453 /* XX64 eliminate these compatibility defines */
15454 
15455 
15456 
15457 
15458 
15459 
15460 
15461 /*
15462  * Set the FPU-related control bits to explain to the processor that
15463  * we're managing FPU state:
15464  * - set monitor coprocessor (allow TS bit to control FPU)
15465  * - set numeric exception (disable IGNNE# mechanism)
15466  * - set task switch (#nm on first fp instruction)
15467  * - clear emulate math bit (cause we're not emulating!)
15468  */
15469 
15470 
15471 
15472 /*
15473  * Set the FPU-related control bits to explain to the processor that
15474  * we're -not- managing FPU state:
15475  * - set emulate (all fp instructions cause #nm)
15476  * - clear monitor coprocessor (so fwait/wait doesn't #nm)
15477  */
15478 
15479 
15480 
15481 /* CR3 Register */
15482 
15483 
15484 
15485 
15486 
15487 
15488 /* CR4 Register */
15489 # 107 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h"
15490      /* 0x0800 reserved */
15491      /* 0x1000 reserved */
15492 # 118 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h"
15493 /*
15494  * Enable the SSE-related control bits to explain to the processor that
15495  * we're managing XMM state and exceptions
15496  */
15497 
15498 
15499 
15500 /*
15501  * Disable the SSE-related control bits to explain to the processor
15502  * that we're NOT managing XMM state
15503  */
15504 
15505 
15506 
15507 /* Intel's SYSENTER configuration registers */
15508 
15509 
15510 
15511 
15512 
15513 /* Intel's microcode registers */
15514 
15515 
15516 
15517 
15518 /* Intel's platform identification */
15519 
15520 
15521 
15522 
15523 /* AMD's EFER register */
15524 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h"
15525 /* AMD's SYSCFG register */
15526 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h"
15527 /* AMD's syscall/sysret MSRs */
15528 
15529 
15530 
15531 
15532 
15533 
15534 /* AMD's FS.base and GS.base MSRs */
15535 
15536 
15537 
15538 
15539 
15540 
15541 /* AMD's configuration MSRs, weakly documented in the revision guide */
15542 
15543 
15544 
15545 
15546 
15547 
15548 /* AMD's HWCR MSR */
15549 
15550 
15551 
15552 
15553 
15554 
15555 
15556 /* AMD's NorthBridge Config MSR, SHOULD ONLY BE WRITTEN TO BY BIOS */
15557 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/controlregs.h"
15558 /* AMD's osvw MSRs */
15559 
15560 
15561 
15562 
15563 
15564 
15565 
15566 /*
15567  * Enable PCI Extended Configuration Space (ECS) on Greyhound
15568  */
15569 
15570 
15571 /* AMD microcode patch loader */
15572 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/privregs.h" 2
15573 
15574 /* Control register layout for panic dump */
15575 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/privregs.h"
15576 typedef uint64_t creg64_t;
15577 
15578 struct cregs {
15579  creg64_t cr_gdt;
15580  creg64_t cr_idt;
15581  uint16_t cr_ldt;
15582  uint16_t cr_task;
15583  uint32_t cr_cr0;
15584  uint32_t cr_cr2;
15585  uint32_t cr_cr3;
15586  uint32_t cr_cr4;
15587 };
15588 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/privregs.h" 2
15589 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h" 2
15590 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/reg.h" 2
15591 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/reg.h" 2
15592 # 37 "common/mach.h" 2
15593 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
15594 /*
15595  * CDDL HEADER START
15596  *
15597  * The contents of this file are subject to the terms of the
15598  * Common Development and Distribution License (the "License").
15599  * You may not use this file except in compliance with the License.
15600  *
15601  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15602  * or http://www.opensolaris.org/os/licensing.
15603  * See the License for the specific language governing permissions
15604  * and limitations under the License.
15605  *
15606  * When distributing Covered Code, include this CDDL HEADER in each
15607  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15608  * If applicable, add the following below this CDDL HEADER, with the
15609  * fields enclosed by brackets "[]" replaced with your own identifying
15610  * information: Portions Copyright [yyyy] [name of copyright owner]
15611  *
15612  * CDDL HEADER END
15613  */
15614 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15615 /*	  All Rights Reserved  	*/
15616 
15617 
15618 /*
15619  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15620  * Use is subject to license terms.
15621  *
15622  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15623  * Copyright 2016 Joyent, Inc.
15624  */
15625 # 38 "common/mach.h" 2
15626 # 50 "common/apptrace.c" 2
15627 
15628 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 1
15629 /*
15630  * CDDL HEADER START
15631  *
15632  * The contents of this file are subject to the terms of the
15633  * Common Development and Distribution License (the "License").
15634  * You may not use this file except in compliance with the License.
15635  *
15636  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15637  * or http://www.opensolaris.org/os/licensing.
15638  * See the License for the specific language governing permissions
15639  * and limitations under the License.
15640  *
15641  * When distributing Covered Code, include this CDDL HEADER in each
15642  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15643  * If applicable, add the following below this CDDL HEADER, with the
15644  * fields enclosed by brackets "[]" replaced with your own identifying
15645  * information: Portions Copyright [yyyy] [name of copyright owner]
15646  *
15647  * CDDL HEADER END
15648  */
15649 
15650 /*
15651  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15652  * Use is subject to license terms.
15653  *
15654  * Portions Copyright 2007 Chad Mynhier
15655  * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
15656  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
15657  * Copyright (c) 2013 by Delphix. All rights reserved.
15658  */
15659 
15660 /*
15661  * Interfaces available from the process control library, libproc.
15662  *
15663  * libproc provides process control functions for the /proc tools
15664  * (commands in /usr/proc/bin), /usr/bin/truss, and /usr/bin/gcore.
15665  * libproc is a private support library for these commands only.
15666  * It is _not_ a public interface, although it might become one
15667  * in the fullness of time, when the interfaces settle down.
15668  *
15669  * In the meantime, be aware that any program linked with libproc in this
15670  * release of Solaris is almost guaranteed to break in the next release.
15671  *
15672  * In short, do not use this header file or libproc for any purpose.
15673  */
15674 
15675 
15676 
15677 
15678 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1
15679 /*
15680  * CDDL HEADER START
15681  *
15682  * The contents of this file are subject to the terms of the
15683  * Common Development and Distribution License (the "License").
15684  * You may not use this file except in compliance with the License.
15685  *
15686  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15687  * or http://www.opensolaris.org/os/licensing.
15688  * See the License for the specific language governing permissions
15689  * and limitations under the License.
15690  *
15691  * When distributing Covered Code, include this CDDL HEADER in each
15692  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15693  * If applicable, add the following below this CDDL HEADER, with the
15694  * fields enclosed by brackets "[]" replaced with your own identifying
15695  * information: Portions Copyright [yyyy] [name of copyright owner]
15696  *
15697  * CDDL HEADER END
15698  */
15699 
15700 /*
15701  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15702  * Copyright (c) 2013 Gary Mills
15703  *
15704  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
15705  */
15706 
15707 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
15708 
15709 /*	Copyright (c) 1988 AT&T	*/
15710 /*	  All Rights Reserved  	*/
15711 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
15712 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1
15713 /*
15714  * CDDL HEADER START
15715  *
15716  * The contents of this file are subject to the terms of the
15717  * Common Development and Distribution License (the "License").
15718  * You may not use this file except in compliance with the License.
15719  *
15720  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15721  * or http://www.opensolaris.org/os/licensing.
15722  * See the License for the specific language governing permissions
15723  * and limitations under the License.
15724  *
15725  * When distributing Covered Code, include this CDDL HEADER in each
15726  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15727  * If applicable, add the following below this CDDL HEADER, with the
15728  * fields enclosed by brackets "[]" replaced with your own identifying
15729  * information: Portions Copyright [yyyy] [name of copyright owner]
15730  *
15731  * CDDL HEADER END
15732  */
15733 
15734 /*
15735  * Copyright 2014 PALO, Richard.
15736  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15737  * Copyright (c) 2013 Gary Mills
15738  *
15739  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
15740  */
15741 
15742 /*	Copyright (c) 1988 AT&T	*/
15743 /*	  All Rights Reserved  	*/
15744 
15745 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
15746 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
15747 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1
15748 /*
15749  * CDDL HEADER START
15750  *
15751  * The contents of this file are subject to the terms of the
15752  * Common Development and Distribution License (the "License").
15753  * You may not use this file except in compliance with the License.
15754  *
15755  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15756  * or http://www.opensolaris.org/os/licensing.
15757  * See the License for the specific language governing permissions
15758  * and limitations under the License.
15759  *
15760  * When distributing Covered Code, include this CDDL HEADER in each
15761  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15762  * If applicable, add the following below this CDDL HEADER, with the
15763  * fields enclosed by brackets "[]" replaced with your own identifying
15764  * information: Portions Copyright [yyyy] [name of copyright owner]
15765  *
15766  * CDDL HEADER END
15767  */
15768 
15769 /*
15770  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15771  *
15772  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
15773  * Use is subject to license terms.
15774  */
15775 
15776 /*	Copyright (c) 1988 AT&T	*/
15777 /*	  All Rights Reserved  	*/
15778 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
15779 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/nlist.h" 1
15780 /*
15781  * CDDL HEADER START
15782  *
15783  * The contents of this file are subject to the terms of the
15784  * Common Development and Distribution License, Version 1.0 only
15785  * (the "License").  You may not use this file except in compliance
15786  * with the License.
15787  *
15788  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15789  * or http://www.opensolaris.org/os/licensing.
15790  * See the License for the specific language governing permissions
15791  * and limitations under the License.
15792  *
15793  * When distributing Covered Code, include this CDDL HEADER in each
15794  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15795  * If applicable, add the following below this CDDL HEADER, with the
15796  * fields enclosed by brackets "[]" replaced with your own identifying
15797  * information: Portions Copyright [yyyy] [name of copyright owner]
15798  *
15799  * CDDL HEADER END
15800  */
15801 /*
15802  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15803  */
15804 /*	Copyright (c) 1988 AT&T	*/
15805 /*	  All Rights Reserved  	*/
15806 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/nlist.h"
15807 struct nlist {
15808  char *n_name; /* symbol name */
15809  long n_value; /* value of symbol */
15810  short n_scnum; /* section number */
15811  unsigned short n_type; /* type and derived type */
15812  char n_sclass; /* storage class */
15813  char n_numaux; /* number of aux. entries */
15814 };
15815 
15816 extern int nlist(const char *, struct nlist *);
15817 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
15818 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/door.h" 1
15819 /*
15820  * CDDL HEADER START
15821  *
15822  * The contents of this file are subject to the terms of the
15823  * Common Development and Distribution License (the "License").
15824  * You may not use this file except in compliance with the License.
15825  *
15826  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15827  * or http://www.opensolaris.org/os/licensing.
15828  * See the License for the specific language governing permissions
15829  * and limitations under the License.
15830  *
15831  * When distributing Covered Code, include this CDDL HEADER in each
15832  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15833  * If applicable, add the following below this CDDL HEADER, with the
15834  * fields enclosed by brackets "[]" replaced with your own identifying
15835  * information: Portions Copyright [yyyy] [name of copyright owner]
15836  *
15837  * CDDL HEADER END
15838  */
15839 
15840 /*
15841  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15842  * Use is subject to license terms.
15843  */
15844 
15845 
15846 
15847 
15848 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
15849 /*
15850  * CDDL HEADER START
15851  *
15852  * The contents of this file are subject to the terms of the
15853  * Common Development and Distribution License (the "License").
15854  * You may not use this file except in compliance with the License.
15855  *
15856  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15857  * or http://www.opensolaris.org/os/licensing.
15858  * See the License for the specific language governing permissions
15859  * and limitations under the License.
15860  *
15861  * When distributing Covered Code, include this CDDL HEADER in each
15862  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15863  * If applicable, add the following below this CDDL HEADER, with the
15864  * fields enclosed by brackets "[]" replaced with your own identifying
15865  * information: Portions Copyright [yyyy] [name of copyright owner]
15866  *
15867  * CDDL HEADER END
15868  */
15869 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15870 /*	  All Rights Reserved  	*/
15871 
15872 
15873 /*
15874  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15875  * Use is subject to license terms.
15876  *
15877  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15878  * Copyright 2016 Joyent, Inc.
15879  */
15880 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/door.h" 2
15881 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h" 1
15882 /*
15883  * CDDL HEADER START
15884  *
15885  * The contents of this file are subject to the terms of the
15886  * Common Development and Distribution License (the "License").
15887  * You may not use this file except in compliance with the License.
15888  *
15889  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15890  * or http://www.opensolaris.org/os/licensing.
15891  * See the License for the specific language governing permissions
15892  * and limitations under the License.
15893  *
15894  * When distributing Covered Code, include this CDDL HEADER in each
15895  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15896  * If applicable, add the following below this CDDL HEADER, with the
15897  * fields enclosed by brackets "[]" replaced with your own identifying
15898  * information: Portions Copyright [yyyy] [name of copyright owner]
15899  *
15900  * CDDL HEADER END
15901  */
15902 /*
15903  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15904  * Use is subject to license terms.
15905  */
15906 
15907 /*
15908  * The door lightweight RPC I/F.
15909  */
15910 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h"
15911 /*
15912  * Attributes associated with doors.
15913  */
15914 
15915 /* Attributes originally obtained from door_create operation */
15916 
15917 
15918 
15919 
15920 
15921 
15922 
15923 /* Attributes (additional) returned with door_info and door_desc_t data */
15924 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h"
15925 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
15926 /*
15927  * CDDL HEADER START
15928  *
15929  * The contents of this file are subject to the terms of the
15930  * Common Development and Distribution License (the "License").
15931  * You may not use this file except in compliance with the License.
15932  *
15933  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15934  * or http://www.opensolaris.org/os/licensing.
15935  * See the License for the specific language governing permissions
15936  * and limitations under the License.
15937  *
15938  * When distributing Covered Code, include this CDDL HEADER in each
15939  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15940  * If applicable, add the following below this CDDL HEADER, with the
15941  * fields enclosed by brackets "[]" replaced with your own identifying
15942  * information: Portions Copyright [yyyy] [name of copyright owner]
15943  *
15944  * CDDL HEADER END
15945  */
15946 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15947 /*	  All Rights Reserved  	*/
15948 
15949 
15950 /*
15951  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15952  * Use is subject to license terms.
15953  *
15954  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15955  * Copyright 2016 Joyent, Inc.
15956  */
15957 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h" 2
15958 
15959 
15960 
15961 
15962 
15963 
15964 
15965 /* Basic door type information */
15966 typedef unsigned long long door_ptr_t; /* Handle 64 bit pointers */
15967 typedef unsigned long long door_id_t; /* Unique door identifier */
15968 typedef unsigned int door_attr_t; /* Door attributes */
15969 # 79 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h"
15970 /* Door descriptor passed to door_info to get current thread's binding */
15971 
15972 
15973 /* Masks of applicable flags */
15974 
15975 
15976 
15977 
15978 
15979 /* Mask of above attributes */
15980 
15981 
15982 
15983 /* Attributes used to describe door_desc_t data */
15984 
15985 
15986 
15987 
15988 
15989 
15990 /* Misc attributes used internally */
15991 
15992 
15993 
15994 /* door parameters */
15995 
15996 
15997 
15998 
15999 /*
16000  * On AMD64, 32-bit pack door_desc and door_info to avoid needing special
16001  * copyin/copyout conversions due to differing alignment rules between
16002  * 32-bit x86 and 64-bit amd64.
16003  */
16004 
16005 
16006 
16007 
16008 
16009 /*
16010  * Structure used to pass descriptors/objects in door invocations
16011  */
16012 
16013 typedef struct door_desc {
16014  door_attr_t d_attributes; /* Tag for union */
16015  union {
16016   /* File descriptor is passed */
16017   struct {
16018    int d_descriptor;
16019    door_id_t d_id; /* unique id */
16020   } d_desc;
16021 
16022 
16023 
16024 
16025   /* Reserved space */
16026   int d_resv[5];
16027  } d_data;
16028 } door_desc_t;
16029 
16030 /*
16031  * Structure used to return info from door_info
16032  */
16033 typedef struct door_info {
16034  pid_t di_target; /* Server process */
16035  door_ptr_t di_proc; /* Server procedure */
16036  door_ptr_t di_data; /* Data cookie */
16037  door_attr_t di_attributes; /* Attributes associated with door */
16038  door_id_t di_uniquifier; /* Unique number */
16039  int di_resv[4]; /* Future use */
16040 } door_info_t;
16041 
16042 
16043 
16044 
16045 
16046 /*
16047  * Structure used to return info from door_cred
16048  */
16049 typedef struct door_cred {
16050  uid_t dc_euid; /* Effective uid of client */
16051  gid_t dc_egid; /* Effective gid of client */
16052  uid_t dc_ruid; /* Real uid of client */
16053  gid_t dc_rgid; /* Real gid of client */
16054  pid_t dc_pid; /* pid of client */
16055  int dc_resv[4]; /* Future use */
16056 } door_cred_t;
16057 
16058 /*
16059  * Structure used to pass/return data from door_call
16060  *
16061  * All fields are in/out paramters. Upon return these fields
16062  * are updated to reflect the true location and size of the results.
16063  */
16064 typedef struct door_arg {
16065  char *data_ptr; /* Argument/result data */
16066  size_t data_size; /* Argument/result data size */
16067  door_desc_t *desc_ptr; /* Argument/result descriptors */
16068  uint_t desc_num; /* Argument/result num discriptors */
16069  char *rbuf; /* Result area */
16070  size_t rsize; /* Result size */
16071 } door_arg_t;
16072 # 196 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h"
16073 /*
16074  * Structure used to pass door invocation information.
16075  */
16076 struct door_results {
16077  void *cookie;
16078  char *data_ptr;
16079  size_t data_size;
16080  door_desc_t *desc_ptr;
16081  size_t desc_num;
16082  void (*pc)();
16083  int nservers; /* zero if thread pool is empty */
16084  door_info_t *door_info;
16085 };
16086 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h"
16087 /*
16088  * Structure used to pass a descriptor list to door_return.
16089  */
16090 typedef struct door_return_desc {
16091  door_desc_t *desc_ptr;
16092  uint_t desc_num;
16093 } door_return_desc_t;
16094 # 314 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/door.h"
16095 /*
16096  * System call subcodes
16097  */
16098 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/door.h" 2
16099 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ucred.h" 1
16100 /*
16101  * CDDL HEADER START
16102  *
16103  * The contents of this file are subject to the terms of the
16104  * Common Development and Distribution License (the "License").
16105  * You may not use this file except in compliance with the License.
16106  *
16107  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16108  * or http://www.opensolaris.org/os/licensing.
16109  * See the License for the specific language governing permissions
16110  * and limitations under the License.
16111  *
16112  * When distributing Covered Code, include this CDDL HEADER in each
16113  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16114  * If applicable, add the following below this CDDL HEADER, with the
16115  * fields enclosed by brackets "[]" replaced with your own identifying
16116  * information: Portions Copyright [yyyy] [name of copyright owner]
16117  *
16118  * CDDL HEADER END
16119  */
16120 /*
16121  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16122  *
16123  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
16124  * Use is subject to license terms.
16125  */
16126 
16127 
16128 
16129 
16130 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16131 /*
16132  * CDDL HEADER START
16133  *
16134  * The contents of this file are subject to the terms of the
16135  * Common Development and Distribution License (the "License").
16136  * You may not use this file except in compliance with the License.
16137  *
16138  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16139  * or http://www.opensolaris.org/os/licensing.
16140  * See the License for the specific language governing permissions
16141  * and limitations under the License.
16142  *
16143  * When distributing Covered Code, include this CDDL HEADER in each
16144  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16145  * If applicable, add the following below this CDDL HEADER, with the
16146  * fields enclosed by brackets "[]" replaced with your own identifying
16147  * information: Portions Copyright [yyyy] [name of copyright owner]
16148  *
16149  * CDDL HEADER END
16150  */
16151 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16152 /*	  All Rights Reserved  	*/
16153 
16154 
16155 /*
16156  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16157  * Use is subject to license terms.
16158  *
16159  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16160  * Copyright 2016 Joyent, Inc.
16161  */
16162 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ucred.h" 2
16163 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 1
16164 /*
16165  * CDDL HEADER START
16166  *
16167  * The contents of this file are subject to the terms of the
16168  * Common Development and Distribution License (the "License").
16169  * You may not use this file except in compliance with the License.
16170  *
16171  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16172  * or http://www.opensolaris.org/os/licensing.
16173  * See the License for the specific language governing permissions
16174  * and limitations under the License.
16175  *
16176  * When distributing Covered Code, include this CDDL HEADER in each
16177  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16178  * If applicable, add the following below this CDDL HEADER, with the
16179  * fields enclosed by brackets "[]" replaced with your own identifying
16180  * information: Portions Copyright [yyyy] [name of copyright owner]
16181  *
16182  * CDDL HEADER END
16183  */
16184 /*
16185  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16186  *
16187  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
16188  */
16189 
16190 
16191 
16192 
16193 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16194 /*
16195  * CDDL HEADER START
16196  *
16197  * The contents of this file are subject to the terms of the
16198  * Common Development and Distribution License (the "License").
16199  * You may not use this file except in compliance with the License.
16200  *
16201  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16202  * or http://www.opensolaris.org/os/licensing.
16203  * See the License for the specific language governing permissions
16204  * and limitations under the License.
16205  *
16206  * When distributing Covered Code, include this CDDL HEADER in each
16207  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16208  * If applicable, add the following below this CDDL HEADER, with the
16209  * fields enclosed by brackets "[]" replaced with your own identifying
16210  * information: Portions Copyright [yyyy] [name of copyright owner]
16211  *
16212  * CDDL HEADER END
16213  */
16214 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16215 /*	  All Rights Reserved  	*/
16216 
16217 
16218 /*
16219  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16220  * Use is subject to license terms.
16221  *
16222  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16223  * Copyright 2016 Joyent, Inc.
16224  */
16225 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
16226 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
16227 /*
16228  * CDDL HEADER START
16229  *
16230  * The contents of this file are subject to the terms of the
16231  * Common Development and Distribution License (the "License").
16232  * You may not use this file except in compliance with the License.
16233  *
16234  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16235  * or http://www.opensolaris.org/os/licensing.
16236  * See the License for the specific language governing permissions
16237  * and limitations under the License.
16238  *
16239  * When distributing Covered Code, include this CDDL HEADER in each
16240  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16241  * If applicable, add the following below this CDDL HEADER, with the
16242  * fields enclosed by brackets "[]" replaced with your own identifying
16243  * information: Portions Copyright [yyyy] [name of copyright owner]
16244  *
16245  * CDDL HEADER END
16246  */
16247 /*
16248  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16249  * Use is subject to license terms.
16250  */
16251 
16252 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
16253 /*	  All Rights Reserved  	*/
16254 
16255 /*
16256  * Portions of this source code were derived from Berkeley 4.3 BSD
16257  * under license from the Regents of the University of California.
16258  */
16259 
16260 
16261 
16262 
16263 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16264 /*
16265  * CDDL HEADER START
16266  *
16267  * The contents of this file are subject to the terms of the
16268  * Common Development and Distribution License (the "License").
16269  * You may not use this file except in compliance with the License.
16270  *
16271  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16272  * or http://www.opensolaris.org/os/licensing.
16273  * See the License for the specific language governing permissions
16274  * and limitations under the License.
16275  *
16276  * When distributing Covered Code, include this CDDL HEADER in each
16277  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16278  * If applicable, add the following below this CDDL HEADER, with the
16279  * fields enclosed by brackets "[]" replaced with your own identifying
16280  * information: Portions Copyright [yyyy] [name of copyright owner]
16281  *
16282  * CDDL HEADER END
16283  */
16284 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16285 /*	  All Rights Reserved  	*/
16286 
16287 
16288 /*
16289  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16290  * Use is subject to license terms.
16291  *
16292  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16293  * Copyright 2016 Joyent, Inc.
16294  */
16295 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2
16296 
16297 
16298 
16299 
16300 
16301 /*
16302  * The credential is an opaque kernel private data structure defined in
16303  * <sys/cred_impl.h>.
16304  */
16305 
16306 typedef struct cred cred_t;
16307 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
16308 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv_names.h" 1
16309 /*
16310  * CDDL HEADER START
16311  *
16312  * The contents of this file are subject to the terms of the
16313  * Common Development and Distribution License (the "License").
16314  * You may not use this file except in compliance with the License.
16315  *
16316  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16317  * or http://www.opensolaris.org/os/licensing.
16318  * See the License for the specific language governing permissions
16319  * and limitations under the License.
16320  *
16321  * When distributing Covered Code, include this CDDL HEADER in each
16322  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16323  * If applicable, add the following below this CDDL HEADER, with the
16324  * fields enclosed by brackets "[]" replaced with your own identifying
16325  * information: Portions Copyright [yyyy] [name of copyright owner]
16326  *
16327  * CDDL HEADER END
16328  */
16329 /*
16330  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
16331  * Copyright 2015, Joyent, Inc. All rights reserved.
16332  *
16333  * Privilege constant definitions.  Privileges and privilege sets
16334  * are only known by name and should be mapped at runtime.
16335  *
16336  * THIS FILE WAS GENERATED; DO NOT EDIT
16337  */
16338 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv_names.h"
16339 /*
16340  * Privilege names
16341  */
16342 /*
16343  * Allows a process to request critical events without limitation.
16344  * Allows a process to request reliable delivery of all events on
16345  * any event queue.
16346  */
16347 
16348 
16349 /*
16350  * Allows a process to set the service FMRI value of a process
16351  * contract template.
16352  */
16353 
16354 
16355 /*
16356  * Allows a process to observe contract events generated by
16357  * contracts created and owned by users other than the process's
16358  * effective user ID.
16359  * Allows a process to open contract event endpoints belonging to
16360  * contracts created and owned by users other than the process's
16361  * effective user ID.
16362  */
16363 
16364 
16365 /*
16366  * Allow a process to access per-CPU hardware performance counters.
16367  */
16368 
16369 
16370 /*
16371  * Allows DTrace kernel-level tracing.
16372  */
16373 
16374 
16375 /*
16376  * Allows DTrace process-level tracing.
16377  * Allows process-level tracing probes to be placed and enabled in
16378  * processes to which the user has permissions.
16379  */
16380 
16381 
16382 /*
16383  * Allows DTrace user-level tracing.
16384  * Allows use of the syscall and profile DTrace providers to
16385  * examine processes to which the user has permissions.
16386  */
16387 
16388 
16389 /*
16390  * Allows a process to change a file's owner user ID.
16391  * Allows a process to change a file's group ID to one other than
16392  * the process' effective group ID or one of the process'
16393  * supplemental group IDs.
16394  */
16395 
16396 
16397 /*
16398  * Allows a process to give away its files; a process with this
16399  * privilege will run as if {_POSIX_CHOWN_RESTRICTED} is not
16400  * in effect.
16401  */
16402 
16403 
16404 /*
16405  * Allows a process to execute an executable file whose permission
16406  * bits or ACL do not allow the process execute permission.
16407  */
16408 
16409 
16410 /*
16411  * Allows a process to read a file or directory whose permission
16412  * bits or ACL do not allow the process read permission.
16413  */
16414 
16415 
16416 /*
16417  * Allows a process to search a directory whose permission bits or
16418  * ACL do not allow the process search permission.
16419  */
16420 
16421 
16422 /*
16423  * Allows a process to write a file or directory whose permission
16424  * bits or ACL do not allow the process write permission.
16425  * In order to write files owned by uid 0 in the absence of an
16426  * effective uid of 0 ALL privileges are required.
16427  */
16428 
16429 
16430 /*
16431  * Allows a process to set the sensitivity label of a file or
16432  * directory to a sensitivity label that does not dominate the
16433  * existing sensitivity label.
16434  * This privilege is interpreted only if the system is configured
16435  * with Trusted Extensions.
16436  */
16437 
16438 
16439 /*
16440  * Allows a process to set immutable, nounlink or appendonly
16441  * file attributes.
16442  */
16443 
16444 
16445 /*
16446  * Allows a process to create hardlinks to files owned by a uid
16447  * different from the process' effective uid.
16448  */
16449 
16450 
16451 /*
16452  * Allows a process which is not the owner of a file or directory
16453  * to perform the following operations that are normally permitted
16454  * only for the file owner: modify that file's access and
16455  * modification times; remove or rename a file or directory whose
16456  * parent directory has the ``save text image after execution''
16457  * (sticky) bit set; mount a ``namefs'' upon a file; modify
16458  * permission bits or ACL except for the set-uid and set-gid
16459  * bits.
16460  */
16461 
16462 
16463 /*
16464  * Allows a process to read objects in the filesystem.
16465  */
16466 
16467 
16468 /*
16469  * Allows a process to change the ownership of a file or write to
16470  * a file without the set-user-ID and set-group-ID bits being
16471  * cleared.
16472  * Allows a process to set the set-group-ID bit on a file or
16473  * directory whose group is not the process' effective group or
16474  * one of the process' supplemental groups.
16475  * Allows a process to set the set-user-ID bit on a file with
16476  * different ownership in the presence of PRIV_FILE_OWNER.
16477  * Additional restrictions apply when creating or modifying a
16478  * set-uid 0 file.
16479  */
16480 
16481 
16482 /*
16483  * Allows a process to set the sensitivity label of a file or
16484  * directory to a sensitivity label that dominates the existing
16485  * sensitivity label.
16486  * This privilege is interpreted only if the system is configured
16487  * with Trusted Extensions.
16488  */
16489 
16490 
16491 /*
16492  * Allows a process to modify objects in the filesystem.
16493  */
16494 
16495 
16496 /*
16497  * Allows a process to make privileged ioctls to graphics devices.
16498  * Typically only xserver process needs to have this privilege.
16499  * A process with this privilege is also allowed to perform
16500  * privileged graphics device mappings.
16501  */
16502 
16503 
16504 /*
16505  * Allows a process to perform privileged mappings through a
16506  * graphics device.
16507  */
16508 
16509 
16510 /*
16511  * Allows a process to read a System V IPC
16512  * Message Queue, Semaphore Set, or Shared Memory Segment whose
16513  * permission bits do not allow the process read permission.
16514  * Allows a process to read remote shared memory whose
16515  * permission bits do not allow the process read permission.
16516  */
16517 
16518 
16519 /*
16520  * Allows a process to write a System V IPC
16521  * Message Queue, Semaphore Set, or Shared Memory Segment whose
16522  * permission bits do not allow the process write permission.
16523  * Allows a process to read remote shared memory whose
16524  * permission bits do not allow the process write permission.
16525  * Additional restrictions apply if the owner of the object has uid 0
16526  * and the effective uid of the current process is not 0.
16527  */
16528 
16529 
16530 /*
16531  * Allows a process which is not the owner of a System
16532  * V IPC Message Queue, Semaphore Set, or Shared Memory Segment to
16533  * remove, change ownership of, or change permission bits of the
16534  * Message Queue, Semaphore Set, or Shared Memory Segment.
16535  * Additional restrictions apply if the owner of the object has uid 0
16536  * and the effective uid of the current process is not 0.
16537  */
16538 
16539 
16540 /*
16541  * Allows a process to open a TCP, UDP, SDP or SCTP network endpoint.
16542  */
16543 
16544 
16545 /*
16546  * Allow a process to bind to a port that is configured as a
16547  * multi-level port(MLP) for the process's zone. This privilege
16548  * applies to both shared address and zone-specific address MLPs.
16549  * See tnzonecfg(4) from the Trusted Extensions manual pages for
16550  * information on configuring MLP ports.
16551  * This privilege is interpreted only if the system is configured
16552  * with Trusted Extensions.
16553  */
16554 
16555 
16556 /*
16557  * Allows a process to send and receive ICMP packets.
16558  */
16559 
16560 
16561 /*
16562  * Allows a process to set NET_MAC_AWARE process flag by using
16563  * setpflags(2). This privilege also allows a process to set
16564  * SO_MAC_EXEMPT socket option by using setsockopt(3SOCKET).
16565  * The NET_MAC_AWARE process flag and the SO_MAC_EXEMPT socket
16566  * option both allow a local process to communicate with an
16567  * unlabeled peer if the local process' label dominates the
16568  * peer's default label, or if the local process runs in the
16569  * global zone.
16570  * This privilege is interpreted only if the system is configured
16571  * with Trusted Extensions.
16572  */
16573 
16574 
16575 /*
16576  * Allows a process to set SO_MAC_IMPLICIT option by using
16577  * setsockopt(3SOCKET).  This allows a privileged process to
16578  * transmit implicitly-labeled packets to a peer.
16579  * This privilege is interpreted only if the system is configured
16580  * with Trusted Extensions.
16581  */
16582 
16583 
16584 /*
16585  * Allows a process to access /dev/lo0 and the devices in /dev/ipnet/
16586  * while not requiring them to need PRIV_NET_RAWACCESS.
16587  */
16588 
16589 
16590 /*
16591  * Allows a process to bind to a privileged port
16592  * number. The privilege port numbers are 1-1023 (the traditional
16593  * UNIX privileged ports) as well as those ports marked as
16594  * "udp/tcp_extra_priv_ports" with the exception of the ports
16595  * reserved for use by NFS.
16596  */
16597 
16598 
16599 /*
16600  * Allows a process to have direct access to the network layer.
16601  */
16602 
16603 
16604 /*
16605  * Allows a process to generate audit records.
16606  * Allows a process to get its own audit pre-selection information.
16607  */
16608 
16609 
16610 /*
16611  * Allows a process to change its root directory.
16612  */
16613 
16614 
16615 /*
16616  * Allows a process to use high resolution timers.
16617  */
16618 
16619 
16620 /*
16621  * Allows a process to call execve().
16622  */
16623 
16624 
16625 /*
16626  * Allows a process to call fork1()/forkall()/vfork()
16627  */
16628 
16629 
16630 /*
16631  * Allows a process to examine the status of processes other
16632  * than those it can send signals to.  Processes which cannot
16633  * be examined cannot be seen in /proc and appear not to exist.
16634  */
16635 
16636 
16637 /*
16638  * Allows a process to lock pages in physical memory.
16639  */
16640 
16641 
16642 /*
16643  * Allows a process to access physical memory information.
16644  */
16645 
16646 
16647 /*
16648  * Allows a process to send signals to other processes, inspect
16649  * and modify process state to other processes regardless of
16650  * ownership.  When modifying another process, additional
16651  * restrictions apply:  the effective privilege set of the
16652  * attaching process must be a superset of the target process'
16653  * effective, permitted and inheritable sets; the limit set must
16654  * be a superset of the target's limit set; if the target process
16655  * has any uid set to 0 all privilege must be asserted unless the
16656  * effective uid is 0.
16657  * Allows a process to bind arbitrary processes to CPUs.
16658  */
16659 
16660 
16661 /*
16662  * Allows a process to elevate its priority above its current level.
16663  */
16664 
16665 
16666 /*
16667  * Allows all that PRIV_PROC_PRIOUP allows.
16668  * Allows a process to change its scheduling class to any scheduling class,
16669  * including the RT class.
16670  */
16671 
16672 
16673 /*
16674  * Allows a process to send signals or trace processes outside its
16675  * session.
16676  */
16677 
16678 
16679 /*
16680  * Allows a process to set its uids at will.
16681  * Assuming uid 0 requires all privileges to be asserted.
16682  */
16683 
16684 
16685 /*
16686  * Allows a process to assign a new task ID to the calling process.
16687  */
16688 
16689 
16690 /*
16691  * Allows a process to trace or send signals to processes in
16692  * other zones.
16693  */
16694 
16695 
16696 /*
16697  * Allows a process to enable and disable and manage accounting through
16698  * acct(2), getacct(2), putacct(2) and wracct(2).
16699  */
16700 
16701 
16702 /*
16703  * Allows a process to perform system administration tasks such
16704  * as setting node and domain name and specifying nscd and coreadm
16705  * settings.
16706  */
16707 
16708 
16709 /*
16710  * Allows a process to start the (kernel) audit daemon.
16711  * Allows a process to view and set audit state (audit user ID,
16712  * audit terminal ID, audit sessions ID, audit pre-selection mask).
16713  * Allows a process to turn off and on auditing.
16714  * Allows a process to configure the audit parameters (cache and
16715  * queue sizes, event to class mappings, policy options).
16716  */
16717 
16718 
16719 /*
16720  * Allows a process to perform various system configuration tasks.
16721  * Allows a process to add and remove swap devices; when adding a swap
16722  * device, a process must also have sufficient privileges to read from
16723  * and write to the swap device.
16724  */
16725 
16726 
16727 /*
16728  * Allows a process to successfully call a kernel module that
16729  * calls the kernel drv_priv(9F) function to check for allowed
16730  * access.
16731  * Allows a process to open the real console device directly.
16732  * Allows a process to open devices that have been exclusively opened.
16733  */
16734 
16735 
16736 /*
16737  * Allows a process to increase the size of a System V IPC Message
16738  * Queue buffer.
16739  */
16740 
16741 
16742 /*
16743  * Allows a process to unlink and link directories.
16744  */
16745 
16746 
16747 /*
16748  * Allows filesystem specific administrative procedures, such as
16749  * filesystem configuration ioctls, quota calls and creation/deletion
16750  * of snapshots.
16751  * Allows a process to mount and unmount filesystems which would
16752  * otherwise be restricted (i.e., most filesystems except
16753  * namefs).
16754  * A process performing a mount operation needs to have
16755  * appropriate access to the device being mounted (read-write for
16756  * "rw" mounts, read for "ro" mounts).
16757  * A process performing any of the aforementioned
16758  * filesystem operations needs to have read/write/owner
16759  * access to the mount point.
16760  * Only regular files and directories can serve as mount points
16761  * for processes which do not have all zone privileges asserted.
16762  * Unless a process has all zone privileges, the mount(2)
16763  * system call will force the "nosuid" and "restrict" options, the
16764  * latter only for autofs mountpoints.
16765  * Regardless of privileges, a process running in a non-global zone may
16766  * only control mounts performed from within said zone.
16767  * Outside the global zone, the "nodevices" option is always forced.
16768  */
16769 
16770 
16771 /*
16772  * Allows a process to configure IP tunnel links.
16773  */
16774 
16775 
16776 /*
16777  * Allows a process to configure all classes of datalinks, including
16778  * configuration allowed by PRIV_SYS_IPTUN_CONFIG.
16779  */
16780 
16781 
16782 /*
16783  * Allows a process to configure a system's IP interfaces and routes.
16784  * Allows a process to configure network parameters using ndd.
16785  * Allows a process access to otherwise restricted information using ndd.
16786  * Allows a process to configure IPsec.
16787  * Allows a process to pop anchored STREAMs modules with matching zoneid.
16788  */
16789 
16790 
16791 /*
16792  * Allows all that PRIV_SYS_IP_CONFIG, PRIV_SYS_DL_CONFIG, and
16793  * PRIV_SYS_PPP_CONFIG allow.
16794  * Allows a process to push the rpcmod STREAMs module.
16795  * Allows a process to INSERT/REMOVE STREAMs modules on locations other
16796  * than the top of the module stack.
16797  */
16798 
16799 
16800 /*
16801  * Allows a process to perform Sun private NFS specific system calls.
16802  * Allows a process to bind to ports reserved by NFS: ports 2049 (nfs)
16803  * and port 4045 (lockd).
16804  */
16805 
16806 
16807 /*
16808  * Allows a process to create and destroy PPP (sppp) interfaces.
16809  * Allows a process to configure PPP tunnels (sppptun).
16810  */
16811 
16812 
16813 /*
16814  * Allows a process to bind processes to processor sets.
16815  */
16816 
16817 
16818 /*
16819  * Allows all that PRIV_SYS_RES_BIND allows.
16820  * Allows a process to create and delete processor sets, assign
16821  * CPUs to processor sets and override the PSET_NOESCAPE property.
16822  * Allows a process to change the operational status of CPUs in
16823  * the system using p_online(2).
16824  * Allows a process to configure resource pools and to bind
16825  * processes to pools
16826  */
16827 
16828 
16829 /*
16830  * Allows a process to modify the resource limits specified
16831  * by setrlimit(2) and setrctl(2) without restriction.
16832  * Allows a process to exceed the per-user maximum number of
16833  * processes.
16834  * Allows a process to extend or create files on a filesystem that
16835  * has less than minfree space in reserve.
16836  */
16837 
16838 
16839 /*
16840  * Allows a process to access the Sun private SMB kernel module.
16841  * Allows a process to bind to ports reserved by NetBIOS and SMB:
16842  * ports 137 (NBNS), 138 (NetBIOS Datagram Service), 139 (NetBIOS
16843  * Session Service and SMB-over-NBT) and 445 (SMB-over-TCP).
16844  */
16845 
16846 
16847 /*
16848  * Allows a process to successfully call a third party loadable module
16849  * that calls the kernel suser() function to check for allowed access.
16850  * This privilege exists only for third party loadable module
16851  * compatibility and is not used by Solaris proper.
16852  */
16853 
16854 
16855 /*
16856  * Allows a process to manipulate system time using any of the
16857  * appropriate system calls: stime, adjtime, ntp_adjtime and
16858  * the IA specific RTC calls.
16859  */
16860 
16861 
16862 /*
16863  * Allows a process to translate labels that are not dominated
16864  * by the process' sensitivity label to and from an external
16865  * string form.
16866  * This privilege is interpreted only if the system is configured
16867  * with Trusted Extensions.
16868  */
16869 
16870 
16871 /*
16872  * Allows a process to manage virtualized environments such as
16873  * xVM(5).
16874  */
16875 
16876 
16877 /*
16878  * Allows a process to override colormap restrictions.
16879  * Allows a process to install or remove colormaps.
16880  * Allows a process to retrieve colormap cell entries allocated
16881  * by other processes.
16882  * This privilege is interpreted only if the system is configured
16883  * with Trusted Extensions.
16884  */
16885 
16886 
16887 /*
16888  * Allows a process to configure or destroy resources that are
16889  * permanently retained by the X server.
16890  * Allows a process to use SetScreenSaver to set the screen
16891  * saver timeout value.
16892  * Allows a process to use ChangeHosts to modify the display
16893  * access control list.
16894  * Allows a process to use GrabServer.
16895  * Allows a process to use the SetCloseDownMode request which
16896  * may retain window, pixmap, colormap, property, cursor, font,
16897  * or graphic context resources.
16898  * This privilege is interpreted only if the system is configured
16899  * with Trusted Extensions.
16900  */
16901 
16902 
16903 /*
16904  * Allows a process to read from a window resource that it does
16905  * not own (has a different user ID).
16906  * This privilege is interpreted only if the system is configured
16907  * with Trusted Extensions.
16908  */
16909 
16910 
16911 /*
16912  * Allows a process to write to or create a window resource that
16913  * it does not own (has a different user ID). A newly created
16914  * window property is created with the window's user ID.
16915  * This privilege is interpreted only if the system is configured
16916  * with Trusted Extensions.
16917  */
16918 
16919 
16920 /*
16921  * Allows a process to perform operations on window input devices.
16922  * Allows a process to get and set keyboard and pointer controls.
16923  * Allows a process to modify pointer button and key mappings.
16924  * This privilege is interpreted only if the system is configured
16925  * with Trusted Extensions.
16926  */
16927 
16928 
16929 /*
16930  * Allows a process to use the direct graphics access (DGA) X protocol
16931  * extensions. Direct process access to the frame buffer is still
16932  * required. Thus the process must have MAC and DAC privileges that
16933  * allow access to the frame buffer, or the frame buffer must be
16934  * allocated to the process.
16935  * This privilege is interpreted only if the system is configured
16936  * with Trusted Extensions.
16937  */
16938 
16939 
16940 /*
16941  * Allows a process to set the sensitivity label of a window resource
16942  * to a sensitivity label that does not dominate the existing
16943  * sensitivity label.
16944  * This privilege is interpreted only if the system is configured
16945  * with Trusted Extensions.
16946  */
16947 
16948 
16949 /*
16950  * Allows a process to set a font path.
16951  * This privilege is interpreted only if the system is configured
16952  * with Trusted Extensions.
16953  */
16954 
16955 
16956 /*
16957  * Allows a process to read from a window resource whose sensitivity
16958  * label is not equal to the process sensitivity label.
16959  * This privilege is interpreted only if the system is configured
16960  * with Trusted Extensions.
16961  */
16962 
16963 
16964 /*
16965  * Allows a process to create a window resource whose sensitivity
16966  * label is not equal to the process sensitivity label.
16967  * A newly created window property is created with the window's
16968  * sensitivity label.
16969  * This privilege is interpreted only if the system is configured
16970  * with Trusted Extensions.
16971  */
16972 
16973 
16974 /*
16975  * Allows a process to request inter-window data moves without the
16976  * intervention of the selection confirmer.
16977  * This privilege is interpreted only if the system is configured
16978  * with Trusted Extensions.
16979  */
16980 
16981 
16982 /*
16983  * Allows a process to set the sensitivity label of a window
16984  * resource to a sensitivity label that dominates the existing
16985  * sensitivity label.
16986  * This privilege is interpreted only if the system is configured
16987  * with Trusted Extensions.
16988  */
16989 
16990 
16991 /*
16992  * Allows a process access to the xVM(5) control devices for
16993  * managing guest domains and the hypervisor. This privilege is
16994  * used only if booted into xVM on x86 platforms.
16995  */
16996 
16997 
16998 
16999 /*
17000  * Privilege set names
17001  */
17002 /*
17003  * Set of privileges currently in effect.
17004  */
17005 
17006 
17007 /*
17008  * Set of privileges that comes into effect on exec.
17009  */
17010 
17011 
17012 /*
17013  * Set of privileges that can be put into the effective set without
17014  * restriction.
17015  */
17016 
17017 
17018 /*
17019  * Set of privileges that determines the absolute upper bound of
17020  * privileges this process and its off-spring can obtain.
17021  */
17022 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
17023 
17024 
17025 
17026 
17027 
17028 typedef uint32_t priv_chunk_t;
17029 typedef struct priv_set priv_set_t;
17030 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
17031 /*
17032  * Userland type definitions.
17033  */
17034 
17035 typedef const char *priv_ptype_t;
17036 typedef const char *priv_t;
17037 
17038 
17039 
17040 /*
17041  * priv_op_t indicates a privilege operation type
17042  */
17043 typedef enum priv_op {
17044  PRIV_ON,
17045  PRIV_OFF,
17046  PRIV_SET
17047 } priv_op_t;
17048 
17049 /*
17050  * Privilege system call subcodes.
17051  */
17052 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
17053 /*
17054  * Maximum length of a user defined privilege name.
17055  */
17056 
17057 
17058 /*
17059  * Privilege interface functions for those parts of the kernel that
17060  * know nothing of the privilege internals.
17061  *
17062  * A privilege implementation can have a varying number of sets; sets
17063  * consist of a number of priv_chunk_t's and the size is expressed as such.
17064  * The privileges can be represented as
17065  *
17066  *		priv_chunk_t privs[info.priv_nsets][info.priv_setsize]
17067  *		... priv_infosize of extra information ...
17068  *
17069  * Extra data contained in the privilege information consists of chunks
17070  * of data with specified size and type all headed by a priv_info_t header
17071  * which defines both the type of information as well as the size of the
17072  * information.  ((char*)&info)+info->priv_info_size should be rounded up
17073  * to point to the next piece of information.
17074  */
17075 
17076 typedef struct priv_impl_info {
17077  uint32_t priv_headersize; /* sizeof (priv_impl_info) */
17078  uint32_t priv_flags; /* additional flags */
17079  uint32_t priv_nsets; /* number of priv sets */
17080  uint32_t priv_setsize; /* size in priv_chunk_t */
17081  uint32_t priv_max; /* highest actual valid priv */
17082  uint32_t priv_infosize; /* Per proc. additional info */
17083  uint32_t priv_globalinfosize; /* Per system info */
17084 } priv_impl_info_t;
17085 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
17086 /*
17087  * Per credential flags.
17088  */
17089 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
17090 /* user-settable flags: */
17091 
17092 
17093 
17094 /*
17095  * Header of the privilege info data structure; multiple structures can
17096  * follow the privilege sets and priv_impl_info structures.
17097  */
17098 typedef struct priv_info {
17099  uint32_t priv_info_type;
17100  uint32_t priv_info_size;
17101 } priv_info_t;
17102 
17103 typedef struct priv_info_uint {
17104  priv_info_t info;
17105  uint_t val;
17106 } priv_info_uint_t;
17107 
17108 /*
17109  * Global privilege set information item; the actual size of the array is
17110  * {priv_setsize}.
17111  */
17112 typedef struct priv_info_set {
17113  priv_info_t info;
17114  priv_chunk_t set[1];
17115 } priv_info_set_t;
17116 
17117 /*
17118  * names[1] is a place holder which can contain multiple NUL terminated,
17119  * non-empty strings.
17120  */
17121 
17122 typedef struct priv_info_names {
17123  priv_info_t info;
17124  int cnt; /* number of strings */
17125  char names[1]; /* "string1\0string2\0 ..stringN\0" */
17126 } priv_info_names_t;
17127 
17128 /*
17129  * Privilege information types.
17130  */
17131 
17132 
17133 
17134 
17135 
17136 /*
17137  * Special "privileges" used to indicate special conditions in privilege
17138  * debugging/tracing code.
17139  */
17140 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ucred.h" 2
17141 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 1
17142 /*
17143  * CDDL HEADER START
17144  *
17145  * The contents of this file are subject to the terms of the
17146  * Common Development and Distribution License (the "License").
17147  * You may not use this file except in compliance with the License.
17148  *
17149  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17150  * or http://www.opensolaris.org/os/licensing.
17151  * See the License for the specific language governing permissions
17152  * and limitations under the License.
17153  *
17154  * When distributing Covered Code, include this CDDL HEADER in each
17155  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17156  * If applicable, add the following below this CDDL HEADER, with the
17157  * fields enclosed by brackets "[]" replaced with your own identifying
17158  * information: Portions Copyright [yyyy] [name of copyright owner]
17159  *
17160  * CDDL HEADER END
17161  */
17162 /*
17163  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17164  * Use is subject to license terms.
17165  */
17166 
17167 
17168 
17169 
17170 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17171 /*
17172  * CDDL HEADER START
17173  *
17174  * The contents of this file are subject to the terms of the
17175  * Common Development and Distribution License (the "License").
17176  * You may not use this file except in compliance with the License.
17177  *
17178  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17179  * or http://www.opensolaris.org/os/licensing.
17180  * See the License for the specific language governing permissions
17181  * and limitations under the License.
17182  *
17183  * When distributing Covered Code, include this CDDL HEADER in each
17184  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17185  * If applicable, add the following below this CDDL HEADER, with the
17186  * fields enclosed by brackets "[]" replaced with your own identifying
17187  * information: Portions Copyright [yyyy] [name of copyright owner]
17188  *
17189  * CDDL HEADER END
17190  */
17191 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17192 /*	  All Rights Reserved  	*/
17193 
17194 
17195 /*
17196  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17197  * Use is subject to license terms.
17198  *
17199  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17200  * Copyright 2016 Joyent, Inc.
17201  */
17202 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 2
17203 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h"
17204 /*
17205  * types of label comparison
17206  */
17207 
17208 
17209 
17210 /* Manifest human readable label names */
17211 
17212 
17213 
17214 /* Binary Label Structure Definitions */
17215 
17216 typedef struct _mac_label_impl m_label_t;
17217 
17218 typedef m_label_t blevel_t, /* compatibility */
17219    bslabel_t, /* Sensitivity Label */
17220    bclear_t; /* Clearance */
17221 
17222 typedef struct _tsol_binary_level_lrange { /* Level Range */
17223  m_label_t *lower_bound;
17224  m_label_t *upper_bound;
17225 } m_range_t;
17226 
17227 typedef m_range_t blrange_t;
17228 
17229 typedef struct tsol_mlp_s {
17230  uchar_t mlp_ipp;
17231  uint16_t mlp_port;
17232  uint16_t mlp_port_upper;
17233 } tsol_mlp_t;
17234 
17235 /* Procedure Interface Definitions available to user and kernel */
17236 
17237 extern int bltype(const void *, uint8_t);
17238 extern int blequal(const m_label_t *, const m_label_t *);
17239 extern int bldominates(const m_label_t *, const m_label_t *);
17240 extern int blstrictdom(const m_label_t *, const m_label_t *);
17241 extern int blinrange(const m_label_t *, const m_range_t *);
17242 extern void blmaximum(m_label_t *, const m_label_t *);
17243 extern void blminimum(m_label_t *, const m_label_t *);
17244 extern void bsllow(m_label_t *);
17245 extern void bslhigh(m_label_t *);
17246 extern void bclearlow(m_label_t *);
17247 extern void bclearhigh(m_label_t *);
17248 extern void bslundef(m_label_t *);
17249 extern void bclearundef(m_label_t *);
17250 extern void setbltype(void *, uint8_t);
17251 extern boolean_t bisinvalid(const void *);
17252 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ucred.h" 2
17253 
17254 
17255 
17256 
17257 
17258 typedef struct ucred_s ucred_t;
17259 
17260 /*
17261  * library functions prototype.
17262  */
17263 
17264 extern ucred_t *ucred_get(pid_t pid);
17265 
17266 extern void ucred_free(ucred_t *);
17267 
17268 extern uid_t ucred_geteuid(const ucred_t *);
17269 extern uid_t ucred_getruid(const ucred_t *);
17270 extern uid_t ucred_getsuid(const ucred_t *);
17271 extern gid_t ucred_getegid(const ucred_t *);
17272 extern gid_t ucred_getrgid(const ucred_t *);
17273 extern gid_t ucred_getsgid(const ucred_t *);
17274 extern int ucred_getgroups(const ucred_t *, const gid_t **);
17275 
17276 extern const priv_set_t *ucred_getprivset(const ucred_t *, priv_ptype_t);
17277 extern uint_t ucred_getpflags(const ucred_t *, uint_t);
17278 
17279 extern pid_t ucred_getpid(const ucred_t *); /* for door_cred compatibility */
17280 
17281 extern size_t ucred_size(void);
17282 
17283 extern int getpeerucred(int, ucred_t **);
17284 
17285 extern zoneid_t ucred_getzoneid(const ucred_t *);
17286 
17287 extern bslabel_t *ucred_getlabel(const ucred_t *);
17288 
17289 extern projid_t ucred_getprojid(const ucred_t *);
17290 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/door.h" 2
17291 
17292 
17293 
17294 
17295 
17296 
17297 
17298 /*
17299  * Doors API
17300  */
17301 
17302 typedef void door_server_procedure_t(void *, char *, size_t, door_desc_t *,
17303     uint_t);
17304 
17305 int door_create(door_server_procedure_t *, void *, uint_t);
17306 int door_revoke(int);
17307 int door_info(int, door_info_t *);
17308 int door_call(int, door_arg_t *);
17309 int door_return(char *, size_t, door_desc_t *, uint_t);
17310 int door_cred(door_cred_t *);
17311 int door_ucred(ucred_t **);
17312 int door_bind(int);
17313 int door_unbind(void);
17314 int door_getparam(int, int, size_t *);
17315 int door_setparam(int, int, size_t);
17316 
17317 typedef void door_server_func_t(door_info_t *);
17318 door_server_func_t *door_server_create(door_server_func_t *);
17319 
17320 typedef int door_xcreate_server_func_t(door_info_t *,
17321     void *(*)(void *), void *, void *);
17322 typedef void door_xcreate_thrsetup_func_t(void *);
17323 
17324 int door_xcreate(door_server_procedure_t *, void *, uint_t,
17325      door_xcreate_server_func_t *, door_xcreate_thrsetup_func_t *,
17326      void *, int);
17327 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
17328 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/gelf.h" 1
17329 /*
17330  * CDDL HEADER START
17331  *
17332  * The contents of this file are subject to the terms of the
17333  * Common Development and Distribution License, Version 1.0 only
17334  * (the "License").  You may not use this file except in compliance
17335  * with the License.
17336  *
17337  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17338  * or http://www.opensolaris.org/os/licensing.
17339  * See the License for the specific language governing permissions
17340  * and limitations under the License.
17341  *
17342  * When distributing Covered Code, include this CDDL HEADER in each
17343  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17344  * If applicable, add the following below this CDDL HEADER, with the
17345  * fields enclosed by brackets "[]" replaced with your own identifying
17346  * information: Portions Copyright [yyyy] [name of copyright owner]
17347  *
17348  * CDDL HEADER END
17349  */
17350 /*
17351  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
17352  * Use is subject to license terms.
17353  */
17354 
17355 
17356 
17357 
17358 #pragma ident "%Z%%M%	%I%	%E% SMI"
17359 
17360 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
17361 /*
17362  * CDDL HEADER START
17363  *
17364  * The contents of this file are subject to the terms of the
17365  * Common Development and Distribution License (the "License").
17366  * You may not use this file except in compliance with the License.
17367  *
17368  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17369  * or http://www.opensolaris.org/os/licensing.
17370  * See the License for the specific language governing permissions
17371  * and limitations under the License.
17372  *
17373  * When distributing Covered Code, include this CDDL HEADER in each
17374  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17375  * If applicable, add the following below this CDDL HEADER, with the
17376  * fields enclosed by brackets "[]" replaced with your own identifying
17377  * information: Portions Copyright [yyyy] [name of copyright owner]
17378  *
17379  * CDDL HEADER END
17380  */
17381 
17382 /*
17383  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
17384  * Copyright 2016 Joyent, Inc.
17385  *
17386  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
17387  * Use is subject to license terms.
17388  */
17389 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/gelf.h" 2
17390 
17391 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libelf.h" 1
17392 /*
17393  * CDDL HEADER START
17394  *
17395  * The contents of this file are subject to the terms of the
17396  * Common Development and Distribution License (the "License").
17397  * You may not use this file except in compliance with the License.
17398  *
17399  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17400  * or http://www.opensolaris.org/os/licensing.
17401  * See the License for the specific language governing permissions
17402  * and limitations under the License.
17403  *
17404  * When distributing Covered Code, include this CDDL HEADER in each
17405  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17406  * If applicable, add the following below this CDDL HEADER, with the
17407  * fields enclosed by brackets "[]" replaced with your own identifying
17408  * information: Portions Copyright [yyyy] [name of copyright owner]
17409  *
17410  * CDDL HEADER END
17411  */
17412 /*	Copyright (c) 1988 AT&T	*/
17413 /*	  All Rights Reserved  	*/
17414 
17415 /*
17416  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17417  * Use is subject to license terms.
17418  * Copyright 2014 PALO, Richard. All rights reserved.
17419  */
17420 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/gelf.h" 2
17421 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/link.h" 1
17422 /*
17423  * CDDL HEADER START
17424  *
17425  * The contents of this file are subject to the terms of the
17426  * Common Development and Distribution License (the "License").
17427  * You may not use this file except in compliance with the License.
17428  *
17429  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17430  * or http://www.opensolaris.org/os/licensing.
17431  * See the License for the specific language governing permissions
17432  * and limitations under the License.
17433  *
17434  * When distributing Covered Code, include this CDDL HEADER in each
17435  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17436  * If applicable, add the following below this CDDL HEADER, with the
17437  * fields enclosed by brackets "[]" replaced with your own identifying
17438  * information: Portions Copyright [yyyy] [name of copyright owner]
17439  *
17440  * CDDL HEADER END
17441  */
17442 
17443 /*
17444  *	Copyright (c) 1988 AT&T
17445  *	  All Rights Reserved
17446  *
17447  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17448  *
17449  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
17450  */
17451 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/gelf.h" 2
17452 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/gelf.h"
17453 /*
17454  * Class-independent ELF API for Elf utilities.  This is
17455  * for manipulating Elf32 and Elf64 specific information
17456  * in a format common to both classes.
17457  */
17458 
17459 typedef Elf64_Addr GElf_Addr;
17460 typedef Elf64_Half GElf_Half;
17461 typedef Elf64_Off GElf_Off;
17462 typedef Elf64_Sword GElf_Sword;
17463 typedef Elf64_Sxword GElf_Sxword;
17464 typedef Elf64_Word GElf_Word;
17465 typedef Elf64_Xword GElf_Xword;
17466 
17467 typedef Elf64_Ehdr GElf_Ehdr;
17468 typedef Elf64_Move GElf_Move;
17469 typedef Elf64_Phdr GElf_Phdr;
17470 typedef Elf64_Shdr GElf_Shdr;
17471 typedef Elf64_Sym GElf_Sym;
17472 typedef Elf64_Syminfo GElf_Syminfo;
17473 typedef Elf64_Rela GElf_Rela;
17474 typedef Elf64_Rel GElf_Rel;
17475 typedef Elf64_Dyn GElf_Dyn;
17476 typedef Elf64_Cap GElf_Cap;
17477 
17478 /*
17479  * The processing of versioning information can stay the
17480  * same because both the Elf32 and Elf64 structures are
17481  * of equal sizes.
17482  */
17483 typedef Elf64_Verdef GElf_Verdef;
17484 typedef Elf64_Verdaux GElf_Verdaux;
17485 typedef Elf64_Verneed GElf_Verneed;
17486 typedef Elf64_Vernaux GElf_Vernaux;
17487 typedef Elf64_Versym GElf_Versym;
17488 
17489 /*
17490  * move.m_info is encoded using the 64bit fields in Gelf.
17491  */
17492 
17493 
17494 
17495 /*
17496  * sym.st_info field is same size for Elf32 and Elf64.
17497  */
17498 
17499 
17500 
17501 
17502 
17503 /*
17504  * Elf64 r_info may have data field in type id's word,
17505  * so GELF_R_TYPE is defined as ELF64_R_TYPE_ID in order
17506  * to isolate the proper bits for the true type id.
17507  */
17508 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/gelf.h"
17509 int gelf_getclass(Elf*);
17510 size_t gelf_fsize(Elf *, Elf_Type, size_t, uint_t);
17511 GElf_Ehdr * gelf_getehdr(Elf *, GElf_Ehdr *);
17512 int gelf_update_ehdr(Elf *, GElf_Ehdr *);
17513 unsigned long gelf_newehdr(Elf *, int);
17514 GElf_Phdr * gelf_getphdr(Elf *, int, GElf_Phdr *);
17515 int gelf_update_phdr(Elf *, int, GElf_Phdr *);
17516 unsigned long gelf_newphdr(Elf *, size_t);
17517 GElf_Shdr * gelf_getshdr(Elf_Scn *, GElf_Shdr *);
17518 int gelf_update_shdr(Elf_Scn *, GElf_Shdr *);
17519 Elf_Data * gelf_xlatetof(Elf *, Elf_Data *, const Elf_Data *, uint_t);
17520 Elf_Data * gelf_xlatetom(Elf *, Elf_Data *, const Elf_Data *, uint_t);
17521 GElf_Sym * gelf_getsym(Elf_Data *, int, GElf_Sym *);
17522 int gelf_update_sym(Elf_Data *, int, GElf_Sym *);
17523 GElf_Sym * gelf_getsymshndx(Elf_Data *, Elf_Data *, int, GElf_Sym *,
17524       Elf32_Word *);
17525 int gelf_update_symshndx(Elf_Data *, Elf_Data *, int, GElf_Sym *,
17526       Elf32_Word);
17527 GElf_Syminfo * gelf_getsyminfo(Elf_Data *, int, GElf_Syminfo *);
17528 int gelf_update_syminfo(Elf_Data *, int, GElf_Syminfo *);
17529 GElf_Move * gelf_getmove(Elf_Data *, int, GElf_Move *);
17530 int gelf_update_move(Elf_Data *, int, GElf_Move *);
17531 GElf_Dyn * gelf_getdyn(Elf_Data *, int, GElf_Dyn *);
17532 int gelf_update_dyn(Elf_Data *, int, GElf_Dyn *);
17533 GElf_Rela * gelf_getrela(Elf_Data *, int, GElf_Rela *);
17534 int gelf_update_rela(Elf_Data *, int, GElf_Rela *);
17535 GElf_Rel * gelf_getrel(Elf_Data *, int, GElf_Rel *);
17536 int gelf_update_rel(Elf_Data *, int, GElf_Rel *);
17537 long gelf_checksum(Elf *);
17538 GElf_Cap * gelf_getcap(Elf_Data *, int, GElf_Cap *);
17539 int gelf_update_cap(Elf_Data *, int, GElf_Cap *);
17540 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
17541 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 1
17542 /*
17543  * CDDL HEADER START
17544  *
17545  * The contents of this file are subject to the terms of the
17546  * Common Development and Distribution License (the "License").
17547  * You may not use this file except in compliance with the License.
17548  *
17549  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17550  * or http://www.opensolaris.org/os/licensing.
17551  * See the License for the specific language governing permissions
17552  * and limitations under the License.
17553  *
17554  * When distributing Covered Code, include this CDDL HEADER in each
17555  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17556  * If applicable, add the following below this CDDL HEADER, with the
17557  * fields enclosed by brackets "[]" replaced with your own identifying
17558  * information: Portions Copyright [yyyy] [name of copyright owner]
17559  *
17560  * CDDL HEADER END
17561  */
17562 /*
17563  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
17564  * Use is subject to license terms.
17565  */
17566 
17567 
17568 
17569 
17570 #pragma ident "%Z%%M%	%I%	%E% SMI"
17571 
17572 /*
17573  *  Description:
17574  *	Types, global variables, and function definitions for provider
17575  * of import functions for users of libc_db and librtld_db.
17576  */
17577 
17578 
17579 
17580 
17581 
17582 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17583 /*
17584  * CDDL HEADER START
17585  *
17586  * The contents of this file are subject to the terms of the
17587  * Common Development and Distribution License (the "License").
17588  * You may not use this file except in compliance with the License.
17589  *
17590  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17591  * or http://www.opensolaris.org/os/licensing.
17592  * See the License for the specific language governing permissions
17593  * and limitations under the License.
17594  *
17595  * When distributing Covered Code, include this CDDL HEADER in each
17596  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17597  * If applicable, add the following below this CDDL HEADER, with the
17598  * fields enclosed by brackets "[]" replaced with your own identifying
17599  * information: Portions Copyright [yyyy] [name of copyright owner]
17600  *
17601  * CDDL HEADER END
17602  */
17603 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17604 /*	  All Rights Reserved  	*/
17605 
17606 
17607 /*
17608  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17609  * Use is subject to license terms.
17610  *
17611  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17612  * Copyright 2016 Joyent, Inc.
17613  */
17614 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
17615 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs_isa.h" 1
17616 /*
17617  * CDDL HEADER START
17618  *
17619  * The contents of this file are subject to the terms of the
17620  * Common Development and Distribution License, Version 1.0 only
17621  * (the "License").  You may not use this file except in compliance
17622  * with the License.
17623  *
17624  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17625  * or http://www.opensolaris.org/os/licensing.
17626  * See the License for the specific language governing permissions
17627  * and limitations under the License.
17628  *
17629  * When distributing Covered Code, include this CDDL HEADER in each
17630  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17631  * If applicable, add the following below this CDDL HEADER, with the
17632  * fields enclosed by brackets "[]" replaced with your own identifying
17633  * information: Portions Copyright [yyyy] [name of copyright owner]
17634  *
17635  * CDDL HEADER END
17636  */
17637 /*
17638  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
17639  * Use is subject to license terms.
17640  */
17641 
17642 
17643 
17644 
17645 /*
17646  * Instruction Set Architecture specific component of <sys/procfs.h>
17647  * i386 version
17648  */
17649 
17650 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/regset.h" 1
17651 /*
17652  * CDDL HEADER START
17653  *
17654  * The contents of this file are subject to the terms of the
17655  * Common Development and Distribution License (the "License").
17656  * You may not use this file except in compliance with the License.
17657  *
17658  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17659  * or http://www.opensolaris.org/os/licensing.
17660  * See the License for the specific language governing permissions
17661  * and limitations under the License.
17662  *
17663  * When distributing Covered Code, include this CDDL HEADER in each
17664  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17665  * If applicable, add the following below this CDDL HEADER, with the
17666  * fields enclosed by brackets "[]" replaced with your own identifying
17667  * information: Portions Copyright [yyyy] [name of copyright owner]
17668  *
17669  * CDDL HEADER END
17670  */
17671 /*
17672  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
17673  *
17674  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
17675  */
17676 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
17677 
17678 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T		*/
17679 /*	All Rights Reserved	*/
17680 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs_isa.h" 2
17681 
17682 
17683 
17684 
17685 
17686 /*
17687  * Possible values of pr_dmodel.
17688  * This isn't isa-specific, but it needs to be defined here for other reasons.
17689  */
17690 
17691 
17692 
17693 
17694 /*
17695  * To determine whether application is running native.
17696  */
17697 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs_isa.h"
17698 /*
17699  * Holds one i386 or amd64 instruction
17700  */
17701 typedef uchar_t instr_t;
17702 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs_isa.h"
17703 /*
17704  * The following defines are for portability (see <sys/regset.h>).
17705  */
17706 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
17707 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/lwp.h" 1
17708 /*
17709  * CDDL HEADER START
17710  *
17711  * The contents of this file are subject to the terms of the
17712  * Common Development and Distribution License (the "License").
17713  * You may not use this file except in compliance with the License.
17714  *
17715  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17716  * or http://www.opensolaris.org/os/licensing.
17717  * See the License for the specific language governing permissions
17718  * and limitations under the License.
17719  *
17720  * When distributing Covered Code, include this CDDL HEADER in each
17721  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17722  * If applicable, add the following below this CDDL HEADER, with the
17723  * fields enclosed by brackets "[]" replaced with your own identifying
17724  * information: Portions Copyright [yyyy] [name of copyright owner]
17725  *
17726  * CDDL HEADER END
17727  */
17728 
17729 /*
17730  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
17731  * Use is subject to license terms.
17732  */
17733 /*
17734  * Copyright (c) 2013 by Delphix. All rights reserved.
17735  */
17736 
17737 
17738 
17739 
17740 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/synch.h" 1
17741 /*
17742  * CDDL HEADER START
17743  *
17744  * The contents of this file are subject to the terms of the
17745  * Common Development and Distribution License (the "License").
17746  * You may not use this file except in compliance with the License.
17747  *
17748  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17749  * or http://www.opensolaris.org/os/licensing.
17750  * See the License for the specific language governing permissions
17751  * and limitations under the License.
17752  *
17753  * When distributing Covered Code, include this CDDL HEADER in each
17754  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17755  * If applicable, add the following below this CDDL HEADER, with the
17756  * fields enclosed by brackets "[]" replaced with your own identifying
17757  * information: Portions Copyright [yyyy] [name of copyright owner]
17758  *
17759  * CDDL HEADER END
17760  */
17761 
17762 /*
17763  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
17764  * Use is subject to license terms.
17765  */
17766 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/lwp.h" 2
17767 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h" 1
17768 /*
17769  * CDDL HEADER START
17770  *
17771  * The contents of this file are subject to the terms of the
17772  * Common Development and Distribution License (the "License").
17773  * You may not use this file except in compliance with the License.
17774  *
17775  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17776  * or http://www.opensolaris.org/os/licensing.
17777  * See the License for the specific language governing permissions
17778  * and limitations under the License.
17779  *
17780  * When distributing Covered Code, include this CDDL HEADER in each
17781  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17782  * If applicable, add the following below this CDDL HEADER, with the
17783  * fields enclosed by brackets "[]" replaced with your own identifying
17784  * information: Portions Copyright [yyyy] [name of copyright owner]
17785  *
17786  * CDDL HEADER END
17787  */
17788 
17789 /*
17790  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
17791  *
17792  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
17793  * Use is subject to license terms.
17794  */
17795 
17796 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17797 /*	  All Rights Reserved  	*/
17798 
17799 
17800 
17801 
17802 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
17803 /*
17804  * CDDL HEADER START
17805  *
17806  * The contents of this file are subject to the terms of the
17807  * Common Development and Distribution License (the "License").
17808  * You may not use this file except in compliance with the License.
17809  *
17810  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17811  * or http://www.opensolaris.org/os/licensing.
17812  * See the License for the specific language governing permissions
17813  * and limitations under the License.
17814  *
17815  * When distributing Covered Code, include this CDDL HEADER in each
17816  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17817  * If applicable, add the following below this CDDL HEADER, with the
17818  * fields enclosed by brackets "[]" replaced with your own identifying
17819  * information: Portions Copyright [yyyy] [name of copyright owner]
17820  *
17821  * CDDL HEADER END
17822  */
17823 
17824 /*
17825  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
17826  * Copyright 2016 Joyent, Inc.
17827  *
17828  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
17829  * Use is subject to license terms.
17830  */
17831 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h" 2
17832 
17833 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17834 /*
17835  * CDDL HEADER START
17836  *
17837  * The contents of this file are subject to the terms of the
17838  * Common Development and Distribution License (the "License").
17839  * You may not use this file except in compliance with the License.
17840  *
17841  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17842  * or http://www.opensolaris.org/os/licensing.
17843  * See the License for the specific language governing permissions
17844  * and limitations under the License.
17845  *
17846  * When distributing Covered Code, include this CDDL HEADER in each
17847  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17848  * If applicable, add the following below this CDDL HEADER, with the
17849  * fields enclosed by brackets "[]" replaced with your own identifying
17850  * information: Portions Copyright [yyyy] [name of copyright owner]
17851  *
17852  * CDDL HEADER END
17853  */
17854 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17855 /*	  All Rights Reserved  	*/
17856 
17857 
17858 /*
17859  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17860  * Use is subject to license terms.
17861  *
17862  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17863  * Copyright 2016 Joyent, Inc.
17864  */
17865 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h" 2
17866 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mcontext.h" 1
17867 /*
17868  * CDDL HEADER START
17869  *
17870  * The contents of this file are subject to the terms of the
17871  * Common Development and Distribution License (the "License").
17872  * You may not use this file except in compliance with the License.
17873  *
17874  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17875  * or http://www.opensolaris.org/os/licensing.
17876  * See the License for the specific language governing permissions
17877  * and limitations under the License.
17878  *
17879  * When distributing Covered Code, include this CDDL HEADER in each
17880  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17881  * If applicable, add the following below this CDDL HEADER, with the
17882  * fields enclosed by brackets "[]" replaced with your own identifying
17883  * information: Portions Copyright [yyyy] [name of copyright owner]
17884  *
17885  * CDDL HEADER END
17886  */
17887 /*
17888  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
17889  *
17890  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
17891  */
17892 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
17893 
17894 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T		*/
17895 /*	All Rights Reserved	*/
17896 
17897 /*
17898  * Essential struct definitions for mcontext_t needed by ucontext.h
17899  * These were formerly in regset.h, which now includes this file.
17900  */
17901 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h" 2
17902 
17903 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
17904 /*
17905  * CDDL HEADER START
17906  *
17907  * The contents of this file are subject to the terms of the
17908  * Common Development and Distribution License (the "License").
17909  * You may not use this file except in compliance with the License.
17910  *
17911  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17912  * or http://www.opensolaris.org/os/licensing.
17913  * See the License for the specific language governing permissions
17914  * and limitations under the License.
17915  *
17916  * When distributing Covered Code, include this CDDL HEADER in each
17917  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17918  * If applicable, add the following below this CDDL HEADER, with the
17919  * fields enclosed by brackets "[]" replaced with your own identifying
17920  * information: Portions Copyright [yyyy] [name of copyright owner]
17921  *
17922  * CDDL HEADER END
17923  */
17924 
17925 /*
17926  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
17927  * Use is subject to license terms.
17928  */
17929 
17930 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17931 /*	  All Rights Reserved  	*/
17932 
17933 /*
17934  * University Copyright- Copyright (c) 1982, 1986, 1988
17935  * The Regents of the University of California
17936  * All Rights Reserved
17937  *
17938  * University Acknowledgment- Portions of this document are derived from
17939  * software developed by the University of California, Berkeley, and its
17940  * contributors.
17941  */
17942 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h" 2
17943 
17944 
17945 
17946 
17947 
17948 
17949 /*
17950  * Inclusion of <sys/signal.h> for sigset_t and stack_t definitions
17951  * breaks XPG4v2 namespace.  Therefore we must duplicate the defines
17952  * for these types here when _XPG4_2 is defined.
17953  */
17954 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h"
17955 typedef struct ucontext ucontext_t;
17956 
17957 
17958 
17959 
17960 
17961 struct ucontext {
17962 
17963 
17964 
17965  unsigned long uc_flags;
17966  ucontext_t *uc_link;
17967  sigset_t uc_sigmask;
17968  stack_t uc_stack;
17969  mcontext_t uc_mcontext;
17970  long uc_filler[5]; /* see ABI spec for Intel386 */
17971 };
17972 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h"
17973 /*
17974  * values for uc_flags
17975  * these are implementation dependent flags, that should be hidden
17976  * from the user interface, defining which elements of ucontext
17977  * are valid, and should be restored on call to setcontext
17978  */
17979 # 131 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ucontext.h"
17980 /*
17981  * UC_ALL specifies the default context
17982  */
17983 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/lwp.h" 2
17984 
17985 
17986 
17987 
17988 
17989 /*
17990  * lwp create flags
17991  */
17992 
17993 
17994 
17995 
17996 /*
17997  * Definitions for user programs calling into the _lwp interface.
17998  */
17999 struct lwpinfo {
18000  timestruc_t lwp_utime;
18001  timestruc_t lwp_stime;
18002  long lwpinfo_pad[64];
18003 };
18004 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/lwp.h"
18005 typedef uint_t lwpid_t;
18006 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/lwp.h"
18007 int _lwp_kill(lwpid_t, int);
18008 int _lwp_info(struct lwpinfo *);
18009 lwpid_t _lwp_self(void);
18010 int _lwp_suspend(lwpid_t);
18011 int _lwp_continue(lwpid_t);
18012 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
18013 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h" 1
18014 /*
18015  * CDDL HEADER START
18016  *
18017  * The contents of this file are subject to the terms of the
18018  * Common Development and Distribution License (the "License").
18019  * You may not use this file except in compliance with the License.
18020  *
18021  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18022  * or http://www.opensolaris.org/os/licensing.
18023  * See the License for the specific language governing permissions
18024  * and limitations under the License.
18025  *
18026  * When distributing Covered Code, include this CDDL HEADER in each
18027  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18028  * If applicable, add the following below this CDDL HEADER, with the
18029  * fields enclosed by brackets "[]" replaced with your own identifying
18030  * information: Portions Copyright [yyyy] [name of copyright owner]
18031  *
18032  * CDDL HEADER END
18033  */
18034 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18035 /*	  All Rights Reserved  	*/
18036 
18037 
18038 /*
18039  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18040  *
18041  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18042  * Use is subject to license terms.
18043  */
18044 /*
18045  * Copyright 2016 Joyent, Inc.
18046  */
18047 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
18048 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/elf.h" 1
18049 /*
18050  * CDDL HEADER START
18051  *
18052  * The contents of this file are subject to the terms of the
18053  * Common Development and Distribution License, Version 1.0 only
18054  * (the "License").  You may not use this file except in compliance
18055  * with the License.
18056  *
18057  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18058  * or http://www.opensolaris.org/os/licensing.
18059  * See the License for the specific language governing permissions
18060  * and limitations under the License.
18061  *
18062  * When distributing Covered Code, include this CDDL HEADER in each
18063  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18064  * If applicable, add the following below this CDDL HEADER, with the
18065  * fields enclosed by brackets "[]" replaced with your own identifying
18066  * information: Portions Copyright [yyyy] [name of copyright owner]
18067  *
18068  * CDDL HEADER END
18069  */
18070 /*	Copyright (c) 1988 AT&T	*/
18071 /*	  All Rights Reserved  	*/
18072 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
18073 
18074 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h" 1
18075 /*
18076  * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
18077  */
18078 /*
18079  * Copyright 2016 Joyent, Inc.
18080  */
18081 # 15 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18082 /*
18083  * Copyright (c) 1989, 1990 William F. Jolitz
18084  * Copyright (c) 1990 The Regents of the University of California.
18085  * All rights reserved.
18086  *
18087  * This code is derived from software contributed to Berkeley by
18088  * William Jolitz.
18089  *
18090  * Redistribution and use in source and binary forms, with or without
18091  * modification, are permitted provided that the following conditions
18092  * are met:
18093  * 1. Redistributions of source code must retain the above copyright
18094  *    notice, this list of conditions and the following disclaimer.
18095  * 2. Redistributions in binary form must reproduce the above copyright
18096  *    notice, this list of conditions and the following disclaimer in the
18097  *    documentation and/or other materials provided with the distribution.
18098  * 3. All advertising materials mentioning features or use of this software
18099  *    must display the following acknowledgement:
18100  *	This product includes software developed by the University of
18101  *	California, Berkeley and its contributors.
18102  * 4. Neither the name of the University nor the names of its contributors
18103  *    may be used to endorse or promote products derived from this software
18104  *    without specific prior written permission.
18105  *
18106  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18107  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18108  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18109  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
18110  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18111  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18112  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18113  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18114  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18115  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18116  * SUCH DAMAGE.
18117  *
18118  *	from: @(#)segments.h	7.1 (Berkeley) 5/9/91
18119  * $FreeBSD: src/sys/i386/include/segments.h,v 1.34 2003/09/10 01:07:04
18120  * jhb Exp $
18121  *
18122  * 386 Segmentation Data Structures and definitions
18123  *	William F. Jolitz (william@ernie.berkeley.edu) 6/20/1989
18124  */
18125 
18126 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tss.h" 1
18127 /*
18128  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
18129  * Use is subject to license terms.
18130  */
18131 # 13 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tss.h"
18132 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
18133 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
18134 /*	  All Rights Reserved  	*/
18135 
18136 /*
18137  * Copyright (c) 1990 The Regents of the University of California.
18138  * All rights reserved.
18139  *
18140  * This code is derived from software contributed to Berkeley by
18141  * William Jolitz.
18142  *
18143  * Redistribution and use in source and binary forms, with or without
18144  * modification, are permitted provided that the following conditions
18145  * are met:
18146  * 1. Redistributions of source code must retain the above copyright
18147  *    notice, this list of conditions and the following disclaimer.
18148  * 2. Redistributions in binary form must reproduce the above copyright
18149  *    notice, this list of conditions and the following disclaimer in the
18150  *    documentation and/or other materials provided with the distribution.
18151  * 3. All advertising materials mentioning features or use of this software
18152  *    must display the following acknowledgement:
18153  *	This product includes software developed by the University of
18154  *	California, Berkeley and its contributors.
18155  * 4. Neither the name of the University nor the names of its contributors
18156  *    may be used to endorse or promote products derived from this software
18157  *    without specific prior written permission.
18158  *
18159  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18160  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18161  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18162  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
18163  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18164  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18165  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18166  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18167  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18168  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18169  * SUCH DAMAGE.
18170  *
18171  *	from: @(#)tss.h	5.4 (Berkeley) 1/18/91
18172  * $FreeBSD: src/sys/i386/include/tss.h,v 1.13 2002/09/23 05:04:05 peter Exp $
18173  */
18174 /*
18175  * Copyright 2011 Joyent, Inc. All rights reserved.
18176  */
18177 
18178 /*
18179  * Maximum I/O address that will be in TSS bitmap
18180  */
18181 
18182 
18183 
18184 
18185 /*
18186  * Task state segment (tss). Holds the processor state assoicated with a task.
18187  *
18188  * Historically, this header only exposed a struct tss that was relevant to the
18189  * specific Intel architecture that we were deploying on. However, the tss
18190  * structures are defined by the Intel Architecture and other consumers would
18191  * like to use them. Rather than requiring them to duplicate all of this
18192  * information, we instead expose each version under different names but in a
18193  * backwards compatible manner.
18194  */
18195 
18196 
18197 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tss.h"
18198 #pragma pack(4)
18199 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tss.h"
18200 
18201 struct tss64 {
18202  uint32_t tss_rsvd0; /* reserved, ignored */
18203  uint64_t tss_rsp0; /* stack pointer CPL = 0 */
18204  uint64_t tss_rsp1; /* stack pointer CPL = 1 */
18205  uint64_t tss_rsp2; /* stack pointer CPL = 2 */
18206  uint64_t tss_rsvd1; /* reserved, ignored */
18207  uint64_t tss_ist1; /* Interrupt stack table 1 */
18208  uint64_t tss_ist2; /* Interrupt stack table 2 */
18209  uint64_t tss_ist3; /* Interrupt stack table 3 */
18210  uint64_t tss_ist4; /* Interrupt stack table 4 */
18211  uint64_t tss_ist5; /* Interrupt stack table 5 */
18212  uint64_t tss_ist6; /* Interrupt stack table 6 */
18213  uint64_t tss_ist7; /* Interrupt stack table 7 */
18214  uint64_t tss_rsvd2; /* reserved, ignored */
18215  uint16_t tss_rsvd3; /* reserved, ignored */
18216  uint16_t tss_bitmapbase; /* io permission bitmap base address */
18217 };
18218 
18219 # 95 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tss.h"
18220 #pragma pack()
18221 # 95 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tss.h"
18222 
18223 
18224 struct tss32 {
18225  uint16_t tss_link; /* 16-bit prior TSS selector */
18226  uint16_t tss_rsvd0; /* reserved, ignored */
18227  uint32_t tss_esp0;
18228  uint16_t tss_ss0;
18229  uint16_t tss_rsvd1; /* reserved, ignored */
18230  uint32_t tss_esp1;
18231  uint16_t tss_ss1;
18232  uint16_t tss_rsvd2; /* reserved, ignored */
18233  uint32_t tss_esp2;
18234  uint16_t tss_ss2;
18235  uint16_t tss_rsvd3; /* reserved, ignored */
18236  uint32_t tss_cr3;
18237  uint32_t tss_eip;
18238  uint32_t tss_eflags;
18239  uint32_t tss_eax;
18240  uint32_t tss_ecx;
18241  uint32_t tss_edx;
18242  uint32_t tss_ebx;
18243  uint32_t tss_esp;
18244  uint32_t tss_ebp;
18245  uint32_t tss_esi;
18246  uint32_t tss_edi;
18247  uint16_t tss_es;
18248  uint16_t tss_rsvd4; /* reserved, ignored */
18249  uint16_t tss_cs;
18250  uint16_t tss_rsvd5; /* reserved, ignored */
18251  uint16_t tss_ss;
18252  uint16_t tss_rsvd6; /* reserved, ignored */
18253  uint16_t tss_ds;
18254  uint16_t tss_rsvd7; /* reserved, ignored */
18255  uint16_t tss_fs;
18256  uint16_t tss_rsvd8; /* reserved, ignored */
18257  uint16_t tss_gs;
18258  uint16_t tss_rsvd9; /* reserved, ignored */
18259  uint16_t tss_ldt;
18260  uint16_t tss_rsvd10; /* reserved, ignored */
18261  uint16_t tss_rsvd11; /* reserved, ignored */
18262  uint16_t tss_bitmapbase; /* io permission bitmap base address */
18263 };
18264 
18265 struct tss16 {
18266  uint16_t tss_link;
18267  uint16_t tss_sp0;
18268  uint16_t tss_ss0;
18269  uint16_t tss_sp1;
18270  uint16_t tss_ss1;
18271  uint16_t tss_sp2;
18272  uint16_t tss_ss2;
18273  uint16_t tss_ip;
18274  uint16_t tss_flag;
18275  uint16_t tss_ax;
18276  uint16_t tss_cx;
18277  uint16_t tss_dx;
18278  uint16_t tss_bx;
18279  uint16_t tss_sp;
18280  uint16_t tss_bp;
18281  uint16_t tss_si;
18282  uint16_t tss_di;
18283  uint16_t tss_es;
18284  uint16_t tss_cs;
18285  uint16_t tss_ss;
18286  uint16_t tss_ds;
18287  uint16_t tss_ldt;
18288 };
18289 
18290 
18291 
18292 
18293 
18294 
18295 
18296 typedef struct tss32 tss_t;
18297 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h" 2
18298 
18299 /*
18300  * Selector register format
18301  * CS, DS, ES, FS, GS, SS
18302  *
18303  *  15                  3  2  1 0
18304  * +---------------------+---+----+
18305  * |          SI         |TI |RPL |
18306  * +---------------------+---+----+
18307  *
18308  * SI  = selector index
18309  * TI  = table indicator (0 = GDT, 1 = LDT)
18310  * RPL = requestor privilege level
18311  */
18312 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18313 /*
18314  * SEL_(KPL,UPL,XPL) is the RPL or DPL value for code and data selectors
18315  * and their descriptors respectively.
18316  *
18317  * TRP_(KPL,UPL,XPL) is used to indicate the DPL for system gates only.
18318  *
18319  * This distinction is important to support para-virt guests on the
18320  * 64-bit hypervisor. Both guest kernel and user run in ring 3 and the
18321  * hypervisor runs in ring 0. When the kernel creates its trap and
18322  * interrupt gates it needs a way to prevent any arbitrary int $n
18323  * instruction from entering a gate that is not expected. The hypervisor
18324  * allows these gates to have a DPL from 1 to 3. By creating gates
18325  * with a DPL below user (ring 3) the int $n will generate a #gp fault
18326  * which the hypervisor catches and forwards to the guest.
18327  */
18328 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18329 typedef uint16_t selector_t; /* selector reigster */
18330 
18331 /*
18332  * Hardware descriptor table register format for GDT and IDT.
18333  */
18334 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18335 
18336 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18337 #pragma pack(2)
18338 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18339 
18340 typedef struct {
18341  uint16_t dtr_limit; /* table limit */
18342  uint32_t dtr_base; /* table base address  */
18343 } desctbr_t;
18344 
18345 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18346 #pragma pack()
18347 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18348 
18349 
18350 
18351 
18352 /*
18353  * Functions for loading and storing descriptor table
18354  * registers.
18355  */
18356 extern void rd_idtr(desctbr_t *);
18357 extern void wr_idtr(desctbr_t *);
18358 extern void rd_gdtr(desctbr_t *);
18359 extern void wr_gdtr(desctbr_t *);
18360 extern void wr_ldtr(selector_t);
18361 extern selector_t rd_ldtr(void);
18362 extern void wr_tsr(selector_t);
18363 extern void kmdb_enter(void);
18364 # 188 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18365 extern void load_segment_registers(selector_t, selector_t, selector_t,
18366     selector_t, selector_t, selector_t); /* (alphabetical) */
18367 
18368 
18369 selector_t get_cs_register();
18370 
18371 
18372 
18373 /*
18374  * User segment descriptors (code and data).
18375  * Legacy mode 64-bits wide.
18376  */
18377 typedef struct user_desc {
18378  uint32_t usd_lolimit:16; /* segment limit 15:0 */
18379  uint32_t usd_lobase:16; /* segment base 15:0 */
18380  uint32_t usd_midbase:8; /* segment base 23:16 */
18381  uint32_t usd_type:5; /* segment type, includes S bit */
18382  uint32_t usd_dpl:2; /* segment descriptor priority level */
18383  uint32_t usd_p:1; /* segment descriptor present */
18384  uint32_t usd_hilimit:4; /* segment limit 19:16 */
18385  uint32_t usd_avl:1; /* available to sw, but not used */
18386  uint32_t usd_reserved:1; /* unused, ignored */
18387  uint32_t usd_def32:1; /* default 32 vs 16 bit operand */
18388  uint32_t usd_gran:1; /* limit units (bytes vs pages) */
18389  uint32_t usd_hibase:8; /* segment base 31:24 */
18390 } user_desc_t;
18391 # 283 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18392 /*
18393  * System segment descriptors for LDT and TSS segments.
18394  * Legacy mode 64-bits wide.
18395  */
18396 typedef struct system_desc {
18397  uint32_t ssd_lolimit:16; /* segment limit 15:0 */
18398  uint32_t ssd_lobase:16; /* segment base 15:0 */
18399  uint32_t ssd_midbase:8; /* segment base 23:16 */
18400  uint32_t ssd_type:4; /* segment type */
18401  uint32_t ssd_zero:1; /* must be zero */
18402  uint32_t ssd_dpl:2; /* segment descriptor priority level */
18403  uint32_t ssd_p:1; /* segment descriptor present */
18404  uint32_t ssd_hilimit:4; /* segment limit 19:16 */
18405  uint32_t ssd_avl:1; /* available to sw, but not used */
18406  uint32_t ssd_reserved:2; /* unused, ignored */
18407  uint32_t ssd_gran:1; /* limit unit (bytes vs pages) */
18408  uint32_t ssd_hibase:8; /* segment base 31:24 */
18409 } system_desc_t;
18410 # 340 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18411 /*
18412  * System gate segment descriptors for interrupt, trap, call and task gates.
18413  * Legacy mode 64-bits wide.
18414  */
18415 typedef struct gate_desc {
18416  uint32_t sgd_looffset:16; /* segment code offset 15:0 */
18417  uint32_t sgd_selector:16; /* target code or task selector */
18418  uint32_t sgd_stkcpy:5; /* number of stack wds to cpy */
18419  uint32_t sgd_resv:3; /* unused, ignored */
18420  uint32_t sgd_type:5; /* segment type, includes S bit */
18421  uint32_t sgd_dpl:2; /* segment descriptor priority level */
18422  uint32_t sgd_p:1; /* segment descriptor present */
18423  uint32_t sgd_hioffset:16; /* code seg off 31:16 */
18424 } gate_desc_t;
18425 # 389 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18426 /*
18427  * functions for initializing and updating segment descriptors.
18428  */
18429 
18430 
18431 
18432 
18433 
18434 
18435 
18436 extern void set_usegd(user_desc_t *, void *, size_t, uint_t, uint_t,
18437     uint_t, uint_t);
18438 
18439 
18440 
18441 extern void set_gatesegd(gate_desc_t *, void (*)(void), selector_t,
18442     uint_t, uint_t, uint_t);
18443 
18444 extern void set_syssegd(system_desc_t *, void *, size_t, uint_t, uint_t);
18445 
18446 extern void *get_ssd_base(system_desc_t *);
18447 
18448 extern void gdt_update_usegd(uint_t, user_desc_t *);
18449 
18450 extern int ldt_update_segd(user_desc_t *, user_desc_t *);
18451 # 422 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18452 void init_boot_gdt(user_desc_t *);
18453 
18454 
18455 
18456 /*
18457  * Common segment parameter defintions for granularity, default
18458  * operand size and operaton mode.
18459  */
18460 
18461 
18462 
18463 
18464 
18465 /*
18466  * System segments and gate types.
18467  *
18468  * In long mode i386 32-bit ldt, tss, call, interrupt and trap gate
18469  * types are redefined into 64-bit equivalents.
18470  */
18471 # 458 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18472 /*
18473  * Memory segment types.
18474  *
18475  * While in long mode expand-down, writable and accessed type field
18476  * attributes are ignored. Only the conforming bit is loaded by hardware
18477  * for long mode code segment descriptors.
18478  */
18479 # 482 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18480 /*
18481  * Entries in the Interrupt Descriptor Table (IDT)
18482  */
18483 # 506 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18484 /*
18485  * Entries in the Global Descriptor Table (GDT)
18486  *
18487  * We make sure to space the system descriptors (LDT's, TSS')
18488  * such that they are double gdt slot aligned. This is because
18489  * in long mode system segment decriptors expand to 128 bits.
18490  *
18491  * GDT_LWPFS and GDT_LWPGS must be the same for both 32 and 64-bit
18492  * kernels. See setup_context in libc. 64-bit processes must set
18493  * %fs or %gs to null selector to use 64-bit fsbase or gsbase
18494  * respectively.
18495  */
18496 # 573 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18497 /*
18498  * Convenient selector definitions.
18499  */
18500 
18501 /*
18502  * XXPV	64 bit Xen only allows the guest %cs/%ss be the private ones it
18503  * provides, not the ones we create for ourselves.  See FLAT_RING3_CS64 in
18504  * public/arch-x86_64.h
18505  *
18506  * 64-bit Xen runs paravirtual guests in ring 3 but emulates them running in
18507  * ring 0 by clearing CPL in %cs value pushed on guest exception stacks.
18508  * Therefore we will have KCS_SEL value indicate ring 0 and use that everywhere
18509  * in the kernel. But in the few files where we initialize segment registers or
18510  * create and update descriptors we will explicity OR in SEL_KPL (ring 3) for
18511  * kernel %cs. See desctbls.c for an example.
18512  */
18513 # 621 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18514 /*
18515  * Temporary %gs descriptor used by kmdb with -d option. Only lives
18516  * in boot's GDT and is not copied into kernel's GDT from boot.
18517  */
18518 
18519 
18520 /*
18521  * Selector used for kdi_idt when kmdb has taken over the IDT.
18522  */
18523 
18524 
18525 
18526 
18527 
18528 
18529 /*
18530  * Entries in default Local Descriptor Table (LDT) for every process.
18531  */
18532 # 651 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18533 extern gate_desc_t *idt0;
18534 extern desctbr_t idt0_default_reg;
18535 extern user_desc_t *gdt0;
18536 
18537 extern user_desc_t zero_udesc;
18538 extern user_desc_t null_udesc;
18539 extern system_desc_t null_sdesc;
18540 # 669 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/segments.h"
18541 extern tss_t *ktss0;
18542 
18543 
18544 extern tss_t *dftss0;
18545 
18546 
18547 extern void div0trap(), dbgtrap(), nmiint(), brktrap(), ovflotrap();
18548 extern void boundstrap(), invoptrap(), ndptrap();
18549 
18550 extern void syserrtrap();
18551 
18552 extern void invaltrap(), invtsstrap(), segnptrap(), stktrap();
18553 extern void gptrap(), pftrap(), ndperr();
18554 extern void overrun(), resvtrap();
18555 extern void _start(), cmnint();
18556 extern void achktrap(), mcetrap();
18557 extern void xmtrap();
18558 extern void fasttrap();
18559 extern void dtrace_ret();
18560 
18561 
18562 extern void pentium_pftrap();
18563 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
18564 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysi86.h" 1
18565 /*
18566  * CDDL HEADER START
18567  *
18568  * The contents of this file are subject to the terms of the
18569  * Common Development and Distribution License (the "License").
18570  * You may not use this file except in compliance with the License.
18571  *
18572  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18573  * or http://www.opensolaris.org/os/licensing.
18574  * See the License for the specific language governing permissions
18575  * and limitations under the License.
18576  *
18577  * When distributing Covered Code, include this CDDL HEADER in each
18578  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18579  * If applicable, add the following below this CDDL HEADER, with the
18580  * fields enclosed by brackets "[]" replaced with your own identifying
18581  * information: Portions Copyright [yyyy] [name of copyright owner]
18582  *
18583  * CDDL HEADER END
18584  */
18585 /*
18586  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
18587  * Use is subject to license terms.
18588  */
18589 
18590 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
18591 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */
18592 /*	  All Rights Reserved */
18593 
18594 
18595 
18596 
18597 #pragma ident "%Z%%M%	%I%	%E% SMI"
18598 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysi86.h"
18599 /*
18600  * Commands for sysi86 system call (1-?)
18601  */
18602 
18603 
18604 
18605 
18606 
18607     /*	booted */
18608 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysi86.h"
18609 /*	71 through 74 reserved for VPIX */
18610 
18611 
18612 
18613 
18614 /* NFA entry point */
18615 
18616 
18617 
18618 
18619 
18620 
18621 /* XENIX Support */
18622 
18623 
18624 
18625     /*	badvise subfunction definitions */
18626 
18627     /*	data context switching */
18628 
18629 
18630 
18631 /*
18632  *	NOTE: Numbers 106 - 110 have been registered and are reserved
18633  *	for future use for AT&T hardware.
18634  */
18635 
18636 /*
18637  *	Commands for allowing the real time clock to keep local time.
18638  */
18639 # 113 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysi86.h"
18640 /*
18641  *  The SI86DSCR subcommand of the sysi86() system call
18642  *  sets a segment or gate descriptor in the kernel.
18643  *  The following descriptor types are accepted:
18644  *    - executable and data segments in the LDT at DPL 3
18645  *    - a call gate in the GDT at DPL 3 that points to a segment in the LDT
18646  *  The request structure declared below is used to pass the values
18647  *  to be placed in the descriptor.  A pointer to the structure is
18648  *  passed as the second argument of the system call.
18649  *  If acc1 is zero, the descriptor is cleared.
18650  */
18651 
18652 /*
18653  * XX64 Do we need to support this for 64-bit apps?
18654  *
18655  * request structure passed by user
18656  */
18657 struct ssd {
18658  unsigned int sel; /* descriptor selector */
18659  unsigned int bo; /* segment base or gate offset */
18660  unsigned int ls; /* segment limit or gate selector */
18661  unsigned int acc1; /* access byte 5 */
18662  unsigned int acc2; /* access bits in byte 6 or gate count */
18663 };
18664 # 149 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysi86.h"
18665 /*
18666  *  The SI86SHFIL subcommand of the sysi86() system call
18667  *  maps a file into a region in user address space.
18668  *  The request structure declared below is used to pass the
18669  *  system call parameters.  A pointer to the structure is
18670  *  passed as the second argument of the system call.
18671  */
18672 struct mmf {
18673  char *mf_filename; /* path name of file */
18674  long mf_filesz; /* Size in bytes of section of file */
18675     /* from which this region is mapped. */
18676  long mf_regsz; /* Size of region in bytes */
18677  short mf_flags; /* Either 0 or RG_NOSHARE */
18678 };
18679 
18680 /*
18681  *  The SI86PCHRGN subcommand of the sysi86() system call
18682  *  change the memory mapped image of a file.
18683  *  The request structure declared below is used to pass the values
18684  *  system call parameters.  A pointer to the structure is
18685  *  passed as the second argument of the system call.
18686  */
18687 struct cmf {
18688  char *cf_srcva; /* modified image address */
18689  char *cf_dstva; /* location to patch */
18690  long cf_count; /* size of patch */
18691 };
18692 
18693 /*
18694  * The SI86BADVISE subcommand of the sysi86() system call specifies
18695  * XENIX variant behavior for certain system calls and kernel routines.
18696  * The 'arg' argument of sysi86() for SI86BADVISE is an integer.  Bits
18697  * 8..15 specify SI86B_SET or SI86B_GET.  Bits 0..7 contain
18698  * SI86B_PRE_SV, SI86B_XOUT, or SI86B_XSDSWTCH.  All these constants are
18699  * defined below.  The 'arg' argument thus consists of either SI86B_SET
18700  * OR'ed with zero or more of SI86B_PRE_SV, SI86B_XOUT, and SI86B_XSDSWTCH,
18701  * or of SI86B_GET.
18702  */
18703 
18704 
18705 
18706 
18707 
18708 
18709      /*	context switching enabled */
18710 
18711 /*
18712  *   The request structure declared below is used by the XENIX 286 emulator
18713  *   (/bin/x286emul) in conjunction with the SI86SHRGN subcommand of sysi86().
18714  *   The SI86SHRGN subcommand is used by the XENIX 286 emulator to support
18715  *   XENIX shared data.  The second argument passed to sysi86() is a
18716  *   pointer to an xsdbuf struct.
18717  *
18718  *   If the 'xsd_cmd' field of xsdbuf is SI86SHR_CP, the XENIX 286 emulator is
18719  *   using the SI86SHRGN subcommand to set up XENIX small model shared data
18720  *   context switching support for a given XENIX shared data segment.  In this
18721  *   case, the xsdbuf struct contains the start addr for the shared data in
18722  *   386 space, followed by the start addr for the shared data in the 286
18723  *   executable's private data.
18724  *
18725  *   If the 'xsd_cmd' field is SI86SHR_SZ, the XENIX 286 emulator is using the
18726  *   SI86SHRGN subcommand to retrieve the size of an existing XENIX shared
18727  *   data segment.  In this case, the xsdbuf struct contains the start addr
18728  *   for the shared data in 386 space.
18729  *   The size of the shared data segment starting at 'xsd_386vaddr' will
18730  *   be returned in the 'xsd_size' field by sysi86().
18731  */
18732 
18733 
18734 
18735 
18736 struct xsdbuf {
18737  unsigned xsd_cmd; /* SI86SHRGN subcommand, either SI86SHR_CP */
18738     /* or SI86SHR_SZ. */
18739  char *xsd_386vaddr; /* Addr of "real" XENIX shared data seg in */
18740     /* the emulator. */
18741  union {
18742   char *xsd_286vaddr; /* Addr of XENIX shared data seg */
18743      /* in the 286 data portion of the */
18744      /* emulator. */
18745   unsigned long xsd_size; /* Size of XENIX shared data seg */
18746  } xsd_un;
18747 };
18748 /* End XENIX Support */
18749 
18750 /*
18751  * Cascade defines
18752  */
18753 
18754 
18755 
18756 
18757 
18758 
18759 /* Enterprise IDNO defines */
18760 
18761 
18762 
18763 
18764 extern int sysi86(int, ...);
18765 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 2
18766 
18767 
18768 
18769 typedef unsigned long psaddr_t;
18770 
18771 typedef enum {
18772  PS_OK, /* generic "call succeeded" */
18773  PS_ERR, /* generic error */
18774  PS_BADPID, /* bad process handle */
18775  PS_BADLID, /* bad lwp identifier */
18776  PS_BADADDR, /* bad address */
18777  PS_NOSYM, /* p_lookup() could not find given symbol */
18778  PS_NOFREGS /* FPU register set not available for given lwp */
18779 } ps_err_e;
18780 
18781 struct ps_prochandle;
18782 
18783 /*
18784  * See <sys/procfs_isa.h> for possible values of data_model.
18785  */
18786 extern ps_err_e ps_pdmodel(struct ps_prochandle *, int *data_model);
18787 
18788 /*
18789  * Special values for 'object_name' to refer to certain well-known objects.
18790  */
18791 
18792 
18793 
18794 extern ps_err_e ps_pglobal_lookup(struct ps_prochandle *,
18795  const char *object_name, const char *sym_name, psaddr_t *sym_addr);
18796 
18797 
18798 
18799 
18800 typedef Elf32_Sym ps_sym_t;
18801 
18802 extern ps_err_e ps_pglobal_sym(struct ps_prochandle *,
18803  const char *object_name, const char *sym_name, ps_sym_t *sym);
18804 
18805 /*
18806  * To read and write the process's address space.
18807  */
18808 extern ps_err_e ps_pread(struct ps_prochandle *,
18809    psaddr_t, void *, size_t);
18810 extern ps_err_e ps_pwrite(struct ps_prochandle *,
18811    psaddr_t, const void *, size_t);
18812 /*
18813  * The following four functions can be implemented as simple aliases for
18814  * the corresponding primary two functions above (#pragma weak ...).
18815  * They are artifacts of history that must be maintained.
18816  */
18817 extern ps_err_e ps_pdread(struct ps_prochandle *,
18818    psaddr_t, void *, size_t);
18819 extern ps_err_e ps_pdwrite(struct ps_prochandle *,
18820    psaddr_t, const void *, size_t);
18821 extern ps_err_e ps_ptread(struct ps_prochandle *,
18822    psaddr_t, void *, size_t);
18823 extern ps_err_e ps_ptwrite(struct ps_prochandle *,
18824    psaddr_t, const void *, size_t);
18825 
18826 extern ps_err_e ps_pstop(struct ps_prochandle *);
18827 extern ps_err_e ps_pcontinue(struct ps_prochandle *);
18828 extern ps_err_e ps_lstop(struct ps_prochandle *, lwpid_t);
18829 extern ps_err_e ps_lcontinue(struct ps_prochandle *, lwpid_t);
18830 
18831 extern ps_err_e ps_lgetregs(struct ps_prochandle *,
18832    lwpid_t, gregset_t);
18833 extern ps_err_e ps_lsetregs(struct ps_prochandle *,
18834    lwpid_t, const gregset_t);
18835 extern ps_err_e ps_lgetfpregs(struct ps_prochandle *,
18836    lwpid_t, fpregset_t *);
18837 extern ps_err_e ps_lsetfpregs(struct ps_prochandle *,
18838    lwpid_t, const fpregset_t *);
18839 # 130 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h"
18840 extern ps_err_e ps_lgetLDT(struct ps_prochandle *, lwpid_t, struct ssd *);
18841 
18842 
18843 extern ps_err_e ps_pauxv(struct ps_prochandle *, const auxv_t **);
18844 extern ps_err_e ps_pbrandname(struct ps_prochandle *, char *, size_t);
18845 
18846 extern ps_err_e ps_kill(struct ps_prochandle *, int sig);
18847 extern ps_err_e ps_lrolltoaddr(struct ps_prochandle *,
18848    lwpid_t, psaddr_t go_addr, psaddr_t stop_addr);
18849 
18850 extern void ps_plog(const char *fmt, ...);
18851 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
18852 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h" 1
18853 /*
18854  * CDDL HEADER START
18855  *
18856  * The contents of this file are subject to the terms of the
18857  * Common Development and Distribution License (the "License").
18858  * You may not use this file except in compliance with the License.
18859  *
18860  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18861  * or http://www.opensolaris.org/os/licensing.
18862  * See the License for the specific language governing permissions
18863  * and limitations under the License.
18864  *
18865  * When distributing Covered Code, include this CDDL HEADER in each
18866  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18867  * If applicable, add the following below this CDDL HEADER, with the
18868  * fields enclosed by brackets "[]" replaced with your own identifying
18869  * information: Portions Copyright [yyyy] [name of copyright owner]
18870  *
18871  * CDDL HEADER END
18872  */
18873 /*
18874  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18875  *
18876  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18877  * Use is subject to license terms.
18878  */
18879 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h"
18880 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18881 /*
18882  * CDDL HEADER START
18883  *
18884  * The contents of this file are subject to the terms of the
18885  * Common Development and Distribution License (the "License").
18886  * You may not use this file except in compliance with the License.
18887  *
18888  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18889  * or http://www.opensolaris.org/os/licensing.
18890  * See the License for the specific language governing permissions
18891  * and limitations under the License.
18892  *
18893  * When distributing Covered Code, include this CDDL HEADER in each
18894  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18895  * If applicable, add the following below this CDDL HEADER, with the
18896  * fields enclosed by brackets "[]" replaced with your own identifying
18897  * information: Portions Copyright [yyyy] [name of copyright owner]
18898  *
18899  * CDDL HEADER END
18900  */
18901 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18902 /*	  All Rights Reserved  	*/
18903 
18904 
18905 /*
18906  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18907  * Use is subject to license terms.
18908  *
18909  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18910  * Copyright 2016 Joyent, Inc.
18911  */
18912 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h" 2
18913 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/lwp.h" 1
18914 /*
18915  * CDDL HEADER START
18916  *
18917  * The contents of this file are subject to the terms of the
18918  * Common Development and Distribution License (the "License").
18919  * You may not use this file except in compliance with the License.
18920  *
18921  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18922  * or http://www.opensolaris.org/os/licensing.
18923  * See the License for the specific language governing permissions
18924  * and limitations under the License.
18925  *
18926  * When distributing Covered Code, include this CDDL HEADER in each
18927  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18928  * If applicable, add the following below this CDDL HEADER, with the
18929  * fields enclosed by brackets "[]" replaced with your own identifying
18930  * information: Portions Copyright [yyyy] [name of copyright owner]
18931  *
18932  * CDDL HEADER END
18933  */
18934 
18935 /*
18936  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18937  * Use is subject to license terms.
18938  */
18939 /*
18940  * Copyright (c) 2013 by Delphix. All rights reserved.
18941  */
18942 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h" 2
18943 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h" 1
18944 /*
18945  * CDDL HEADER START
18946  *
18947  * The contents of this file are subject to the terms of the
18948  * Common Development and Distribution License (the "License").
18949  * You may not use this file except in compliance with the License.
18950  *
18951  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18952  * or http://www.opensolaris.org/os/licensing.
18953  * See the License for the specific language governing permissions
18954  * and limitations under the License.
18955  *
18956  * When distributing Covered Code, include this CDDL HEADER in each
18957  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18958  * If applicable, add the following below this CDDL HEADER, with the
18959  * fields enclosed by brackets "[]" replaced with your own identifying
18960  * information: Portions Copyright [yyyy] [name of copyright owner]
18961  *
18962  * CDDL HEADER END
18963  */
18964 /*
18965  * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
18966  * Copyright (c) 2018, Joyent, Inc.
18967  */
18968 /*
18969  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
18970  * Use is subject to license terms.
18971  */
18972 
18973 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18974 /*	  All Rights Reserved  	*/
18975 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h" 2
18976 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/link.h" 1
18977 /*
18978  * CDDL HEADER START
18979  *
18980  * The contents of this file are subject to the terms of the
18981  * Common Development and Distribution License (the "License").
18982  * You may not use this file except in compliance with the License.
18983  *
18984  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18985  * or http://www.opensolaris.org/os/licensing.
18986  * See the License for the specific language governing permissions
18987  * and limitations under the License.
18988  *
18989  * When distributing Covered Code, include this CDDL HEADER in each
18990  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18991  * If applicable, add the following below this CDDL HEADER, with the
18992  * fields enclosed by brackets "[]" replaced with your own identifying
18993  * information: Portions Copyright [yyyy] [name of copyright owner]
18994  *
18995  * CDDL HEADER END
18996  */
18997 /*
18998  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18999  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
19000  */
19001 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h" 2
19002 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/proc_service.h" 1
19003 /*
19004  * CDDL HEADER START
19005  *
19006  * The contents of this file are subject to the terms of the
19007  * Common Development and Distribution License (the "License").
19008  * You may not use this file except in compliance with the License.
19009  *
19010  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19011  * or http://www.opensolaris.org/os/licensing.
19012  * See the License for the specific language governing permissions
19013  * and limitations under the License.
19014  *
19015  * When distributing Covered Code, include this CDDL HEADER in each
19016  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19017  * If applicable, add the following below this CDDL HEADER, with the
19018  * fields enclosed by brackets "[]" replaced with your own identifying
19019  * information: Portions Copyright [yyyy] [name of copyright owner]
19020  *
19021  * CDDL HEADER END
19022  */
19023 /*
19024  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
19025  * Use is subject to license terms.
19026  */
19027 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rtld_db.h" 2
19028 
19029 
19030 /*
19031  * librtld_db interface versions
19032  */
19033 
19034 
19035 
19036 
19037 
19038 
19039 typedef enum {
19040  RD_ERR, /* generic */
19041  RD_OK, /* generic "call" succeeded */
19042  RD_NOCAPAB, /* capability not available */
19043  RD_DBERR, /* import service failed */
19044  RD_NOBASE, /* 5.x: aux tag AT_BASE not found */
19045  RD_NODYNAM, /* symbol 'DYNAMIC' not found */
19046  RD_NOMAPS /* link-maps are not yet available */
19047 } rd_err_e;
19048 
19049 
19050 /*
19051  * ways that the event notification can take place:
19052  */
19053 typedef enum {
19054  RD_NOTIFY_BPT, /* set break-point at address */
19055  RD_NOTIFY_AUTOBPT, /* 4.x compat. not used in 5.x */
19056  RD_NOTIFY_SYSCALL /* watch for syscall */
19057 } rd_notify_e;
19058 
19059 /*
19060  * information on ways that the event notification can take place:
19061  */
19062 typedef struct rd_notify {
19063  rd_notify_e type;
19064  union {
19065   psaddr_t bptaddr; /* break point address */
19066   long syscallno; /* system call id */
19067  } u;
19068 } rd_notify_t;
19069 
19070 /*
19071  * information about event instance:
19072  */
19073 typedef enum {
19074  RD_NOSTATE = 0, /* no state information */
19075  RD_CONSISTENT, /* link-maps are stable */
19076  RD_ADD, /* currently adding object to link-maps */
19077  RD_DELETE /* currently deleteing object from link-maps */
19078 } rd_state_e;
19079 
19080 typedef struct rd_event_msg {
19081  rd_event_e type;
19082  union {
19083   rd_state_e state; /* for DLACTIVITY */
19084  } u;
19085 } rd_event_msg_t;
19086 
19087 
19088 /*
19089  * iteration over load objects
19090  */
19091 typedef struct rd_loadobj {
19092  psaddr_t rl_nameaddr; /* address of the name in user space */
19093  unsigned rl_flags;
19094  psaddr_t rl_base; /* base of address of code */
19095  psaddr_t rl_data_base; /* base of address of data */
19096  Lmid_t rl_lmident; /* ident of link map */
19097  psaddr_t rl_refnameaddr; /* reference name of filter in user */
19098      /* space.  If non null object is a */
19099      /* filter. */
19100  psaddr_t rl_plt_base; /* These fields are present for 4.x */
19101  unsigned rl_plt_size; /* compatibility and are not */
19102      /* currently used  in SunOS5.x */
19103  psaddr_t rl_bend; /* end of image (text+data+bss) */
19104  psaddr_t rl_padstart; /* start of padding */
19105  psaddr_t rl_padend; /* end of image after padding */
19106  psaddr_t rl_dynamic; /* points to the DYNAMIC section */
19107      /* in the target process */
19108  unsigned long rl_tlsmodid; /* module ID for TLS references */
19109 } rd_loadobj_t;
19110 
19111 /*
19112  * Values for rl_flags
19113  */
19114 
19115      /* originating from a relocatable */
19116      /* module which was dynamically */
19117      /* loaded */
19118 
19119 /*
19120  * Commands for rd_ctl()
19121  */
19122 
19123 
19124 typedef struct rd_agent rd_agent_t;
19125 typedef int rl_iter_f(const rd_loadobj_t *, void *);
19126 
19127 
19128 /*
19129  * PLT skipping
19130  */
19131 typedef enum {
19132     RD_RESOLVE_NONE, /* don't do anything special */
19133     RD_RESOLVE_STEP, /* step 'pi_nstep' instructions */
19134     RD_RESOLVE_TARGET, /* resolved target is in 'pi_target' */
19135     RD_RESOLVE_TARGET_STEP /* put a bpt on target, then step nstep times */
19136 } rd_skip_e;
19137 
19138 
19139 typedef struct rd_plt_info {
19140  rd_skip_e pi_skip_method;
19141  long pi_nstep;
19142  psaddr_t pi_target;
19143  psaddr_t pi_baddr;
19144  unsigned int pi_flags;
19145 } rd_plt_info_t;
19146 
19147 
19148 /*
19149  * Values for pi_flags
19150  */
19151 
19152      /* has been bound - and that */
19153      /* pi_baddr will contain its */
19154      /* destination address */
19155 
19156 struct ps_prochandle;
19157 
19158 /*
19159  * librtld_db.so entry points
19160  */
19161 extern void rd_delete(rd_agent_t *);
19162 extern char *rd_errstr(rd_err_e rderr);
19163 extern rd_err_e rd_event_addr(rd_agent_t *, rd_event_e, rd_notify_t *);
19164 extern rd_err_e rd_event_enable(rd_agent_t *, int);
19165 extern rd_err_e rd_event_getmsg(rd_agent_t *, rd_event_msg_t *);
19166 extern rd_err_e rd_init(int);
19167 extern rd_err_e rd_ctl(int, void *);
19168 extern rd_err_e rd_loadobj_iter(rd_agent_t *, rl_iter_f *,
19169     void *);
19170 extern void rd_log(const int);
19171 extern rd_agent_t *rd_new(struct ps_prochandle *);
19172 extern rd_err_e rd_objpad_enable(struct rd_agent *, size_t);
19173 extern rd_err_e rd_plt_resolution(rd_agent_t *, psaddr_t, lwpid_t,
19174     psaddr_t, rd_plt_info_t *);
19175 extern rd_err_e rd_get_dyns(rd_agent_t *, psaddr_t, void **, size_t *);
19176 extern rd_err_e rd_reset(struct rd_agent *);
19177 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
19178 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/procfs.h" 1
19179 /*
19180  * CDDL HEADER START
19181  *
19182  * The contents of this file are subject to the terms of the
19183  * Common Development and Distribution License, Version 1.0 only
19184  * (the "License").  You may not use this file except in compliance
19185  * with the License.
19186  *
19187  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19188  * or http://www.opensolaris.org/os/licensing.
19189  * See the License for the specific language governing permissions
19190  * and limitations under the License.
19191  *
19192  * When distributing Covered Code, include this CDDL HEADER in each
19193  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19194  * If applicable, add the following below this CDDL HEADER, with the
19195  * fields enclosed by brackets "[]" replaced with your own identifying
19196  * information: Portions Copyright [yyyy] [name of copyright owner]
19197  *
19198  * CDDL HEADER END
19199  */
19200 /*
19201  * Copyright (c) 1996, by Sun Microsystems, Inc.
19202  * All rights reserved.
19203  */
19204 
19205 
19206 
19207 
19208 #pragma ident "%Z%%M%	%I%	%E% SMI"
19209 
19210 
19211 
19212 
19213 
19214 /*
19215  * This include file forces the new structured /proc definitions.
19216  * The structured /proc interface is the preferred API, and the
19217  * older ioctl()-based /proc interface will be removed in a future
19218  * version of Solaris.
19219  */
19220 
19221 
19222 
19223 
19224 
19225 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 1
19226 /*
19227  * CDDL HEADER START
19228  *
19229  * The contents of this file are subject to the terms of the
19230  * Common Development and Distribution License (the "License").
19231  * You may not use this file except in compliance with the License.
19232  *
19233  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19234  * or http://www.opensolaris.org/os/licensing.
19235  * See the License for the specific language governing permissions
19236  * and limitations under the License.
19237  *
19238  * When distributing Covered Code, include this CDDL HEADER in each
19239  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19240  * If applicable, add the following below this CDDL HEADER, with the
19241  * fields enclosed by brackets "[]" replaced with your own identifying
19242  * information: Portions Copyright [yyyy] [name of copyright owner]
19243  *
19244  * CDDL HEADER END
19245  */
19246 
19247 /*
19248  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
19249  * Use is subject to license terms.
19250  */
19251 /*
19252  * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
19253  */
19254 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
19255 /*
19256  * This definition is temporary.  Structured proc is the preferred API,
19257  * and the older ioctl-based interface will be removed in a future version
19258  * of Solaris.  Until then, by default, including <sys/procfs.h> will
19259  * provide the older ioctl-based /proc definitions.  To get the structured
19260  * /proc definitions, either include <procfs.h> or define _STRUCTURED_PROC
19261  * to be 1 before including <sys/procfs.h>.
19262  */
19263 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
19264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
19265 /*
19266  * CDDL HEADER START
19267  *
19268  * The contents of this file are subject to the terms of the
19269  * Common Development and Distribution License (the "License").
19270  * You may not use this file except in compliance with the License.
19271  *
19272  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19273  * or http://www.opensolaris.org/os/licensing.
19274  * See the License for the specific language governing permissions
19275  * and limitations under the License.
19276  *
19277  * When distributing Covered Code, include this CDDL HEADER in each
19278  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19279  * If applicable, add the following below this CDDL HEADER, with the
19280  * fields enclosed by brackets "[]" replaced with your own identifying
19281  * information: Portions Copyright [yyyy] [name of copyright owner]
19282  *
19283  * CDDL HEADER END
19284  */
19285 
19286 /*
19287  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
19288  * Copyright 2016 Joyent, Inc.
19289  *
19290  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
19291  * Use is subject to license terms.
19292  */
19293 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19294 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19295 /*
19296  * CDDL HEADER START
19297  *
19298  * The contents of this file are subject to the terms of the
19299  * Common Development and Distribution License (the "License").
19300  * You may not use this file except in compliance with the License.
19301  *
19302  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19303  * or http://www.opensolaris.org/os/licensing.
19304  * See the License for the specific language governing permissions
19305  * and limitations under the License.
19306  *
19307  * When distributing Covered Code, include this CDDL HEADER in each
19308  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19309  * If applicable, add the following below this CDDL HEADER, with the
19310  * fields enclosed by brackets "[]" replaced with your own identifying
19311  * information: Portions Copyright [yyyy] [name of copyright owner]
19312  *
19313  * CDDL HEADER END
19314  */
19315 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19316 /*	  All Rights Reserved  	*/
19317 
19318 
19319 /*
19320  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19321  * Use is subject to license terms.
19322  *
19323  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19324  * Copyright 2016 Joyent, Inc.
19325  */
19326 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19327 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
19328 /*
19329  * CDDL HEADER START
19330  *
19331  * The contents of this file are subject to the terms of the
19332  * Common Development and Distribution License, Version 1.0 only
19333  * (the "License").  You may not use this file except in compliance
19334  * with the License.
19335  *
19336  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19337  * or http://www.opensolaris.org/os/licensing.
19338  * See the License for the specific language governing permissions
19339  * and limitations under the License.
19340  *
19341  * When distributing Covered Code, include this CDDL HEADER in each
19342  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19343  * If applicable, add the following below this CDDL HEADER, with the
19344  * fields enclosed by brackets "[]" replaced with your own identifying
19345  * information: Portions Copyright [yyyy] [name of copyright owner]
19346  *
19347  * CDDL HEADER END
19348  */
19349 /*
19350  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
19351  * Use is subject to license terms.
19352  */
19353 
19354 /*
19355  * Implementation-private.  This header should not be included
19356  * directly by an application.  The application should instead
19357  * include <time.h> which includes this header conditionally
19358  * depending on which feature test macros are defined. By default,
19359  * this header is included by <time.h>.  X/Open and POSIX
19360  * standards requirements result in this header being included
19361  * by <time.h> only under a restricted set of conditions.
19362  */
19363 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19364 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
19365 /*
19366  * CDDL HEADER START
19367  *
19368  * The contents of this file are subject to the terms of the
19369  * Common Development and Distribution License (the "License").
19370  * You may not use this file except in compliance with the License.
19371  *
19372  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19373  * or http://www.opensolaris.org/os/licensing.
19374  * See the License for the specific language governing permissions
19375  * and limitations under the License.
19376  *
19377  * When distributing Covered Code, include this CDDL HEADER in each
19378  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19379  * If applicable, add the following below this CDDL HEADER, with the
19380  * fields enclosed by brackets "[]" replaced with your own identifying
19381  * information: Portions Copyright [yyyy] [name of copyright owner]
19382  *
19383  * CDDL HEADER END
19384  */
19385 
19386 /*
19387  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
19388  * Use is subject to license terms.
19389  */
19390 
19391 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19392 /*	  All Rights Reserved  	*/
19393 
19394 /*
19395  * University Copyright- Copyright (c) 1982, 1986, 1988
19396  * The Regents of the University of California
19397  * All Rights Reserved
19398  *
19399  * University Acknowledgment- Portions of this document are derived from
19400  * software developed by the University of California, Berkeley, and its
19401  * contributors.
19402  */
19403 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19404 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 1
19405 /*
19406  * CDDL HEADER START
19407  *
19408  * The contents of this file are subject to the terms of the
19409  * Common Development and Distribution License, Version 1.0 only
19410  * (the "License").  You may not use this file except in compliance
19411  * with the License.
19412  *
19413  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19414  * or http://www.opensolaris.org/os/licensing.
19415  * See the License for the specific language governing permissions
19416  * and limitations under the License.
19417  *
19418  * When distributing Covered Code, include this CDDL HEADER in each
19419  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19420  * If applicable, add the following below this CDDL HEADER, with the
19421  * fields enclosed by brackets "[]" replaced with your own identifying
19422  * information: Portions Copyright [yyyy] [name of copyright owner]
19423  *
19424  * CDDL HEADER END
19425  */
19426 /*
19427  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
19428  * Use is subject to license terms.
19429  */
19430 
19431 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19432 /*	  All Rights Reserved  	*/
19433 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19434 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fault.h" 1
19435 /*
19436  * CDDL HEADER START
19437  *
19438  * The contents of this file are subject to the terms of the
19439  * Common Development and Distribution License, Version 1.0 only
19440  * (the "License").  You may not use this file except in compliance
19441  * with the License.
19442  *
19443  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19444  * or http://www.opensolaris.org/os/licensing.
19445  * See the License for the specific language governing permissions
19446  * and limitations under the License.
19447  *
19448  * When distributing Covered Code, include this CDDL HEADER in each
19449  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19450  * If applicable, add the following below this CDDL HEADER, with the
19451  * fields enclosed by brackets "[]" replaced with your own identifying
19452  * information: Portions Copyright [yyyy] [name of copyright owner]
19453  *
19454  * CDDL HEADER END
19455  */
19456 /*
19457  * Copyright (c) 1999 by Sun Microsystems, Inc.
19458  * All rights reserved.
19459  */
19460 
19461 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19462 /*	  All Rights Reserved  	*/
19463 
19464 
19465 
19466 
19467 
19468 #pragma ident "%Z%%M%	%I%	%E% SMI"
19469 
19470 
19471 
19472 
19473 
19474 /*
19475  * Fault numbers, analagous to signals.  These correspond to
19476  * hardware faults.  Setting the appropriate flags in a process's
19477  * set of traced faults via /proc causes the process to stop each
19478  * time one of the designated faults occurs so that a debugger can
19479  * take action.  See proc(4) for details.
19480  */
19481 
19482  /* fault enumeration must begin with 1 */
19483 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fault.h"
19484 typedef struct { /* fault set type */
19485  unsigned int word[4];
19486 } fltset_t;
19487 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19488 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h" 1
19489 /*
19490  * CDDL HEADER START
19491  *
19492  * The contents of this file are subject to the terms of the
19493  * Common Development and Distribution License (the "License").
19494  * You may not use this file except in compliance with the License.
19495  *
19496  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19497  * or http://www.opensolaris.org/os/licensing.
19498  * See the License for the specific language governing permissions
19499  * and limitations under the License.
19500  *
19501  * When distributing Covered Code, include this CDDL HEADER in each
19502  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19503  * If applicable, add the following below this CDDL HEADER, with the
19504  * fields enclosed by brackets "[]" replaced with your own identifying
19505  * information: Portions Copyright [yyyy] [name of copyright owner]
19506  *
19507  * CDDL HEADER END
19508  */
19509 
19510 /*
19511  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19512  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
19513  * Copyright (c) 2013 by Delphix. All rights reserved.
19514  * Copyright (c) 2015, Joyent, Inc.  All rights reserved.
19515  */
19516 
19517 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19518 /*	  All Rights Reserved  	*/
19519 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19520 /*
19521  *	system call numbers
19522  *		syscall(SYS_xxxx, ...)
19523  */
19524 
19525  /* syscall enumeration MUST begin with 1 */
19526 
19527  /*
19528 	 * SunOS/SPARC uses 0 for the indirect system call SYS_syscall
19529 	 * but this doesn't count because it is just another way
19530 	 * to specify the real system call number.
19531 	 */
19532 # 89 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19533  /*
19534 	 * subcodes:
19535 	 *	getpgrp()	  :: syscall(39,0)
19536 	 *	setpgrp()	  :: syscall(39,1)
19537 	 *	getsid(pid)	  :: syscall(39,2,pid)
19538 	 *	setsid()	  :: syscall(39,3)
19539 	 *	getpgid(pid)	  :: syscall(39,4,pid)
19540 	 *	setpgid(pid,pgid) :: syscall(39,5,pid,pgid)
19541 	 */
19542 # 107 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19543  /*
19544 	 * subcodes:
19545 	 *	msgget(...)  :: msgsys(0, ...)
19546 	 *	msgctl(...)  :: msgsys(1, ...)
19547 	 *	msgrcv(...)  :: msgsys(2, ...)
19548 	 *	msgsnd(...)  :: msgsys(3, ...)
19549 	 *	msgids(...)  :: msgsys(4, ...)
19550 	 *	msgsnap(...) :: msgsys(5, ...)
19551 	 *	see <sys/msg.h>
19552 	 */
19553 
19554  /*
19555 	 * subcodes:
19556 	 *	sysi86(code, ...)
19557 	 */
19558 
19559 
19560  /*
19561 	 * subcodes:
19562 	 *	shmat (...) :: shmsys(0, ...)
19563 	 *	shmctl(...) :: shmsys(1, ...)
19564 	 *	shmdt (...) :: shmsys(2, ...)
19565 	 *	shmget(...) :: shmsys(3, ...)
19566 	 *	shmids(...) :: shmsys(4, ...)
19567 	 *	see <sys/shm.h>
19568 	 */
19569 
19570  /*
19571 	 * subcodes:
19572 	 *	semctl(...) :: semsys(0, ...)
19573 	 *	semget(...) :: semsys(1, ...)
19574 	 *	semop (...) :: semsys(2, ...)
19575 	 *	semids(...) :: semsys(3, ...)
19576 	 *	semtimedop(...) :: semsys(4, ...)
19577 	 *	see <sys/sem.h>
19578 	 */
19579 
19580 
19581 
19582 
19583  /*
19584 	 * subcodes (third argument):
19585 	 *	uname(obuf)  (obsolete)   :: syscall(57, obuf, ign, 0)
19586 	 *					subcode 1 unused
19587 	 *	ustat(dev, obuf)	  :: syscall(57, obuf, dev, 2)
19588 	 *	fusers(path, flags, obuf) :: syscall(57, path, flags, 3, obuf)
19589 	 *	see <sys/utssys.h>
19590 	 */
19591 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19592  /*
19593 	 * subcodes:
19594 	 * 	settaskid(...) :: tasksys(0, ...)
19595 	 * 	gettaskid(...) :: tasksys(1, ...)
19596 	 * 	getprojid(...) :: tasksys(2, ...)
19597 	 */
19598 
19599 
19600  /*
19601 	 * subcodes:
19602 	 * 	getacct(...) :: exacct(0, ...)
19603 	 * 	putacct(...) :: exacct(1, ...)
19604 	 * 	wracct(...) :: exacct(2, ...)
19605 	 */
19606 
19607  /*
19608 	 * subcodes:
19609 	 *	getpagesizes2(...)	:: getpagesizes(0, ...)
19610 	 * 	getpagesizes(...)	:: getpagesizes(1, ...) legacy
19611 	 */
19612 
19613  /*
19614 	 * subcodes:
19615 	 * 	getrctl(...) :: rctlsys(0, ...)
19616 	 * 	setrctl(...) :: rctlsys(1, ...)
19617 	 * 	rctllist(...) :: rctlsys(2, ...)
19618 	 * 	rctlctl(...) :: rctlsys(3, ...)
19619 	 */
19620 
19621  /*
19622 	 * subcodes:
19623 	 * 	allocids(...)		:: sidsys(0, ...)
19624 	 * 	idmap_reg(...)		:: sidsys(1, ...)
19625 	 * 	idmap_unreg(...)	:: sidsys(2, ...)
19626 	 */
19627 
19628  /*
19629 	 * subcodes:
19630 	 *	_lwp_park(timespec_t *, lwpid_t)	:: syslwp_park(0, ...)
19631 	 *	_lwp_unpark(lwpid_t, int)		:: syslwp_park(1, ...)
19632 	 *	_lwp_unpark_all(lwpid_t *, int)		:: syslwp_park(2, ...)
19633 	 *	_lwp_unpark_cancel(lwpid_t *, int)	:: syslwp_park(3, ...)
19634 	 *	_lwp_set_park(lwpid_t *, int)		:: syslwp_park(4, ...)
19635 	 */
19636 
19637  /*
19638 	 * subcodes :
19639 	 * 	sendfilev()   :: sendfilev(0, ...)
19640 	 * 	sendfilev64() :: sendfilev(1, ...)
19641 	 */
19642 
19643 
19644 
19645 
19646  /*
19647 	 * subcodes:
19648 	 * 	setppriv(...)		:: privsys(0, ...)
19649 	 * 	getppriv(...)		:: privsys(1, ...)
19650 	 * 	getimplinfo(...)	:: privsys(2, ...)
19651 	 * 	setpflags(...) 		:: privsys(3, ...)
19652 	 * 	getpflags(...) 		:: privsys(4, ...)
19653 	 *	issetugid();		:: privsys(5)
19654 	 */
19655 
19656  /*
19657 	 * subcodes:
19658 	 *	ucred_get(...)		:: ucredsys(0, ...)
19659 	 *	getpeerucred(...)	:: ucredsys(1, ...)
19660 	 */
19661 
19662  /*
19663 	 * subcodes:
19664 	 *	sysfs(code, ...)
19665 	 *	see <sys/fstyp.h>
19666 	 */
19667 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19668  /*
19669 	 * subcodes:
19670 	 *			subcode 0 unused
19671 	 *	sigpending(...) :: syscall(99, 1, ...)
19672 	 *	sigfillset(...) :: syscall(99, 2, ...)
19673 	 */
19674 
19675  /*
19676 	 * subcodes:
19677 	 *	getcontext(...) :: syscall(100, 0, ...)
19678 	 *	setcontext(...) :: syscall(100, 1, ...)
19679 	 */
19680 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19681  /*
19682 	 * subcodes:
19683 	 *	futimens(...)	:: syscall(110, 0, ...)
19684 	 *	utimensat(...)	:: syscall(110, 1, ...)
19685 	 */
19686 # 316 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19687  /*
19688 	 * subcodes:
19689 	 *	forkx(flags)    :: forksys(0, flags)
19690 	 *	forkallx(flags) :: forksys(1, flags)
19691 	 *	vforkx(flags)   :: forksys(2, flags)
19692 	 */
19693 # 354 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19694  /*
19695 	 * subcodes:
19696 	 *	aioread(...)	:: kaio(AIOREAD, ...)
19697 	 *	aiowrite(...)	:: kaio(AIOWRITE, ...)
19698 	 *	aiowait(...)	:: kaio(AIOWAIT, ...)
19699 	 *	aiocancel(...)	:: kaio(AIOCANCEL, ...)
19700 	 *	aionotify()	:: kaio(AIONOTIFY)
19701 	 *	aioinit()	:: kaio(AIOINIT)
19702 	 *	aiostart()	:: kaio(AIOSTART)
19703 	 *	see <sys/aio.h>
19704 	 */
19705 
19706 
19707 
19708  /*
19709 	 * subcodes:
19710 	 * 	meminfo(...) :: meminfosys(MISYS_MEMINFO, ...)
19711 	 */
19712 
19713  /*
19714 	 * subcodes:
19715 	 *	getrusage(...) :: rusagesys(RUSAGESYS_GETRUSAGE, ...)
19716 	 *	getvmusage(...)    :: rusagesys(RUSAGESYS_GETVMUSAGE, ...)
19717 	 */
19718 
19719  /*
19720 	 * subcodes:
19721 	 *	port_create(...) :: portfs(PORT_CREATE, ...)
19722 	 *	port_associate(...) :: portfs(PORT_ASSOCIATE, ...)
19723 	 *	port_dissociate(...) :: portfs(PORT_DISSOCIATE, ...)
19724 	 *	port_send(...) :: portfs(PORT_SEND, ...)
19725 	 *	port_sendn(...) :: portfs(PORT_SENDN, ...)
19726 	 *	port_get(...) :: portfs(PORT_GET, ...)
19727 	 *	port_getn(...) :: portfs(PORT_GETN, ...)
19728 	 *	port_alert(...) :: portfs(PORT_ALERT, ...)
19729 	 *	port_dispatch(...) :: portfs(PORT_DISPATCH, ...)
19730 	 */
19731 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19732  /*
19733 	 * Door Subcodes:
19734 	 *	0	door_create
19735 	 *	1	door_revoke
19736 	 *	2	door_info
19737 	 *	3	door_call
19738 	 *	4	door_return
19739 	 */
19740 # 429 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19741  /*
19742 	 * subcodes:
19743 	 *	lwp_rwlock_rdlock(...)    :: syscall(212, 0, ...)
19744 	 *	lwp_rwlock_wrlock(...)    :: syscall(212, 1, ...)
19745 	 *	lwp_rwlock_tryrdlock(...) :: syscall(212, 2, ...)
19746 	 *	lwp_rwlock_trywrlock(...) :: syscall(212, 3, ...)
19747 	 *	lwp_rwlock_unlock(...)    :: syscall(212, 4, ...)
19748 	 */
19749 /* system calls for large file ( > 2 gigabyte) support */
19750 # 452 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19751  /*
19752 	 * subcodes:
19753 	 *	zone_create(...) :: zone(ZONE_CREATE, ...)
19754 	 *	zone_destroy(...) :: zone(ZONE_DESTROY, ...)
19755 	 *	zone_getattr(...) :: zone(ZONE_GETATTR, ...)
19756 	 *	zone_enter(...) :: zone(ZONE_ENTER, ...)
19757 	 *	zone_list(...) :: zone(ZONE_LIST, ...)
19758 	 *	zone_shutdown(...) :: zone(ZONE_SHUTDOWN, ...)
19759 	 *	zone_lookup(...) :: zone(ZONE_LOOKUP, ...)
19760 	 *	zone_boot(...) :: zone(ZONE_BOOT, ...)
19761 	 *	zone_version(...) :: zone(ZONE_VERSION, ...)
19762 	 *	zone_setattr(...) :: zone(ZONE_SETATTR, ...)
19763 	 *	zone_add_datalink(...) :: zone(ZONE_ADD_DATALINK, ...)
19764 	 *	zone_remove_datalink(...) :: zone(ZONE_DEL_DATALINK, ...)
19765 	 *	zone_check_datalink(...) :: zone(ZONE_CHECK_DATALINK, ...)
19766 	 *	zone_list_datalink(...) :: zone(ZONE_LIST_DATALINK, ...)
19767 	 */
19768 # 489 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19769  /*
19770 	 * NTP codes
19771 	 */
19772 # 503 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/syscall.h"
19773 typedef struct { /* syscall set type */
19774  unsigned int word[16];
19775 } sysset_t;
19776 
19777 typedef struct { /* return values from system call */
19778  long sys_rval1; /* primary return value from system call */
19779  long sys_rval2; /* second return value from system call */
19780 } sysret_t;
19781 
19782 
19783 
19784 extern int syscall(int, ...);
19785 extern int __systemcall(sysret_t *, int, ...);
19786 extern int __set_errno(int);
19787 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
19788 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 1
19789 /*
19790  * CDDL HEADER START
19791  *
19792  * The contents of this file are subject to the terms of the
19793  * Common Development and Distribution License (the "License").
19794  * You may not use this file except in compliance with the License.
19795  *
19796  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19797  * or http://www.opensolaris.org/os/licensing.
19798  * See the License for the specific language governing permissions
19799  * and limitations under the License.
19800  *
19801  * When distributing Covered Code, include this CDDL HEADER in each
19802  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19803  * If applicable, add the following below this CDDL HEADER, with the
19804  * fields enclosed by brackets "[]" replaced with your own identifying
19805  * information: Portions Copyright [yyyy] [name of copyright owner]
19806  *
19807  * CDDL HEADER END
19808  */
19809 /*
19810  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19811  *
19812  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19813  * Use is subject to license terms.
19814  */
19815 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h"
19816 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19817 /*
19818  * CDDL HEADER START
19819  *
19820  * The contents of this file are subject to the terms of the
19821  * Common Development and Distribution License (the "License").
19822  * You may not use this file except in compliance with the License.
19823  *
19824  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19825  * or http://www.opensolaris.org/os/licensing.
19826  * See the License for the specific language governing permissions
19827  * and limitations under the License.
19828  *
19829  * When distributing Covered Code, include this CDDL HEADER in each
19830  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19831  * If applicable, add the following below this CDDL HEADER, with the
19832  * fields enclosed by brackets "[]" replaced with your own identifying
19833  * information: Portions Copyright [yyyy] [name of copyright owner]
19834  *
19835  * CDDL HEADER END
19836  */
19837 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19838 /*	  All Rights Reserved  	*/
19839 
19840 
19841 /*
19842  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19843  * Use is subject to license terms.
19844  *
19845  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19846  * Copyright 2016 Joyent, Inc.
19847  */
19848 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
19849 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 1
19850 /*
19851  * CDDL HEADER START
19852  *
19853  * The contents of this file are subject to the terms of the
19854  * Common Development and Distribution License (the "License").
19855  * You may not use this file except in compliance with the License.
19856  *
19857  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19858  * or http://www.opensolaris.org/os/licensing.
19859  * See the License for the specific language governing permissions
19860  * and limitations under the License.
19861  *
19862  * When distributing Covered Code, include this CDDL HEADER in each
19863  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19864  * If applicable, add the following below this CDDL HEADER, with the
19865  * fields enclosed by brackets "[]" replaced with your own identifying
19866  * information: Portions Copyright [yyyy] [name of copyright owner]
19867  *
19868  * CDDL HEADER END
19869  */
19870 /*
19871  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
19872  *	  All Rights Reserved
19873  *
19874  */
19875 
19876 /*
19877  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19878  *
19879  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
19880  * Use is subject to license terms.
19881  */
19882 
19883 
19884 
19885 
19886 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19887 /*
19888  * CDDL HEADER START
19889  *
19890  * The contents of this file are subject to the terms of the
19891  * Common Development and Distribution License (the "License").
19892  * You may not use this file except in compliance with the License.
19893  *
19894  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19895  * or http://www.opensolaris.org/os/licensing.
19896  * See the License for the specific language governing permissions
19897  * and limitations under the License.
19898  *
19899  * When distributing Covered Code, include this CDDL HEADER in each
19900  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19901  * If applicable, add the following below this CDDL HEADER, with the
19902  * fields enclosed by brackets "[]" replaced with your own identifying
19903  * information: Portions Copyright [yyyy] [name of copyright owner]
19904  *
19905  * CDDL HEADER END
19906  */
19907 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19908 /*	  All Rights Reserved  	*/
19909 
19910 
19911 /*
19912  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19913  * Use is subject to license terms.
19914  *
19915  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19916  * Copyright 2016 Joyent, Inc.
19917  */
19918 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 2
19919 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
19920 /*
19921  * CDDL HEADER START
19922  *
19923  * The contents of this file are subject to the terms of the
19924  * Common Development and Distribution License, Version 1.0 only
19925  * (the "License").  You may not use this file except in compliance
19926  * with the License.
19927  *
19928  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19929  * or http://www.opensolaris.org/os/licensing.
19930  * See the License for the specific language governing permissions
19931  * and limitations under the License.
19932  *
19933  * When distributing Covered Code, include this CDDL HEADER in each
19934  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19935  * If applicable, add the following below this CDDL HEADER, with the
19936  * fields enclosed by brackets "[]" replaced with your own identifying
19937  * information: Portions Copyright [yyyy] [name of copyright owner]
19938  *
19939  * CDDL HEADER END
19940  */
19941 /*
19942  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
19943  * Use is subject to license terms.
19944  */
19945 
19946 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19947 /*	  All Rights Reserved  	*/
19948 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 2
19949 
19950 
19951 
19952 
19953 
19954 /*
19955  * Definitions for p_online, processor_info & lgrp system calls.
19956  */
19957 
19958 /*
19959  * Type for an lgrpid
19960  */
19961 typedef uint16_t lgrpid_t;
19962 
19963 /*
19964  * Type for processor name (CPU number).
19965  */
19966 typedef int processorid_t;
19967 typedef int chipid_t;
19968 
19969 /*
19970  * Flags and return values for p_online(2), and pi_state for processor_info(2).
19971  * These flags are *not* for in-kernel examination of CPU states.
19972  * See <sys/cpuvar.h> for appropriate informational functions.
19973  */
19974 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h"
19975 /*
19976  * String names for processor states defined above.
19977  */
19978 
19979 
19980 
19981 
19982 
19983 
19984 
19985 /*
19986  * Structure filled in by processor_info(2). This structure
19987  * SHOULD NOT BE MODIFIED. Changes to the structure would
19988  * negate ABI compatibility.
19989  *
19990  * The string fields are guaranteed to contain a NULL.
19991  *
19992  * The pi_fputypes field contains a (possibly empty) comma-separated
19993  * list of floating point identifier strings.
19994  */
19995 
19996 
19997 
19998 typedef struct {
19999  int pi_state; /* processor state, see above */
20000  char pi_processor_type[16]; /* ASCII CPU type */
20001  char pi_fputypes[32]; /* ASCII FPU types */
20002  int pi_clock; /* CPU clock freq in MHz */
20003 } processor_info_t;
20004 
20005 /*
20006  * Binding values for processor_bind(2)
20007  */
20008 
20009 
20010 
20011 
20012 
20013 
20014 /*
20015  * User-level system call interface prototypes
20016  */
20017 
20018 
20019 extern int p_online(processorid_t processorid, int flag);
20020 extern int processor_info(processorid_t processorid,
20021       processor_info_t *infop);
20022 extern int processor_bind(idtype_t idtype, id_t id,
20023       processorid_t processorid, processorid_t *obind);
20024 extern processorid_t getcpuid(void);
20025 extern lgrpid_t gethomelgroup(void);
20026 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
20027 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
20028 /*
20029  * CDDL HEADER START
20030  *
20031  * The contents of this file are subject to the terms of the
20032  * Common Development and Distribution License, Version 1.0 only
20033  * (the "License").  You may not use this file except in compliance
20034  * with the License.
20035  *
20036  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20037  * or http://www.opensolaris.org/os/licensing.
20038  * See the License for the specific language governing permissions
20039  * and limitations under the License.
20040  *
20041  * When distributing Covered Code, include this CDDL HEADER in each
20042  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20043  * If applicable, add the following below this CDDL HEADER, with the
20044  * fields enclosed by brackets "[]" replaced with your own identifying
20045  * information: Portions Copyright [yyyy] [name of copyright owner]
20046  *
20047  * CDDL HEADER END
20048  */
20049 /*
20050  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
20051  * Use is subject to license terms.
20052  */
20053 
20054 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20055 /*	  All Rights Reserved  	*/
20056 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
20057 
20058 typedef int psetid_t;
20059 
20060 /* special processor set id's */
20061 
20062 
20063 
20064 
20065 
20066 
20067 
20068 /* types of processor sets */
20069 
20070 
20071 
20072 
20073 
20074 extern int pset_create(psetid_t *);
20075 extern int pset_destroy(psetid_t);
20076 extern int pset_assign(psetid_t, processorid_t, psetid_t *);
20077 extern int pset_info(psetid_t, int *, uint_t *, processorid_t *);
20078 extern int pset_bind(psetid_t, idtype_t, id_t, psetid_t *);
20079 extern int pset_bind_lwp(psetid_t, id_t, pid_t, psetid_t *);
20080 extern int pset_getloadavg(psetid_t, double [], int);
20081 extern int pset_list(psetid_t *, uint_t *);
20082 extern int pset_setattr(psetid_t, uint_t);
20083 extern int pset_getattr(psetid_t, uint_t *);
20084 
20085 
20086 
20087 
20088 
20089 /* system call subcodes */
20090 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h"
20091 /* attribute bits */
20092 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
20093 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs_isa.h" 1
20094 /*
20095  * CDDL HEADER START
20096  *
20097  * The contents of this file are subject to the terms of the
20098  * Common Development and Distribution License, Version 1.0 only
20099  * (the "License").  You may not use this file except in compliance
20100  * with the License.
20101  *
20102  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20103  * or http://www.opensolaris.org/os/licensing.
20104  * See the License for the specific language governing permissions
20105  * and limitations under the License.
20106  *
20107  * When distributing Covered Code, include this CDDL HEADER in each
20108  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20109  * If applicable, add the following below this CDDL HEADER, with the
20110  * fields enclosed by brackets "[]" replaced with your own identifying
20111  * information: Portions Copyright [yyyy] [name of copyright owner]
20112  *
20113  * CDDL HEADER END
20114  */
20115 /*
20116  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
20117  * Use is subject to license terms.
20118  */
20119 # 64 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
20120 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 1
20121 /*
20122  * CDDL HEADER START
20123  *
20124  * The contents of this file are subject to the terms of the
20125  * Common Development and Distribution License (the "License").
20126  * You may not use this file except in compliance with the License.
20127  *
20128  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20129  * or http://www.opensolaris.org/os/licensing.
20130  * See the License for the specific language governing permissions
20131  * and limitations under the License.
20132  *
20133  * When distributing Covered Code, include this CDDL HEADER in each
20134  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20135  * If applicable, add the following below this CDDL HEADER, with the
20136  * fields enclosed by brackets "[]" replaced with your own identifying
20137  * information: Portions Copyright [yyyy] [name of copyright owner]
20138  *
20139  * CDDL HEADER END
20140  */
20141 /*
20142  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20143  *
20144  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
20145  */
20146 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
20147 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1
20148 /*
20149  * CDDL HEADER START
20150  *
20151  * The contents of this file are subject to the terms of the
20152  * Common Development and Distribution License (the "License").
20153  * You may not use this file except in compliance with the License.
20154  *
20155  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20156  * or http://www.opensolaris.org/os/licensing.
20157  * See the License for the specific language governing permissions
20158  * and limitations under the License.
20159  *
20160  * When distributing Covered Code, include this CDDL HEADER in each
20161  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20162  * If applicable, add the following below this CDDL HEADER, with the
20163  * fields enclosed by brackets "[]" replaced with your own identifying
20164  * information: Portions Copyright [yyyy] [name of copyright owner]
20165  *
20166  * CDDL HEADER END
20167  */
20168 
20169 /*
20170  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20171  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
20172  */
20173 
20174 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
20175 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
20176 /*	All Rights Reserved	*/
20177 # 66 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
20178 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
20179 /*
20180  * CDDL HEADER START
20181  *
20182  * The contents of this file are subject to the terms of the
20183  * Common Development and Distribution License (the "License").
20184  * You may not use this file except in compliance with the License.
20185  *
20186  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20187  * or http://www.opensolaris.org/os/licensing.
20188  * See the License for the specific language governing permissions
20189  * and limitations under the License.
20190  *
20191  * When distributing Covered Code, include this CDDL HEADER in each
20192  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20193  * If applicable, add the following below this CDDL HEADER, with the
20194  * fields enclosed by brackets "[]" replaced with your own identifying
20195  * information: Portions Copyright [yyyy] [name of copyright owner]
20196  *
20197  * CDDL HEADER END
20198  */
20199 
20200 /*
20201  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
20202  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
20203  */
20204 
20205 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
20206 /*	  All Rights Reserved  	*/
20207 
20208 /*
20209  * University Copyright- Copyright (c) 1982, 1986, 1988
20210  * The Regents of the University of California
20211  * All Rights Reserved
20212  *
20213  * University Acknowledgment- Portions of this document are derived from
20214  * software developed by the University of California, Berkeley, and its
20215  * contributors.
20216  */
20217 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h" 2
20218 
20219 /*
20220  * System call interfaces for /proc.
20221  */
20222 
20223 /*
20224  * Control codes (long values) for messages written to ctl and lwpctl files.
20225  */
20226 # 107 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
20227 /*
20228  * PCRUN long operand flags.
20229  */
20230 
20231 
20232 
20233 
20234 
20235 
20236 /*
20237  * lwp status file.  /proc/<pid>/lwp/<lwpid>/lwpstatus
20238  */
20239 
20240 
20241 typedef struct lwpstatus {
20242  int pr_flags; /* flags (see below) */
20243  id_t pr_lwpid; /* specific lwp identifier */
20244  short pr_why; /* reason for lwp stop, if stopped */
20245  short pr_what; /* more detailed reason */
20246  short pr_cursig; /* current signal, if any */
20247  short pr_pad1;
20248  siginfo_t pr_info; /* info associated with signal or fault */
20249  sigset_t pr_lwppend; /* set of signals pending to the lwp */
20250  sigset_t pr_lwphold; /* set of signals blocked by the lwp */
20251  struct sigaction pr_action; /* signal action for current signal */
20252  stack_t pr_altstack; /* alternate signal stack info */
20253  uintptr_t pr_oldcontext; /* address of previous ucontext */
20254  short pr_syscall; /* system call number (if in syscall) */
20255  short pr_nsysarg; /* number of arguments to this syscall */
20256  int pr_errno; /* errno for failed syscall, 0 if successful */
20257  long pr_sysarg[8]; /* arguments to this syscall */
20258  long pr_rval1; /* primary syscall return value */
20259  long pr_rval2; /* second syscall return value, if any */
20260  char pr_clname[8]; /* scheduling class name */
20261  timestruc_t pr_tstamp; /* real-time time stamp of stop */
20262  timestruc_t pr_utime; /* lwp user cpu time */
20263  timestruc_t pr_stime; /* lwp system cpu time */
20264  int pr_filler[11 - 2 * sizeof (timestruc_t) / sizeof (int)];
20265  int pr_errpriv; /* missing privilege */
20266  uintptr_t pr_ustack; /* address of stack boundary data (stack_t) */
20267  ulong_t pr_instr; /* current instruction */
20268  gregset_t pr_reg; /* general registers */
20269  fpregset_t pr_fpreg; /* floating-point registers */
20270 } lwpstatus_t;
20271 
20272 /*
20273  * process status file.  /proc/<pid>/status
20274  */
20275 typedef struct pstatus {
20276  int pr_flags; /* flags (see below) */
20277  int pr_nlwp; /* number of active lwps in the process */
20278  pid_t pr_pid; /* process id */
20279  pid_t pr_ppid; /* parent process id */
20280  pid_t pr_pgid; /* process group id */
20281  pid_t pr_sid; /* session id */
20282  id_t pr_aslwpid; /* historical; now always zero */
20283  id_t pr_agentid; /* lwp id of the /proc agent lwp, if any */
20284  sigset_t pr_sigpend; /* set of process pending signals */
20285  uintptr_t pr_brkbase; /* address of the process heap */
20286  size_t pr_brksize; /* size of the process heap, in bytes */
20287  uintptr_t pr_stkbase; /* address of the process stack */
20288  size_t pr_stksize; /* size of the process stack, in bytes */
20289  timestruc_t pr_utime; /* process user cpu time */
20290  timestruc_t pr_stime; /* process system cpu time */
20291  timestruc_t pr_cutime; /* sum of children's user times */
20292  timestruc_t pr_cstime; /* sum of children's system times */
20293  sigset_t pr_sigtrace; /* set of traced signals */
20294  fltset_t pr_flttrace; /* set of traced faults */
20295  sysset_t pr_sysentry; /* set of system calls traced on entry */
20296  sysset_t pr_sysexit; /* set of system calls traced on exit */
20297  char pr_dmodel; /* data model of the process (see below) */
20298  char pr_pad[3];
20299  taskid_t pr_taskid; /* task id */
20300  projid_t pr_projid; /* project id */
20301  int pr_nzomb; /* number of zombie lwps in the process */
20302  zoneid_t pr_zoneid; /* zone id */
20303  int pr_filler[15]; /* reserved for future use */
20304  lwpstatus_t pr_lwp; /* status of the representative lwp */
20305 } pstatus_t;
20306 
20307 /*
20308  * pr_flags (same values appear in both pstatus_t and lwpstatus_t pr_flags).
20309  *
20310  * These flags do *not* apply to psinfo_t.pr_flag or lwpsinfo_t.pr_flag
20311  * (which are both deprecated).
20312  */
20313 /* The following flags apply to the specific or representative lwp */
20314 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
20315 /* The following flags apply to the process, not to an individual lwp */
20316 
20317 
20318 
20319 
20320 
20321 /* The following process flags are modes settable by PCSET/PCUNSET */
20322 # 221 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
20323 /*
20324  * See <sys/procfs_isa.h> for possible values of pr_dmodel.
20325  */
20326 
20327 /*
20328  * Reasons for stopping (pr_why).
20329  */
20330 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
20331 /*
20332  * lwp ps(1) information file.  /proc/<pid>/lwp/<lwpid>/lwpsinfo
20333  */
20334 
20335 typedef struct lwpsinfo {
20336  int pr_flag; /* lwp flags (DEPRECATED; do not use) */
20337  id_t pr_lwpid; /* lwp id */
20338  uintptr_t pr_addr; /* internal address of lwp */
20339  uintptr_t pr_wchan; /* wait addr for sleeping lwp */
20340  char pr_stype; /* synchronization event type */
20341  char pr_state; /* numeric lwp state */
20342  char pr_sname; /* printable character for pr_state */
20343  char pr_nice; /* nice for cpu usage */
20344  short pr_syscall; /* system call number (if in syscall) */
20345  char pr_oldpri; /* pre-SVR4, low value is high priority */
20346  char pr_cpu; /* pre-SVR4, cpu usage for scheduling */
20347  int pr_pri; /* priority, high value is high priority */
20348    /* The following percent number is a 16-bit binary */
20349    /* fraction [0 .. 1] with the binary point to the */
20350    /* right of the high-order bit (1.0 == 0x8000) */
20351  ushort_t pr_pctcpu; /* % of recent cpu time used by this lwp */
20352  ushort_t pr_pad;
20353  timestruc_t pr_start; /* lwp start time, from the epoch */
20354  timestruc_t pr_time; /* usr+sys cpu time for this lwp */
20355  char pr_clname[8]; /* scheduling class name */
20356  char pr_name[16]; /* name of system lwp */
20357  processorid_t pr_onpro; /* processor which last ran this lwp */
20358  processorid_t pr_bindpro; /* processor to which lwp is bound */
20359  psetid_t pr_bindpset; /* processor set to which lwp is bound */
20360  int pr_lgrp; /* lwp home lgroup */
20361  int pr_filler[4]; /* reserved for future use */
20362 } lwpsinfo_t;
20363 
20364 /*
20365  * process ps(1) information file.  /proc/<pid>/psinfo
20366  */
20367 
20368 typedef struct psinfo {
20369  int pr_flag; /* process flags (DEPRECATED; do not use) */
20370  int pr_nlwp; /* number of active lwps in the process */
20371  pid_t pr_pid; /* unique process id */
20372  pid_t pr_ppid; /* process id of parent */
20373  pid_t pr_pgid; /* pid of process group leader */
20374  pid_t pr_sid; /* session id */
20375  uid_t pr_uid; /* real user id */
20376  uid_t pr_euid; /* effective user id */
20377  gid_t pr_gid; /* real group id */
20378  gid_t pr_egid; /* effective group id */
20379  uintptr_t pr_addr; /* address of process */
20380  size_t pr_size; /* size of process image in Kbytes */
20381  size_t pr_rssize; /* resident set size in Kbytes */
20382  size_t pr_pad1;
20383  dev_t pr_ttydev; /* controlling tty device (or PRNODEV) */
20384    /* The following percent numbers are 16-bit binary */
20385    /* fractions [0 .. 1] with the binary point to the */
20386    /* right of the high-order bit (1.0 == 0x8000) */
20387  ushort_t pr_pctcpu; /* % of recent cpu time used by all lwps */
20388  ushort_t pr_pctmem; /* % of system memory used by process */
20389  timestruc_t pr_start; /* process start time, from the epoch */
20390  timestruc_t pr_time; /* usr+sys cpu time for this process */
20391  timestruc_t pr_ctime; /* usr+sys cpu time for reaped children */
20392  char pr_fname[16]; /* name of execed file */
20393  char pr_psargs[80]; /* initial characters of arg list */
20394  int pr_wstat; /* if zombie, the wait() status */
20395  int pr_argc; /* initial argument count */
20396  uintptr_t pr_argv; /* address of initial argument vector */
20397  uintptr_t pr_envp; /* address of initial environment vector */
20398  char pr_dmodel; /* data model of the process */
20399  char pr_pad2[3];
20400  taskid_t pr_taskid; /* task id */
20401  projid_t pr_projid; /* project id */
20402  int pr_nzomb; /* number of zombie lwps in the process */
20403  poolid_t pr_poolid; /* pool id */
20404  zoneid_t pr_zoneid; /* zone id */
20405  id_t pr_contract; /* process contract */
20406  int pr_filler[1]; /* reserved for future use */
20407  lwpsinfo_t pr_lwp; /* information for representative lwp */
20408 } psinfo_t;
20409 
20410 
20411 
20412 /*
20413  * Memory-map interface.  /proc/<pid>/map /proc/<pid>/rmap
20414  */
20415 
20416 typedef struct prmap {
20417  uintptr_t pr_vaddr; /* virtual address of mapping */
20418  size_t pr_size; /* size of mapping in bytes */
20419  char pr_mapname[64]; /* name in /proc/<pid>/object */
20420  offset_t pr_offset; /* offset into mapped object, if any */
20421  int pr_mflags; /* protection and attribute flags (see below) */
20422  int pr_pagesize; /* pagesize (bytes) for this mapping */
20423  int pr_shmid; /* SysV shmid, -1 if not SysV shared memory */
20424  int pr_filler[1]; /* filler for future expansion */
20425 } prmap_t;
20426 
20427 /*
20428  * HAT memory-map interface.  /proc/<pid>/xmap
20429  */
20430 typedef struct prxmap {
20431  uintptr_t pr_vaddr; /* virtual address of mapping */
20432  size_t pr_size; /* size of mapping in bytes */
20433  char pr_mapname[64]; /* name in /proc/<pid>/object */
20434  offset_t pr_offset; /* offset into mapped object, if any */
20435  int pr_mflags; /* protection and attribute flags (see below) */
20436  int pr_pagesize; /* pagesize (bytes) for this mapping */
20437  int pr_shmid; /* SysV shmid, -1 if not SysV shared memory */
20438  dev_t pr_dev; /* st_dev from stat64() of mapped object, or PRNODEV */
20439  uint64_t pr_ino; /* st_ino from stat64() of mapped object, if any */
20440  size_t pr_rss; /* pages of resident memory */
20441  size_t pr_anon; /* pages of resident anonymous memory */
20442  size_t pr_locked; /* pages of locked memory */
20443  size_t pr_pad; /* currently unused */
20444  uint64_t pr_hatpagesize; /* pagesize of the hat mapping */
20445 
20446  ulong_t pr_filler[6]; /* filler for future expansion */
20447 
20448 
20449 
20450 } prxmap_t;
20451 
20452 
20453 /* Protection and attribute flags */
20454 # 370 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procfs.h"
20455 /*
20456  * These are obsolete and unreliable.
20457  * They are included here only for historical compatibility.
20458  */
20459 
20460 
20461 
20462 /*
20463  * Process credentials.  PCSCRED and /proc/<pid>/cred
20464  */
20465 typedef struct prcred {
20466  uid_t pr_euid; /* effective user id */
20467  uid_t pr_ruid; /* real user id */
20468  uid_t pr_suid; /* saved user id (from exec) */
20469  gid_t pr_egid; /* effective group id */
20470  gid_t pr_rgid; /* real group id */
20471  gid_t pr_sgid; /* saved group id (from exec) */
20472  int pr_ngroups; /* number of supplementary groups */
20473  gid_t pr_groups[1]; /* array of supplementary groups */
20474 } prcred_t;
20475 
20476 /*
20477  * Process privileges.  PCSPRIV and /proc/<pid>/priv
20478  */
20479 typedef struct prpriv {
20480  uint32_t pr_nsets; /* number of privilege set */
20481  uint32_t pr_setsize; /* size of privilege set */
20482  uint32_t pr_infosize; /* size of supplementary data */
20483  priv_chunk_t pr_sets[1]; /* array of sets */
20484 } prpriv_t;
20485 
20486 /*
20487  * Watchpoint interface.  PCWATCH and /proc/<pid>/watch
20488  */
20489 typedef struct prwatch {
20490  uintptr_t pr_vaddr; /* virtual address of watched area */
20491  size_t pr_size; /* size of watched area in bytes */
20492  int pr_wflags; /* watch type flags */
20493  int pr_pad;
20494 } prwatch_t;
20495 
20496 /* pr_wflags */
20497 
20498 
20499 
20500 
20501 
20502 /*
20503  * PCREAD/PCWRITE I/O interface.
20504  */
20505 typedef struct priovec {
20506  void *pio_base; /* buffer in controlling process */
20507  size_t pio_len; /* size of read/write request */
20508  off_t pio_offset; /* virtual address in target process */
20509 } priovec_t;
20510 
20511 /*
20512  * Resource usage.  /proc/<pid>/usage /proc/<pid>/lwp/<lwpid>/lwpusage
20513  */
20514 typedef struct prusage {
20515  id_t pr_lwpid; /* lwp id.  0: process or defunct */
20516  int pr_count; /* number of contributing lwps */
20517  timestruc_t pr_tstamp; /* current time stamp */
20518  timestruc_t pr_create; /* process/lwp creation time stamp */
20519  timestruc_t pr_term; /* process/lwp termination time stamp */
20520  timestruc_t pr_rtime; /* total lwp real (elapsed) time */
20521  timestruc_t pr_utime; /* user level cpu time */
20522  timestruc_t pr_stime; /* system call cpu time */
20523  timestruc_t pr_ttime; /* other system trap cpu time */
20524  timestruc_t pr_tftime; /* text page fault sleep time */
20525  timestruc_t pr_dftime; /* data page fault sleep time */
20526  timestruc_t pr_kftime; /* kernel page fault sleep time */
20527  timestruc_t pr_ltime; /* user lock wait sleep time */
20528  timestruc_t pr_slptime; /* all other sleep time */
20529  timestruc_t pr_wtime; /* wait-cpu (latency) time */
20530  timestruc_t pr_stoptime; /* stopped time */
20531  timestruc_t filltime[6]; /* filler for future expansion */
20532  ulong_t pr_minf; /* minor page faults */
20533  ulong_t pr_majf; /* major page faults */
20534  ulong_t pr_nswap; /* swaps */
20535  ulong_t pr_inblk; /* input blocks */
20536  ulong_t pr_oublk; /* output blocks */
20537  ulong_t pr_msnd; /* messages sent */
20538  ulong_t pr_mrcv; /* messages received */
20539  ulong_t pr_sigs; /* signals received */
20540  ulong_t pr_vctx; /* voluntary context switches */
20541  ulong_t pr_ictx; /* involuntary context switches */
20542  ulong_t pr_sysc; /* system calls */
20543  ulong_t pr_ioch; /* chars read and written */
20544  ulong_t filler[10]; /* filler for future expansion */
20545 } prusage_t;
20546 
20547 /*
20548  * Page data file.  /proc/<pid>/pagedata
20549  */
20550 
20551 /* page data file header */
20552 typedef struct prpageheader {
20553  timestruc_t pr_tstamp; /* real time stamp */
20554  long pr_nmap; /* number of address space mappings */
20555  long pr_npage; /* total number of pages */
20556 } prpageheader_t;
20557 
20558 /* page data mapping header */
20559 typedef struct prasmap {
20560  uintptr_t pr_vaddr; /* virtual address of mapping */
20561  size_t pr_npage; /* number of pages in mapping */
20562  char pr_mapname[64]; /* name in /proc/<pid>/object */
20563  offset_t pr_offset; /* offset into mapped object, if any */
20564  int pr_mflags; /* protection and attribute flags */
20565  int pr_pagesize; /* pagesize (bytes) for this mapping */
20566  int pr_shmid; /* SysV shmid, -1 if not SysV shared memory */
20567  int pr_filler[1]; /* filler for future expansion */
20568 } prasmap_t;
20569 
20570 /*
20571  * pr_npage bytes (plus 0-7 null bytes to round up to an 8-byte boundary)
20572  * follow each mapping header, each containing zero or more of these flags.
20573  */
20574 
20575 
20576 
20577 
20578 /*
20579  * Open files.  Only in core files (for now).  Note that we'd like to use
20580  * the stat or stat64 structure, but both of these structures are unfortunately
20581  * not consistent between 32 and 64 bit modes.  To keep our lives simpler, we
20582  * just define our own structure with types that are not sensitive to this
20583  * difference.  Also, it turns out that pfiles omits a lot of info from the
20584  * struct stat (e.g. times, device sizes, etc.) so we don't bother adding those
20585  * here.
20586  */
20587 typedef struct prfdinfo {
20588  int pr_fd;
20589  mode_t pr_mode;
20590 
20591  uid_t pr_uid;
20592  gid_t pr_gid;
20593 
20594  major_t pr_major; /* think stat.st_dev */
20595  minor_t pr_minor;
20596 
20597  major_t pr_rmajor; /* think stat.st_rdev */
20598  minor_t pr_rminor;
20599 
20600  ino64_t pr_ino;
20601  off64_t pr_offset;
20602  off64_t pr_size;
20603 
20604  int pr_fileflags; /* fcntl(F_GETXFL), etc */
20605  int pr_fdflags; /* fcntl(F_GETFD), etc. */
20606 
20607  char pr_path[1024];
20608 } prfdinfo_t;
20609 
20610 /*
20611  * Header for /proc/<pid>/lstatus /proc/<pid>/lpsinfo /proc/<pid>/lusage
20612  */
20613 typedef struct prheader {
20614  long pr_nent; /* number of entries */
20615  long pr_entsize; /* size of each entry, in bytes */
20616 } prheader_t;
20617 
20618 /*
20619  * Macros for manipulating sets of flags.
20620  * sp must be a pointer to one of sigset_t, fltset_t, or sysset_t.
20621  * flag must be a member of the enumeration corresponding to *sp.
20622  */
20623 
20624 /* turn on all flags in set */
20625 
20626 
20627 
20628 
20629 /* turn off all flags in set */
20630 
20631 
20632 
20633 
20634 /* turn on specified flag in set */
20635 
20636 
20637 
20638 
20639 /* turn off specified flag in set */
20640 
20641 
20642 
20643 
20644 /* query: != 0 iff flag is turned on in set */
20645 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/procfs.h" 2
20646 
20647 /*
20648  * libproc API
20649  */
20650 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
20651 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ucred.h" 1
20652 /*
20653  * CDDL HEADER START
20654  *
20655  * The contents of this file are subject to the terms of the
20656  * Common Development and Distribution License (the "License").
20657  * You may not use this file except in compliance with the License.
20658  *
20659  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20660  * or http://www.opensolaris.org/os/licensing.
20661  * See the License for the specific language governing permissions
20662  * and limitations under the License.
20663  *
20664  * When distributing Covered Code, include this CDDL HEADER in each
20665  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20666  * If applicable, add the following below this CDDL HEADER, with the
20667  * fields enclosed by brackets "[]" replaced with your own identifying
20668  * information: Portions Copyright [yyyy] [name of copyright owner]
20669  *
20670  * CDDL HEADER END
20671  */
20672 /*
20673  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20674  *
20675  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
20676  * Use is subject to license terms.
20677  */
20678 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
20679 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 1
20680 /*
20681  * CDDL HEADER START
20682  *
20683  * The contents of this file are subject to the terms of the
20684  * Common Development and Distribution License, Version 1.0 only
20685  * (the "License").  You may not use this file except in compliance
20686  * with the License.
20687  *
20688  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20689  * or http://www.opensolaris.org/os/licensing.
20690  * See the License for the specific language governing permissions
20691  * and limitations under the License.
20692  *
20693  * When distributing Covered Code, include this CDDL HEADER in each
20694  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20695  * If applicable, add the following below this CDDL HEADER, with the
20696  * fields enclosed by brackets "[]" replaced with your own identifying
20697  * information: Portions Copyright [yyyy] [name of copyright owner]
20698  *
20699  * CDDL HEADER END
20700  */
20701 /*
20702  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
20703  * Use is subject to license terms.
20704  */
20705 
20706 
20707 
20708 
20709 #pragma ident "%Z%%M%	%I%	%E% SMI"
20710 
20711 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
20712 /*
20713  * CDDL HEADER START
20714  *
20715  * The contents of this file are subject to the terms of the
20716  * Common Development and Distribution License (the "License").
20717  * You may not use this file except in compliance with the License.
20718  *
20719  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20720  * or http://www.opensolaris.org/os/licensing.
20721  * See the License for the specific language governing permissions
20722  * and limitations under the License.
20723  *
20724  * When distributing Covered Code, include this CDDL HEADER in each
20725  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20726  * If applicable, add the following below this CDDL HEADER, with the
20727  * fields enclosed by brackets "[]" replaced with your own identifying
20728  * information: Portions Copyright [yyyy] [name of copyright owner]
20729  *
20730  * CDDL HEADER END
20731  */
20732 /*
20733  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
20734  */
20735 
20736 
20737 
20738 
20739 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 1
20740 /*
20741  * CDDL HEADER START
20742  *
20743  * The contents of this file are subject to the terms of the
20744  * Common Development and Distribution License (the "License").
20745  * You may not use this file except in compliance with the License.
20746  *
20747  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20748  * or http://www.opensolaris.org/os/licensing.
20749  * See the License for the specific language governing permissions
20750  * and limitations under the License.
20751  *
20752  * When distributing Covered Code, include this CDDL HEADER in each
20753  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20754  * If applicable, add the following below this CDDL HEADER, with the
20755  * fields enclosed by brackets "[]" replaced with your own identifying
20756  * information: Portions Copyright [yyyy] [name of copyright owner]
20757  *
20758  * CDDL HEADER END
20759  */
20760 
20761 /*
20762  * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
20763  * Copyright (c) 2012 by Delphix. All rights reserved.
20764  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20765  */
20766 
20767 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
20768 /*	  All Rights Reserved	*/
20769 
20770 
20771 
20772 
20773 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
20774 /*
20775  * CDDL HEADER START
20776  *
20777  * The contents of this file are subject to the terms of the
20778  * Common Development and Distribution License (the "License").
20779  * You may not use this file except in compliance with the License.
20780  *
20781  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20782  * or http://www.opensolaris.org/os/licensing.
20783  * See the License for the specific language governing permissions
20784  * and limitations under the License.
20785  *
20786  * When distributing Covered Code, include this CDDL HEADER in each
20787  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20788  * If applicable, add the following below this CDDL HEADER, with the
20789  * fields enclosed by brackets "[]" replaced with your own identifying
20790  * information: Portions Copyright [yyyy] [name of copyright owner]
20791  *
20792  * CDDL HEADER END
20793  */
20794 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20795 /*	  All Rights Reserved  	*/
20796 
20797 
20798 /*
20799  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
20800  * Use is subject to license terms.
20801  *
20802  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20803  * Copyright 2016 Joyent, Inc.
20804  */
20805 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 2
20806 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h" 1
20807 /*
20808  * CDDL HEADER START
20809  *
20810  * The contents of this file are subject to the terms of the
20811  * Common Development and Distribution License (the "License").
20812  * You may not use this file except in compliance with the License.
20813  *
20814  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20815  * or http://www.opensolaris.org/os/licensing.
20816  * See the License for the specific language governing permissions
20817  * and limitations under the License.
20818  *
20819  * When distributing Covered Code, include this CDDL HEADER in each
20820  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20821  * If applicable, add the following below this CDDL HEADER, with the
20822  * fields enclosed by brackets "[]" replaced with your own identifying
20823  * information: Portions Copyright [yyyy] [name of copyright owner]
20824  *
20825  * CDDL HEADER END
20826  */
20827 /*
20828  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
20829  * Copyright (c) 2012 by Delphix. All rights reserved.
20830  */
20831 
20832 
20833 
20834 
20835 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
20836 /*
20837  * CDDL HEADER START
20838  *
20839  * The contents of this file are subject to the terms of the
20840  * Common Development and Distribution License (the "License").
20841  * You may not use this file except in compliance with the License.
20842  *
20843  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20844  * or http://www.opensolaris.org/os/licensing.
20845  * See the License for the specific language governing permissions
20846  * and limitations under the License.
20847  *
20848  * When distributing Covered Code, include this CDDL HEADER in each
20849  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20850  * If applicable, add the following below this CDDL HEADER, with the
20851  * fields enclosed by brackets "[]" replaced with your own identifying
20852  * information: Portions Copyright [yyyy] [name of copyright owner]
20853  *
20854  * CDDL HEADER END
20855  */
20856 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20857 /*	  All Rights Reserved  	*/
20858 
20859 
20860 /*
20861  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
20862  * Use is subject to license terms.
20863  *
20864  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20865  * Copyright 2016 Joyent, Inc.
20866  */
20867 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h" 2
20868 
20869 
20870 
20871 
20872 
20873 
20874 /*
20875  * Per-allocation flags
20876  */
20877 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h"
20878 /*
20879  * The following flags are restricted for use only within the kernel.
20880  * VM_MEMLOAD is for use by the HAT to avoid infinite recursion.
20881  * VM_NORELOC is used by the kernel when static VA->PA mappings are required.
20882  */
20883 
20884 
20885 /*
20886  * VM_ABORT requests that vmem_alloc() *ignore* the VM_SLEEP/VM_NOSLEEP flags
20887  * and forgo reaping if the allocation or attempted import, fails.  This
20888  * flag is a segkmem-specific flag, and should not be used by anyone else.
20889  */
20890 
20891 
20892 /*
20893  * VM_ENDALLOC requests that large addresses be preferred in allocations.
20894  * Has no effect if VM_NEXTFIT is active.
20895  */
20896 
20897 
20898 
20899 
20900 /*
20901  * Arena creation flags
20902  */
20903 
20904 
20905 
20906 
20907 /*
20908  * internal use only;	the import function uses the vmem_ximport_t interface
20909  *			and may increase the request size if it so desires.
20910  *			VMC_XALIGN, for use with vmem_xcreate, specifies that
20911  *			the address returned by the import function will be
20912  *			aligned according to the alignment argument.
20913  */
20914 
20915 
20916 
20917 
20918 /*
20919  * Public segment types
20920  */
20921 
20922 
20923 
20924 /*
20925  * Implementation-private segment types
20926  */
20927 
20928 
20929 
20930 
20931 /*
20932  * VMEM_REENTRANT indicates to vmem_walk() that the callback routine may
20933  * call back into the arena being walked, so vmem_walk() must drop the
20934  * arena lock before each callback.  The caveat is that since the arena
20935  * isn't locked, its state can change.  Therefore it is up to the callback
20936  * routine to handle cases where the segment isn't of the expected type.
20937  * For example, we use this to walk heap_arena when generating a crash dump;
20938  * see segkmem_dump() for sample usage.
20939  */
20940 
20941 
20942 typedef struct vmem vmem_t;
20943 typedef void *(vmem_alloc_t)(vmem_t *, size_t, int);
20944 typedef void (vmem_free_t)(vmem_t *, void *, size_t);
20945 
20946 /*
20947  * Alternate import style; the requested size is passed in a pointer,
20948  * which can be increased by the import function if desired.
20949  */
20950 typedef void *(vmem_ximport_t)(vmem_t *, size_t *, size_t, int);
20951 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h"
20952 extern vmem_t *vmem_create(const char *, void *, size_t, size_t,
20953     vmem_alloc_t *, vmem_free_t *, vmem_t *, size_t, int);
20954 extern vmem_t *vmem_xcreate(const char *, void *, size_t, size_t,
20955     vmem_ximport_t *, vmem_free_t *, vmem_t *, size_t, int);
20956 extern void vmem_destroy(vmem_t *);
20957 extern void *vmem_alloc(vmem_t *, size_t, int);
20958 extern void *vmem_xalloc(vmem_t *, size_t, size_t, size_t, size_t,
20959     void *, void *, int);
20960 extern void vmem_free(vmem_t *, void *, size_t);
20961 extern void vmem_xfree(vmem_t *, void *, size_t);
20962 extern void *vmem_add(vmem_t *, void *, size_t, int);
20963 extern int vmem_contains(vmem_t *, void *, size_t);
20964 extern void vmem_walk(vmem_t *, int, void (*)(void *, void *, size_t), void *);
20965 extern size_t vmem_size(vmem_t *, int);
20966 extern void vmem_qcache_reap(vmem_t *vmp);
20967 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 2
20968 
20969 
20970 
20971 
20972 
20973 /*
20974  * Kernel memory allocator: DDI interfaces.
20975  * See kmem_alloc(9F) for details.
20976  */
20977 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h"
20978 /*
20979  * Kernel memory allocator: private interfaces.
20980  * These interfaces are still evolving.
20981  * Do not use them in unbundled drivers.
20982  */
20983 
20984 /*
20985  * Flags for kmem_cache_create()
20986  */
20987 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h"
20988 struct kmem_cache; /* cache structure is opaque to kmem clients */
20989 
20990 typedef struct kmem_cache kmem_cache_t;
20991 
20992 /* Client response to kmem move callback */
20993 typedef enum kmem_cbrc {
20994  KMEM_CBRC_YES,
20995  KMEM_CBRC_NO,
20996  KMEM_CBRC_LATER,
20997  KMEM_CBRC_DONT_NEED,
20998  KMEM_CBRC_DONT_KNOW
20999 } kmem_cbrc_t;
21000 # 29 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
21001 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 1
21002 /*
21003  * CDDL HEADER START
21004  *
21005  * The contents of this file are subject to the terms of the
21006  * Common Development and Distribution License (the "License").
21007  * You may not use this file except in compliance with the License.
21008  *
21009  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21010  * or http://www.opensolaris.org/os/licensing.
21011  * See the License for the specific language governing permissions
21012  * and limitations under the License.
21013  *
21014  * When distributing Covered Code, include this CDDL HEADER in each
21015  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21016  * If applicable, add the following below this CDDL HEADER, with the
21017  * fields enclosed by brackets "[]" replaced with your own identifying
21018  * information: Portions Copyright [yyyy] [name of copyright owner]
21019  *
21020  * CDDL HEADER END
21021  */
21022 /*
21023  * Copyright 2014 Garrrett D'Amore <garrett@damore.org>
21024  *
21025  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
21026  * Use is subject to license terms.
21027  */
21028 
21029 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
21030 /*	  All Rights Reserved  	*/
21031 
21032 /*
21033  * University Copyright- Copyright (c) 1982, 1986, 1988
21034  * The Regents of the University of California
21035  * All Rights Reserved
21036  *
21037  * University Acknowledgment- Portions of this document are derived from
21038  * software developed by the University of California, Berkeley, and its
21039  * contributors.
21040  */
21041 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
21042 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
21043 /*
21044  * CDDL HEADER START
21045  *
21046  * The contents of this file are subject to the terms of the
21047  * Common Development and Distribution License (the "License").
21048  * You may not use this file except in compliance with the License.
21049  *
21050  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21051  * or http://www.opensolaris.org/os/licensing.
21052  * See the License for the specific language governing permissions
21053  * and limitations under the License.
21054  *
21055  * When distributing Covered Code, include this CDDL HEADER in each
21056  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21057  * If applicable, add the following below this CDDL HEADER, with the
21058  * fields enclosed by brackets "[]" replaced with your own identifying
21059  * information: Portions Copyright [yyyy] [name of copyright owner]
21060  *
21061  * CDDL HEADER END
21062  */
21063 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
21064 /*	  All Rights Reserved  	*/
21065 
21066 
21067 /*
21068  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
21069  * Use is subject to license terms.
21070  *
21071  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
21072  * Copyright 2016 Joyent, Inc.
21073  */
21074 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
21075 
21076 
21077 
21078 
21079 
21080 /*
21081  * Available local actions and flags.
21082  */
21083 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
21084 /*
21085  * Available global actions and flags.
21086  */
21087 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
21088 /*
21089  * getrctl(2) flag values
21090  */
21091 
21092 
21093 
21094 
21095 /*
21096  * setrctl(2) flag values
21097  */
21098 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
21099 /*
21100  * rctl_priv_t: rctl privilege defined values
21101  *   A large amount of space has been deliberately left between these privileges
21102  *   to permit future enrichment of the control privilege value.
21103  */
21104 
21105 
21106 
21107 
21108 typedef u_longlong_t rctl_qty_t; /* resource control numerical values   */
21109 typedef int rctl_priv_t;
21110 
21111 typedef struct rctlblk rctlblk_t;
21112 
21113 extern int setrctl(const char *, rctlblk_t *, rctlblk_t *, int);
21114 extern int getrctl(const char *, rctlblk_t *, rctlblk_t *, int);
21115 
21116 typedef enum {
21117  RCENTITY_PROCESS,
21118  RCENTITY_TASK,
21119  RCENTITY_PROJECT,
21120  RCENTITY_ZONE
21121 } rctl_entity_t;
21122 
21123 
21124 
21125 
21126 typedef struct rctl_set rctl_set_t;
21127 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 2
21128 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
21129 /*
21130  * CDDL HEADER START
21131  *
21132  * The contents of this file are subject to the terms of the
21133  * Common Development and Distribution License (the "License").
21134  * You may not use this file except in compliance with the License.
21135  *
21136  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21137  * or http://www.opensolaris.org/os/licensing.
21138  * See the License for the specific language governing permissions
21139  * and limitations under the License.
21140  *
21141  * When distributing Covered Code, include this CDDL HEADER in each
21142  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21143  * If applicable, add the following below this CDDL HEADER, with the
21144  * fields enclosed by brackets "[]" replaced with your own identifying
21145  * information: Portions Copyright [yyyy] [name of copyright owner]
21146  *
21147  * CDDL HEADER END
21148  */
21149 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
21150 /*	  All Rights Reserved  	*/
21151 
21152 
21153 /*
21154  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
21155  * Use is subject to license terms.
21156  *
21157  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
21158  * Copyright 2016 Joyent, Inc.
21159  */
21160 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 2
21161 
21162 
21163 
21164 
21165 
21166 int rctl_walk(int (*)(const char *, void *), void *);
21167 
21168 hrtime_t rctlblk_get_firing_time(rctlblk_t *);
21169 uint_t rctlblk_get_global_action(rctlblk_t *);
21170 uint_t rctlblk_get_global_flags(rctlblk_t *);
21171 uint_t rctlblk_get_local_action(rctlblk_t *, int *);
21172 uint_t rctlblk_get_local_flags(rctlblk_t *);
21173 id_t rctlblk_get_recipient_pid(rctlblk_t *);
21174 rctl_priv_t rctlblk_get_privilege(rctlblk_t *);
21175 rctl_qty_t rctlblk_get_value(rctlblk_t *);
21176 rctl_qty_t rctlblk_get_enforced_value(rctlblk_t *);
21177 
21178 void rctlblk_set_local_action(rctlblk_t *, uint_t, int);
21179 void rctlblk_set_local_flags(rctlblk_t *, uint_t);
21180 void rctlblk_set_recipient_pid(rctlblk_t *, id_t);
21181 void rctlblk_set_privilege(rctlblk_t *, rctl_priv_t);
21182 void rctlblk_set_value(rctlblk_t *, rctl_qty_t);
21183 
21184 size_t rctlblk_size(void);
21185 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
21186 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libctf.h" 1
21187 /*
21188  * CDDL HEADER START
21189  *
21190  * The contents of this file are subject to the terms of the
21191  * Common Development and Distribution License, Version 1.0 only
21192  * (the "License").  You may not use this file except in compliance
21193  * with the License.
21194  *
21195  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21196  * or http://www.opensolaris.org/os/licensing.
21197  * See the License for the specific language governing permissions
21198  * and limitations under the License.
21199  *
21200  * When distributing Covered Code, include this CDDL HEADER in each
21201  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21202  * If applicable, add the following below this CDDL HEADER, with the
21203  * fields enclosed by brackets "[]" replaced with your own identifying
21204  * information: Portions Copyright [yyyy] [name of copyright owner]
21205  *
21206  * CDDL HEADER END
21207  */
21208 /*
21209  * Copyright 2001-2003 Sun Microsystems, Inc.  All rights reserved.
21210  * Use is subject to license terms.
21211  */
21212 /*
21213  * Copyright (c) 2015, Joyent, Inc.
21214  */
21215 
21216 /*
21217  * This header file defines the interfaces available from the CTF debugger
21218  * library, libctf.  This library provides functions that a debugger can
21219  * use to operate on data in the Compact ANSI-C Type Format (CTF).  This
21220  * is NOT a public interface, although it may eventually become one in
21221  * the fullness of time after we gain more experience with the interfaces.
21222  *
21223  * In the meantime, be aware that any program linked with libctf in this
21224  * release of illumos is almost guaranteed to break in the next release.
21225  *
21226  * In short, do not user this header file or libctf for any purpose.
21227  */
21228 
21229 
21230 
21231 
21232 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf_api.h" 1
21233 /*
21234  * CDDL HEADER START
21235  *
21236  * The contents of this file are subject to the terms of the
21237  * Common Development and Distribution License, Version 1.0 only
21238  * (the "License").  You may not use this file except in compliance
21239  * with the License.
21240  *
21241  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21242  * or http://www.opensolaris.org/os/licensing.
21243  * See the License for the specific language governing permissions
21244  * and limitations under the License.
21245  *
21246  * When distributing Covered Code, include this CDDL HEADER in each
21247  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21248  * If applicable, add the following below this CDDL HEADER, with the
21249  * fields enclosed by brackets "[]" replaced with your own identifying
21250  * information: Portions Copyright [yyyy] [name of copyright owner]
21251  *
21252  * CDDL HEADER END
21253  */
21254 /*
21255  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
21256  * Use is subject to license terms.
21257  */
21258 /*
21259  * Copyright 2018 Joyent, Inc.
21260  */
21261 
21262 /*
21263  * This header file defines the interfaces available from the CTF debugger
21264  * library, libctf, and an equivalent kernel module.  This API can be used by
21265  * a debugger to operate on data in the Compact ANSI-C Type Format (CTF).
21266  * This is NOT a public interface, although it may eventually become one in
21267  * the fullness of time after we gain more experience with the interfaces.
21268  *
21269  * In the meantime, be aware that any program linked with this API in this
21270  * release of Solaris is almost guaranteed to break in the next release.
21271  *
21272  * In short, do not user this header file or the CTF routines for any purpose.
21273  */
21274 
21275 
21276 
21277 
21278 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
21279 /*
21280  * CDDL HEADER START
21281  *
21282  * The contents of this file are subject to the terms of the
21283  * Common Development and Distribution License (the "License").
21284  * You may not use this file except in compliance with the License.
21285  *
21286  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21287  * or http://www.opensolaris.org/os/licensing.
21288  * See the License for the specific language governing permissions
21289  * and limitations under the License.
21290  *
21291  * When distributing Covered Code, include this CDDL HEADER in each
21292  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21293  * If applicable, add the following below this CDDL HEADER, with the
21294  * fields enclosed by brackets "[]" replaced with your own identifying
21295  * information: Portions Copyright [yyyy] [name of copyright owner]
21296  *
21297  * CDDL HEADER END
21298  */
21299 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
21300 /*	  All Rights Reserved  	*/
21301 
21302 
21303 /*
21304  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
21305  * Use is subject to license terms.
21306  *
21307  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
21308  * Copyright 2016 Joyent, Inc.
21309  */
21310 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf_api.h" 2
21311 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
21312 /*
21313  * CDDL HEADER START
21314  *
21315  * The contents of this file are subject to the terms of the
21316  * Common Development and Distribution License (the "License").
21317  * You may not use this file except in compliance with the License.
21318  *
21319  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21320  * or http://www.opensolaris.org/os/licensing.
21321  * See the License for the specific language governing permissions
21322  * and limitations under the License.
21323  *
21324  * When distributing Covered Code, include this CDDL HEADER in each
21325  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21326  * If applicable, add the following below this CDDL HEADER, with the
21327  * fields enclosed by brackets "[]" replaced with your own identifying
21328  * information: Portions Copyright [yyyy] [name of copyright owner]
21329  *
21330  * CDDL HEADER END
21331  */
21332 
21333 /*
21334  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
21335  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
21336  */
21337 
21338 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
21339 /*	  All Rights Reserved  	*/
21340 
21341 /*
21342  * University Copyright- Copyright (c) 1982, 1986, 1988
21343  * The Regents of the University of California
21344  * All Rights Reserved
21345  *
21346  * University Acknowledgment- Portions of this document are derived from
21347  * software developed by the University of California, Berkeley, and its
21348  * contributors.
21349  */
21350 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf_api.h" 2
21351 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/elf.h" 1
21352 /*
21353  * CDDL HEADER START
21354  *
21355  * The contents of this file are subject to the terms of the
21356  * Common Development and Distribution License (the "License").
21357  * You may not use this file except in compliance with the License.
21358  *
21359  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21360  * or http://www.opensolaris.org/os/licensing.
21361  * See the License for the specific language governing permissions
21362  * and limitations under the License.
21363  *
21364  * When distributing Covered Code, include this CDDL HEADER in each
21365  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21366  * If applicable, add the following below this CDDL HEADER, with the
21367  * fields enclosed by brackets "[]" replaced with your own identifying
21368  * information: Portions Copyright [yyyy] [name of copyright owner]
21369  *
21370  * CDDL HEADER END
21371  */
21372 /*
21373  * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
21374  * Copyright (c) 2018, Joyent, Inc.
21375  */
21376 /*
21377  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
21378  * Use is subject to license terms.
21379  */
21380 
21381 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
21382 /*	  All Rights Reserved  	*/
21383 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf_api.h" 2
21384 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h" 1
21385 /*
21386  * CDDL HEADER START
21387  *
21388  * The contents of this file are subject to the terms of the
21389  * Common Development and Distribution License, Version 1.0 only
21390  * (the "License").  You may not use this file except in compliance
21391  * with the License.
21392  *
21393  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21394  * or http://www.opensolaris.org/os/licensing.
21395  * See the License for the specific language governing permissions
21396  * and limitations under the License.
21397  *
21398  * When distributing Covered Code, include this CDDL HEADER in each
21399  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21400  * If applicable, add the following below this CDDL HEADER, with the
21401  * fields enclosed by brackets "[]" replaced with your own identifying
21402  * information: Portions Copyright [yyyy] [name of copyright owner]
21403  *
21404  * CDDL HEADER END
21405  */
21406 /*
21407  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
21408  * Use is subject to license terms.
21409  *
21410  * Copyright 2018 Joyent, Inc.
21411  */
21412 
21413 
21414 
21415 
21416 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
21417 /*
21418  * CDDL HEADER START
21419  *
21420  * The contents of this file are subject to the terms of the
21421  * Common Development and Distribution License (the "License").
21422  * You may not use this file except in compliance with the License.
21423  *
21424  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21425  * or http://www.opensolaris.org/os/licensing.
21426  * See the License for the specific language governing permissions
21427  * and limitations under the License.
21428  *
21429  * When distributing Covered Code, include this CDDL HEADER in each
21430  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21431  * If applicable, add the following below this CDDL HEADER, with the
21432  * fields enclosed by brackets "[]" replaced with your own identifying
21433  * information: Portions Copyright [yyyy] [name of copyright owner]
21434  *
21435  * CDDL HEADER END
21436  */
21437 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
21438 /*	  All Rights Reserved  	*/
21439 
21440 
21441 /*
21442  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
21443  * Use is subject to license terms.
21444  *
21445  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
21446  * Copyright 2016 Joyent, Inc.
21447  */
21448 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h" 2
21449 
21450 
21451 
21452 
21453 
21454 /*
21455  * CTF - Compact ANSI-C Type Format
21456  *
21457  * This file format can be used to compactly represent the information needed
21458  * by a debugger to interpret the ANSI-C types used by a given program.
21459  * Traditionally, this kind of information is generated by the compiler when
21460  * invoked with the -g flag and is stored in "stabs" strings or in the more
21461  * modern DWARF format.  CTF provides a representation of only the information
21462  * that is relevant to debugging a complex, optimized C program such as the
21463  * operating system kernel in a form that is significantly more compact than
21464  * the equivalent stabs or DWARF representation.  The format is data-model
21465  * independent, so consumers do not need different code depending on whether
21466  * they are 32-bit or 64-bit programs.  CTF assumes that a standard ELF symbol
21467  * table is available for use in the debugger, and uses the structure and data
21468  * of the symbol table to avoid storing redundant information.  The CTF data
21469  * may be compressed on disk or in memory, indicated by a bit in the header.
21470  * CTF may be interpreted in a raw disk file, or it may be stored in an ELF
21471  * section, typically named .SUNW_ctf.  Data structures are aligned so that
21472  * a raw CTF file or CTF ELF section may be manipulated using mmap(2).
21473  *
21474  * The CTF file or section itself has the following structure:
21475  *
21476  * +--------+--------+---------+----------+-------+--------+
21477  * |  file  |  type  |  data   | function | data  | string |
21478  * | header | labels | objects |   info   | types | table  |
21479  * +--------+--------+---------+----------+-------+--------+
21480  *
21481  * The file header stores a magic number and version information, encoding
21482  * flags, and the byte offset of each of the sections relative to the end of the
21483  * header itself.  If the CTF data has been uniquified against another set of
21484  * CTF data, a reference to that data also appears in the the header.  This
21485  * reference is the name of the label corresponding to the types uniquified
21486  * against.
21487  *
21488  * Following the header is a list of labels, used to group the types included in
21489  * the data types section.  Each label is accompanied by a type ID i.  A given
21490  * label refers to the group of types whose IDs are in the range [0, i].
21491  *
21492  * Data object and function records are stored in the same order as they appear
21493  * in the corresponding symbol table, except that symbols marked SHN_UNDEF are
21494  * not stored and symbols that have no type data are padded out with zeroes.
21495  * For each data object, the type ID (a small integer) is recorded.  For each
21496  * function, the type ID of the return type and argument types is recorded.
21497  *
21498  * The data types section is a list of variable size records that represent each
21499  * type, in order by their ID.  The types themselves form a directed graph,
21500  * where each node may contain one or more outgoing edges to other type nodes,
21501  * denoted by their ID.
21502  *
21503  * Strings are recorded as a string table ID (0 or 1) and a byte offset into the
21504  * string table.  String table 0 is the internal CTF string table.  String table
21505  * 1 is the external string table, which is the string table associated with the
21506  * ELF symbol table for this object.  CTF does not record any strings that are
21507  * already in the symbol table, and the CTF string table does not contain any
21508  * duplicated strings.
21509  *
21510  * If the CTF data has been merged with another parent CTF object, some outgoing
21511  * edges may refer to type nodes that exist in another CTF object.  The debugger
21512  * and libctf library are responsible for connecting the appropriate objects
21513  * together so that the full set of types can be explored and manipulated.
21514  */
21515 
21516 
21517 
21518 
21519 
21520 
21521 
21522 /* See ctf_type_t */
21523 
21524 
21525 
21526 
21527 typedef struct ctf_preamble {
21528  ushort_t ctp_magic; /* magic number (CTF_MAGIC) */
21529  uchar_t ctp_version; /* data format version number (CTF_VERSION) */
21530  uchar_t ctp_flags; /* flags (see below) */
21531 } ctf_preamble_t;
21532 
21533 typedef struct ctf_header {
21534  ctf_preamble_t cth_preamble;
21535  uint_t cth_parlabel; /* ref to name of parent lbl uniq'd against */
21536  uint_t cth_parname; /* ref to basename of parent */
21537  uint_t cth_lbloff; /* offset of label section */
21538  uint_t cth_objtoff; /* offset of object section */
21539  uint_t cth_funcoff; /* offset of function section */
21540  uint_t cth_typeoff; /* offset of type section */
21541  uint_t cth_stroff; /* offset of string section */
21542  uint_t cth_strlen; /* length of string section in bytes */
21543 } ctf_header_t;
21544 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h"
21545 /* data format version number */
21546 
21547 
21548 
21549 
21550 
21551 
21552 typedef struct ctf_lblent {
21553  uint_t ctl_label; /* ref to name of label */
21554  uint_t ctl_typeidx; /* last type associated with this label */
21555 } ctf_lblent_t;
21556 
21557 typedef struct ctf_stype {
21558  uint_t ctt_name; /* reference to name in string table */
21559  ushort_t ctt_info; /* encoded kind, variant length (see below) */
21560  union {
21561   ushort_t _size; /* size of entire type in bytes */
21562   ushort_t _type; /* reference to another type */
21563  } _u;
21564 } ctf_stype_t;
21565 
21566 /*
21567  * type sizes, measured in bytes, come in two flavors.  99% of them fit within
21568  * (USHRT_MAX - 1), and thus can be stored in the ctt_size member of a
21569  * ctf_stype_t.  The maximum value for these sizes is CTF_MAX_SIZE.  The sizes
21570  * larger than CTF_MAX_SIZE must be stored in the ctt_lsize member of a
21571  * ctf_type_t.  Use of this member is indicated by the presence of
21572  * CTF_LSIZE_SENT in ctt_size.
21573  */
21574 typedef struct ctf_type {
21575  uint_t ctt_name; /* reference to name in string table */
21576  ushort_t ctt_info; /* encoded kind, variant length (see below) */
21577  union {
21578   ushort_t _size; /* always CTF_LSIZE_SENT */
21579   ushort_t _type; /* do not use */
21580  } _u;
21581  uint_t ctt_lsizehi; /* high 32 bits of type size in bytes */
21582  uint_t ctt_lsizelo; /* low 32 bits of type size in bytes */
21583 } ctf_type_t;
21584 
21585 
21586 
21587 
21588 /*
21589  * The following macros compose and decompose values for ctt_info and
21590  * ctt_name, as well as other structures that contain name references.
21591  *
21592  *             ------------------------
21593  * ctt_info:   | kind | isroot | vlen |
21594  *             ------------------------
21595  *             15   11    10    9     0
21596  *
21597  * kind = CTF_INFO_KIND(c.ctt_info);     <-- CTF_K_* value (see below)
21598  * vlen = CTF_INFO_VLEN(c.ctt_info);     <-- length of variable data list
21599  *
21600  * stid = CTF_NAME_STID(c.ctt_name);     <-- string table id number (0 or 1)
21601  * offset = CTF_NAME_OFFSET(c.ctt_name); <-- string table byte offset
21602  *
21603  * c.ctt_info = CTF_TYPE_INFO(kind, vlen);
21604  * c.ctt_name = CTF_TYPE_NAME(stid, offset);
21605  */
21606 # 251 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h"
21607 /*
21608  * Values for CTF_TYPE_KIND().  If the kind has an associated data list,
21609  * CTF_INFO_VLEN() will extract the number of elements in the list, and
21610  * the type of each element is shown in the comments below.
21611  */
21612 
21613 
21614 
21615 
21616 
21617 
21618     /* list of argument types (ushort_t's) */
21619 # 274 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h"
21620 /*
21621  * Values for ctt_type when kind is CTF_K_INTEGER.  The flags, offset in bits,
21622  * and size in bits are encoded as a single word using the following macros.
21623  */
21624 # 290 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h"
21625 /*
21626  * Values for ctt_type when kind is CTF_K_FLOAT.  The encoding, offset in bits,
21627  * and size in bits are encoded as a single word using the following macros.
21628  */
21629 # 316 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf.h"
21630 typedef struct ctf_array {
21631  ushort_t cta_contents; /* reference to type of array contents */
21632  ushort_t cta_index; /* reference to type of array index */
21633  uint_t cta_nelems; /* number of elements */
21634 } ctf_array_t;
21635 
21636 /*
21637  * Most structure members have bit offsets that can be expressed using a
21638  * short.  Some don't.  ctf_member_t is used for structs which cannot
21639  * contain any of these large offsets, whereas ctf_lmember_t is used in the
21640  * latter case.  If ctt_size for a given struct is >= 8192 bytes, all members
21641  * will be stored as type ctf_lmember_t.
21642  */
21643 
21644 
21645 
21646 typedef struct ctf_member {
21647  uint_t ctm_name; /* reference to name in string table */
21648  ushort_t ctm_type; /* reference to type of member */
21649  ushort_t ctm_offset; /* offset of this member in bits */
21650 } ctf_member_t;
21651 
21652 typedef struct ctf_lmember {
21653  uint_t ctlm_name; /* reference to name in string table */
21654  ushort_t ctlm_type; /* reference to type of member */
21655  ushort_t ctlm_pad; /* padding */
21656  uint_t ctlm_offsethi; /* high 32 bits of member offset in bits */
21657  uint_t ctlm_offsetlo; /* low 32 bits of member offset in bits */
21658 } ctf_lmember_t;
21659 
21660 
21661 
21662 
21663 
21664 
21665 typedef struct ctf_enum {
21666  uint_t cte_name; /* reference to name in string table */
21667  int cte_value; /* value associated with this name */
21668 } ctf_enum_t;
21669 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf_api.h" 2
21670 
21671 
21672 
21673 
21674 
21675 /*
21676  * Clients can open one or more CTF containers and obtain a pointer to an
21677  * opaque ctf_file_t.  Types are identified by an opaque ctf_id_t token.
21678  * These opaque definitions allow libctf to evolve without breaking clients.
21679  */
21680 typedef struct ctf_file ctf_file_t;
21681 typedef long ctf_id_t;
21682 
21683 
21684 
21685 enum {
21686  ECTF_FMT = 1000, /* file is not in CTF or ELF format */
21687  ECTF_ELFVERS, /* ELF version is more recent than libctf */
21688  ECTF_CTFVERS, /* CTF version is more recent than libctf */
21689  ECTF_ENDIAN, /* data is different endian-ness than lib */
21690  ECTF_SYMTAB, /* symbol table uses invalid entry size */
21691  ECTF_SYMBAD, /* symbol table data buffer invalid */
21692  ECTF_STRBAD, /* string table data buffer invalid */
21693  ECTF_CORRUPT, /* file data corruption detected */
21694  ECTF_NOCTFDATA, /* ELF file does not contain CTF data */
21695  ECTF_NOCTFBUF, /* buffer does not contain CTF data */
21696  ECTF_NOSYMTAB, /* symbol table data is not available */
21697  ECTF_NOPARENT, /* parent CTF container is not available */
21698  ECTF_DMODEL, /* data model mismatch */
21699  ECTF_MMAP, /* failed to mmap a data section */
21700  ECTF_ZMISSING, /* decompression library not installed */
21701  ECTF_ZINIT, /* failed to initialize decompression library */
21702  ECTF_ZALLOC, /* failed to allocate decompression buffer */
21703  ECTF_DECOMPRESS, /* failed to decompress CTF data */
21704  ECTF_STRTAB, /* string table for this string is missing */
21705  ECTF_BADNAME, /* string offset is corrupt w.r.t. strtab */
21706  ECTF_BADID, /* invalid type ID number */
21707  ECTF_NOTSOU, /* type is not a struct or union */
21708  ECTF_NOTENUM, /* type is not an enum */
21709  ECTF_NOTSUE, /* type is not a struct, union, or enum */
21710  ECTF_NOTINTFP, /* type is not an integer or float */
21711  ECTF_NOTARRAY, /* type is not an array */
21712  ECTF_NOTREF, /* type does not reference another type */
21713  ECTF_NAMELEN, /* buffer is too small to hold type name */
21714  ECTF_NOTYPE, /* no type found corresponding to name */
21715  ECTF_SYNTAX, /* syntax error in type name */
21716  ECTF_NOTFUNC, /* symtab entry does not refer to a function */
21717  ECTF_NOFUNCDAT, /* no func info available for function */
21718  ECTF_NOTDATA, /* symtab entry does not refer to a data obj */
21719  ECTF_NOTYPEDAT, /* no type info available for object */
21720  ECTF_NOLABEL, /* no label found corresponding to name */
21721  ECTF_NOLABELDATA, /* file does not contain any labels */
21722  ECTF_NOTSUP, /* feature not supported */
21723  ECTF_NOENUMNAM, /* enum element name not found */
21724  ECTF_NOMEMBNAM, /* member name not found */
21725  ECTF_RDONLY, /* CTF container is read-only */
21726  ECTF_DTFULL, /* CTF type is full (no more members allowed) */
21727  ECTF_FULL, /* CTF container is full */
21728  ECTF_DUPMEMBER, /* duplicate member name definition */
21729  ECTF_CONFLICT, /* conflicting type definition present */
21730  ECTF_REFERENCED, /* type has outstanding references */
21731  ECTF_NOTDYN, /* type is not a dynamic type */
21732  ECTF_ELF, /* elf library failure */
21733  ECTF_MCHILD, /* cannot merge child container */
21734  ECTF_LABELEXISTS, /* label already exists */
21735  ECTF_LCONFLICT, /* merged labels conflict */
21736  ECTF_ZLIB, /* zlib library failure */
21737  ECTF_CONVBKERR, /* CTF conversion backend error */
21738  ECTF_CONVNOCSRC, /* No C source to convert from */
21739  ECTF_NOCONVBKEND /* No applicable conversion backend */
21740 };
21741 
21742 /*
21743  * If the debugger needs to provide the CTF library with a set of raw buffers
21744  * for use as the CTF data, symbol table, and string table, it can do so by
21745  * filling in ctf_sect_t structures and passing them to ctf_bufopen():
21746  */
21747 typedef struct ctf_sect {
21748  const char *cts_name; /* section name (if any) */
21749  ulong_t cts_type; /* section type (ELF SHT_... value) */
21750  ulong_t cts_flags; /* section flags (ELF SHF_... value) */
21751  const void *cts_data; /* pointer to section data */
21752  size_t cts_size; /* size of data in bytes */
21753  size_t cts_entsize; /* size of each section entry (symtab only) */
21754  off64_t cts_offset; /* file offset of this section (if any) */
21755 } ctf_sect_t;
21756 
21757 /*
21758  * Encoding information for integers, floating-point values, and certain other
21759  * intrinsics can be obtained by calling ctf_type_encoding(), below.  The flags
21760  * field will contain values appropriate for the type defined in <sys/ctf.h>.
21761  */
21762 typedef struct ctf_encoding {
21763  uint_t cte_format; /* data format (CTF_INT_* or CTF_FP_* flags) */
21764  uint_t cte_offset; /* offset of value in bits */
21765  uint_t cte_bits; /* size of storage in bits */
21766 } ctf_encoding_t;
21767 
21768 typedef struct ctf_membinfo {
21769  ctf_id_t ctm_type; /* type of struct or union member */
21770  ulong_t ctm_offset; /* offset of member in bits */
21771 } ctf_membinfo_t;
21772 
21773 typedef struct ctf_arinfo {
21774  ctf_id_t ctr_contents; /* type of array contents */
21775  ctf_id_t ctr_index; /* type of array index */
21776  uint_t ctr_nelems; /* number of elements */
21777 } ctf_arinfo_t;
21778 
21779 typedef struct ctf_funcinfo {
21780  ctf_id_t ctc_return; /* function return type */
21781  uint_t ctc_argc; /* number of typed arguments to function */
21782  uint_t ctc_flags; /* function attributes (see below) */
21783 } ctf_funcinfo_t;
21784 
21785 typedef struct ctf_lblinfo {
21786  ctf_id_t ctb_typeidx; /* last type associated with the label */
21787 } ctf_lblinfo_t;
21788 
21789 
21790 
21791 /*
21792  * Functions that return integer status or a ctf_id_t use the following value
21793  * to indicate failure.  ctf_errno() can be used to obtain an error code.
21794  */
21795 
21796 
21797 /*
21798  * The CTF data model is inferred to be the caller's data model or the data
21799  * model of the given object, unless ctf_setmodel() is explicitly called.
21800  */
21801 # 189 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ctf_api.h"
21802 /*
21803  * Dynamic CTF containers can be created using ctf_create().  The ctf_add_*
21804  * routines can be used to add new definitions to the dynamic container.
21805  * New types are labeled as root or non-root to determine whether they are
21806  * visible at the top-level program scope when subsequently doing a lookup.
21807  */
21808 
21809 
21810 
21811 /*
21812  * These typedefs are used to define the signature for callback functions
21813  * that can be used with the iteration and visit functions below:
21814  */
21815 typedef int ctf_visit_f(const char *, ctf_id_t, ulong_t, int, void *);
21816 typedef int ctf_member_f(const char *, ctf_id_t, ulong_t, void *);
21817 typedef int ctf_enum_f(const char *, int, void *);
21818 typedef int ctf_type_f(ctf_id_t, boolean_t, void *);
21819 typedef int ctf_label_f(const char *, const ctf_lblinfo_t *, void *);
21820 typedef int ctf_function_f(const char *, ulong_t, ctf_funcinfo_t *, void *);
21821 typedef int ctf_object_f(const char *, ctf_id_t, ulong_t, void *);
21822 typedef int ctf_string_f(const char *, void *);
21823 
21824 extern ctf_file_t *ctf_bufopen(const ctf_sect_t *, const ctf_sect_t *,
21825     const ctf_sect_t *, int *);
21826 extern ctf_file_t *ctf_fdopen(int, int *);
21827 extern ctf_file_t *ctf_open(const char *, int *);
21828 extern ctf_file_t *ctf_create(int *);
21829 extern ctf_file_t *ctf_fdcreate(int, int *);
21830 extern ctf_file_t *ctf_dup(ctf_file_t *);
21831 extern void ctf_close(ctf_file_t *);
21832 
21833 extern ctf_file_t *ctf_parent_file(ctf_file_t *);
21834 extern const char *ctf_parent_name(ctf_file_t *);
21835 extern const char *ctf_parent_label(ctf_file_t *);
21836 
21837 extern int ctf_import(ctf_file_t *, ctf_file_t *);
21838 extern int ctf_setmodel(ctf_file_t *, int);
21839 extern int ctf_getmodel(ctf_file_t *);
21840 
21841 extern void ctf_setspecific(ctf_file_t *, void *);
21842 extern void *ctf_getspecific(ctf_file_t *);
21843 
21844 extern int ctf_errno(ctf_file_t *);
21845 extern uint_t ctf_flags(ctf_file_t *);
21846 extern const char *ctf_errmsg(int);
21847 extern int ctf_version(int);
21848 
21849 extern ctf_id_t ctf_max_id(ctf_file_t *);
21850 extern ulong_t ctf_nr_syms(ctf_file_t *);
21851 
21852 extern int ctf_func_info(ctf_file_t *, ulong_t, ctf_funcinfo_t *);
21853 extern int ctf_func_info_by_id(ctf_file_t *, ctf_id_t, ctf_funcinfo_t *);
21854 extern int ctf_func_args(ctf_file_t *, ulong_t, uint_t, ctf_id_t *);
21855 extern int ctf_func_args_by_id(ctf_file_t *, ctf_id_t, uint_t, ctf_id_t *);
21856 
21857 extern ctf_id_t ctf_lookup_by_name(ctf_file_t *, const char *);
21858 extern ctf_id_t ctf_lookup_by_symbol(ctf_file_t *, ulong_t);
21859 
21860 extern char *ctf_symbol_name(ctf_file_t *, ulong_t, char *, size_t);
21861 
21862 extern ctf_id_t ctf_type_resolve(ctf_file_t *, ctf_id_t);
21863 extern ssize_t ctf_type_lname(ctf_file_t *, ctf_id_t, char *, size_t);
21864 extern char *ctf_type_name(ctf_file_t *, ctf_id_t, char *, size_t);
21865 extern char *ctf_type_qname(ctf_file_t *, ctf_id_t, char *, size_t,
21866     const char *);
21867 extern char *ctf_type_cname(ctf_file_t *, ctf_id_t, char *, size_t,
21868     const char *);
21869 extern ssize_t ctf_type_size(ctf_file_t *, ctf_id_t);
21870 extern ssize_t ctf_type_align(ctf_file_t *, ctf_id_t);
21871 extern int ctf_type_kind(ctf_file_t *, ctf_id_t);
21872 extern const char *ctf_kind_name(ctf_file_t *, int);
21873 extern ctf_id_t ctf_type_reference(ctf_file_t *, ctf_id_t);
21874 extern ctf_id_t ctf_type_pointer(ctf_file_t *, ctf_id_t);
21875 extern int ctf_type_encoding(ctf_file_t *, ctf_id_t, ctf_encoding_t *);
21876 extern int ctf_type_visit(ctf_file_t *, ctf_id_t, ctf_visit_f *, void *);
21877 extern int ctf_type_cmp(ctf_file_t *, ctf_id_t, ctf_file_t *, ctf_id_t);
21878 extern int ctf_type_compat(ctf_file_t *, ctf_id_t, ctf_file_t *, ctf_id_t);
21879 
21880 extern int ctf_member_info(ctf_file_t *, ctf_id_t, const char *,
21881     ctf_membinfo_t *);
21882 extern int ctf_array_info(ctf_file_t *, ctf_id_t, ctf_arinfo_t *);
21883 
21884 extern const char *ctf_enum_name(ctf_file_t *, ctf_id_t, int);
21885 extern int ctf_enum_value(ctf_file_t *, ctf_id_t, const char *, int *);
21886 
21887 extern const char *ctf_label_topmost(ctf_file_t *);
21888 extern int ctf_label_info(ctf_file_t *, const char *, ctf_lblinfo_t *);
21889 
21890 extern int ctf_member_iter(ctf_file_t *, ctf_id_t, ctf_member_f *, void *);
21891 extern int ctf_enum_iter(ctf_file_t *, ctf_id_t, ctf_enum_f *, void *);
21892 extern int ctf_type_iter(ctf_file_t *, boolean_t, ctf_type_f *, void *);
21893 extern int ctf_label_iter(ctf_file_t *, ctf_label_f *, void *);
21894 extern int ctf_function_iter(ctf_file_t *, ctf_function_f *, void *);
21895 extern int ctf_object_iter(ctf_file_t *, ctf_object_f *, void *);
21896 extern int ctf_string_iter(ctf_file_t *, ctf_string_f *, void *);
21897 
21898 extern ctf_id_t ctf_add_array(ctf_file_t *, uint_t, const ctf_arinfo_t *);
21899 extern ctf_id_t ctf_add_const(ctf_file_t *, uint_t, const char *, ctf_id_t);
21900 extern ctf_id_t ctf_add_enum(ctf_file_t *, uint_t, const char *);
21901 extern ctf_id_t ctf_add_float(ctf_file_t *, uint_t,
21902     const char *, const ctf_encoding_t *);
21903 extern ctf_id_t ctf_add_forward(ctf_file_t *, uint_t, const char *, uint_t);
21904 extern ctf_id_t ctf_add_funcptr(ctf_file_t *, uint_t, const ctf_funcinfo_t *,
21905     const ctf_id_t *);
21906 extern ctf_id_t ctf_add_integer(ctf_file_t *, uint_t,
21907     const char *, const ctf_encoding_t *);
21908 extern ctf_id_t ctf_add_pointer(ctf_file_t *, uint_t, const char *, ctf_id_t);
21909 extern ctf_id_t ctf_add_type(ctf_file_t *, ctf_file_t *, ctf_id_t);
21910 extern ctf_id_t ctf_add_typedef(ctf_file_t *, uint_t, const char *, ctf_id_t);
21911 extern ctf_id_t ctf_add_restrict(ctf_file_t *, uint_t, const char *, ctf_id_t);
21912 extern ctf_id_t ctf_add_struct(ctf_file_t *, uint_t, const char *);
21913 extern ctf_id_t ctf_add_union(ctf_file_t *, uint_t, const char *);
21914 extern ctf_id_t ctf_add_volatile(ctf_file_t *, uint_t, const char *, ctf_id_t);
21915 
21916 extern int ctf_add_enumerator(ctf_file_t *, ctf_id_t, const char *, int);
21917 extern int ctf_add_member(ctf_file_t *, ctf_id_t, const char *, ctf_id_t,
21918     ulong_t);
21919 
21920 
21921 extern int ctf_add_function(ctf_file_t *, ulong_t, const ctf_funcinfo_t *,
21922     const ctf_id_t *);
21923 extern int ctf_add_object(ctf_file_t *, ulong_t, ctf_id_t);
21924 extern int ctf_add_label(ctf_file_t *, const char *, ctf_id_t, uint_t);
21925 
21926 extern int ctf_set_array(ctf_file_t *, ctf_id_t, const ctf_arinfo_t *);
21927 extern int ctf_set_root(ctf_file_t *, ctf_id_t, const boolean_t);
21928 extern int ctf_set_size(ctf_file_t *, ctf_id_t, const ulong_t);
21929 
21930 extern int ctf_delete_type(ctf_file_t *, ctf_id_t);
21931 
21932 extern int ctf_update(ctf_file_t *);
21933 extern int ctf_discard(ctf_file_t *);
21934 extern int ctf_write(ctf_file_t *, int);
21935 extern void ctf_dataptr(ctf_file_t *, const void **, size_t *);
21936 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libctf.h" 2
21937 
21938 
21939 
21940 
21941 
21942 /*
21943  * This flag can be used to enable debug messages.
21944  */
21945 extern int _libctf_debug;
21946 
21947 typedef enum ctf_diff_flag {
21948  CTF_DIFF_F_IGNORE_INTNAMES = 0x01
21949 } ctf_diff_flag_t;
21950 
21951 typedef struct ctf_diff ctf_diff_t;
21952 typedef void (*ctf_diff_type_f)(ctf_file_t *, ctf_id_t, boolean_t, ctf_file_t *,
21953     ctf_id_t, void *);
21954 typedef void (*ctf_diff_func_f)(ctf_file_t *, ulong_t, boolean_t, ctf_file_t *,
21955     ulong_t, void *);
21956 typedef void (*ctf_diff_obj_f)(ctf_file_t *, ulong_t, ctf_id_t, boolean_t,
21957     ctf_file_t *, ulong_t, ctf_id_t, void *);
21958 
21959 extern int ctf_diff_init(ctf_file_t *, ctf_file_t *, ctf_diff_t **);
21960 extern uint_t ctf_diff_getflags(ctf_diff_t *);
21961 extern int ctf_diff_setflags(ctf_diff_t *, uint_t);
21962 extern int ctf_diff_types(ctf_diff_t *, ctf_diff_type_f, void *);
21963 extern int ctf_diff_functions(ctf_diff_t *, ctf_diff_func_f, void *);
21964 extern int ctf_diff_objects(ctf_diff_t *, ctf_diff_obj_f, void *);
21965 extern void ctf_diff_fini(ctf_diff_t *);
21966 
21967 
21968 extern ctf_file_t *ctf_fdconvert(int, const char *, uint_t, uint_t, int *,
21969     char *, size_t);
21970 
21971 typedef struct ctf_merge_handle ctf_merge_t;
21972 extern ctf_merge_t *ctf_merge_init(int, int *);
21973 extern int ctf_merge_add(ctf_merge_t *, ctf_file_t *);
21974 extern int ctf_merge_set_nthreads(ctf_merge_t *, const uint_t);
21975 extern int ctf_merge_label(ctf_merge_t *, const char *);
21976 extern int ctf_merge_uniquify(ctf_merge_t *, ctf_file_t *, const char *);
21977 extern int ctf_merge_merge(ctf_merge_t *, ctf_file_t **);
21978 extern int ctf_merge_dedup(ctf_merge_t *, ctf_file_t **);
21979 extern void ctf_merge_fini(ctf_merge_t *);
21980 
21981 
21982 extern int ctf_elffdwrite(ctf_file_t *, int, int, int);
21983 extern int ctf_elfwrite(ctf_file_t *, const char *, const char *, int);
21984 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
21985 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1
21986 /*
21987  * CDDL HEADER START
21988  *
21989  * The contents of this file are subject to the terms of the
21990  * Common Development and Distribution License (the "License").
21991  * You may not use this file except in compliance with the License.
21992  *
21993  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21994  * or http://www.opensolaris.org/os/licensing.
21995  * See the License for the specific language governing permissions
21996  * and limitations under the License.
21997  *
21998  * When distributing Covered Code, include this CDDL HEADER in each
21999  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22000  * If applicable, add the following below this CDDL HEADER, with the
22001  * fields enclosed by brackets "[]" replaced with your own identifying
22002  * information: Portions Copyright [yyyy] [name of copyright owner]
22003  *
22004  * CDDL HEADER END
22005  */
22006 
22007 /*
22008  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22009  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
22010  */
22011 
22012 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
22013 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
22014 /*	All Rights Reserved	*/
22015 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
22016 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h" 1
22017 /*
22018  * CDDL HEADER START
22019  *
22020  * The contents of this file are subject to the terms of the
22021  * Common Development and Distribution License, Version 1.0 only
22022  * (the "License").  You may not use this file except in compliance
22023  * with the License.
22024  *
22025  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22026  * or http://www.opensolaris.org/os/licensing.
22027  * See the License for the specific language governing permissions
22028  * and limitations under the License.
22029  *
22030  * When distributing Covered Code, include this CDDL HEADER in each
22031  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22032  * If applicable, add the following below this CDDL HEADER, with the
22033  * fields enclosed by brackets "[]" replaced with your own identifying
22034  * information: Portions Copyright [yyyy] [name of copyright owner]
22035  *
22036  * CDDL HEADER END
22037  */
22038 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22039 /*	  All Rights Reserved  	*/
22040 
22041 /*
22042  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22043  *
22044  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
22045  * Use is subject to license terms.
22046  */
22047 
22048 
22049 
22050 
22051 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
22052 /*
22053  * CDDL HEADER START
22054  *
22055  * The contents of this file are subject to the terms of the
22056  * Common Development and Distribution License (the "License").
22057  * You may not use this file except in compliance with the License.
22058  *
22059  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22060  * or http://www.opensolaris.org/os/licensing.
22061  * See the License for the specific language governing permissions
22062  * and limitations under the License.
22063  *
22064  * When distributing Covered Code, include this CDDL HEADER in each
22065  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22066  * If applicable, add the following below this CDDL HEADER, with the
22067  * fields enclosed by brackets "[]" replaced with your own identifying
22068  * information: Portions Copyright [yyyy] [name of copyright owner]
22069  *
22070  * CDDL HEADER END
22071  */
22072 
22073 /*
22074  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
22075  * Copyright 2016 Joyent, Inc.
22076  *
22077  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
22078  * Use is subject to license terms.
22079  */
22080 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h" 2
22081 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
22082 /*
22083  * CDDL HEADER START
22084  *
22085  * The contents of this file are subject to the terms of the
22086  * Common Development and Distribution License (the "License").
22087  * You may not use this file except in compliance with the License.
22088  *
22089  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22090  * or http://www.opensolaris.org/os/licensing.
22091  * See the License for the specific language governing permissions
22092  * and limitations under the License.
22093  *
22094  * When distributing Covered Code, include this CDDL HEADER in each
22095  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22096  * If applicable, add the following below this CDDL HEADER, with the
22097  * fields enclosed by brackets "[]" replaced with your own identifying
22098  * information: Portions Copyright [yyyy] [name of copyright owner]
22099  *
22100  * CDDL HEADER END
22101  */
22102 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22103 /*	  All Rights Reserved  	*/
22104 
22105 
22106 /*
22107  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22108  * Use is subject to license terms.
22109  *
22110  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
22111  * Copyright 2016 Joyent, Inc.
22112  */
22113 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h" 2
22114 
22115 
22116 
22117 
22118 
22119 /*
22120  * Structure returned by statvfs(2).
22121  */
22122 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h"
22123 typedef struct statvfs {
22124  unsigned long f_bsize; /* fundamental file system block size */
22125  unsigned long f_frsize; /* fragment size */
22126  fsblkcnt_t f_blocks; /* total blocks of f_frsize on fs */
22127  fsblkcnt_t f_bfree; /* total free blocks of f_frsize */
22128  fsblkcnt_t f_bavail; /* free blocks avail to non-superuser */
22129  fsfilcnt_t f_files; /* total file nodes (inodes) */
22130  fsfilcnt_t f_ffree; /* total free file nodes */
22131  fsfilcnt_t f_favail; /* free nodes avail to non-superuser */
22132  unsigned long f_fsid; /* file system id (dev for now) */
22133  char f_basetype[16]; /* target fs type name, */
22134       /* null-terminated */
22135  unsigned long f_flag; /* bit-mask of flags */
22136  unsigned long f_namemax; /* maximum file name length */
22137  char f_fstr[32]; /* filesystem-specific string */
22138 
22139  unsigned long f_filler[16]; /* reserved for future expansion */
22140 
22141 } statvfs_t;
22142 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h"
22143 /* transitional large file interface version */
22144 
22145 typedef struct statvfs64 {
22146  unsigned long f_bsize; /* preferred file system block size */
22147  unsigned long f_frsize; /* fundamental file system block size */
22148  fsblkcnt64_t f_blocks; /* total blocks of f_frsize */
22149  fsblkcnt64_t f_bfree; /* total free blocks of f_frsize */
22150  fsblkcnt64_t f_bavail; /* free blocks avail to non-superuser */
22151  fsfilcnt64_t f_files; /* total # of file nodes (inodes) */
22152  fsfilcnt64_t f_ffree; /* total # of free file nodes */
22153  fsfilcnt64_t f_favail; /* free nodes avail to non-superuser */
22154  unsigned long f_fsid; /* file system id (dev for now) */
22155  char f_basetype[16]; /* target fs type name, */
22156       /* null-terminated */
22157  unsigned long f_flag; /* bit-mask of flags */
22158  unsigned long f_namemax; /* maximum file name length */
22159  char f_fstr[32]; /* filesystem-specific string */
22160 
22161  unsigned long f_filler[16]; /* reserved for future expansion */
22162 
22163 } statvfs64_t;
22164 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h"
22165 /*
22166  * Flag definitions.
22167  */
22168 
22169 
22170 
22171 
22172 
22173 
22174 /*
22175  * large file compilation environment setup
22176  */
22177 # 190 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/statvfs.h"
22178 int statvfs(const char *, statvfs_t *);
22179 int fstatvfs(int, statvfs_t *);
22180 
22181 /* transitional large file interface versions */
22182 
22183 
22184 int statvfs64(const char *, statvfs64_t *);
22185 int fstatvfs64(int, statvfs64_t *);
22186 # 64 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
22187 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/auxv.h" 1
22188 /*
22189  * CDDL HEADER START
22190  *
22191  * The contents of this file are subject to the terms of the
22192  * Common Development and Distribution License (the "License").
22193  * You may not use this file except in compliance with the License.
22194  *
22195  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22196  * or http://www.opensolaris.org/os/licensing.
22197  * See the License for the specific language governing permissions
22198  * and limitations under the License.
22199  *
22200  * When distributing Covered Code, include this CDDL HEADER in each
22201  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22202  * If applicable, add the following below this CDDL HEADER, with the
22203  * fields enclosed by brackets "[]" replaced with your own identifying
22204  * information: Portions Copyright [yyyy] [name of copyright owner]
22205  *
22206  * CDDL HEADER END
22207  */
22208 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22209 /*	  All Rights Reserved  	*/
22210 
22211 
22212 /*
22213  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22214  *
22215  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
22216  * Use is subject to license terms.
22217  */
22218 /*
22219  * Copyright 2016 Joyent, Inc.
22220  */
22221 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
22222 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 1
22223 /*
22224  * CDDL HEADER START
22225  *
22226  * The contents of this file are subject to the terms of the
22227  * Common Development and Distribution License (the "License").
22228  * You may not use this file except in compliance with the License.
22229  *
22230  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22231  * or http://www.opensolaris.org/os/licensing.
22232  * See the License for the specific language governing permissions
22233  * and limitations under the License.
22234  *
22235  * When distributing Covered Code, include this CDDL HEADER in each
22236  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22237  * If applicable, add the following below this CDDL HEADER, with the
22238  * fields enclosed by brackets "[]" replaced with your own identifying
22239  * information: Portions Copyright [yyyy] [name of copyright owner]
22240  *
22241  * CDDL HEADER END
22242  */
22243 /*
22244  * Copyright 2014 Garrrett D'Amore <garrett@damore.org>
22245  *
22246  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
22247  * Use is subject to license terms.
22248  */
22249 
22250 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22251 /*	  All Rights Reserved  	*/
22252 
22253 /*
22254  * University Copyright- Copyright (c) 1982, 1986, 1988
22255  * The Regents of the University of California
22256  * All Rights Reserved
22257  *
22258  * University Acknowledgment- Portions of this document are derived from
22259  * software developed by the University of California, Berkeley, and its
22260  * contributors.
22261  */
22262 # 66 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
22263 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1
22264 /*
22265  * CDDL HEADER START
22266  *
22267  * The contents of this file are subject to the terms of the
22268  * Common Development and Distribution License (the "License").
22269  * You may not use this file except in compliance with the License.
22270  *
22271  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22272  * or http://www.opensolaris.org/os/licensing.
22273  * See the License for the specific language governing permissions
22274  * and limitations under the License.
22275  *
22276  * When distributing Covered Code, include this CDDL HEADER in each
22277  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22278  * If applicable, add the following below this CDDL HEADER, with the
22279  * fields enclosed by brackets "[]" replaced with your own identifying
22280  * information: Portions Copyright [yyyy] [name of copyright owner]
22281  *
22282  * CDDL HEADER END
22283  */
22284 /*
22285  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22286  *
22287  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
22288  */
22289 
22290 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
22291 /*	  All Rights Reserved	*/
22292 
22293 /*
22294  * University Copyright- Copyright (c) 1982, 1986, 1988
22295  * The Regents of the University of California
22296  * All Rights Reserved
22297  *
22298  * University Acknowledgment- Portions of this document are derived from
22299  * software developed by the University of California, Berkeley, and its
22300  * contributors.
22301  */
22302 
22303 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
22304 
22305 
22306 
22307 
22308 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
22309 /*
22310  * CDDL HEADER START
22311  *
22312  * The contents of this file are subject to the terms of the
22313  * Common Development and Distribution License (the "License").
22314  * You may not use this file except in compliance with the License.
22315  *
22316  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22317  * or http://www.opensolaris.org/os/licensing.
22318  * See the License for the specific language governing permissions
22319  * and limitations under the License.
22320  *
22321  * When distributing Covered Code, include this CDDL HEADER in each
22322  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22323  * If applicable, add the following below this CDDL HEADER, with the
22324  * fields enclosed by brackets "[]" replaced with your own identifying
22325  * information: Portions Copyright [yyyy] [name of copyright owner]
22326  *
22327  * CDDL HEADER END
22328  */
22329 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22330 /*	  All Rights Reserved  	*/
22331 
22332 
22333 /*
22334  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22335  * Use is subject to license terms.
22336  *
22337  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
22338  * Copyright 2016 Joyent, Inc.
22339  */
22340 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
22341 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1
22342 /*
22343  * CDDL HEADER START
22344  *
22345  * The contents of this file are subject to the terms of the
22346  * Common Development and Distribution License (the "License").
22347  * You may not use this file except in compliance with the License.
22348  *
22349  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22350  * or http://www.opensolaris.org/os/licensing.
22351  * See the License for the specific language governing permissions
22352  * and limitations under the License.
22353  *
22354  * When distributing Covered Code, include this CDDL HEADER in each
22355  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22356  * If applicable, add the following below this CDDL HEADER, with the
22357  * fields enclosed by brackets "[]" replaced with your own identifying
22358  * information: Portions Copyright [yyyy] [name of copyright owner]
22359  *
22360  * CDDL HEADER END
22361  */
22362 /*
22363  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22364  *
22365  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
22366  * Use is subject to license terms.
22367  *
22368  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
22369  * Copyright (c) 2015, Joyent, Inc.  All rights reserved.
22370  */
22371 
22372 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22373 /*	  All Rights Reserved  	*/
22374 
22375 /*
22376  * University Copyright- Copyright (c) 1982, 1986, 1988
22377  * The Regents of the University of California
22378  * All Rights Reserved
22379  *
22380  * University Acknowledgment- Portions of this document are derived from
22381  * software developed by the University of California, Berkeley, and its
22382  * contributors.
22383  */
22384 
22385 
22386 
22387 
22388 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
22389 /*
22390  * CDDL HEADER START
22391  *
22392  * The contents of this file are subject to the terms of the
22393  * Common Development and Distribution License (the "License").
22394  * You may not use this file except in compliance with the License.
22395  *
22396  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22397  * or http://www.opensolaris.org/os/licensing.
22398  * See the License for the specific language governing permissions
22399  * and limitations under the License.
22400  *
22401  * When distributing Covered Code, include this CDDL HEADER in each
22402  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22403  * If applicable, add the following below this CDDL HEADER, with the
22404  * fields enclosed by brackets "[]" replaced with your own identifying
22405  * information: Portions Copyright [yyyy] [name of copyright owner]
22406  *
22407  * CDDL HEADER END
22408  */
22409 
22410 /*
22411  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
22412  * Copyright 2016 Joyent, Inc.
22413  *
22414  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
22415  * Use is subject to license terms.
22416  */
22417 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
22418 
22419 
22420 
22421 
22422 
22423 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
22424 /*
22425  * CDDL HEADER START
22426  *
22427  * The contents of this file are subject to the terms of the
22428  * Common Development and Distribution License (the "License").
22429  * You may not use this file except in compliance with the License.
22430  *
22431  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22432  * or http://www.opensolaris.org/os/licensing.
22433  * See the License for the specific language governing permissions
22434  * and limitations under the License.
22435  *
22436  * When distributing Covered Code, include this CDDL HEADER in each
22437  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22438  * If applicable, add the following below this CDDL HEADER, with the
22439  * fields enclosed by brackets "[]" replaced with your own identifying
22440  * information: Portions Copyright [yyyy] [name of copyright owner]
22441  *
22442  * CDDL HEADER END
22443  */
22444 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22445 /*	  All Rights Reserved  	*/
22446 
22447 
22448 /*
22449  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22450  * Use is subject to license terms.
22451  *
22452  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
22453  * Copyright 2016 Joyent, Inc.
22454  */
22455 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
22456 
22457 /*
22458  * I/O parameter information.  A uio structure describes the I/O which
22459  * is to be performed by an operation.  Typically the data movement will
22460  * be performed by a routine such as uiomove(), which updates the uio
22461  * structure to reflect what was done.
22462  */
22463 
22464 
22465 
22466 
22467 
22468 
22469 
22470 typedef struct iovec {
22471  caddr_t iov_base;
22472 
22473 
22474 
22475  long iov_len;
22476 
22477 } iovec_t;
22478 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
22479 /*
22480  * Segment flag values.
22481  */
22482 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t;
22483 
22484 typedef struct uio {
22485  iovec_t *uio_iov; /* pointer to array of iovecs */
22486  int uio_iovcnt; /* number of iovecs */
22487  lloff_t _uio_offset; /* file offset */
22488  uio_seg_t uio_segflg; /* address space (kernel or user) */
22489  uint16_t uio_fmode; /* file mode flags */
22490  uint16_t uio_extflg; /* extended flags */
22491  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
22492  ssize_t uio_resid; /* residual count */
22493 } uio_t;
22494 
22495 /*
22496  * Extended uio_t uioa_t used for asynchronous uio.
22497  *
22498  * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c"
22499  *	 as there isn't a formal definition of IOV_MAX for the kernel.
22500  */
22501 
22502 
22503 typedef struct uioa_page_s { /* locked uio_iov state */
22504  int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */
22505  void **uioa_ppp; /* page_t or pfn_t arrary */
22506  caddr_t uioa_base; /* address base */
22507  size_t uioa_len; /* span length */
22508 } uioa_page_t;
22509 
22510 typedef struct uioa_s {
22511  iovec_t *uio_iov; /* pointer to array of iovecs */
22512  int uio_iovcnt; /* number of iovecs */
22513  lloff_t _uio_offset; /* file offset */
22514  uio_seg_t uio_segflg; /* address space (kernel or user) */
22515  uint16_t uio_fmode; /* file mode flags */
22516  uint16_t uio_extflg; /* extended flags */
22517  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
22518  ssize_t uio_resid; /* residual count */
22519  /*
22520 	 * uioa extended members.
22521 	 */
22522  uint32_t uioa_state; /* state of asynch i/o */
22523  ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */
22524  uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */
22525  void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */
22526  void *uioa_hwst[4]; /* opaque hardware state */
22527  uioa_page_t uioa_locked[16]; /* Per iov locked pages */
22528 } uioa_t;
22529 
22530 /*
22531  * uio extensions
22532  *
22533  * PSARC 2009/478: Copy Reduction Interfaces
22534  */
22535 typedef enum xuio_type {
22536  UIOTYPE_ASYNCIO,
22537  UIOTYPE_ZEROCOPY
22538 } xuio_type_t;
22539 
22540 typedef struct xuio {
22541  uio_t xu_uio; /* Embedded UIO structure */
22542 
22543  /* Extended uio fields */
22544  enum xuio_type xu_type; /* What kind of uio structure? */
22545  union {
22546   /* Async I/O Support, intend to replace uioa_t. */
22547   struct {
22548    uint32_t xu_a_state; /* state of async i/o */
22549    /* bytes that have been uioamove()ed */
22550    ssize_t xu_a_mbytes;
22551    uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */
22552    /* pointer into lcur->uioa_ppp[] */
22553    void **xu_a_lppp;
22554    void *xu_a_hwst[4]; /* opaque hardware state */
22555    /* Per iov locked pages */
22556    uioa_page_t xu_a_locked[16];
22557   } xu_aio;
22558 
22559   /*
22560 		 * Copy Reduction Support -- facilate loaning / returning of
22561 		 * filesystem cache buffers.
22562 		 */
22563   struct {
22564    int xu_zc_rw; /* read or write buffer */
22565    void *xu_zc_priv; /* fs specific */
22566   } xu_zc;
22567  } xu_ext;
22568 } xuio_t;
22569 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
22570 /*
22571  * I/O direction.
22572  */
22573 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t;
22574 
22575 /*
22576  * uio_extflg: extended flags
22577  *
22578  * NOTE: This flag will be used in uiomove to determine if non-temporal
22579  * access, ie, access bypassing caches, should be used.  Filesystems that
22580  * don't initialize this field could experience suboptimal performance due to
22581  * the random data the field contains.
22582  *
22583  * NOTE: This flag is also used by uioasync callers to pass an extended
22584  * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all
22585  * consumers of a uioa_t require the uio_extflg to be initialized.
22586  */
22587 
22588 
22589 
22590 
22591 
22592 
22593 /*
22594  * Global uioasync capability shadow state.
22595  */
22596 typedef struct uioasync_s {
22597  boolean_t enabled; /* Is uioasync enabled? */
22598  size_t mincnt; /* Minimum byte count for use of */
22599 } uioasync_t;
22600 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
22601 extern ssize_t readv(int, const struct iovec *, int);
22602 extern ssize_t writev(int, const struct iovec *, int);
22603 
22604 /*
22605  * When in the large file compilation environment,
22606  * map preadv/pwritev to their 64 bit offset versions
22607  */
22608 # 274 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
22609 /* In the LP64 compilation environment, the APIs are already large file */
22610 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
22611 extern ssize_t preadv(int, const struct iovec *, int, off_t);
22612 extern ssize_t pwritev(int, const struct iovec *, int, off_t);
22613 
22614 /*
22615  * preadv64 and pwritev64 should be defined when:
22616  * - Using the transitional compilation environment, and not
22617  *     the large file compilation environment.
22618  */
22619 
22620 
22621 extern ssize_t preadv64(int, const struct iovec *, int, off64_t);
22622 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t);
22623 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
22624 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
22625 /*
22626  * CDDL HEADER START
22627  *
22628  * The contents of this file are subject to the terms of the
22629  * Common Development and Distribution License (the "License").
22630  * You may not use this file except in compliance with the License.
22631  *
22632  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22633  * or http://www.opensolaris.org/os/licensing.
22634  * See the License for the specific language governing permissions
22635  * and limitations under the License.
22636  *
22637  * When distributing Covered Code, include this CDDL HEADER in each
22638  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22639  * If applicable, add the following below this CDDL HEADER, with the
22640  * fields enclosed by brackets "[]" replaced with your own identifying
22641  * information: Portions Copyright [yyyy] [name of copyright owner]
22642  *
22643  * CDDL HEADER END
22644  */
22645 
22646 /*
22647  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
22648  * Copyright 2016 Joyent, Inc.
22649  *
22650  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
22651  * Use is subject to license terms.
22652  */
22653 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
22654 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
22655 /*
22656  * CDDL HEADER START
22657  *
22658  * The contents of this file are subject to the terms of the
22659  * Common Development and Distribution License (the "License").
22660  * You may not use this file except in compliance with the License.
22661  *
22662  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22663  * or http://www.opensolaris.org/os/licensing.
22664  * See the License for the specific language governing permissions
22665  * and limitations under the License.
22666  *
22667  * When distributing Covered Code, include this CDDL HEADER in each
22668  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22669  * If applicable, add the following below this CDDL HEADER, with the
22670  * fields enclosed by brackets "[]" replaced with your own identifying
22671  * information: Portions Copyright [yyyy] [name of copyright owner]
22672  *
22673  * CDDL HEADER END
22674  */
22675 /*
22676  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22677  * Use is subject to license terms.
22678  */
22679 
22680 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
22681 /*	  All Rights Reserved	*/
22682 
22683 /*
22684  * Portions of this source code were derived from Berkeley 4.3 BSD
22685  * under license from the Regents of the University of California.
22686  */
22687 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h"
22688 typedef uint16_t sa_family_t;
22689 
22690 
22691 /*
22692  * Structure used by kernel to store most
22693  * addresses.
22694  */
22695 struct sockaddr {
22696  sa_family_t sa_family; /* address family */
22697  char sa_data[14]; /* up to 14 bytes of direct address */
22698 };
22699 
22700 
22701 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1
22702 /*
22703  * CDDL HEADER START
22704  *
22705  * The contents of this file are subject to the terms of the
22706  * Common Development and Distribution License (the "License").
22707  * You may not use this file except in compliance with the License.
22708  *
22709  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22710  * or http://www.opensolaris.org/os/licensing.
22711  * See the License for the specific language governing permissions
22712  * and limitations under the License.
22713  *
22714  * When distributing Covered Code, include this CDDL HEADER in each
22715  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22716  * If applicable, add the following below this CDDL HEADER, with the
22717  * fields enclosed by brackets "[]" replaced with your own identifying
22718  * information: Portions Copyright [yyyy] [name of copyright owner]
22719  *
22720  * CDDL HEADER END
22721  */
22722 /*
22723  * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
22724  */
22725 
22726 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
22727 /*	  All Rights Reserved  	*/
22728 
22729 /*
22730  * University Copyright- Copyright (c) 1982, 1986, 1988
22731  * The Regents of the University of California
22732  * All Rights Reserved
22733  *
22734  * University Acknowledgment- Portions of this document are derived from
22735  * software developed by the University of California, Berkeley, and its
22736  * contributors.
22737  */
22738 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
22739 /*
22740  * Definitions for UNIX IPC domain.
22741  */
22742 struct sockaddr_un {
22743  sa_family_t sun_family; /* AF_UNIX */
22744  char sun_path[108]; /* path name (gag) */
22745 };
22746 
22747 
22748 
22749 /*
22750  * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to
22751  * change.
22752  *
22753  * Also, include a strlen() prototype, and we have to protect it w.r.t.
22754  * UNIX{98,03}.  And because there's strlen, we need size_t as well.
22755  */
22756 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
22757 extern size_t strlen(const char *);
22758 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
22759 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1
22760 /*
22761  * Copyright 1993-2003 Sun Microsystems, Inc.  All rights reserved.
22762  * Use is subject to license terms.
22763  */
22764 /*
22765  * Copyright (c) 1990, 1993
22766  *	The Regents of the University of California.  All rights reserved.
22767  *
22768  * Redistribution and use in source and binary forms, with or without
22769  * modification, are permitted provided that the following conditions
22770  * are met:
22771  * 1. Redistributions of source code must retain the above copyright
22772  *    notice, this list of conditions and the following disclaimer.
22773  * 2. Redistributions in binary form must reproduce the above copyright
22774  *    notice, this list of conditions and the following disclaimer in the
22775  *    documentation and/or other materials provided with the distribution.
22776  * 3. All advertising materials mentioning features or use of this software
22777  *    must display the following acknowledgement:
22778  *	This product includes software developed by the University of
22779  *	California, Berkeley and its contributors.
22780  * 4. Neither the name of the University nor the names of its contributors
22781  *    may be used to endorse or promote products derived from this software
22782  *    without specific prior written permission.
22783  *
22784  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22785  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22786  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22787  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22788  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22789  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22790  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22791  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22792  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22793  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22794  * SUCH DAMAGE.
22795  */
22796 
22797 
22798 
22799 
22800 #pragma ident "%Z%%M%	%I%	%E% SMI"
22801 /* from UCB 8.1 (Berkeley) 6/10/93 */
22802 
22803 
22804 
22805 
22806 
22807 /*
22808  * A Link-Level Sockaddr may specify the interface in one of two
22809  * ways: either by means of a system-provided index number (computed
22810  * anew and possibly differently on every reboot), or by a human-readable
22811  * string such as "il0" (for managerial convenience).
22812  *
22813  * Census taking actions, such as something akin to SIOCGCONF would return
22814  * both the index and the human name.
22815  *
22816  * High volume transactions (such as giving a link-level ``from'' address
22817  * in a recvfrom or recvmsg call) may be likely only to provide the indexed
22818  * form, (which requires fewer copy operations and less space).
22819  *
22820  * The form and interpretation  of the link-level address is purely a matter
22821  * of convention between the device driver and its consumers; however, it is
22822  * expected that all drivers for an interface of a given if_type will agree.
22823  */
22824 
22825 /*
22826  * Structure of a Link-Level sockaddr:
22827  */
22828 struct sockaddr_dl {
22829  ushort_t sdl_family; /* AF_LINK */
22830  ushort_t sdl_index; /* if != 0, system given index for interface */
22831  uchar_t sdl_type; /* interface type */
22832  uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */
22833  uchar_t sdl_alen; /* link level address length */
22834  uchar_t sdl_slen; /* link layer selector length */
22835  char sdl_data[244]; /* contains both if name and ll address */
22836 };
22837 
22838 
22839 
22840 
22841 extern char *_link_ntoa(const unsigned char *, char *, int, int);
22842 extern unsigned char *_link_aton(const char *, int *);
22843 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
22844 
22845 
22846 
22847 /*
22848  * sockaddr_storage:
22849  * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr
22850  * structures. Has sufficient size and alignment for those sockaddrs.
22851  */
22852 
22853 /*
22854  * Desired maximum size, alignment size and related types.
22855  */
22856 
22857 
22858 /*
22859  * To represent desired sockaddr max alignment for platform, a
22860  * type is chosen which may depend on implementation platform architecture.
22861  * Type chosen based on alignment size restrictions from <sys/isa_defs.h>.
22862  * We desire to force up to (but no more than) 64-bit (8 byte) alignment,
22863  * on platforms where it is possible to do so. (e.g not possible on ia32).
22864  * For all currently supported platforms by our implementation
22865  * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64)
22866  * type "double" is suitable for that intent.
22867  *
22868  * Note: Type "double" is chosen over the more obvious integer type int64_t.
22869  *   int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32.
22870  */
22871 typedef double sockaddr_maxalign_t;
22872 
22873 
22874 
22875 /*
22876  * Definitions used for sockaddr_storage structure paddings design.
22877  */
22878 
22879 
22880 
22881 
22882 struct sockaddr_storage {
22883  sa_family_t ss_family; /* Address family */
22884  /* Following fields are implementation specific */
22885  char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))];
22886  sockaddr_maxalign_t _ss_align;
22887  char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))];
22888 };
22889 
22890 
22891 /*
22892  * To be compatible with the Linux interfaces used, this structure is
22893  * placed in socket_impl.h so that an include for <sys/socket.h> will
22894  * pickup this structure. This structure is for use with PF_PACKET
22895  * sockets.
22896  */
22897 struct sockaddr_ll {
22898  uint16_t sll_family;
22899  uint16_t sll_protocol;
22900  int32_t sll_ifindex;
22901  uint16_t sll_hatype;
22902  uint8_t sll_pkttype;
22903  uint8_t sll_halen;
22904  uint8_t sll_addr[8];
22905 };
22906 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
22907 
22908 
22909 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1
22910 /*
22911  * CDDL HEADER START
22912  *
22913  * The contents of this file are subject to the terms of the
22914  * Common Development and Distribution License, Version 1.0 only
22915  * (the "License").  You may not use this file except in compliance
22916  * with the License.
22917  *
22918  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22919  * or http://www.opensolaris.org/os/licensing.
22920  * See the License for the specific language governing permissions
22921  * and limitations under the License.
22922  *
22923  * When distributing Covered Code, include this CDDL HEADER in each
22924  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22925  * If applicable, add the following below this CDDL HEADER, with the
22926  * fields enclosed by brackets "[]" replaced with your own identifying
22927  * information: Portions Copyright [yyyy] [name of copyright owner]
22928  *
22929  * CDDL HEADER END
22930  */
22931 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22932 /*	  All Rights Reserved  	*/
22933 
22934 
22935 /*
22936  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22937  *
22938  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
22939  * Use is subject to license terms.
22940  */
22941 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
22942 struct netconfig {
22943  char *nc_netid; /* network identifier		*/
22944  unsigned int nc_semantics; /* defined below		*/
22945  unsigned int nc_flag; /* defined below		*/
22946  char *nc_protofmly; /* protocol family name		*/
22947  char *nc_proto; /* protocol name		*/
22948  char *nc_device; /* device name for network id	*/
22949  unsigned int nc_nlookups; /* # of entries in nc_lookups	*/
22950  char **nc_lookups; /* list of lookup directories	*/
22951  unsigned int nc_unused[8]; /* borrowed for lockd etc.	*/
22952 };
22953 
22954 typedef struct {
22955  struct netconfig **nc_head;
22956  struct netconfig **nc_curr;
22957 } NCONF_HANDLE;
22958 
22959 /*
22960  *	Values of nc_semantics
22961  */
22962 
22963 
22964 
22965 
22966 
22967 /*
22968  * NOT FOR PUBLIC USE, Solaris internal only.
22969  * This value of nc_semantics is strictly for use of Remote Direct
22970  * Memory Access provider interfaces in Solaris only and not for
22971  * general use. Do not use this value for general purpose user or
22972  * kernel programming. If used the behavior is undefined.
22973  * This is a PRIVATE interface to be used by Solaris kRPC only.
22974  */
22975 
22976 
22977 /*
22978  *	Values of nc_flag
22979  */
22980 
22981 
22982 
22983 
22984 
22985 /*
22986  *	Values of nc_protofmly
22987  */
22988 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
22989 /*
22990  * NOT FOR PUBLIC USE, Solaris internal only.
22991  * This value of nc_semantics is strictly for use of Remote Direct
22992  * Memory Access provider interfaces in Solaris only and not for
22993  * general use. Do not use this value for general purpose user or
22994  * kernel programming. If used the behavior is undefined.
22995  * This is a PRIVATE interface to be used by Solaris kRPC only.
22996  */
22997 
22998 
22999 /*
23000  *	Values for nc_proto
23001  */
23002 
23003 
23004 
23005 
23006 
23007 
23008 /*
23009  * 	Values for nc_proto for "rdma" protofmly
23010  */
23011 
23012 
23013 
23014 
23015 extern void *setnetconfig(void);
23016 extern int endnetconfig(void *);
23017 extern struct netconfig *getnetconfig(void *);
23018 extern struct netconfig *getnetconfigent(const char *);
23019 extern void freenetconfigent(struct netconfig *);
23020 extern void *setnetpath(void);
23021 extern int endnetpath(void *);
23022 extern struct netconfig *getnetpath(void *);
23023 extern void nc_perror(const char *);
23024 extern char *nc_sperror(void);
23025 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
23026 
23027 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
23028 /*
23029  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23030  * Use is subject to license terms.
23031  *
23032  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
23033  */
23034 /*
23035  * Copyright (c) 1982, 1986 Regents of the University of California.
23036  * All rights reserved.
23037  *
23038  * Redistribution and use in source and binary forms are permitted
23039  * provided that this notice is preserved and that due credit is given
23040  * to the University of California at Berkeley. The name of the University
23041  * may not be used to endorse or promote products derived from this
23042  * software without specific prior written permission. This software
23043  * is provided ``as is'' without express or implied warranty.
23044  */
23045 
23046 /*
23047  * Constants and structures defined by the internet system,
23048  * according to following documents
23049  *
23050  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
23051  *	http://www.iana.org/assignments/protocol-numbers
23052  *	http://www.iana.org/assignments/port-numbers
23053  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
23054  *
23055  */
23056 
23057 
23058 
23059 
23060 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
23061 /*
23062  * CDDL HEADER START
23063  *
23064  * The contents of this file are subject to the terms of the
23065  * Common Development and Distribution License (the "License").
23066  * You may not use this file except in compliance with the License.
23067  *
23068  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23069  * or http://www.opensolaris.org/os/licensing.
23070  * See the License for the specific language governing permissions
23071  * and limitations under the License.
23072  *
23073  * When distributing Covered Code, include this CDDL HEADER in each
23074  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23075  * If applicable, add the following below this CDDL HEADER, with the
23076  * fields enclosed by brackets "[]" replaced with your own identifying
23077  * information: Portions Copyright [yyyy] [name of copyright owner]
23078  *
23079  * CDDL HEADER END
23080  */
23081 
23082 /*
23083  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
23084  * Copyright 2016 Joyent, Inc.
23085  *
23086  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23087  * Use is subject to license terms.
23088  */
23089 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
23090 
23091 
23092 
23093 
23094 
23095 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23096 /*
23097  * CDDL HEADER START
23098  *
23099  * The contents of this file are subject to the terms of the
23100  * Common Development and Distribution License (the "License").
23101  * You may not use this file except in compliance with the License.
23102  *
23103  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23104  * or http://www.opensolaris.org/os/licensing.
23105  * See the License for the specific language governing permissions
23106  * and limitations under the License.
23107  *
23108  * When distributing Covered Code, include this CDDL HEADER in each
23109  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23110  * If applicable, add the following below this CDDL HEADER, with the
23111  * fields enclosed by brackets "[]" replaced with your own identifying
23112  * information: Portions Copyright [yyyy] [name of copyright owner]
23113  *
23114  * CDDL HEADER END
23115  */
23116 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23117 /*	  All Rights Reserved  	*/
23118 
23119 
23120 /*
23121  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23122  * Use is subject to license terms.
23123  *
23124  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23125  * Copyright 2016 Joyent, Inc.
23126  */
23127 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
23128 
23129 
23130 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
23131 /*
23132  * CDDL HEADER START
23133  *
23134  * The contents of this file are subject to the terms of the
23135  * Common Development and Distribution License (the "License").
23136  * You may not use this file except in compliance with the License.
23137  *
23138  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23139  * or http://www.opensolaris.org/os/licensing.
23140  * See the License for the specific language governing permissions
23141  * and limitations under the License.
23142  *
23143  * When distributing Covered Code, include this CDDL HEADER in each
23144  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23145  * If applicable, add the following below this CDDL HEADER, with the
23146  * fields enclosed by brackets "[]" replaced with your own identifying
23147  * information: Portions Copyright [yyyy] [name of copyright owner]
23148  *
23149  * CDDL HEADER END
23150  */
23151 /*
23152  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23153  * Use is subject to license terms.
23154  */
23155 
23156 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
23157 /*	  All Rights Reserved	*/
23158 
23159 /*
23160  * Portions of this source code were derived from Berkeley 4.3 BSD
23161  * under license from the Regents of the University of California.
23162  */
23163 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
23164 
23165 
23166 
23167 
23168 
23169 /*
23170  * The socklen definitions are reproduced here from sys/socket.h so as to
23171  * not introduce that namespace into existing users of netinet/in.h.
23172  */
23173 
23174 
23175 
23176 typedef uint32_t socklen_t;
23177 
23178 
23179 
23180 
23181 
23182 typedef void *Psocklen_t;
23183 
23184 
23185 
23186 
23187 
23188 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1
23189 /*
23190  * CDDL HEADER START
23191  *
23192  * The contents of this file are subject to the terms of the
23193  * Common Development and Distribution License (the "License").
23194  * You may not use this file except in compliance with the License.
23195  *
23196  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23197  * or http://www.opensolaris.org/os/licensing.
23198  * See the License for the specific language governing permissions
23199  * and limitations under the License.
23200  *
23201  * When distributing Covered Code, include this CDDL HEADER in each
23202  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23203  * If applicable, add the following below this CDDL HEADER, with the
23204  * fields enclosed by brackets "[]" replaced with your own identifying
23205  * information: Portions Copyright [yyyy] [name of copyright owner]
23206  *
23207  * CDDL HEADER END
23208  */
23209 /*
23210  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23211  * Use is subject to license terms.
23212  */
23213 
23214 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23215 /*	  All Rights Reserved  	*/
23216 
23217 
23218 
23219 
23220 
23221 /*
23222  * For source compatibility
23223  */
23224 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
23225 /*
23226  * CDDL HEADER START
23227  *
23228  * The contents of this file are subject to the terms of the
23229  * Common Development and Distribution License (the "License").
23230  * You may not use this file except in compliance with the License.
23231  *
23232  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23233  * or http://www.opensolaris.org/os/licensing.
23234  * See the License for the specific language governing permissions
23235  * and limitations under the License.
23236  *
23237  *
23238  * When distributing Covered Code, include this CDDL HEADER in each
23239  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23240  * If applicable, add the following below this CDDL HEADER, with the
23241  * fields enclosed by brackets "[]" replaced with your own identifying
23242  * information: Portions Copyright [yyyy] [name of copyright owner]
23243  *
23244  * CDDL HEADER END
23245  */
23246 
23247 /*
23248  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23249  * Use is subject to license terms.
23250  * Copyright 2016 Joyent, Inc.
23251  */
23252 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23253 
23254 
23255 
23256 
23257 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1
23258 /*
23259  * CDDL HEADER START
23260  *
23261  * The contents of this file are subject to the terms of the
23262  * Common Development and Distribution License, Version 1.0 only
23263  * (the "License").  You may not use this file except in compliance
23264  * with the License.
23265  *
23266  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23267  * or http://www.opensolaris.org/os/licensing.
23268  * See the License for the specific language governing permissions
23269  * and limitations under the License.
23270  *
23271  * When distributing Covered Code, include this CDDL HEADER in each
23272  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23273  * If applicable, add the following below this CDDL HEADER, with the
23274  * fields enclosed by brackets "[]" replaced with your own identifying
23275  * information: Portions Copyright [yyyy] [name of copyright owner]
23276  *
23277  * CDDL HEADER END
23278  */
23279 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23280 /*	  All Rights Reserved  	*/
23281 
23282 
23283 /*
23284  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
23285  *
23286  * Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
23287  * All rights reserved.
23288  */
23289 
23290 /*
23291  * Copyright 2015, Joyent, Inc.
23292  */
23293 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
23294 /*
23295  * Structure of file descriptor/event pairs supplied in
23296  * the poll arrays.
23297  */
23298 typedef struct pollfd {
23299  int fd; /* file desc to poll */
23300  short events; /* events of interest on fd */
23301  short revents; /* events that occurred on fd */
23302 } pollfd_t;
23303 
23304 typedef unsigned long nfds_t;
23305 
23306 /*
23307  * Testable select events
23308  */
23309 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
23310 /*
23311  * Non-testable poll events (may not be specified in events field,
23312  * but may be returned in revents field).
23313  */
23314 
23315 
23316 
23317 
23318 /*
23319  * These events will never be specified in revents, but may be specified in
23320  * events to control /dev/poll behavior.
23321  */
23322 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
23323 int poll(struct pollfd *, nfds_t, int);
23324 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23325 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1
23326 /*
23327  * CDDL HEADER START
23328  *
23329  * The contents of this file are subject to the terms of the
23330  * Common Development and Distribution License, Version 1.0 only
23331  * (the "License").  You may not use this file except in compliance
23332  * with the License.
23333  *
23334  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23335  * or http://www.opensolaris.org/os/licensing.
23336  * See the License for the specific language governing permissions
23337  * and limitations under the License.
23338  *
23339  * When distributing Covered Code, include this CDDL HEADER in each
23340  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23341  * If applicable, add the following below this CDDL HEADER, with the
23342  * fields enclosed by brackets "[]" replaced with your own identifying
23343  * information: Portions Copyright [yyyy] [name of copyright owner]
23344  *
23345  * CDDL HEADER END
23346  */
23347 /*
23348  * Copyright (c) 1997-1998 by Sun Microsystems, Inc.
23349  * All rights reserved.
23350  */
23351 
23352 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23353 /*	  All Rights Reserved  	*/
23354 
23355 
23356 
23357 
23358 
23359 #pragma ident "%Z%%M%	%I%	%E% SMI"
23360 
23361 
23362 
23363 
23364 
23365 /*
23366  * This file contains all machine-dependent declarations
23367  * in STREAMS.
23368  */
23369 
23370 /*
23371  * Copy data from one data buffer to another.
23372  * The addresses must be word aligned - if not, use bcopy!
23373  */
23374 
23375 
23376 /*
23377  * save the address of the calling function on the 3b2 to
23378  * enable tracking of who is allocating message blocks
23379  */
23380 
23381 
23382 /*
23383  * macro to check pointer alignment
23384  * (true if alignment is sufficient for worst case)
23385  */
23386 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23387 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
23388 /*
23389  * CDDL HEADER START
23390  *
23391  * The contents of this file are subject to the terms of the
23392  * Common Development and Distribution License (the "License").
23393  * You may not use this file except in compliance with the License.
23394  *
23395  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23396  * or http://www.opensolaris.org/os/licensing.
23397  * See the License for the specific language governing permissions
23398  * and limitations under the License.
23399  *
23400  * When distributing Covered Code, include this CDDL HEADER in each
23401  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23402  * If applicable, add the following below this CDDL HEADER, with the
23403  * fields enclosed by brackets "[]" replaced with your own identifying
23404  * information: Portions Copyright [yyyy] [name of copyright owner]
23405  *
23406  * CDDL HEADER END
23407  */
23408 /*
23409  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23410  * Use is subject to license terms.
23411  */
23412 
23413 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
23414 /*	  All Rights Reserved  	*/
23415 
23416 /*
23417  * Portions of this source code were derived from Berkeley 4.3 BSD
23418  * under license from the Regents of the University of California.
23419  */
23420 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23421 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
23422 /*
23423  * CDDL HEADER START
23424  *
23425  * The contents of this file are subject to the terms of the
23426  * Common Development and Distribution License, Version 1.0 only
23427  * (the "License").  You may not use this file except in compliance
23428  * with the License.
23429  *
23430  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23431  * or http://www.opensolaris.org/os/licensing.
23432  * See the License for the specific language governing permissions
23433  * and limitations under the License.
23434  *
23435  * When distributing Covered Code, include this CDDL HEADER in each
23436  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23437  * If applicable, add the following below this CDDL HEADER, with the
23438  * fields enclosed by brackets "[]" replaced with your own identifying
23439  * information: Portions Copyright [yyyy] [name of copyright owner]
23440  *
23441  * CDDL HEADER END
23442  */
23443 /*
23444  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
23445  * All rights reserved.
23446  */
23447 
23448 /*
23449  * t_lock.h:	Prototypes for disp_locks, plus include files
23450  *		that describe the interfaces to kernel synch.
23451  *		objects.
23452  */
23453 
23454 
23455 
23456 
23457 #pragma ident "%Z%%M%	%I%	%E% SMI"
23458 
23459 
23460 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1
23461 /*
23462  * CDDL HEADER START
23463  *
23464  * The contents of this file are subject to the terms of the
23465  * Common Development and Distribution License (the "License").
23466  * You may not use this file except in compliance with the License.
23467  *
23468  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23469  * or http://www.opensolaris.org/os/licensing.
23470  * See the License for the specific language governing permissions
23471  * and limitations under the License.
23472  *
23473  * When distributing Covered Code, include this CDDL HEADER in each
23474  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23475  * If applicable, add the following below this CDDL HEADER, with the
23476  * fields enclosed by brackets "[]" replaced with your own identifying
23477  * information: Portions Copyright [yyyy] [name of copyright owner]
23478  *
23479  * CDDL HEADER END
23480  */
23481 /*
23482  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23483  * Use is subject to license terms.
23484  * Copyright 2016 Joyent, Inc.
23485  */
23486 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23487 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
23488 /*
23489  * CDDL HEADER START
23490  *
23491  * The contents of this file are subject to the terms of the
23492  * Common Development and Distribution License (the "License").
23493  * You may not use this file except in compliance with the License.
23494  *
23495  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23496  * or http://www.opensolaris.org/os/licensing.
23497  * See the License for the specific language governing permissions
23498  * and limitations under the License.
23499  *
23500  * When distributing Covered Code, include this CDDL HEADER in each
23501  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23502  * If applicable, add the following below this CDDL HEADER, with the
23503  * fields enclosed by brackets "[]" replaced with your own identifying
23504  * information: Portions Copyright [yyyy] [name of copyright owner]
23505  *
23506  * CDDL HEADER END
23507  */
23508 
23509 /*
23510  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
23511  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
23512  */
23513 
23514 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
23515 /*	  All Rights Reserved  	*/
23516 
23517 /*
23518  * University Copyright- Copyright (c) 1982, 1986, 1988
23519  * The Regents of the University of California
23520  * All Rights Reserved
23521  *
23522  * University Acknowledgment- Portions of this document are derived from
23523  * software developed by the University of California, Berkeley, and its
23524  * contributors.
23525  */
23526 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23527 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
23528 /*
23529  * CDDL HEADER START
23530  *
23531  * The contents of this file are subject to the terms of the
23532  * Common Development and Distribution License (the "License").
23533  * You may not use this file except in compliance with the License.
23534  *
23535  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23536  * or http://www.opensolaris.org/os/licensing.
23537  * See the License for the specific language governing permissions
23538  * and limitations under the License.
23539  *
23540  * When distributing Covered Code, include this CDDL HEADER in each
23541  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23542  * If applicable, add the following below this CDDL HEADER, with the
23543  * fields enclosed by brackets "[]" replaced with your own identifying
23544  * information: Portions Copyright [yyyy] [name of copyright owner]
23545  *
23546  * CDDL HEADER END
23547  */
23548 /*
23549  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
23550  */
23551 
23552 
23553 
23554 
23555 
23556 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23557 /*
23558  * CDDL HEADER START
23559  *
23560  * The contents of this file are subject to the terms of the
23561  * Common Development and Distribution License (the "License").
23562  * You may not use this file except in compliance with the License.
23563  *
23564  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23565  * or http://www.opensolaris.org/os/licensing.
23566  * See the License for the specific language governing permissions
23567  * and limitations under the License.
23568  *
23569  * When distributing Covered Code, include this CDDL HEADER in each
23570  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23571  * If applicable, add the following below this CDDL HEADER, with the
23572  * fields enclosed by brackets "[]" replaced with your own identifying
23573  * information: Portions Copyright [yyyy] [name of copyright owner]
23574  *
23575  * CDDL HEADER END
23576  */
23577 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23578 /*	  All Rights Reserved  	*/
23579 
23580 
23581 /*
23582  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23583  * Use is subject to license terms.
23584  *
23585  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23586  * Copyright 2016 Joyent, Inc.
23587  */
23588 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2
23589 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h"
23590 /*
23591  * Public interface to mutual exclusion locks.  See mutex(9F) for details.
23592  *
23593  * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used
23594  * in almost all of the kernel.  MUTEX_SPIN provides interrupt blocking
23595  * and must be used in interrupt handlers above LOCK_LEVEL.  The iblock
23596  * cookie argument to mutex_init() encodes the interrupt level to block.
23597  * The iblock cookie must be NULL for adaptive locks.
23598  *
23599  * MUTEX_DEFAULT is the type usually specified (except in drivers) to
23600  * mutex_init().  It is identical to MUTEX_ADAPTIVE.
23601  *
23602  * MUTEX_DRIVER is always used by drivers.  mutex_init() converts this to
23603  * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie.
23604  *
23605  * Mutex statistics can be gathered on the fly, without rebooting or
23606  * recompiling the kernel, via the lockstat driver (lockstat(7D)).
23607  */
23608 typedef enum {
23609  MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */
23610  MUTEX_SPIN = 1, /* block interrupts and spin */
23611  MUTEX_DRIVER = 4, /* driver (DDI) mutex */
23612  MUTEX_DEFAULT = 6 /* kernel default mutex */
23613 } kmutex_type_t;
23614 
23615 typedef struct mutex {
23616 
23617 
23618 
23619  void *_opaque[2];
23620 
23621 } kmutex_t;
23622 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23623 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1
23624 /*
23625  * CDDL HEADER START
23626  *
23627  * The contents of this file are subject to the terms of the
23628  * Common Development and Distribution License (the "License").
23629  * You may not use this file except in compliance with the License.
23630  *
23631  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23632  * or http://www.opensolaris.org/os/licensing.
23633  * See the License for the specific language governing permissions
23634  * and limitations under the License.
23635  *
23636  * When distributing Covered Code, include this CDDL HEADER in each
23637  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23638  * If applicable, add the following below this CDDL HEADER, with the
23639  * fields enclosed by brackets "[]" replaced with your own identifying
23640  * information: Portions Copyright [yyyy] [name of copyright owner]
23641  *
23642  * CDDL HEADER END
23643  */
23644 /*
23645  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23646  * Use is subject to license terms.
23647  */
23648 
23649 /*
23650  * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
23651  */
23652 
23653 
23654 
23655 
23656 /*
23657  * Public interface to readers/writer locks.  See rwlock(9F) for details.
23658  */
23659 
23660 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23661 /*
23662  * CDDL HEADER START
23663  *
23664  * The contents of this file are subject to the terms of the
23665  * Common Development and Distribution License (the "License").
23666  * You may not use this file except in compliance with the License.
23667  *
23668  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23669  * or http://www.opensolaris.org/os/licensing.
23670  * See the License for the specific language governing permissions
23671  * and limitations under the License.
23672  *
23673  * When distributing Covered Code, include this CDDL HEADER in each
23674  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23675  * If applicable, add the following below this CDDL HEADER, with the
23676  * fields enclosed by brackets "[]" replaced with your own identifying
23677  * information: Portions Copyright [yyyy] [name of copyright owner]
23678  *
23679  * CDDL HEADER END
23680  */
23681 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23682 /*	  All Rights Reserved  	*/
23683 
23684 
23685 /*
23686  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23687  * Use is subject to license terms.
23688  *
23689  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23690  * Copyright 2016 Joyent, Inc.
23691  */
23692 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2
23693 
23694 
23695 
23696 
23697 
23698 
23699 
23700 typedef enum {
23701  RW_DRIVER = 2, /* driver (DDI) rwlock */
23702  RW_DEFAULT = 4 /* kernel default rwlock */
23703 } krw_type_t;
23704 
23705 typedef enum {
23706  RW_WRITER,
23707  RW_READER,
23708  RW_READER_STARVEWRITER
23709 } krw_t;
23710 
23711 typedef struct _krwlock {
23712  void *_opaque[1];
23713 } krwlock_t;
23714 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23715 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1
23716 /*
23717  * CDDL HEADER START
23718  *
23719  * The contents of this file are subject to the terms of the
23720  * Common Development and Distribution License, Version 1.0 only
23721  * (the "License").  You may not use this file except in compliance
23722  * with the License.
23723  *
23724  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23725  * or http://www.opensolaris.org/os/licensing.
23726  * See the License for the specific language governing permissions
23727  * and limitations under the License.
23728  *
23729  * When distributing Covered Code, include this CDDL HEADER in each
23730  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23731  * If applicable, add the following below this CDDL HEADER, with the
23732  * fields enclosed by brackets "[]" replaced with your own identifying
23733  * information: Portions Copyright [yyyy] [name of copyright owner]
23734  *
23735  * CDDL HEADER END
23736  */
23737 /*
23738  * Copyright (c) 1993-1998 by Sun Microsystems, Inc.
23739  * All rights reserved.
23740  */
23741 
23742 
23743 
23744 
23745 #pragma ident "%Z%%M%	%I%	%E% SMI"
23746 
23747 /*
23748  * Public interface to semaphores.  See semaphore(9F) for details.
23749  */
23750 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h"
23751 typedef enum {
23752  SEMA_DEFAULT,
23753  SEMA_DRIVER
23754 } ksema_type_t;
23755 
23756 typedef struct _ksema {
23757  void * _opaque[2]; /* 2 words on 4 byte alignment */
23758 } ksema_t;
23759 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23760 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1
23761 /*
23762  * CDDL HEADER START
23763  *
23764  * The contents of this file are subject to the terms of the
23765  * Common Development and Distribution License (the "License").
23766  * You may not use this file except in compliance with the License.
23767  *
23768  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23769  * or http://www.opensolaris.org/os/licensing.
23770  * See the License for the specific language governing permissions
23771  * and limitations under the License.
23772  *
23773  * When distributing Covered Code, include this CDDL HEADER in each
23774  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23775  * If applicable, add the following below this CDDL HEADER, with the
23776  * fields enclosed by brackets "[]" replaced with your own identifying
23777  * information: Portions Copyright [yyyy] [name of copyright owner]
23778  *
23779  * CDDL HEADER END
23780  */
23781 /*
23782  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23783  * Use is subject to license terms.
23784  */
23785 
23786 /*
23787  * Copyright (c) 2012 by Delphix. All rights reserved.
23788  */
23789 
23790 /*
23791  * condvar.h:
23792  *
23793  * definitions for thread synchronization primitives: condition variables
23794  * This is the public part of the interface to condition variables. The
23795  * private (implementation-specific) part is in <arch>/sys/condvar_impl.h.
23796  */
23797 
23798 
23799 
23800 
23801 
23802 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23803 /*
23804  * CDDL HEADER START
23805  *
23806  * The contents of this file are subject to the terms of the
23807  * Common Development and Distribution License (the "License").
23808  * You may not use this file except in compliance with the License.
23809  *
23810  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23811  * or http://www.opensolaris.org/os/licensing.
23812  * See the License for the specific language governing permissions
23813  * and limitations under the License.
23814  *
23815  * When distributing Covered Code, include this CDDL HEADER in each
23816  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23817  * If applicable, add the following below this CDDL HEADER, with the
23818  * fields enclosed by brackets "[]" replaced with your own identifying
23819  * information: Portions Copyright [yyyy] [name of copyright owner]
23820  *
23821  * CDDL HEADER END
23822  */
23823 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23824 /*	  All Rights Reserved  	*/
23825 
23826 
23827 /*
23828  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23829  * Use is subject to license terms.
23830  *
23831  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23832  * Copyright 2016 Joyent, Inc.
23833  */
23834 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
23835 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
23836 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23837 /*	  All Rights Reserved  	*/
23838 
23839 
23840 /*
23841  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
23842  * All rights reserved.  The Berkeley software License Agreement
23843  * specifies the terms and conditions for redistribution.
23844  */
23845 
23846 /*
23847  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
23848  *
23849  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23850  * Use is subject to license terms.
23851  *
23852  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23853  */
23854 
23855 /*
23856  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
23857  */
23858 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
23859 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h"
23860 /*
23861  * Condtion variables.
23862  */
23863 
23864 typedef struct _kcondvar {
23865  ushort_t _opaque;
23866 } kcondvar_t;
23867 
23868 typedef enum {
23869  CV_DEFAULT,
23870  CV_DRIVER
23871 } kcv_type_t;
23872 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23873 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h"
23874 /*
23875  * Mutual exclusion locks described in common/sys/mutex.h.
23876  *
23877  * Semaphores described in common/sys/semaphore.h.
23878  *
23879  * Readers/Writer locks described in common/sys/rwlock.h.
23880  *
23881  * Condition variables described in common/sys/condvar.h
23882  */
23883 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23884 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1
23885 /*
23886  * CDDL HEADER START
23887  *
23888  * The contents of this file are subject to the terms of the
23889  * Common Development and Distribution License, Version 1.0 only
23890  * (the "License").  You may not use this file except in compliance
23891  * with the License.
23892  *
23893  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23894  * or http://www.opensolaris.org/os/licensing.
23895  * See the License for the specific language governing permissions
23896  * and limitations under the License.
23897  *
23898  * When distributing Covered Code, include this CDDL HEADER in each
23899  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23900  * If applicable, add the following below this CDDL HEADER, with the
23901  * fields enclosed by brackets "[]" replaced with your own identifying
23902  * information: Portions Copyright [yyyy] [name of copyright owner]
23903  *
23904  * CDDL HEADER END
23905  */
23906 /*
23907  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
23908  * Use is subject to license terms.
23909  */
23910 
23911 
23912 
23913 
23914 #pragma ident "%Z%%M%	%I%	%E% SMI"
23915 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
23916 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
23917 /*
23918  * CDDL HEADER START
23919  *
23920  * The contents of this file are subject to the terms of the
23921  * Common Development and Distribution License (the "License").
23922  * You may not use this file except in compliance with the License.
23923  *
23924  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23925  * or http://www.opensolaris.org/os/licensing.
23926  * See the License for the specific language governing permissions
23927  * and limitations under the License.
23928  *
23929  *
23930  * When distributing Covered Code, include this CDDL HEADER in each
23931  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23932  * If applicable, add the following below this CDDL HEADER, with the
23933  * fields enclosed by brackets "[]" replaced with your own identifying
23934  * information: Portions Copyright [yyyy] [name of copyright owner]
23935  *
23936  * CDDL HEADER END
23937  */
23938 
23939 /*
23940  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23941  * Use is subject to license terms.
23942  * Copyright 2016 Joyent, Inc.
23943  */
23944 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2
23945 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
23946 /*
23947  * XXX	Ick.  This type needs to be visible outside the above guard because
23948  * the proc structure is visible outside the _KERNEL | _KMEMUSER guard.
23949  * If we can make proc internals less visible, (which we obviously should)
23950  * then this can be invisible too.
23951  */
23952 typedef unsigned int model_t;
23953 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23954 
23955 
23956 
23957 
23958 
23959 /*
23960  * Data queue.
23961  *
23962  * NOTE: The *only* public fields are documented in queue(9S).
23963  *       Everything else is implementation-private.
23964  *
23965  * The locking rules for the queue_t structure are extremely subtle and vary
23966  * widely depending on the field in question.  As such, each field is
23967  * annotated according to the following legend:
23968  *
23969  *   Q9S: The field is documented in queue(9S) and may be accessed without
23970  *        locks by a STREAMS module when inside an entry point (e.g., put(9E)).
23971  *        However, no fields can be directly modified unless q_lock is held
23972  *        (which is not possible in a DDI compliant STREAMS module), with the
23973  *        following exceptions:
23974  *
23975  *	   - q_ptr: can be modified as per the rules of the STREAMS module.
23976  *		    The STREAMS framework ignores q_ptr and thus imposes *no*
23977  *		    locking rules on it.
23978  *         - q_qinfo: can be modified before qprocson().
23979  *
23980  *	   - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the
23981  *		    rules of the STREAMS module.  The STREAMS framework never
23982  *		    modifies these fields, and is tolerant of temporarily
23983  *		    stale field values.
23984  *
23985  *	  In general, the STREAMS framework employs one of the following
23986  *	  techniques to ensure STREAMS modules can safely access Q9S fields:
23987  *
23988  *	   - The field is only modified by the framework when the stream is
23989  *	     locked with strlock() (q_next).
23990  *
23991  *	   - The field is modified by the framework, but the modifies are
23992  *	     atomic, and temporarily stale values are harmless (q_count,
23993  *	     q_first, q_last).
23994  *
23995  *	   - The field is modified by the framework, but the field's visible
23996  *	     values are either constant or directly under the control
23997  *	     of the STREAMS module itself (q_flag).
23998  *
23999  *   QLK: The field must be accessed or modified under q_lock, except when
24000  *        the stream has been locked with strlock().  If multiple q_locks must
24001  *        be acquired, q_locks at higher addresses must be taken first.
24002  *
24003  *   STR: The field can be accessed without a lock, but must be modified under
24004  *	  strlock().
24005  *
24006  *   SQLK: The field must be accessed or modified under SQLOCK().
24007  *
24008  *   NOLK: The field can be accessed without a lock, but can only be modified
24009  *	   when the queue_t is not known to any other threads.
24010  *
24011  *   SVLK: The field must be accessed or modified under the service_queue lock.
24012  *         Note that service_lock must be taken after any needed q_locks,
24013  *	   and that no other lock should be taken while service_lock is held.
24014  *
24015  * In addition, it is always acceptable to modify a field that is not yet
24016  * known to any other threads -- and other special case exceptions exist in
24017  * the code.  Also, q_lock is used with q_wait to implement a stream head
24018  * monitor for reads and writes.
24019  */
24020 typedef struct queue {
24021  struct qinit *q_qinfo; /* Q9S: Q processing procedure  */
24022  struct msgb *q_first; /* Q9S: first message in Q	*/
24023  struct msgb *q_last; /* Q9S: last message in Q	*/
24024  struct queue *q_next; /* Q9S: next Q in stream	*/
24025  struct queue *q_link; /* SVLK: next Q for scheduling	*/
24026  void *q_ptr; /* Q9S: module-specific data	*/
24027  size_t q_count; /* Q9S: number of bytes on Q	*/
24028  uint_t q_flag; /* Q9S: Q state			*/
24029  ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */
24030  ssize_t q_maxpsz; /* Q9S: largest packet OK on Q	*/
24031  size_t q_hiwat; /* Q9S: Q high water mark	*/
24032  size_t q_lowat; /* Q9S: Q low water mark	*/
24033  struct qband *q_bandp; /* QLK: band flow information	*/
24034  kmutex_t q_lock; /* NOLK: structure lock		*/
24035  struct stdata *q_stream; /* NOLK: stream backpointer	*/
24036  struct syncq *q_syncq; /* NOLK: associated syncq 	*/
24037  unsigned char q_nband; /* QLK: number of bands		*/
24038  kcondvar_t q_wait; /* NOLK: read/write sleep CV	*/
24039  struct queue *q_nfsrv; /* STR: next Q with svc routine */
24040  ushort_t q_draining; /* QLK: Q is draining		*/
24041  short q_struiot; /* QLK: sync streams Q UIO mode	*/
24042  clock_t q_qtstamp; /* QLK: when Q was enabled	*/
24043  size_t q_mblkcnt; /* QLK: mblk count		*/
24044  uint_t q_syncqmsgs; /* QLK: syncq message count	*/
24045  size_t q_rwcnt; /* QLK: # threads in rwnext()	*/
24046  pri_t q_spri; /* QLK: Q scheduling priority	*/
24047 
24048  /*
24049 	 * Syncq scheduling
24050 	 */
24051  struct msgb *q_sqhead; /* QLK: first syncq message	*/
24052  struct msgb *q_sqtail; /* QLK: last syncq message 	*/
24053  struct queue *q_sqnext; /* SQLK: next Q on syncq list	*/
24054  struct queue *q_sqprev; /* SQLK: prev Q on syncq list 	*/
24055  uint_t q_sqflags; /* SQLK: syncq flags		*/
24056  clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */
24057 
24058  /*
24059 	 * NOLK: Reference to the queue's module's implementation
24060 	 * structure. This will be NULL for queues associated with drivers.
24061 	 */
24062  struct fmodsw_impl *q_fp;
24063 } queue_t;
24064 
24065 /*
24066  * Queue flags; unused flags not documented in queue(9S) can be recycled.
24067  */
24068 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24069 /*	UNUSED		0x00000200	   was QHLIST			*/
24070 /* 	UNUSED 		0x00000400	   was QUNSAFE			*/
24071 
24072 
24073 
24074 
24075 
24076 
24077      /* all MT type flags		*/
24078 
24079 
24080 
24081 
24082 
24083 
24084 /*	UNUSED		0x00400000	   was QHOT			*/
24085 /*	UNUSED		0x00800000	   was QNEXTHOT			*/
24086 /* 	UNUSED		0x01000000	   was _QNEXTLESS		*/
24087 
24088 
24089 
24090 
24091      /* direct interface to/from sockfs */
24092 
24093 /* queue sqflags (protected by SQLOCK). */
24094 
24095 
24096      /* This is also noted by the	*/
24097      /* q_draining field, but this one is */
24098      /* protected by SQLOCK */
24099 
24100 /*
24101  * Structure that describes the separate information
24102  * for each priority band in the queue.
24103  */
24104 typedef struct qband {
24105  struct qband *qb_next; /* next band's info */
24106  size_t qb_count; /* number of bytes in band */
24107  struct msgb *qb_first; /* beginning of band's data */
24108  struct msgb *qb_last; /* end of band's data */
24109  size_t qb_hiwat; /* high water mark for band */
24110  size_t qb_lowat; /* low water mark for band */
24111  uint_t qb_flag; /* see below */
24112  size_t qb_mblkcnt; /* mblk counter for runaway msgs */
24113 } qband_t;
24114 
24115 /*
24116  * qband flags
24117  */
24118 
24119 
24120 
24121 
24122 /*
24123  * Maximum number of bands.
24124  */
24125 
24126 
24127 /*
24128  * Fields that can be manipulated through strqset() and strqget().
24129  */
24130 typedef enum qfields {
24131  QHIWAT = 0, /* q_hiwat or qb_hiwat */
24132  QLOWAT = 1, /* q_lowat or qb_lowat */
24133  QMAXPSZ = 2, /* q_maxpsz */
24134  QMINPSZ = 3, /* q_minpsz */
24135  QCOUNT = 4, /* q_count or qb_count */
24136  QFIRST = 5, /* q_first or qb_first */
24137  QLAST = 6, /* q_last or qb_last */
24138  QFLAG = 7, /* q_flag or qb_flag */
24139  QSTRUIOT = 8, /* q_struiot */
24140  QBAD = 9
24141 } qfields_t;
24142 
24143 /*
24144  * Module information structure
24145  */
24146 struct module_info {
24147  ushort_t mi_idnum; /* module id number */
24148  char *mi_idname; /* module name */
24149  ssize_t mi_minpsz; /* min packet size accepted */
24150  ssize_t mi_maxpsz; /* max packet size accepted */
24151  size_t mi_hiwat; /* hi-water mark */
24152  size_t mi_lowat; /* lo-water mark */
24153 };
24154 
24155 /*
24156  * queue information structure (with Synchronous STREAMS extensions)
24157  */
24158 struct qinit {
24159  int (*qi_putp)(); /* put procedure */
24160  int (*qi_srvp)(); /* service procedure */
24161  int (*qi_qopen)(); /* called on startup */
24162  int (*qi_qclose)(); /* called on finish */
24163  int (*qi_qadmin)(); /* for future use */
24164  struct module_info *qi_minfo; /* module information structure */
24165  struct module_stat *qi_mstat; /* module statistics structure */
24166  int (*qi_rwp)(); /* r/w procedure */
24167  int (*qi_infop)(); /* information procedure */
24168  int qi_struiot; /* stream uio type for struio() */
24169 };
24170 
24171 /*
24172  * Values for qi_struiot and q_struiot:
24173  */
24174 
24175 
24176 
24177 
24178 /*
24179  * Streamtab (used in cdevsw and fmodsw to point to module or driver)
24180  */
24181 struct streamtab {
24182  struct qinit *st_rdinit;
24183  struct qinit *st_wrinit;
24184  struct qinit *st_muxrinit;
24185  struct qinit *st_muxwinit;
24186 };
24187 
24188 /*
24189  * Structure sent to mux drivers to indicate a link.
24190  */
24191 struct linkblk {
24192  queue_t *l_qtop; /* lowest level write queue of upper stream */
24193     /* (set to NULL for persistent links) */
24194  queue_t *l_qbot; /* highest level write queue of lower stream */
24195  int l_index; /* index for lower stream. */
24196 };
24197 
24198 /*
24199  * Esballoc data buffer freeing routine
24200  */
24201 typedef struct free_rtn {
24202  void (*free_func)();
24203  caddr_t free_arg;
24204 } frtn_t;
24205 
24206 /*
24207  * Data block descriptor
24208  *
24209  * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields,
24210  * as described in datab(9S).  Everything else is implementation-private.
24211  */
24212 
24213 
24214 
24215 typedef struct datab {
24216  frtn_t *db_frtnp;
24217  unsigned char *db_base;
24218  unsigned char *db_lim;
24219  unsigned char db_ref;
24220  unsigned char db_type;
24221  unsigned char db_flags;
24222  unsigned char db_struioflag;
24223  pid_t db_cpid; /* cached pid, needs verification */
24224  void *db_cache; /* kmem cache descriptor */
24225  struct msgb *db_mblk;
24226  void (*db_free)(struct msgb *, struct datab *);
24227  void (*db_lastfree)(struct msgb *, struct datab *);
24228  intptr_t db_cksumstart;
24229  intptr_t db_cksumend;
24230  intptr_t db_cksumstuff;
24231  union {
24232   double enforce_alignment;
24233   unsigned char data[8];
24234   struct {
24235    union {
24236     uint32_t u32;
24237     uint16_t u16;
24238    } cksum_val; /* used to store calculated cksum */
24239    uint16_t flags;
24240    uint16_t pad;
24241   } cksum;
24242   /*
24243 		 * Union used for future extensions (pointer to data ?).
24244 		 */
24245  } db_struioun;
24246  struct fthdr *db_fthdr;
24247  cred_t *db_credp; /* credential */
24248 } dblk_t;
24249 
24250 
24251 
24252 
24253 /*
24254  * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>).
24255  */
24256 
24257 
24258 
24259 /*
24260  * Used by GLDv2 to store the TCI information.
24261  */
24262 
24263 
24264 /*
24265  * Message block descriptor
24266  */
24267 typedef struct msgb {
24268  struct msgb *b_next;
24269  struct msgb *b_prev;
24270  struct msgb *b_cont;
24271  unsigned char *b_rptr;
24272  unsigned char *b_wptr;
24273  struct datab *b_datap;
24274  unsigned char b_band;
24275  unsigned char b_tag;
24276  unsigned short b_flag;
24277  queue_t *b_queue; /* for sync queues */
24278 } mblk_t;
24279 
24280 /*
24281  * bcache descriptor
24282  */
24283 typedef struct bcache {
24284  kmutex_t mutex;
24285  struct kmem_cache *buffer_cache;
24286  struct kmem_cache *dblk_cache;
24287  int alloc;
24288  int destroy;
24289  size_t size;
24290  uint_t align;
24291 } bcache_t;
24292 
24293 /*
24294  * db_flags values (all implementation private!)
24295  */
24296 
24297 
24298 
24299 
24300 /*
24301  * db_struioflag values:
24302  */
24303 
24304 
24305 
24306 
24307 
24308 
24309 /*
24310  * Message flags.  These are interpreted by the stream head.
24311  */
24312 
24313 
24314     /* write side of stream */
24315 
24316 /*	UNUSED		0x08	   was MSGNOGET (can be recycled) */
24317 
24318 
24319 
24320 
24321 /*
24322  * Streams message types.
24323  */
24324 
24325 /*
24326  * Data and protocol messages (regular and priority)
24327  */
24328 
24329 
24330 
24331 
24332 /*
24333  * Control messages (regular and priority)
24334  */
24335 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24336 /*
24337  * Control messages (high priority; go to head of queue)
24338  */
24339 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24340 /*
24341  * Queue message class definitions.
24342  */
24343 
24344 
24345 
24346 /*
24347  *  IOCTL structure - this structure is the format of the M_IOCTL message type.
24348  */
24349 # 488 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24350 struct iocblk {
24351  int ioc_cmd; /* ioctl command type */
24352  cred_t *ioc_cr; /* full credentials */
24353  uint_t ioc_id; /* ioctl id */
24354  size_t ioc_count; /* count of bytes in data field */
24355  int ioc_error; /* error code */
24356  int ioc_rval; /* return value  */
24357  int ioc_fill1;
24358  uint_t ioc_flag; /* see below */
24359  int ioc_filler[2]; /* reserved for future use */
24360 };
24361 
24362 
24363 typedef struct iocblk *IOCP;
24364 
24365 /* {ioc,cp}_flags values */
24366 
24367 
24368 
24369 
24370 
24371 
24372 
24373 /*
24374  *	Is the ioctl data formatted for our native model?
24375  */
24376 
24377 
24378 
24379 /*
24380  * structure for the M_COPYIN and M_COPYOUT message types.
24381  */
24382 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24383 struct copyreq {
24384  int cq_cmd; /* ioctl command (from ioc_cmd) */
24385  cred_t *cq_cr; /* full credentials */
24386  uint_t cq_id; /* ioctl id (from ioc_id) */
24387  caddr_t cq_addr; /* address to copy data to/from */
24388  size_t cq_size; /* number of bytes to copy */
24389  uint_t cq_flag; /* must be zero */
24390  mblk_t *cq_private; /* private state information */
24391  int cq_filler[4]; /* reserved for future use */
24392 };
24393 
24394 
24395 /*
24396  * structure for the M_IOCDATA message type.
24397  */
24398 # 557 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24399 struct copyresp {
24400  int cp_cmd; /* ioctl command (from ioc_cmd) */
24401  cred_t *cp_cr; /* full credentials */
24402  uint_t cp_id; /* ioctl id (from ioc_id) */
24403  caddr_t cp_rval; /* status of request: 0 -> success */
24404      /* 		non-zero -> failure */
24405  size_t cp_pad1;
24406  uint_t cp_pad2;
24407  mblk_t *cp_private; /* private state information */
24408  uint_t cp_flag; /* datamodel IOC_ flags; see above */
24409  int cp_filler[3];
24410 };
24411 
24412 
24413 /*
24414  * Since these structures are all intended to travel in the same message
24415  * at different stages of a STREAMS ioctl, this union is used to determine
24416  * the message size in strdoioctl().
24417  */
24418 union ioctypes {
24419  struct iocblk iocblk;
24420  struct copyreq copyreq;
24421  struct copyresp copyresp;
24422 };
24423 
24424 /*
24425  * Options structure for M_SETOPTS message.  This is sent upstream
24426  * by a module or driver to set stream head options.
24427  */
24428 struct stroptions {
24429  uint_t so_flags; /* options to set */
24430  short so_readopt; /* read option */
24431  ushort_t so_wroff; /* write offset */
24432  ssize_t so_minpsz; /* minimum read packet size */
24433  ssize_t so_maxpsz; /* maximum read packet size */
24434  size_t so_hiwat; /* read queue high water mark */
24435  size_t so_lowat; /* read queue low water mark */
24436  unsigned char so_band; /* band for water marks */
24437  ushort_t so_erropt; /* error option */
24438  ssize_t so_maxblk; /* maximum message block size */
24439  ushort_t so_copyopt; /* copy options (see stropts.h) */
24440  ushort_t so_tail; /* space available at the end */
24441 };
24442 
24443 /* flags for stream options set message */
24444 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24445 /*
24446  * Miscellaneous parameters and flags.
24447  */
24448 
24449 /*
24450  * Values for stream flag in open to indicate module open, clone open,
24451  * and the return value for failure.
24452  */
24453 
24454 
24455 
24456 
24457 /*
24458  * Priority definitions for block allocation.
24459  */
24460 
24461 
24462 
24463 
24464 /*
24465  * Value for packet size that denotes infinity
24466  */
24467 
24468 
24469 /*
24470  * Flags for flushq()
24471  */
24472 
24473 
24474 
24475 /*
24476  * Flag for transparent ioctls
24477  */
24478 
24479 
24480 /*
24481  * Stream head default high/low water marks
24482  */
24483 
24484 
24485 
24486 /*
24487  * qwriter perimeter types
24488  */
24489 
24490 
24491 
24492 /*
24493  * Definitions of Streams macros and function interfaces.
24494  */
24495 
24496 /*
24497  * canenable - check if queue can be enabled by putq().
24498  */
24499 
24500 
24501 /*
24502  * Test if data block type is one of the data messages (i.e. not a control
24503  * message).
24504  */
24505 
24506 
24507 
24508 
24509 
24510 
24511 
24512 /*
24513  * Extract queue class of message block.
24514  */
24515 
24516 
24517 /*
24518  * Align address on next lower word boundary.
24519  */
24520 
24521 
24522 /*
24523  * Find the max size of data block.
24524  */
24525 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
24526 
24527 /*
24528  * Symbols such as htonl() are required to be exposed through this file,
24529  * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h>
24530  */
24531 
24532 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1
24533 /*
24534  * CDDL HEADER START
24535  *
24536  * The contents of this file are subject to the terms of the
24537  * Common Development and Distribution License (the "License").
24538  * You may not use this file except in compliance with the License.
24539  *
24540  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24541  * or http://www.opensolaris.org/os/licensing.
24542  * See the License for the specific language governing permissions
24543  * and limitations under the License.
24544  *
24545  * When distributing Covered Code, include this CDDL HEADER in each
24546  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24547  * If applicable, add the following below this CDDL HEADER, with the
24548  * fields enclosed by brackets "[]" replaced with your own identifying
24549  * information: Portions Copyright [yyyy] [name of copyright owner]
24550  *
24551  * CDDL HEADER END
24552  */
24553 
24554 /*
24555  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24556  * Use is subject to license terms.
24557  */
24558 
24559 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
24560 /*	  All Rights Reserved  	*/
24561 
24562 /*
24563  * University Copyright- Copyright (c) 1982, 1986, 1988
24564  * The Regents of the University of California
24565  * All Rights Reserved
24566  *
24567  * University Acknowledgment- Portions of this document are derived from
24568  * software developed by the University of California, Berkeley, and its
24569  * contributors.
24570  */
24571 
24572 
24573 
24574 
24575 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
24576 /*
24577  * CDDL HEADER START
24578  *
24579  * The contents of this file are subject to the terms of the
24580  * Common Development and Distribution License (the "License").
24581  * You may not use this file except in compliance with the License.
24582  *
24583  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24584  * or http://www.opensolaris.org/os/licensing.
24585  * See the License for the specific language governing permissions
24586  * and limitations under the License.
24587  *
24588  *
24589  * When distributing Covered Code, include this CDDL HEADER in each
24590  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24591  * If applicable, add the following below this CDDL HEADER, with the
24592  * fields enclosed by brackets "[]" replaced with your own identifying
24593  * information: Portions Copyright [yyyy] [name of copyright owner]
24594  *
24595  * CDDL HEADER END
24596  */
24597 
24598 /*
24599  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24600  * Use is subject to license terms.
24601  * Copyright 2016 Joyent, Inc.
24602  */
24603 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
24604 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
24605 /*
24606  * CDDL HEADER START
24607  *
24608  * The contents of this file are subject to the terms of the
24609  * Common Development and Distribution License, Version 1.0 only
24610  * (the "License").  You may not use this file except in compliance
24611  * with the License.
24612  *
24613  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24614  * or http://www.opensolaris.org/os/licensing.
24615  * See the License for the specific language governing permissions
24616  * and limitations under the License.
24617  *
24618  * When distributing Covered Code, include this CDDL HEADER in each
24619  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24620  * If applicable, add the following below this CDDL HEADER, with the
24621  * fields enclosed by brackets "[]" replaced with your own identifying
24622  * information: Portions Copyright [yyyy] [name of copyright owner]
24623  *
24624  * CDDL HEADER END
24625  */
24626 /*
24627  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24628  *
24629  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24630  * Use is subject to license terms.
24631  */
24632 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
24633 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
24634 /*
24635  * macros for conversion between host and (internet) network byte order
24636  */
24637 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
24638 typedef uint16_t in_port_t;
24639 
24640 
24641 
24642 
24643 typedef uint32_t in_addr_t;
24644 
24645 
24646 
24647 extern uint32_t htonl(uint32_t);
24648 extern uint16_t htons(uint16_t);
24649 extern uint32_t ntohl(uint32_t);
24650 extern uint16_t ntohs(uint16_t);
24651 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
24652 extern uint64_t htonll(uint64_t);
24653 extern uint64_t ntohll(uint64_t);
24654 
24655 
24656 
24657 
24658 
24659 
24660 /*
24661  * Macros to reverse byte order
24662  */
24663 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
24664 /*
24665  * Macros to convert from a specific byte order to/from native byte order
24666  */
24667 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
24668 /*
24669  * Macros to read unaligned values from a specific byte order to
24670  * native byte order
24671  */
24672 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
24673 /*
24674  * Macros to write unaligned values from native byte order to a specific byte
24675  * order.
24676  */
24677 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
24678 
24679 
24680 
24681 
24682 
24683 
24684 
24685 /*
24686  * Note: IPv4 address data structures usage conventions.
24687  * The "in_addr_t" type below (required by Unix standards)
24688  * is NOT a typedef of "struct in_addr" and violates the usual
24689  * conventions where "struct <name>" and <name>_t are corresponding
24690  * typedefs.
24691  * To minimize confusion, kernel data structures/usage prefers use
24692  * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t"
24693  * The user level APIs continue to follow the historic popular
24694  * practice of using "struct in_addr".
24695  */
24696 
24697 
24698 
24699 
24700 
24701 
24702 
24703 typedef uint32_t ipaddr_t;
24704 
24705 
24706 
24707 
24708 struct in6_addr {
24709  union {
24710   /*
24711 		 * Note: Static initalizers of "union" type assume
24712 		 * the constant on the RHS is the type of the first member
24713 		 * of union.
24714 		 * To make static initializers (and efficient usage) work,
24715 		 * the order of members exposed to user and kernel view of
24716 		 * this data structure is different.
24717 		 * User environment sees specified uint8_t type as first
24718 		 * member whereas kernel sees most efficient type as
24719 		 * first member.
24720 		 */
24721 
24722 
24723 
24724 
24725   uint8_t _S6_u8[16]; /* IPv6 address */
24726   uint32_t _S6_u32[4]; /* IPv6 address */
24727 
24728   uint32_t __S6_align; /* Align on 32 bit boundary */
24729  } _S6_un;
24730 };
24731 
24732 
24733 
24734 
24735 
24736 
24737 
24738 typedef struct in6_addr in6_addr_t;
24739 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24740 /*
24741  * Protocols
24742  *
24743  * Some of these constant names are copied for the DTrace IP provider in
24744  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
24745  * in sync.
24746  */
24747 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24748       /* Transmission Protocol */
24749 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24750 /*
24751  * Port/socket numbers: network standard functions
24752  *
24753  * Entries should exist here for each port number compiled into an ON
24754  * component, such as snoop.
24755  */
24756 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24757 /*
24758  * Port/socket numbers: host specific functions
24759  */
24760 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24761 /*
24762  * Internet Key Exchange (IKE) ports
24763  */
24764 
24765 
24766 
24767 /*
24768  * UNIX TCP sockets
24769  */
24770 
24771 
24772 
24773 
24774 
24775 
24776 /*
24777  * UNIX UDP sockets
24778  */
24779 
24780 
24781 
24782 
24783 
24784 
24785 
24786 /*
24787  * DHCPv6 UDP ports
24788  */
24789 
24790 
24791 
24792 
24793 
24794 /*
24795  * Ports < IPPORT_RESERVED are reserved for
24796  * privileged processes (e.g. root).
24797  * Ports > IPPORT_USERRESERVED are reserved
24798  * for servers, not necessarily privileged.
24799  */
24800 
24801 
24802 
24803 /*
24804  * Link numbers
24805  */
24806 
24807 
24808 
24809 
24810 /*
24811  * IPv4 Internet address
24812  *	This definition contains obsolete fields for compatibility
24813  *	with SunOS 3.x and 4.2bsd.  The presence of subnets renders
24814  *	divisions into fixed fields misleading at best.  New code
24815  *	should use only the s_addr field.
24816  */
24817 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24818 struct in_addr {
24819  union {
24820   struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b;
24821   struct { uint16_t s_w1, s_w2; } S_un_w;
24822 
24823   uint32_t S_addr;
24824 
24825 
24826 
24827  } S_un;
24828 
24829 
24830 
24831 
24832 
24833 
24834 };
24835 
24836 /*
24837  * Definitions of bits in internet address integers.
24838  * On subnets, the decomposition of addresses to host and net parts
24839  * is done according to subnet mask, not the masks here.
24840  *
24841  * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB,
24842  * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto
24843  * obsolete". IN_MULTICAST macro should be used to test if a address
24844  * is a multicast address.
24845  */
24846 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24847 /*
24848  * We have removed CLASS E checks from the kernel
24849  * But we preserve these defines for userland in order
24850  * to avoid compile  breakage of some 3rd party piece of software
24851  */
24852 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24853 /* Scoped IPv4 prefixes (in host byte-order) */
24854 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24855 /* RFC 3927 IPv4 link local address (i in host byte-order) */
24856 
24857 
24858 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */
24859 
24860 
24861 
24862 
24863 
24864 
24865 /*
24866  * Define a macro to stuff the loopback address into an Internet address
24867  */
24868 
24869 
24870 
24871 
24872 
24873 
24874 /*
24875  * IPv4 Socket address.
24876  */
24877 struct sockaddr_in {
24878  sa_family_t sin_family;
24879  in_port_t sin_port;
24880  struct in_addr sin_addr;
24881 
24882  char sin_zero[8];
24883 
24884 
24885 
24886 };
24887 
24888 
24889 /*
24890  * IPv6 socket address.
24891  */
24892 struct sockaddr_in6 {
24893  sa_family_t sin6_family;
24894  in_port_t sin6_port;
24895  uint32_t sin6_flowinfo;
24896  struct in6_addr sin6_addr;
24897  uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */
24898  uint32_t __sin6_src_id; /* Impl. specific - UDP replies */
24899 };
24900 
24901 /*
24902  * Macros for accessing the traffic class and flow label fields from
24903  * sin6_flowinfo.
24904  * These are designed to be applied to a 32-bit value.
24905  */
24906 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24907 /* masks */
24908 
24909 
24910 
24911 
24912 
24913 /*
24914  * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for
24915  * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t)
24916  * only. They need to be different for User/Kernel versions because union
24917  * component data structure is defined differently (it is identical at
24918  * binary representation level).
24919  *
24920  * const struct in6_addr IN6ADDR_ANY_INIT;
24921  * const struct in6_addr IN6ADDR_LOOPBACK_INIT;
24922  */
24923 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24924 /*
24925  * RFC 2553 specifies the following macros. Their type is defined
24926  * as "int" in the RFC but they only have boolean significance
24927  * (zero or non-zero). For the purposes of our comment notation,
24928  * we assume a hypothetical type "bool" defined as follows to
24929  * write the prototypes assumed for macros in our comments better.
24930  *
24931  * typedef int bool;
24932  */
24933 
24934 /*
24935  * IN6 macros used to test for special IPv6 addresses
24936  * (Mostly from spec)
24937  *
24938  * bool  IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
24939  * bool  IN6_IS_ADDR_LOOPBACK    (const struct in6_addr *);
24940  * bool  IN6_IS_ADDR_MULTICAST   (const struct in6_addr *);
24941  * bool  IN6_IS_ADDR_LINKLOCAL   (const struct in6_addr *);
24942  * bool  IN6_IS_ADDR_SITELOCAL   (const struct in6_addr *);
24943  * bool  IN6_IS_ADDR_V4MAPPED    (const struct in6_addr *);
24944  * bool  IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553
24945  * bool  IN6_IS_ADDR_V4COMPAT    (const struct in6_addr *);
24946  * bool  IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553
24947  * bool  IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
24948  * bool  IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
24949  * bool  IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
24950  * bool  IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
24951  * bool  IN6_IS_ADDR_MC_GLOBAL   (const struct in6_addr *);
24952  * bool  IN6_IS_ADDR_6TO4	 (const struct in6_addr *); -- Not from RFC2553
24953  * bool  IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *,
24954  *	     const struct in6_addr *);			    -- Not from RFC2553
24955  * bool  IN6_IS_ADDR_LINKSCOPE	 (const struct in6addr  *); -- Not from RFC2553
24956  */
24957 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24958 /*
24959  * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY
24960  * Note: This macro is currently NOT defined in RFC2553 specification
24961  * and not a standard macro that portable applications should use.
24962  */
24963 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24964 /* Exclude loopback and unspecified address */
24965 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24966 /*
24967  * Note:
24968  * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553
24969  * specification and not a standard macro that portable applications
24970  * should use.
24971  */
24972 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24973 /*
24974  * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or
24975  * RFC, and shouldn't be used by portable applications.  It is used to see
24976  * if an address is a solicited-node multicast address, which is prefixed
24977  * with ff02:0:0:0:0:1:ff00::/104.
24978  */
24979 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24980 /*
24981  * Macros to a) test for 6to4 IPv6 address, and b) to test if two
24982  * 6to4 addresses have the same /48 prefix, and, hence, are from the
24983  * same 6to4 site.
24984  */
24985 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
24986 /*
24987  * IN6_IS_ADDR_LINKSCOPE
24988  * Identifies an address as being either link-local, link-local multicast or
24989  * node-local multicast.  All types of addresses are considered to be unique
24990  * within the scope of a given link.
24991  */
24992 
24993 
24994 
24995 
24996 /*
24997  * Useful utility macros for operations with IPv6 addresses
24998  * Note: These macros are NOT defined in the RFC2553 or any other
24999  * standard specification and are not standard macros that portable
25000  * applications should use.
25001  */
25002 
25003 /*
25004  * IN6_V4MAPPED_TO_INADDR
25005  * IN6_V4MAPPED_TO_IPADDR
25006  *	Assign a IPv4-Mapped IPv6 address to an IPv4 address.
25007  *	Note: These macros are NOT defined in RFC2553 or any other standard
25008  *	specification and are not macros that portable applications should
25009  *	use.
25010  *
25011  * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4);
25012  * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4);
25013  *
25014  */
25015 
25016 
25017 
25018 
25019 
25020 /*
25021  * IN6_INADDR_TO_V4MAPPED
25022  * IN6_IPADDR_TO_V4MAPPED
25023  *	Assign a IPv4 address address to an IPv6 address as a IPv4-mapped
25024  *	address.
25025  *	Note: These macros are NOT defined in RFC2553 or any other standard
25026  *	specification and are not macros that portable applications should
25027  *	use.
25028  *
25029  * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6);
25030  * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6);
25031  *
25032  */
25033 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25034 /*
25035  * IN6_6TO4_TO_V4ADDR
25036  *	Extract the embedded IPv4 address from the prefix to a 6to4 IPv6
25037  *      address.
25038  *	Note: This macro is NOT defined in RFC2553 or any other standard
25039  *	specification and is not a macro that portable applications should
25040  *	use.
25041  *	Note: we don't use the IPADDR form of the macro because we need
25042  *	to do a bytewise copy; the V4ADDR in the 6to4 address is not
25043  *	32-bit aligned.
25044  *
25045  * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4);
25046  *
25047  */
25048 
25049 
25050 
25051 
25052 
25053 
25054 /*
25055  * IN6_V4ADDR_TO_6TO4
25056  *	Given an IPv4 address and an IPv6 address for output, a 6to4 address
25057  *	will be created from the IPv4 Address.
25058  *	Note:  This method for creating 6to4 addresses is not standardized
25059  *	outside of Solaris.  The newly created 6to4 address will be of the form
25060  *	2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and
25061  *	HOSTID will equal 1.
25062  *
25063  * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6)
25064  *
25065  */
25066 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25067 /*
25068  * IN6_ARE_ADDR_EQUAL (defined in RFC2292)
25069  *	 Compares if IPv6 addresses are equal.
25070  * Note: Compares in order of high likelyhood of a miss so we minimize
25071  * compares. (Current heuristic order, compare in reverse order of
25072  * uint32_t units)
25073  *
25074  * bool  IN6_ARE_ADDR_EQUAL(const struct in6_addr *,
25075  *			    const struct in6_addr *);
25076  */
25077 
25078 
25079 
25080 
25081 
25082 
25083 /*
25084  * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs)
25085  *	Compares if prefixed parts of IPv6 addresses are equal.
25086  *
25087  * uint32_t IN6_MASK_FROM_PREFIX(int, int);
25088  * bool     IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *,
25089  *				       const struct in6_addr *,
25090  *				       int);
25091  */
25092 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25093 /*
25094  * Options for use with [gs]etsockopt at the IP level.
25095  *
25096  * Note: Some of the IP_ namespace has conflict with and
25097  * and is exposed through <xti.h>. (It also requires exposing
25098  * options not implemented). The options with potential
25099  * for conflicts use #ifndef guards.
25100  */
25101 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25102 /*
25103  * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in
25104  * is used to differentiate b/w the two.
25105  */
25106 
25107 
25108 
25109 
25110 
25111 /*
25112  * Different preferences that can be requested from IPSEC protocols.
25113  */
25114 
25115 
25116 
25117 
25118 /*
25119  * This can be used with the setsockopt() call to set per socket security
25120  * options. When the application uses per-socket API, we will reflect
25121  * the request on both outbound and inbound packets.
25122  */
25123 
25124 typedef struct ipsec_req {
25125  uint_t ipsr_ah_req; /* AH request */
25126  uint_t ipsr_esp_req; /* ESP request */
25127  uint_t ipsr_self_encap_req; /* Self-Encap request */
25128  uint8_t ipsr_auth_alg; /* Auth algs for AH */
25129  uint8_t ipsr_esp_alg; /* Encr algs for ESP */
25130  uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */
25131 } ipsec_req_t;
25132 
25133 /*
25134  * MCAST_* options are protocol-independent.  The actual definitions
25135  * are with the v6 options below; this comment is here to note the
25136  * namespace usage.
25137  *
25138  * #define	MCAST_JOIN_GROUP	0x29
25139  * #define	MCAST_LEAVE_GROUP	0x2a
25140  * #define	MCAST_BLOCK_SOURCE	0x2b
25141  * #define	MCAST_UNBLOCK_SOURCE	0x2c
25142  * #define	MCAST_JOIN_SOURCE_GROUP	0x2d
25143  * #define	MCAST_LEAVE_SOURCE_GROUP 0x2e
25144  */
25145 
25146 
25147 /*
25148  * SunOS private (potentially not portable) IP_ option names
25149  */
25150 
25151 
25152 
25153 /* can be reused		0x44 */
25154 
25155 
25156 /*
25157  * Option values and names (when !_XPG5) shared with <xti_inet.h>
25158  */
25159 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25160 /*
25161  * The following option values are reserved by <xti_inet.h>
25162  *
25163  * T_IP_OPTIONS	0x107	 -  IP per-packet options
25164  * T_IP_TOS	0x108	 -  IP per packet type of service
25165  */
25166 
25167 /*
25168  * Default value constants for multicast attributes controlled by
25169  * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options.
25170  */
25171 
25172 
25173 
25174 
25175 /*
25176  * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
25177  */
25178 struct ip_mreq {
25179  struct in_addr imr_multiaddr; /* IP multicast address of group */
25180  struct in_addr imr_interface; /* local IP address of interface */
25181 };
25182 
25183 /*
25184  * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE,
25185  * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP.
25186  */
25187 struct ip_mreq_source {
25188  struct in_addr imr_multiaddr; /* IP address of group */
25189  struct in_addr imr_sourceaddr; /* IP address of source */
25190  struct in_addr imr_interface; /* IP address of interface */
25191 };
25192 
25193 /*
25194  * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on
25195  * IPv6 addresses.
25196  */
25197 struct ipv6_mreq {
25198  struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */
25199  unsigned int ipv6mr_interface; /* interface index */
25200 };
25201 
25202 /*
25203  * Use #pragma pack() construct to force 32-bit alignment on amd64.
25204  * This is needed to keep the structure size and offsets consistent
25205  * between a 32-bit app and the 64-bit amd64 kernel in structures
25206  * where 64-bit alignment would create gaps (in this case, structures
25207  * which have a uint32_t followed by a struct sockaddr_storage).
25208  */
25209 
25210 
25211 
25212 
25213 /*
25214  * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP.
25215  */
25216 struct group_req {
25217  uint32_t gr_interface; /* interface index */
25218  struct sockaddr_storage gr_group; /* group address */
25219 };
25220 
25221 /*
25222  * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE,
25223  * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP.
25224  */
25225 struct group_source_req {
25226  uint32_t gsr_interface; /* interface index */
25227  struct sockaddr_storage gsr_group; /* group address */
25228  struct sockaddr_storage gsr_source; /* source address */
25229 };
25230 
25231 /*
25232  * Argument for SIOC[GS]MSFILTER ioctls
25233  */
25234 struct group_filter {
25235  uint32_t gf_interface; /* interface index */
25236  struct sockaddr_storage gf_group; /* multicast address */
25237  uint32_t gf_fmode; /* filter mode */
25238  uint32_t gf_numsrc; /* number of sources */
25239  struct sockaddr_storage gf_slist[1]; /* source address */
25240 };
25241 # 1078 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25242 /*
25243  * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific)
25244  */
25245 struct ip_msfilter {
25246  struct in_addr imsf_multiaddr; /* IP multicast address of group */
25247  struct in_addr imsf_interface; /* local IP address of interface */
25248  uint32_t imsf_fmode; /* filter mode */
25249  uint32_t imsf_numsrc; /* number of sources in src_list */
25250  struct in_addr imsf_slist[1]; /* start of source list */
25251 };
25252 
25253 
25254 
25255 
25256 
25257 /*
25258  * Multicast source filter manipulation functions in libsocket;
25259  * defined in RFC 3678.
25260  */
25261 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t,
25262    uint_t, struct sockaddr_storage *);
25263 
25264 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *,
25265    uint_t *, struct sockaddr_storage *);
25266 
25267 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
25268    uint32_t, struct in_addr *);
25269 
25270 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
25271    uint32_t *, struct in_addr *);
25272 
25273 /*
25274  * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter()
25275  */
25276 
25277 
25278 
25279 /*
25280  * Argument struct for IP_PKTINFO option
25281  */
25282 typedef struct in_pktinfo {
25283  unsigned int ipi_ifindex; /* send/recv interface index */
25284  struct in_addr ipi_spec_dst; /* matched source address */
25285  struct in_addr ipi_addr; /* src/dst address in IP hdr */
25286 } in_pktinfo_t;
25287 
25288 /*
25289  * Argument struct for IPV6_PKTINFO option
25290  */
25291 struct in6_pktinfo {
25292  struct in6_addr ipi6_addr; /* src/dst IPv6 address */
25293  unsigned int ipi6_ifindex; /* send/recv interface index */
25294 };
25295 
25296 /*
25297  * Argument struct for IPV6_MTUINFO option
25298  */
25299 struct ip6_mtuinfo {
25300  struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
25301  uint32_t ip6m_mtu; /* path MTU in host byte order */
25302 };
25303 
25304 /*
25305  * IPv6 routing header types
25306  */
25307 
25308 
25309 extern socklen_t inet6_rth_space(int type, int segments);
25310 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments);
25311 extern int inet6_rth_add(void *bp, const struct in6_addr *addr);
25312 extern int inet6_rth_reverse(const void *in, void *out);
25313 extern int inet6_rth_segments(const void *bp);
25314 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index);
25315 
25316 extern int inet6_opt_init(void *extbuf, socklen_t extlen);
25317 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset,
25318  uint8_t type, socklen_t len, uint_t align, void **databufp);
25319 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset);
25320 extern int inet6_opt_set_val(void *databuf, int offset, void *val,
25321  socklen_t vallen);
25322 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset,
25323  uint8_t *typep, socklen_t *lenp, void **databufp);
25324 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset,
25325  uint8_t type, socklen_t *lenp, void **databufp);
25326 extern int inet6_opt_get_val(void *databuf, int offset, void *val,
25327  socklen_t vallen);
25328 
25329 
25330 /*
25331  * Argument structure for IP_ADD_PROXY_ADDR.
25332  * Note that this is an unstable, experimental interface. It may change
25333  * later. Don't use it unless you know what it is.
25334  */
25335 typedef struct {
25336  struct in_addr in_prefix_addr;
25337  unsigned int in_prefix_len;
25338 } in_prefix_t;
25339 
25340 
25341 
25342 /*
25343  * IPv6 options
25344  */
25345 
25346      /* packets. */
25347      /* argument type: uint_t */
25348 
25349      /* multicast packets. */
25350      /* argument type: struct in6_addr */
25351 
25352      /* multicast packets. */
25353      /* argument type: uint_t */
25354 
25355      /* multicast packets on same socket. */
25356      /* argument type: uint_t */
25357 
25358      /* argument type: struct ipv6_mreq */
25359 
25360      /* argument type: struct ipv6_mreq */
25361 
25362 /*
25363  * Other XPG6 constants.
25364  */
25365 
25366      /* decimal notation. */
25367 
25368      /* standard colon-hex notation. */
25369 
25370 
25371 
25372 
25373 
25374 /*
25375  * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept
25376  * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP
25377  * and IPV6_LEAVE_GROUP respectively.
25378  */
25379 
25380      /* argument type: struct ipv6_mreq */
25381 
25382      /* argument type: struct ipv6_mreq */
25383 
25384 
25385      /* arg type: "struct in6_pktingo" - */
25386 
25387 
25388 
25389 
25390      /* the routing header */
25391 
25392 
25393      /* the routing header */
25394 
25395 
25396 
25397 
25398 /*
25399  * This options exists for backwards compatability and should no longer be
25400  * used.  Use IPV6_RECVDSTOPTS instead.
25401  */
25402 
25403 
25404 
25405 
25406 /*
25407  * enable/disable IPV6_RTHDRDSTOPTS.  Now obsolete.  IPV6_RECVDSTOPTS enables
25408  * the receipt of both headers.
25409  */
25410 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25411 /*
25412  * enable/disable receipt of both both IPV6_DSTOPTS headers.
25413  */
25414 
25415 
25416 /*
25417  * protocol-independent multicast membership options.
25418  */
25419 
25420 
25421 
25422 
25423 
25424 
25425 
25426 /* 32Bit field for IPV6_SRC_PREFERENCES */
25427 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25428 /*
25429  * SunOS private (potentially not portable) IPV6_ option names
25430  */
25431 
25432 
25433      /* unspecified (all zeros) */
25434 
25435 /*
25436  * Miscellaneous IPv6 constants.
25437  */
25438 
25439 
25440 
25441 
25442 /*
25443  * Extern declarations for pre-defined global const variables
25444  */
25445 
25446 
25447 
25448 extern const struct in6_addr in6addr_any;
25449 extern const struct in6_addr in6addr_loopback;
25450 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
25451 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25452 /*
25453  * Definitions related to sockets: types, address families, options.
25454  */
25455 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25456 /*
25457  * Types
25458  */
25459 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25460 /*
25461  * Flags for socket() and accept4()
25462  */
25463 
25464 
25465 
25466 
25467 /*
25468  * Option flags per-socket.
25469  */
25470 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25471 /*
25472  * Socket options are passed using a signed integer, but it is also rare
25473  * for more than one to ever be passed at the same time with setsockopt
25474  * and only one at a time can be retrieved with getsockopt.
25475  *
25476  * Since the lower numbers cannot be renumbered for compatibility reasons,
25477  * it would seem that we need to start a new number space (0x40000000 -
25478  * 0x7fffffff) for those that don't need to be stored as a bit flag
25479  * somewhere. This limits the flag options to 30 but that seems to be
25480  * plenty, anyway. 0x40000000 is reserved for future use.
25481  */
25482 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25483 /*
25484  * N.B.: The following definition is present only for compatibility
25485  * with release 3.0.  It will disappear in later releases.
25486  */
25487 
25488 
25489 /*
25490  * Additional options, not kept in so_options.
25491  */
25492 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25493 /* "Socket"-level control message types: */
25494 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25495 /*
25496  * Socket filter options
25497  */
25498 
25499 
25500 
25501 
25502 
25503 /*
25504  * Structure returned by FIL_LIST
25505  */
25506 struct fil_info {
25507  int fi_flags; /* see below (FILF_*) */
25508  int fi_pos; /* position (0 is bottom) */
25509  char fi_name[32]; /* filter name */
25510 };
25511 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25512 /*
25513  * Structure used for manipulating linger option.
25514  */
25515 struct linger {
25516  int l_onoff; /* option on/off */
25517  int l_linger; /* linger time */
25518 };
25519 
25520 /*
25521  * Levels for (get/set)sockopt() that don't apply to a specific protocol.
25522  */
25523 
25524 
25525 
25526 
25527 
25528 
25529 
25530 /*
25531  * Address families.
25532  *
25533  * Some of these constant names are copied for the DTrace IP provider in
25534  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
25535  * in sync.
25536  */
25537 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25538 /*
25539  * Protocol families, same as address families for now.
25540  */
25541 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25542 /*
25543  * Maximum queue length specifiable by listen.
25544  */
25545 
25546 
25547 /*
25548  * Message header for recvmsg and sendmsg calls.
25549  */
25550 struct msghdr {
25551  void *msg_name; /* optional address */
25552  socklen_t msg_namelen; /* size of address */
25553  struct iovec *msg_iov; /* scatter/gather array */
25554  int msg_iovlen; /* # elements in msg_iov */
25555 
25556 
25557 
25558 
25559 
25560 
25561  caddr_t msg_accrights; /* access rights sent/received */
25562  int msg_accrightslen;
25563 
25564 };
25565 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25566 /* Added for XPGv2 compliance */
25567 
25568 
25569 
25570 
25571 
25572      /* with left over data */
25573 /* End of XPGv2 compliance */
25574 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25575 /* Added for XPGv2 compliance */
25576 
25577 
25578 
25579 
25580 struct cmsghdr {
25581  socklen_t cmsg_len; /* data byte count, including hdr */
25582  int cmsg_level; /* originating protocol */
25583  int cmsg_type; /* protocol-specific type */
25584 };
25585 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
25586 extern int accept(int, struct sockaddr *, Psocklen_t);
25587 extern int accept4(int, struct sockaddr *, Psocklen_t, int);
25588 extern int bind(int, const struct sockaddr *, socklen_t);
25589 extern int connect(int, const struct sockaddr *, socklen_t);
25590 extern int getpeername(int, struct sockaddr *, Psocklen_t);
25591 extern int getsockname(int, struct sockaddr *, Psocklen_t);
25592 extern int getsockopt(int, int, int, void *, Psocklen_t);
25593 extern int listen(int, int); /* XXX - fixme???  where do I go */
25594 extern int socketpair(int, int, int, int *);
25595 extern ssize_t recv(int, void *, size_t, int);
25596 extern ssize_t recvfrom(int, void *, size_t, int,
25597  struct sockaddr *, Psocklen_t);
25598 extern ssize_t recvmsg(int, struct msghdr *, int);
25599 extern ssize_t send(int, const void *, size_t, int);
25600 extern ssize_t sendmsg(int, const struct msghdr *, int);
25601 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *,
25602  socklen_t);
25603 extern int setsockopt(int, int, int, const void *, socklen_t);
25604 extern int shutdown(int, int);
25605 extern int socket(int, int, int);
25606 
25607 
25608 extern int sockatmark(int);
25609 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
25610 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/utsname.h" 1
25611 /*
25612  * CDDL HEADER START
25613  *
25614  * The contents of this file are subject to the terms of the
25615  * Common Development and Distribution License, Version 1.0 only
25616  * (the "License").  You may not use this file except in compliance
25617  * with the License.
25618  *
25619  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25620  * or http://www.opensolaris.org/os/licensing.
25621  * See the License for the specific language governing permissions
25622  * and limitations under the License.
25623  *
25624  * When distributing Covered Code, include this CDDL HEADER in each
25625  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25626  * If applicable, add the following below this CDDL HEADER, with the
25627  * fields enclosed by brackets "[]" replaced with your own identifying
25628  * information: Portions Copyright [yyyy] [name of copyright owner]
25629  *
25630  * CDDL HEADER END
25631  */
25632 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
25633 /*	  All Rights Reserved  	*/
25634 
25635 
25636 /*
25637  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
25638  *
25639  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
25640  * Use is subject to license terms.
25641  */
25642 
25643 
25644 
25645 
25646 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
25647 /*
25648  * CDDL HEADER START
25649  *
25650  * The contents of this file are subject to the terms of the
25651  * Common Development and Distribution License (the "License").
25652  * You may not use this file except in compliance with the License.
25653  *
25654  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25655  * or http://www.opensolaris.org/os/licensing.
25656  * See the License for the specific language governing permissions
25657  * and limitations under the License.
25658  *
25659  * When distributing Covered Code, include this CDDL HEADER in each
25660  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25661  * If applicable, add the following below this CDDL HEADER, with the
25662  * fields enclosed by brackets "[]" replaced with your own identifying
25663  * information: Portions Copyright [yyyy] [name of copyright owner]
25664  *
25665  * CDDL HEADER END
25666  */
25667 
25668 /*
25669  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
25670  * Copyright 2016 Joyent, Inc.
25671  *
25672  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
25673  * Use is subject to license terms.
25674  */
25675 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/utsname.h" 2
25676 
25677 
25678 
25679 
25680 
25681 
25682     /* Must be at least 257 to	*/
25683     /* support Internet hostnames.	*/
25684 
25685 
25686 
25687 
25688 
25689 
25690 
25691 struct utsname {
25692  char sysname[257];
25693  char nodename[257];
25694  char release[257];
25695  char version[257];
25696  char machine[257];
25697 };
25698 
25699 
25700 extern struct utsname utsname;
25701 
25702 
25703 
25704 
25705 
25706 
25707 extern int uname(struct utsname *);
25708 extern int _uname(struct utsname *);
25709 
25710 
25711 extern int nuname(struct utsname *);
25712 
25713 extern int _nuname(struct utsname *);
25714 
25715 /*
25716  * On i386 in SVID.2 uname() returns a utsname structure with 8 byte members,
25717  * and nuname() returns the real struct utsname.  In SVID.3 uname and nuname
25718  * are equivalent.  Anyone who includes this header gets the SVID.3 behaviour.
25719  * The SVID.2 behaviour exists solely for compatibility, and is what is
25720  * implemented by the libc uname/_uname entrypoints.
25721  */
25722 
25723 
25724 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/utsname.h"
25725 #pragma redefine_extname uname _nuname
25726 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/utsname.h"
25727 
25728 
25729 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/utsname.h"
25730 #pragma redefine_extname _uname _nuname
25731 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/utsname.h"
25732 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
25733 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h" 1
25734 /*
25735  * CDDL HEADER START
25736  *
25737  * The contents of this file are subject to the terms of the
25738  * Common Development and Distribution License (the "License").
25739  * You may not use this file except in compliance with the License.
25740  *
25741  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25742  * or http://www.opensolaris.org/os/licensing.
25743  * See the License for the specific language governing permissions
25744  * and limitations under the License.
25745  *
25746  * When distributing Covered Code, include this CDDL HEADER in each
25747  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25748  * If applicable, add the following below this CDDL HEADER, with the
25749  * fields enclosed by brackets "[]" replaced with your own identifying
25750  * information: Portions Copyright [yyyy] [name of copyright owner]
25751  *
25752  * CDDL HEADER END
25753  */
25754 /*
25755  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
25756  * Use is subject to license terms.
25757  */
25758 
25759 
25760 
25761 
25762 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
25763 /*
25764  * CDDL HEADER START
25765  *
25766  * The contents of this file are subject to the terms of the
25767  * Common Development and Distribution License (the "License").
25768  * You may not use this file except in compliance with the License.
25769  *
25770  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25771  * or http://www.opensolaris.org/os/licensing.
25772  * See the License for the specific language governing permissions
25773  * and limitations under the License.
25774  *
25775  * When distributing Covered Code, include this CDDL HEADER in each
25776  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25777  * If applicable, add the following below this CDDL HEADER, with the
25778  * fields enclosed by brackets "[]" replaced with your own identifying
25779  * information: Portions Copyright [yyyy] [name of copyright owner]
25780  *
25781  * CDDL HEADER END
25782  */
25783 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
25784 /*	  All Rights Reserved  	*/
25785 
25786 
25787 /*
25788  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
25789  * Use is subject to license terms.
25790  *
25791  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
25792  * Copyright 2016 Joyent, Inc.
25793  */
25794 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h" 2
25795 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 1
25796 /*
25797  * CDDL HEADER START
25798  *
25799  * The contents of this file are subject to the terms of the
25800  * Common Development and Distribution License (the "License").
25801  * You may not use this file except in compliance with the License.
25802  *
25803  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25804  * or http://www.opensolaris.org/os/licensing.
25805  * See the License for the specific language governing permissions
25806  * and limitations under the License.
25807  *
25808  * When distributing Covered Code, include this CDDL HEADER in each
25809  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25810  * If applicable, add the following below this CDDL HEADER, with the
25811  * fields enclosed by brackets "[]" replaced with your own identifying
25812  * information: Portions Copyright [yyyy] [name of copyright owner]
25813  *
25814  * CDDL HEADER END
25815  */
25816 /*
25817  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
25818  * Copyright 2013, Joyent, Inc. All rights reserved.
25819  * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
25820  * Copyright 2014 Igor Kozhukhov <ikozhukhov@gmail.com>.
25821  */
25822 
25823 
25824 
25825 
25826 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
25827 /*
25828  * CDDL HEADER START
25829  *
25830  * The contents of this file are subject to the terms of the
25831  * Common Development and Distribution License (the "License").
25832  * You may not use this file except in compliance with the License.
25833  *
25834  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25835  * or http://www.opensolaris.org/os/licensing.
25836  * See the License for the specific language governing permissions
25837  * and limitations under the License.
25838  *
25839  * When distributing Covered Code, include this CDDL HEADER in each
25840  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25841  * If applicable, add the following below this CDDL HEADER, with the
25842  * fields enclosed by brackets "[]" replaced with your own identifying
25843  * information: Portions Copyright [yyyy] [name of copyright owner]
25844  *
25845  * CDDL HEADER END
25846  */
25847 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
25848 /*	  All Rights Reserved  	*/
25849 
25850 
25851 /*
25852  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
25853  * Use is subject to license terms.
25854  *
25855  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
25856  * Copyright 2016 Joyent, Inc.
25857  */
25858 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
25859 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
25860 /*
25861  * CDDL HEADER START
25862  *
25863  * The contents of this file are subject to the terms of the
25864  * Common Development and Distribution License (the "License").
25865  * You may not use this file except in compliance with the License.
25866  *
25867  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25868  * or http://www.opensolaris.org/os/licensing.
25869  * See the License for the specific language governing permissions
25870  * and limitations under the License.
25871  *
25872  * When distributing Covered Code, include this CDDL HEADER in each
25873  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25874  * If applicable, add the following below this CDDL HEADER, with the
25875  * fields enclosed by brackets "[]" replaced with your own identifying
25876  * information: Portions Copyright [yyyy] [name of copyright owner]
25877  *
25878  * CDDL HEADER END
25879  */
25880 /*
25881  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
25882  */
25883 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
25884 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
25885 /*
25886  * CDDL HEADER START
25887  *
25888  * The contents of this file are subject to the terms of the
25889  * Common Development and Distribution License (the "License").
25890  * You may not use this file except in compliance with the License.
25891  *
25892  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25893  * or http://www.opensolaris.org/os/licensing.
25894  * See the License for the specific language governing permissions
25895  * and limitations under the License.
25896  *
25897  * When distributing Covered Code, include this CDDL HEADER in each
25898  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25899  * If applicable, add the following below this CDDL HEADER, with the
25900  * fields enclosed by brackets "[]" replaced with your own identifying
25901  * information: Portions Copyright [yyyy] [name of copyright owner]
25902  *
25903  * CDDL HEADER END
25904  */
25905 
25906 /*
25907  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
25908  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
25909  */
25910 
25911 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
25912 /*	  All Rights Reserved  	*/
25913 
25914 /*
25915  * University Copyright- Copyright (c) 1982, 1986, 1988
25916  * The Regents of the University of California
25917  * All Rights Reserved
25918  *
25919  * University Acknowledgment- Portions of this document are derived from
25920  * software developed by the University of California, Berkeley, and its
25921  * contributors.
25922  */
25923 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
25924 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
25925 /*
25926  * CDDL HEADER START
25927  *
25928  * The contents of this file are subject to the terms of the
25929  * Common Development and Distribution License (the "License").
25930  * You may not use this file except in compliance with the License.
25931  *
25932  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25933  * or http://www.opensolaris.org/os/licensing.
25934  * See the License for the specific language governing permissions
25935  * and limitations under the License.
25936  *
25937  * When distributing Covered Code, include this CDDL HEADER in each
25938  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25939  * If applicable, add the following below this CDDL HEADER, with the
25940  * fields enclosed by brackets "[]" replaced with your own identifying
25941  * information: Portions Copyright [yyyy] [name of copyright owner]
25942  *
25943  * CDDL HEADER END
25944  */
25945 /*
25946  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
25947  */
25948 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
25949 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ipc_rctl.h" 1
25950 /*
25951  * CDDL HEADER START
25952  *
25953  * The contents of this file are subject to the terms of the
25954  * Common Development and Distribution License (the "License").
25955  * You may not use this file except in compliance with the License.
25956  *
25957  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25958  * or http://www.opensolaris.org/os/licensing.
25959  * See the License for the specific language governing permissions
25960  * and limitations under the License.
25961  *
25962  * When distributing Covered Code, include this CDDL HEADER in each
25963  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25964  * If applicable, add the following below this CDDL HEADER, with the
25965  * fields enclosed by brackets "[]" replaced with your own identifying
25966  * information: Portions Copyright [yyyy] [name of copyright owner]
25967  *
25968  * CDDL HEADER END
25969  */
25970 /*
25971  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
25972  * Use is subject to license terms.
25973  */
25974 
25975 
25976 
25977 
25978 #pragma ident "%Z%%M%	%I%	%E% SMI"
25979 
25980 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
25981 /*
25982  * CDDL HEADER START
25983  *
25984  * The contents of this file are subject to the terms of the
25985  * Common Development and Distribution License (the "License").
25986  * You may not use this file except in compliance with the License.
25987  *
25988  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25989  * or http://www.opensolaris.org/os/licensing.
25990  * See the License for the specific language governing permissions
25991  * and limitations under the License.
25992  *
25993  * When distributing Covered Code, include this CDDL HEADER in each
25994  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25995  * If applicable, add the following below this CDDL HEADER, with the
25996  * fields enclosed by brackets "[]" replaced with your own identifying
25997  * information: Portions Copyright [yyyy] [name of copyright owner]
25998  *
25999  * CDDL HEADER END
26000  */
26001 /*
26002  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
26003  */
26004 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ipc_rctl.h" 2
26005 
26006 
26007 
26008 
26009 
26010 typedef struct ipc_rqty { /* datum protected by:	*/
26011  rctl_qty_t ipcq_shmmni; /* shm's ipcs_lock	*/
26012  rctl_qty_t ipcq_semmni; /* sem's ipcs_lock	*/
26013  rctl_qty_t ipcq_msgmni; /* msg's ipcs_lock	*/
26014 } ipc_rqty_t;
26015 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
26016 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 1
26017 /*
26018  * CDDL HEADER START
26019  *
26020  * The contents of this file are subject to the terms of the
26021  * Common Development and Distribution License (the "License").
26022  * You may not use this file except in compliance with the License.
26023  *
26024  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26025  * or http://www.opensolaris.org/os/licensing.
26026  * See the License for the specific language governing permissions
26027  * and limitations under the License.
26028  *
26029  * When distributing Covered Code, include this CDDL HEADER in each
26030  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26031  * If applicable, add the following below this CDDL HEADER, with the
26032  * fields enclosed by brackets "[]" replaced with your own identifying
26033  * information: Portions Copyright [yyyy] [name of copyright owner]
26034  *
26035  * CDDL HEADER END
26036  */
26037 /*
26038  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
26039  *
26040  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26041  * Use is subject to license terms.
26042  */
26043 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
26044 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 1
26045 /*
26046  * CDDL HEADER START
26047  *
26048  * The contents of this file are subject to the terms of the
26049  * Common Development and Distribution License (the "License").
26050  * You may not use this file except in compliance with the License.
26051  *
26052  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26053  * or http://www.opensolaris.org/os/licensing.
26054  * See the License for the specific language governing permissions
26055  * and limitations under the License.
26056  *
26057  * When distributing Covered Code, include this CDDL HEADER in each
26058  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26059  * If applicable, add the following below this CDDL HEADER, with the
26060  * fields enclosed by brackets "[]" replaced with your own identifying
26061  * information: Portions Copyright [yyyy] [name of copyright owner]
26062  *
26063  * CDDL HEADER END
26064  */
26065 /*
26066  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26067  * Use is subject to license terms.
26068  */
26069 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
26070 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
26071 /*
26072  * CDDL HEADER START
26073  *
26074  * The contents of this file are subject to the terms of the
26075  * Common Development and Distribution License (the "License").
26076  * You may not use this file except in compliance with the License.
26077  *
26078  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26079  * or http://www.opensolaris.org/os/licensing.
26080  * See the License for the specific language governing permissions
26081  * and limitations under the License.
26082  *
26083  * When distributing Covered Code, include this CDDL HEADER in each
26084  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26085  * If applicable, add the following below this CDDL HEADER, with the
26086  * fields enclosed by brackets "[]" replaced with your own identifying
26087  * information: Portions Copyright [yyyy] [name of copyright owner]
26088  *
26089  * CDDL HEADER END
26090  */
26091 /*
26092  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26093  * Use is subject to license terms.
26094  */
26095 
26096 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
26097 /*	  All Rights Reserved  	*/
26098 
26099 /*
26100  * Portions of this source code were derived from Berkeley 4.3 BSD
26101  * under license from the Regents of the University of California.
26102  */
26103 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
26104 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h" 1
26105 /*
26106  * CDDL HEADER START
26107  *
26108  * The contents of this file are subject to the terms of the
26109  * Common Development and Distribution License (the "License").
26110  * You may not use this file except in compliance with the License.
26111  *
26112  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26113  * or http://www.opensolaris.org/os/licensing.
26114  * See the License for the specific language governing permissions
26115  * and limitations under the License.
26116  *
26117  * When distributing Covered Code, include this CDDL HEADER in each
26118  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26119  * If applicable, add the following below this CDDL HEADER, with the
26120  * fields enclosed by brackets "[]" replaced with your own identifying
26121  * information: Portions Copyright [yyyy] [name of copyright owner]
26122  *
26123  * CDDL HEADER END
26124  */
26125 
26126 /*
26127  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26128  * Use is subject to license terms.
26129  */
26130 
26131 
26132 
26133 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 1
26134 /*
26135  * CDDL HEADER START
26136  *
26137  * The contents of this file are subject to the terms of the
26138  * Common Development and Distribution License (the "License").
26139  * You may not use this file except in compliance with the License.
26140  *
26141  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26142  * or http://www.opensolaris.org/os/licensing.
26143  * See the License for the specific language governing permissions
26144  * and limitations under the License.
26145  *
26146  * When distributing Covered Code, include this CDDL HEADER in each
26147  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26148  * If applicable, add the following below this CDDL HEADER, with the
26149  * fields enclosed by brackets "[]" replaced with your own identifying
26150  * information: Portions Copyright [yyyy] [name of copyright owner]
26151  *
26152  * CDDL HEADER END
26153  */
26154 /*
26155  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26156  * Use is subject to license terms.
26157  *
26158  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
26159  */
26160 
26161 
26162 
26163 
26164 /*
26165  * Definition of general kernel statistics structures and /dev/kstat ioctls
26166  */
26167 
26168 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
26169 /*
26170  * CDDL HEADER START
26171  *
26172  * The contents of this file are subject to the terms of the
26173  * Common Development and Distribution License (the "License").
26174  * You may not use this file except in compliance with the License.
26175  *
26176  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26177  * or http://www.opensolaris.org/os/licensing.
26178  * See the License for the specific language governing permissions
26179  * and limitations under the License.
26180  *
26181  * When distributing Covered Code, include this CDDL HEADER in each
26182  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26183  * If applicable, add the following below this CDDL HEADER, with the
26184  * fields enclosed by brackets "[]" replaced with your own identifying
26185  * information: Portions Copyright [yyyy] [name of copyright owner]
26186  *
26187  * CDDL HEADER END
26188  */
26189 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
26190 /*	  All Rights Reserved  	*/
26191 
26192 
26193 /*
26194  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26195  * Use is subject to license terms.
26196  *
26197  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26198  * Copyright 2016 Joyent, Inc.
26199  */
26200 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 2
26201 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
26202 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
26203 /*	  All Rights Reserved  	*/
26204 
26205 
26206 /*
26207  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
26208  * All rights reserved.  The Berkeley software License Agreement
26209  * specifies the terms and conditions for redistribution.
26210  */
26211 
26212 /*
26213  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
26214  *
26215  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26216  * Use is subject to license terms.
26217  *
26218  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26219  */
26220 
26221 /*
26222  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
26223  */
26224 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 2
26225 
26226 
26227 
26228 
26229 
26230 typedef int kid_t; /* unique kstat id */
26231 
26232 /*
26233  * Kernel statistics driver (/dev/kstat) ioctls
26234  */
26235 
26236 
26237 
26238 
26239 
26240 
26241 
26242 /*
26243  * /dev/kstat ioctl usage (kd denotes /dev/kstat descriptor):
26244  *
26245  *	kcid = ioctl(kd, KSTAT_IOC_CHAIN_ID, NULL);
26246  *	kcid = ioctl(kd, KSTAT_IOC_READ, kstat_t *);
26247  *	kcid = ioctl(kd, KSTAT_IOC_WRITE, kstat_t *);
26248  */
26249 
26250 
26251 
26252 /*
26253  * The generic kstat header
26254  */
26255 
26256 typedef struct kstat {
26257  /*
26258 	 * Fields relevant to both kernel and user
26259 	 */
26260  hrtime_t ks_crtime; /* creation time (from gethrtime()) */
26261  struct kstat *ks_next; /* kstat chain linkage */
26262  kid_t ks_kid; /* unique kstat ID */
26263  char ks_module[31]; /* provider module name */
26264  uchar_t ks_resv; /* reserved, currently just padding */
26265  int ks_instance; /* provider module's instance */
26266  char ks_name[31]; /* kstat name */
26267  uchar_t ks_type; /* kstat data type */
26268  char ks_class[31]; /* kstat class */
26269  uchar_t ks_flags; /* kstat flags */
26270  void *ks_data; /* kstat type-specific data */
26271  uint_t ks_ndata; /* # of type-specific data records */
26272  size_t ks_data_size; /* total size of kstat data section */
26273  hrtime_t ks_snaptime; /* time of last data shapshot */
26274  /*
26275 	 * Fields relevant to kernel only
26276 	 */
26277  int (*ks_update)(struct kstat *, int); /* dynamic update */
26278  void *ks_private; /* arbitrary provider-private data */
26279  int (*ks_snapshot)(struct kstat *, void *, int);
26280  void *ks_lock; /* protects this kstat's data */
26281 } kstat_t;
26282 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
26283 /*
26284  * kstat structure and locking strategy
26285  *
26286  * Each kstat consists of a header section (a kstat_t) and a data section.
26287  * The system maintains a set of kstats, protected by kstat_chain_lock.
26288  * kstat_chain_lock protects all additions to/deletions from this set,
26289  * as well as all changes to kstat headers.  kstat data sections are
26290  * *optionally* protected by the per-kstat ks_lock.  If ks_lock is non-NULL,
26291  * kstat clients (e.g. /dev/kstat) will acquire this lock for all of their
26292  * operations on that kstat.  It is up to the kstat provider to decide whether
26293  * guaranteeing consistent data to kstat clients is sufficiently important
26294  * to justify the locking cost.  Note, however, that most statistic updates
26295  * already occur under one of the provider's mutexes, so if the provider sets
26296  * ks_lock to point to that mutex, then kstat data locking is free.
26297  *
26298  * NOTE: variable-size kstats MUST employ kstat data locking, to prevent
26299  * data-size races with kstat clients.
26300  *
26301  * NOTE: ks_lock is really of type (kmutex_t *); it is declared as (void *)
26302  * in the kstat header so that users don't have to be exposed to all of the
26303  * kernel's lock-related data structures.
26304  */
26305 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
26306 /*
26307  * kstat time
26308  *
26309  * All times associated with kstats (e.g. creation time, snapshot time,
26310  * kstat_timer_t and kstat_io_t timestamps, etc.) are 64-bit nanosecond values,
26311  * as returned by gethrtime().  The accuracy of these timestamps is machine
26312  * dependent, but the precision (units) is the same across all platforms.
26313  */
26314 
26315 /*
26316  * kstat identity (KID)
26317  *
26318  * Each kstat is assigned a unique KID (kstat ID) when it is added to the
26319  * global kstat chain.  The KID is used as a cookie by /dev/kstat to
26320  * request information about the corresponding kstat.  There is also
26321  * an identity associated with the entire kstat chain, kstat_chain_id,
26322  * which is bumped each time a kstat is added or deleted.  /dev/kstat uses
26323  * the chain ID to detect changes in the kstat chain (e.g., a new disk
26324  * coming online) between ioctl()s.
26325  */
26326 
26327 /*
26328  * kstat module, kstat instance
26329  *
26330  * ks_module and ks_instance contain the name and instance of the module
26331  * that created the kstat.  In cases where there can only be one instance,
26332  * ks_instance is 0.  The kernel proper (/kernel/unix) uses "unix" as its
26333  * module name.
26334  */
26335 
26336 /*
26337  * kstat name
26338  *
26339  * ks_name gives a meaningful name to a kstat.  The full kstat namespace
26340  * is module.instance.name, so the name only need be unique within a
26341  * module.  kstat_create() will fail if you try to create a kstat with
26342  * an already-used (ks_module, ks_instance, ks_name) triplet.  Spaces are
26343  * allowed in kstat names, but strongly discouraged, since they hinder
26344  * awk-style processing at user level.
26345  */
26346 
26347 /*
26348  * kstat type
26349  *
26350  * The kstat mechanism provides several flavors of kstat data, defined
26351  * below.  The "raw" kstat type is just treated as an array of bytes; you
26352  * can use this to export any kind of data you want.
26353  *
26354  * Some kstat types allow multiple data structures per kstat, e.g.
26355  * KSTAT_TYPE_NAMED; others do not.  This is part of the spec for each
26356  * kstat data type.
26357  *
26358  * User-level tools should *not* rely on the #define KSTAT_NUM_TYPES.  To
26359  * get this information, read out the standard system kstat "kstat_types".
26360  */
26361 
26362 
26363      /* ks_ndata >= 1 */
26364 
26365      /* ks_ndata >= 1 */
26366 
26367      /* ks_ndata == 1 */
26368 
26369      /* ks_ndata == 1 */
26370 
26371      /* ks_ndata >= 1 */
26372 
26373 
26374 
26375 /*
26376  * kstat class
26377  *
26378  * Each kstat can be characterized as belonging to some broad class
26379  * of statistics, e.g. disk, tape, net, vm, streams, etc.  This field
26380  * can be used as a filter to extract related kstats.  The following
26381  * values are currently in use: disk, tape, net, controller, vm, kvm,
26382  * hat, streams, kstat, and misc.  (The kstat class encompasses things
26383  * like kstat_types.)
26384  */
26385 
26386 /*
26387  * kstat flags
26388  *
26389  * Any of the following flags may be passed to kstat_create().  They are
26390  * all zero by default.
26391  *
26392  *	KSTAT_FLAG_VIRTUAL:
26393  *
26394  *		Tells kstat_create() not to allocate memory for the
26395  *		kstat data section; instead, you will set the ks_data
26396  *		field to point to the data you wish to export.  This
26397  *		provides a convenient way to export existing data
26398  *		structures.
26399  *
26400  *	KSTAT_FLAG_VAR_SIZE:
26401  *
26402  *		The size of the kstat you are creating will vary over time.
26403  *		For example, you may want to use the kstat mechanism to
26404  *		export a linked list.  NOTE: The kstat framework does not
26405  *		manage the data section, so all variable-size kstats must be
26406  *		virtual kstats.  Moreover, variable-size kstats MUST employ
26407  *		kstat data locking to prevent data-size races with kstat
26408  *		clients.  See the section on "kstat snapshot" for details.
26409  *
26410  *	KSTAT_FLAG_WRITABLE:
26411  *
26412  *		Makes the kstat's data section writable by root.
26413  *		The ks_snapshot routine (see below) does not need to check for
26414  *		this; permission checking is handled in the kstat driver.
26415  *
26416  *	KSTAT_FLAG_PERSISTENT:
26417  *
26418  *		Indicates that this kstat is to be persistent over time.
26419  *		For persistent kstats, kstat_delete() simply marks the
26420  *		kstat as dormant; a subsequent kstat_create() reactivates
26421  *		the kstat.  This feature is provided so that statistics
26422  *		are not lost across driver close/open (e.g., raw disk I/O
26423  *		on a disk with no mounted partitions.)
26424  *		NOTE: Persistent kstats cannot be virtual, since ks_data
26425  *		points to garbage as soon as the driver goes away.
26426  *
26427  * The following flags are maintained by the kstat framework:
26428  *
26429  *	KSTAT_FLAG_DORMANT:
26430  *
26431  *		For persistent kstats, indicates that the kstat is in the
26432  *		dormant state (e.g., the corresponding device is closed).
26433  *
26434  *	KSTAT_FLAG_INVALID:
26435  *
26436  *		This flag is set when a kstat is in a transitional state,
26437  *		e.g. between kstat_create() and kstat_install().
26438  *		kstat clients must not attempt to access the kstat's data
26439  *		if this flag is set.
26440  *
26441  *	KSTAT_FLAG_LONGSTRINGS:
26442  *
26443  *		Indicates that this kstat contains long strings (which
26444  *		are stored outside of the kstat data section). When copied
26445  *		out to user space the string data will be held in the data
26446  *		section provided by the user.
26447  */
26448 # 316 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
26449 /*
26450  * Dynamic update support
26451  *
26452  * The kstat mechanism allows for an optional ks_update function to update
26453  * kstat data.  This is useful for drivers where the underlying device
26454  * keeps cheap hardware stats, but extraction is expensive.  Instead of
26455  * constantly keeping the kstat data section up to date, you can supply a
26456  * ks_update function which updates the kstat's data section on demand.
26457  * To take advantage of this feature, simply set the ks_update field before
26458  * calling kstat_install().
26459  *
26460  * The ks_update function, if supplied, must have the following structure:
26461  *
26462  *	int
26463  *	foo_kstat_update(kstat_t *ksp, int rw)
26464  *	{
26465  *		if (rw == KSTAT_WRITE) {
26466  *			... update the native stats from ksp->ks_data;
26467  *				return EACCES if you don't support this
26468  *		} else {
26469  *			... update ksp->ks_data from the native stats
26470  *		}
26471  *	}
26472  *
26473  * The ks_update return codes are: 0 for success, EACCES if you don't allow
26474  * KSTAT_WRITE, and EIO for any other type of error.
26475  *
26476  * In general, the ks_update function may need to refer to provider-private
26477  * data; for example, it may need a pointer to the provider's raw statistics.
26478  * The ks_private field is available for this purpose.  Its use is entirely
26479  * at the provider's discretion.
26480  *
26481  * All variable-size kstats MUST supply a ks_update routine, which computes
26482  * and sets ks_data_size (and ks_ndata if that is meaningful), since these
26483  * are needed to perform kstat snapshots (see below).
26484  *
26485  * No kstat locking should be done inside the ks_update routine.  The caller
26486  * will already be holding the kstat's ks_lock (to ensure consistent data).
26487  */
26488 
26489 
26490 
26491 
26492 /*
26493  * Kstat snapshot
26494  *
26495  * In order to get a consistent view of a kstat's data, clients must obey
26496  * the kstat's locking strategy.  However, these clients may need to perform
26497  * operations on the data which could cause a fault (e.g. copyout()), or
26498  * operations which are simply expensive.  Doing so could cause deadlock
26499  * (e.g. if you're holding a disk's kstat lock which is ultimately required
26500  * to resolve a copyout() fault), performance degradation (since the providers'
26501  * activity is serialized at the kstat lock), device timing problems, etc.
26502  *
26503  * To avoid these problems, kstat data is provided via snapshots.  Taking
26504  * a snapshot is a simple process: allocate a wired-down kernel buffer,
26505  * acquire the kstat's data lock, copy the data into the buffer ("take the
26506  * snapshot"), and release the lock.  This ensures that the kstat's data lock
26507  * will be held as briefly as possible, and that no faults will occur while
26508  * the lock is held.
26509  *
26510  * Normally, the snapshot is taken by default_kstat_snapshot(), which
26511  * timestamps the data (sets ks_snaptime), copies it, and does a little
26512  * massaging to deal with incomplete transactions on i/o kstats.  However,
26513  * this routine only works for kstats with contiguous data (the typical case).
26514  * If you create a kstat whose data is, say, a linked list, you must provide
26515  * your own ks_snapshot routine.  The routine you supply must have the
26516  * following prototype (replace "foo" with something appropriate):
26517  *
26518  *	int foo_kstat_snapshot(kstat_t *ksp, void *buf, int rw);
26519  *
26520  * The minimal snapshot routine -- one which copies contiguous data that
26521  * doesn't need any massaging -- would be this:
26522  *
26523  *	ksp->ks_snaptime = gethrtime();
26524  *	if (rw == KSTAT_WRITE)
26525  *		bcopy(buf, ksp->ks_data, ksp->ks_data_size);
26526  *	else
26527  *		bcopy(ksp->ks_data, buf, ksp->ks_data_size);
26528  *	return (0);
26529  *
26530  * A more illuminating example is taking a snapshot of a linked list:
26531  *
26532  *	ksp->ks_snaptime = gethrtime();
26533  *	if (rw == KSTAT_WRITE)
26534  *		return (EACCES);		... See below ...
26535  *	for (foo = first_foo; foo; foo = foo->next) {
26536  *		bcopy((char *) foo, (char *) buf, sizeof (struct foo));
26537  *		buf = ((struct foo *) buf) + 1;
26538  *	}
26539  *	return (0);
26540  *
26541  * In the example above, we have decided that we don't want to allow
26542  * KSTAT_WRITE access, so we return EACCES if this is attempted.
26543  *
26544  * The key points are:
26545  *
26546  *	(1) ks_snaptime must be set (via gethrtime()) to timestamp the data.
26547  *	(2) Data gets copied from the kstat to the buffer on KSTAT_READ,
26548  *		and from the buffer to the kstat on KSTAT_WRITE.
26549  *	(3) ks_snapshot return values are: 0 for success, EACCES if you
26550  *		don't allow KSTAT_WRITE, and EIO for any other type of error.
26551  *
26552  * Named kstats (see section on "Named statistics" below) containing long
26553  * strings (KSTAT_DATA_STRING) need special handling.  The kstat driver
26554  * assumes that all strings are copied into the buffer after the array of
26555  * named kstats, and the pointers (KSTAT_NAMED_STR_PTR()) are updated to point
26556  * into the copy within the buffer. The default snapshot routine does this,
26557  * but overriding routines should contain at least the following:
26558  *
26559  * if (rw == KSTAT_READ) {
26560  * 	kstat_named_t *knp = buf;
26561  * 	char *end = knp + ksp->ks_ndata;
26562  * 	uint_t i;
26563  *
26564  * 	... Do the regular copy ...
26565  * 	bcopy(ksp->ks_data, buf, sizeof (kstat_named_t) * ksp->ks_ndata);
26566  *
26567  * 	for (i = 0; i < ksp->ks_ndata; i++, knp++) {
26568  *		if (knp[i].data_type == KSTAT_DATA_STRING &&
26569  *		    KSTAT_NAMED_STR_PTR(knp) != NULL) {
26570  *			bcopy(KSTAT_NAMED_STR_PTR(knp), end,
26571  *			    KSTAT_NAMED_STR_BUFLEN(knp));
26572  *			KSTAT_NAMED_STR_PTR(knp) = end;
26573  *			end += KSTAT_NAMED_STR_BUFLEN(knp);
26574  *		}
26575  *	}
26576  */
26577 
26578 /*
26579  * Named statistics.
26580  *
26581  * List of arbitrary name=value statistics.
26582  */
26583 
26584 typedef struct kstat_named {
26585  char name[31]; /* name of counter */
26586  uchar_t data_type; /* data type */
26587  union {
26588   char c[16]; /* enough for 128-bit ints */
26589   int32_t i32;
26590   uint32_t ui32;
26591   struct {
26592    union {
26593     char *ptr; /* NULL-term string */
26594 
26595 
26596 
26597     char __pad[8]; /* 64-bit padding */
26598    } addr;
26599    uint32_t len; /* # bytes for strlen + '\0' */
26600   } str;
26601 /*
26602  * The int64_t and uint64_t types are not valid for a maximally conformant
26603  * 32-bit compilation environment (cc -Xc) using compilers prior to the
26604  * introduction of C99 conforming compiler (reference ISO/IEC 9899:1990).
26605  * In these cases, the visibility of i64 and ui64 is only permitted for
26606  * 64-bit compilation environments or 32-bit non-maximally conformant
26607  * C89 or C90 ANSI C compilation environments (cc -Xt and cc -Xa). In the
26608  * C99 ANSI C compilation environment, the long long type is supported.
26609  * The _INT64_TYPE is defined by the implementation (see sys/int_types.h).
26610  */
26611 
26612   int64_t i64;
26613   uint64_t ui64;
26614 
26615   long l;
26616   ulong_t ul;
26617 
26618   /* These structure members are obsolete */
26619 
26620   longlong_t ll;
26621   u_longlong_t ull;
26622   float f;
26623   double d;
26624  } value; /* value of counter */
26625 } kstat_named_t;
26626 # 513 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
26627 /*
26628  * Statistics exporting named kstats with long strings (KSTAT_DATA_STRING)
26629  * may not make the assumption that ks_data_size is equal to (ks_ndata * sizeof
26630  * (kstat_named_t)).  ks_data_size in these cases is equal to the sum of the
26631  * amount of space required to store the strings (ie, the sum of
26632  * KSTAT_NAMED_STR_BUFLEN() for all KSTAT_DATA_STRING statistics) plus the
26633  * space required to store the kstat_named_t's.
26634  *
26635  * The default update routine will update ks_data_size automatically for
26636  * variable-length kstats containing long strings (using the default update
26637  * routine only makes sense if the string is the only thing that is changing
26638  * in size, and ks_ndata is constant).  Fixed-length kstats containing long
26639  * strings must explicitly change ks_data_size (after creation but before
26640  * initialization) to reflect the correct amount of space required for the
26641  * long strings and the kstat_named_t's.
26642  */
26643 
26644 
26645 /* These types are obsolete */
26646 # 540 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
26647 /*
26648  * Retrieve the pointer of the string contained in the given named kstat.
26649  */
26650 
26651 
26652 /*
26653  * Retrieve the length of the buffer required to store the string in the given
26654  * named kstat.
26655  */
26656 
26657 
26658 /*
26659  * Interrupt statistics.
26660  *
26661  * An interrupt is a hard interrupt (sourced from the hardware device
26662  * itself), a soft interrupt (induced by the system via the use of
26663  * some system interrupt source), a watchdog interrupt (induced by
26664  * a periodic timer call), spurious (an interrupt entry point was
26665  * entered but there was no interrupt condition to service),
26666  * or multiple service (an interrupt condition was detected and
26667  * serviced just prior to returning from any of the other types).
26668  *
26669  * Measurement of the spurious class of interrupts is useful for
26670  * autovectored devices in order to pinpoint any interrupt latency
26671  * problems in a particular system configuration.
26672  *
26673  * Devices that have more than one interrupt of the same
26674  * type should use multiple structures.
26675  */
26676 # 578 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
26677 typedef struct kstat_intr {
26678  uint_t intrs[5]; /* interrupt counters */
26679 } kstat_intr_t;
26680 
26681 
26682 
26683 /*
26684  * I/O statistics.
26685  */
26686 
26687 typedef struct kstat_io {
26688 
26689  /*
26690 	 * Basic counters.
26691 	 *
26692 	 * The counters should be updated at the end of service
26693 	 * (e.g., just prior to calling biodone()).
26694 	 */
26695 
26696  u_longlong_t nread; /* number of bytes read */
26697  u_longlong_t nwritten; /* number of bytes written */
26698  uint_t reads; /* number of read operations */
26699  uint_t writes; /* number of write operations */
26700 
26701  /*
26702 	 * Accumulated time and queue length statistics.
26703 	 *
26704 	 * Accumulated time statistics are kept as a running sum
26705 	 * of "active" time.  Queue length statistics are kept as a
26706 	 * running sum of the product of queue length and elapsed time
26707 	 * at that length -- i.e., a Riemann sum for queue length
26708 	 * integrated against time.  (You can also think of the active time
26709 	 * as a Riemann sum, for the boolean function (queue_length > 0)
26710 	 * integrated against time, or you can think of it as the
26711 	 * Lebesgue measure of the set on which queue_length > 0.)
26712 	 *
26713 	 *		^
26714 	 *		|			_________
26715 	 *		8			| i4	|
26716 	 *		|			|	|
26717 	 *	Queue	6			|	|
26718 	 *	Length	|	_________	|	|
26719 	 *		4	| i2	|_______|	|
26720 	 *		|	|	    i3		|
26721 	 *		2_______|			|
26722 	 *		|    i1				|
26723 	 *		|_______________________________|
26724 	 *		Time->	t1	t2	t3	t4
26725 	 *
26726 	 * At each change of state (entry or exit from the queue),
26727 	 * we add the elapsed time (since the previous state change)
26728 	 * to the active time if the queue length was non-zero during
26729 	 * that interval; and we add the product of the elapsed time
26730 	 * times the queue length to the running length*time sum.
26731 	 *
26732 	 * This method is generalizable to measuring residency
26733 	 * in any defined system: instead of queue lengths, think
26734 	 * of "outstanding RPC calls to server X".
26735 	 *
26736 	 * A large number of I/O subsystems have at least two basic
26737 	 * "lists" of transactions they manage: one for transactions
26738 	 * that have been accepted for processing but for which processing
26739 	 * has yet to begin, and one for transactions which are actively
26740 	 * being processed (but not done). For this reason, two cumulative
26741 	 * time statistics are defined here: wait (pre-service) time,
26742 	 * and run (service) time.
26743 	 *
26744 	 * All times are 64-bit nanoseconds (hrtime_t), as returned by
26745 	 * gethrtime().
26746 	 *
26747 	 * The units of cumulative busy time are accumulated nanoseconds.
26748 	 * The units of cumulative length*time products are elapsed time
26749 	 * times queue length.
26750 	 *
26751 	 * Updates to the fields below are performed implicitly by calls to
26752 	 * these five functions:
26753 	 *
26754 	 *	kstat_waitq_enter()
26755 	 *	kstat_waitq_exit()
26756 	 *	kstat_runq_enter()
26757 	 *	kstat_runq_exit()
26758 	 *
26759 	 *	kstat_waitq_to_runq()		(see below)
26760 	 *	kstat_runq_back_to_waitq()	(see below)
26761 	 *
26762 	 * Since kstat_waitq_exit() is typically followed immediately
26763 	 * by kstat_runq_enter(), there is a single kstat_waitq_to_runq()
26764 	 * function which performs both operations.  This is a performance
26765 	 * win since only one timestamp is required.
26766 	 *
26767 	 * In some instances, it may be necessary to move a request from
26768 	 * the run queue back to the wait queue, e.g. for write throttling.
26769 	 * For these situations, call kstat_runq_back_to_waitq().
26770 	 *
26771 	 * These fields should never be updated by any other means.
26772 	 */
26773 
26774  hrtime_t wtime; /* cumulative wait (pre-service) time */
26775  hrtime_t wlentime; /* cumulative wait length*time product */
26776  hrtime_t wlastupdate; /* last time wait queue changed */
26777  hrtime_t rtime; /* cumulative run (service) time */
26778  hrtime_t rlentime; /* cumulative run length*time product */
26779  hrtime_t rlastupdate; /* last time run queue changed */
26780 
26781  uint_t wcnt; /* count of elements in wait state */
26782  uint_t rcnt; /* count of elements in run state */
26783 
26784 } kstat_io_t;
26785 
26786 
26787 
26788 /*
26789  * Event timer statistics - cumulative elapsed time and number of events.
26790  *
26791  * Updates to these fields are performed implicitly by calls to
26792  * kstat_timer_start() and kstat_timer_stop().
26793  */
26794 
26795 typedef struct kstat_timer {
26796  char name[31]; /* event name */
26797  uchar_t resv; /* reserved */
26798  u_longlong_t num_events; /* number of events */
26799  hrtime_t elapsed_time; /* cumulative elapsed time */
26800  hrtime_t min_time; /* shortest event duration */
26801  hrtime_t max_time; /* longest event duration */
26802  hrtime_t start_time; /* previous event start time */
26803  hrtime_t stop_time; /* previous event stop time */
26804 } kstat_timer_t;
26805 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h" 2
26806 
26807 
26808 
26809 
26810 
26811 /*
26812  * This allows various pieces in and around IP to have a separate instance
26813  * for each instance of IP. This is used to support zones that have an
26814  * exclusive stack.
26815  * Pieces of software far removed from IP (e.g., kernel software
26816  * sitting on top of TCP or UDP) probably should not use the netstack
26817  * support; if such software wants to support separate zones it
26818  * can do that using the zones framework (zone_key_create() etc)
26819  * whether there is a shared IP stack or and exclusive IP stack underneath.
26820  */
26821 
26822 /*
26823  * Each netstack has an identifier. We reuse the zoneid allocation for
26824  * this but have a separate typedef. Thus the shared stack (used by
26825  * the global zone and other shared stack zones) have a zero ID, and
26826  * the exclusive stacks have a netstackid that is the same as their zoneid.
26827  */
26828 typedef id_t netstackid_t;
26829 
26830 
26831 
26832 /*
26833  * One for each module which uses netstack support.
26834  * Used in netstack_register().
26835  *
26836  * The order of these is important for some modules both for
26837  * the creation (which done in ascending order) and destruction (which is
26838  * done in in decending order).
26839  */
26840 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
26841 /*
26842  * State maintained for each module which tracks the state of
26843  * the create, shutdown and destroy callbacks.
26844  *
26845  * Keeps track of pending actions to avoid holding locks when
26846  * calling into the create/shutdown/destroy functions in the module.
26847  */
26848 # 122 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
26849 /* User-level compile like IP Filter needs a netstack_t. Dummy */
26850 typedef uint_t nm_state_t;
26851 
26852 
26853 /*
26854  * One for every netstack in the system.
26855  * We use a union so that the compilar and lint can provide type checking -
26856  * in principle we could have
26857  * #define	netstack_arp		netstack_modules[NS_ARP]
26858  * etc, but that would imply void * types hence no type checking by the
26859  * compiler.
26860  *
26861  * All the fields in netstack_t except netstack_next are protected by
26862  * netstack_lock. netstack_next is protected by netstack_g_lock.
26863  */
26864 struct netstack {
26865  union {
26866   void *nu_modules[(18 +1)];
26867   struct {
26868    struct dls_stack *nu_dls;
26869    struct iptun_stack *nu_iptun;
26870    struct str_stack *nu_str;
26871    struct hook_stack *nu_hook;
26872    struct neti_stack *nu_neti;
26873    struct arp_stack *nu_arp;
26874    struct ip_stack *nu_ip;
26875    struct icmp_stack *nu_icmp;
26876    struct udp_stack *nu_udp;
26877    struct tcp_stack *nu_tcp;
26878    struct sctp_stack *nu_sctp;
26879    struct rts_stack *nu_rts;
26880    struct ipsec_stack *nu_ipsec;
26881    struct keysock_stack *nu_keysock;
26882    struct spd_stack *nu_spdsock;
26883    struct ipsecah_stack *nu_ipsecah;
26884    struct ipsecesp_stack *nu_ipsecesp;
26885    struct ipnet_stack *nu_ipnet;
26886    struct ilb_stack *nu_ilb;
26887   } nu_s;
26888  } netstack_u;
26889 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
26890  nm_state_t netstack_m_state[(18 +1)]; /* module state */
26891 
26892  kmutex_t netstack_lock;
26893  struct netstack *netstack_next;
26894  netstackid_t netstack_stackid;
26895  int netstack_numzones; /* Number of zones using this */
26896  int netstack_refcnt; /* Number of hold-rele */
26897  int netstack_flags; /* See below */
26898 
26899 
26900 
26901 
26902 
26903 };
26904 typedef struct netstack netstack_t;
26905 
26906 /* netstack_flags values */
26907 # 209 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
26908 /*
26909  * One for each of the NS_* values.
26910  */
26911 struct netstack_registry {
26912  int nr_flags; /* 0 if nothing registered */
26913  void *(*nr_create)(netstackid_t, netstack_t *);
26914  void (*nr_shutdown)(netstackid_t, void *);
26915  void (*nr_destroy)(netstackid_t, void *);
26916 };
26917 
26918 /* nr_flags values */
26919 
26920 
26921 
26922 /*
26923  * To support kstat_create_netstack() using kstat_add_zone we need
26924  * to track both
26925  *  - all zoneids that use the global/shared stack
26926  *  - all kstats that have been added for the shared stack
26927  */
26928 
26929 extern void netstack_init(void);
26930 extern void netstack_hold(netstack_t *);
26931 extern void netstack_rele(netstack_t *);
26932 extern netstack_t *netstack_find_by_cred(const cred_t *);
26933 extern netstack_t *netstack_find_by_stackid(netstackid_t);
26934 extern netstack_t *netstack_find_by_zoneid(zoneid_t);
26935 
26936 extern zoneid_t netstackid_to_zoneid(netstackid_t);
26937 extern zoneid_t netstack_get_zoneid(netstack_t *);
26938 extern netstackid_t zoneid_to_netstackid(zoneid_t);
26939 
26940 extern netstack_t *netstack_get_current(void);
26941 
26942 /*
26943  * Register interest in changes to the set of netstacks.
26944  * The createfn and destroyfn are required, but the shutdownfn can be
26945  * NULL.
26946  * Note that due to the current zsd implementation, when the create
26947  * function is called the zone isn't fully present, thus functions
26948  * like zone_find_by_* will fail, hence the create function can not
26949  * use many zones kernel functions including zcmn_err().
26950  */
26951 extern void netstack_register(int,
26952     void *(*)(netstackid_t, netstack_t *),
26953     void (*)(netstackid_t, void *),
26954     void (*)(netstackid_t, void *));
26955 extern void netstack_unregister(int);
26956 extern kstat_t *kstat_create_netstack(char *, int, char *, char *, uchar_t,
26957     uint_t, uchar_t, netstackid_t);
26958 extern void kstat_delete_netstack(kstat_t *, netstackid_t);
26959 
26960 /*
26961  * Simple support for walking all the netstacks.
26962  * The caller of netstack_next() needs to call netstack_rele() when
26963  * done with a netstack.
26964  */
26965 typedef int netstack_handle_t;
26966 
26967 extern void netstack_next_init(netstack_handle_t *);
26968 extern void netstack_next_fini(netstack_handle_t *);
26969 extern netstack_t *netstack_next(netstack_handle_t *);
26970 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
26971 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 1
26972 /*
26973  * CDDL HEADER START
26974  *
26975  * The contents of this file are subject to the terms of the
26976  * Common Development and Distribution License (the "License").
26977  * You may not use this file except in compliance with the License.
26978  *
26979  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26980  * or http://www.opensolaris.org/os/licensing.
26981  * See the License for the specific language governing permissions
26982  * and limitations under the License.
26983  *
26984  * When distributing Covered Code, include this CDDL HEADER in each
26985  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26986  * If applicable, add the following below this CDDL HEADER, with the
26987  * fields enclosed by brackets "[]" replaced with your own identifying
26988  * information: Portions Copyright [yyyy] [name of copyright owner]
26989  *
26990  * CDDL HEADER END
26991  */
26992 /*
26993  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
26994  *
26995  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26996  * Use is subject to license terms.
26997  */
26998 
26999 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
27000 /*	  All Rights Reserved  	*/
27001 
27002 
27003 
27004 
27005 
27006 
27007 
27008 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
27009 /*
27010  * CDDL HEADER START
27011  *
27012  * The contents of this file are subject to the terms of the
27013  * Common Development and Distribution License (the "License").
27014  * You may not use this file except in compliance with the License.
27015  *
27016  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27017  * or http://www.opensolaris.org/os/licensing.
27018  * See the License for the specific language governing permissions
27019  * and limitations under the License.
27020  *
27021  * When distributing Covered Code, include this CDDL HEADER in each
27022  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27023  * If applicable, add the following below this CDDL HEADER, with the
27024  * fields enclosed by brackets "[]" replaced with your own identifying
27025  * information: Portions Copyright [yyyy] [name of copyright owner]
27026  *
27027  * CDDL HEADER END
27028  */
27029 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
27030 /*	  All Rights Reserved  	*/
27031 
27032 
27033 /*
27034  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
27035  * Use is subject to license terms.
27036  *
27037  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
27038  * Copyright 2016 Joyent, Inc.
27039  */
27040 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 2
27041 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
27042 /*
27043  * CDDL HEADER START
27044  *
27045  * The contents of this file are subject to the terms of the
27046  * Common Development and Distribution License (the "License").
27047  * You may not use this file except in compliance with the License.
27048  *
27049  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27050  * or http://www.opensolaris.org/os/licensing.
27051  * See the License for the specific language governing permissions
27052  * and limitations under the License.
27053  *
27054  * When distributing Covered Code, include this CDDL HEADER in each
27055  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27056  * If applicable, add the following below this CDDL HEADER, with the
27057  * fields enclosed by brackets "[]" replaced with your own identifying
27058  * information: Portions Copyright [yyyy] [name of copyright owner]
27059  *
27060  * CDDL HEADER END
27061  */
27062 /*
27063  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
27064  * Use is subject to license terms.
27065  */
27066 
27067 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
27068 /*	  All Rights Reserved  	*/
27069 
27070 /*
27071  * Portions of this source code were derived from Berkeley 4.3 BSD
27072  * under license from the Regents of the University of California.
27073  */
27074 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 2
27075 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
27076 /*			17-21	   reserved for obsolete interface */
27077 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
27078 /*
27079  * Functions reserved for A_FREEZE (may not be available on all platforms)
27080  * Note:  AD_COMPRESS, AD_CHECK and AD_FORCE are now obsolete
27081  *	The first two are succeeded by AD_SUSPEND_TO_DISK and
27082  *		AD_CHECK_SUSPEND_TO_DISK respectively.
27083  *	AD_FORCE should not be used by any new application
27084  *
27085  *	We maintain compatibility with the earlier interfaces:
27086  *	AD_COMPRESS and AD_CHECK, by preserving those values
27087  *	in the corresponding new interfaces
27088  */
27089 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
27090 /*
27091  * NOTE: the following defines comprise an Unstable interface.  Their semantics
27092  * may change or they may be removed completely in a later release
27093  */
27094 
27095 
27096 
27097 
27098 
27099 
27100 
27101 /*
27102  * Functions of A_CONFIG.  Unstable interface.
27103  */
27104 
27105 
27106 /*
27107  * When 'mdep' (the second argument to uadmin(2)) is initialized for A_REBOOT,
27108  * A_SHUTDOWN or A_DUMP, it represents the boot arguments string of at most
27109  * 256 characters.
27110  */
27111 
27112 
27113 
27114 /*
27115  * FMRI for boot-config service.
27116  */
27117 
27118 
27119 
27120 /*
27121  * Property group that contains all Fast Reboot configuration properties.
27122  */
27123 
27124 
27125 /*
27126  * Property group that contains all Fast Reboot blacklisting information.
27127  */
27128 
27129 
27130 /*
27131  * Non-persistent property group which contains all the properties that
27132  * will override settings in the BOOT_CONFIG_PG_PARAMS property group.
27133  */
27134 
27135 
27136 
27137 
27138 /*
27139  * Flag representations of fastboot configuration.
27140  */
27141 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
27142 extern int uadmin(int, int, uintptr_t);
27143 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
27144 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ksynch.h" 1
27145 /*
27146  * CDDL HEADER START
27147  *
27148  * The contents of this file are subject to the terms of the
27149  * Common Development and Distribution License, Version 1.0 only
27150  * (the "License").  You may not use this file except in compliance
27151  * with the License.
27152  *
27153  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27154  * or http://www.opensolaris.org/os/licensing.
27155  * See the License for the specific language governing permissions
27156  * and limitations under the License.
27157  *
27158  * When distributing Covered Code, include this CDDL HEADER in each
27159  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27160  * If applicable, add the following below this CDDL HEADER, with the
27161  * fields enclosed by brackets "[]" replaced with your own identifying
27162  * information: Portions Copyright [yyyy] [name of copyright owner]
27163  *
27164  * CDDL HEADER END
27165  */
27166 /*
27167  *	Copyright (c) 1991, Sun Microsystems, Inc.
27168  */
27169 
27170 /*
27171  * DKI/DDI MT synchronization primitives.
27172  */
27173 
27174 
27175 
27176 
27177 #pragma ident "%Z%%M%	%I%	%E% SMI"
27178 
27179 /*
27180  * The presence of this file is specified by the DKI/DDI.
27181  */
27182 
27183 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
27184 /*
27185  * CDDL HEADER START
27186  *
27187  * The contents of this file are subject to the terms of the
27188  * Common Development and Distribution License, Version 1.0 only
27189  * (the "License").  You may not use this file except in compliance
27190  * with the License.
27191  *
27192  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27193  * or http://www.opensolaris.org/os/licensing.
27194  * See the License for the specific language governing permissions
27195  * and limitations under the License.
27196  *
27197  * When distributing Covered Code, include this CDDL HEADER in each
27198  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27199  * If applicable, add the following below this CDDL HEADER, with the
27200  * fields enclosed by brackets "[]" replaced with your own identifying
27201  * information: Portions Copyright [yyyy] [name of copyright owner]
27202  *
27203  * CDDL HEADER END
27204  */
27205 /*
27206  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
27207  * All rights reserved.
27208  */
27209 
27210 /*
27211  * t_lock.h:	Prototypes for disp_locks, plus include files
27212  *		that describe the interfaces to kernel synch.
27213  *		objects.
27214  */
27215 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ksynch.h" 2
27216 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
27217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
27218 /*
27219  * CDDL HEADER START
27220  *
27221  * The contents of this file are subject to the terms of the
27222  * Common Development and Distribution License (the "License").
27223  * You may not use this file except in compliance with the License.
27224  *
27225  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27226  * or http://www.opensolaris.org/os/licensing.
27227  * See the License for the specific language governing permissions
27228  * and limitations under the License.
27229  *
27230  * When distributing Covered Code, include this CDDL HEADER in each
27231  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27232  * If applicable, add the following below this CDDL HEADER, with the
27233  * fields enclosed by brackets "[]" replaced with your own identifying
27234  * information: Portions Copyright [yyyy] [name of copyright owner]
27235  *
27236  * CDDL HEADER END
27237  */
27238 /*
27239  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
27240  * Use is subject to license terms.
27241  */
27242 
27243 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
27244 /*	  All Rights Reserved	*/
27245 
27246 /*
27247  * Portions of this source code were derived from Berkeley 4.3 BSD
27248  * under license from the Regents of the University of California.
27249  */
27250 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
27251 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
27252 /*
27253  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
27254  * Use is subject to license terms.
27255  *
27256  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
27257  */
27258 /*
27259  * Copyright (c) 1982, 1986 Regents of the University of California.
27260  * All rights reserved.
27261  *
27262  * Redistribution and use in source and binary forms are permitted
27263  * provided that this notice is preserved and that due credit is given
27264  * to the University of California at Berkeley. The name of the University
27265  * may not be used to endorse or promote products derived from this
27266  * software without specific prior written permission. This software
27267  * is provided ``as is'' without express or implied warranty.
27268  */
27269 
27270 /*
27271  * Constants and structures defined by the internet system,
27272  * according to following documents
27273  *
27274  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
27275  *	http://www.iana.org/assignments/protocol-numbers
27276  *	http://www.iana.org/assignments/port-numbers
27277  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
27278  *
27279  */
27280 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
27281 
27282 
27283 
27284 
27285 
27286 /*
27287  * NOTE
27288  *
27289  * The contents of this file are private to the implementation of
27290  * Solaris and are subject to change at any time without notice.
27291  * Applications and drivers using these interfaces may fail to
27292  * run on future releases.
27293  */
27294 
27295 /* Available both in kernel and for user space */
27296 
27297 /* zone id restrictions and special ids */
27298 
27299 
27300 
27301 
27302 
27303 
27304 /*
27305  * Special zoneid_t token to refer to all zones.
27306  */
27307 
27308 
27309 /* system call subcodes */
27310 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
27311 /* zone attributes */
27312 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
27313 /* Start of the brand-specific attribute namespace */
27314 # 129 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
27315 /*
27316  * Exit values that may be returned by scripts or programs invoked by various
27317  * zone commands.
27318  *
27319  * These are defined as:
27320  *
27321  *	ZONE_SUBPROC_OK
27322  *	===============
27323  *	The subprocess completed successfully.
27324  *
27325  *	ZONE_SUBPROC_USAGE
27326  *	==================
27327  *	The subprocess failed with a usage message, or a usage message should
27328  *	be output in its behalf.
27329  *
27330  *	ZONE_SUBPROC_NOTCOMPLETE
27331  *	========================
27332  *	The subprocess did not complete, but the actions performed by the
27333  *	subprocess require no recovery actions by the user.
27334  *
27335  *	For example, if the subprocess were called by "zoneadm install," the
27336  *	installation of the zone did not succeed but the user need not perform
27337  *	a "zoneadm uninstall" before attempting another install.
27338  *
27339  *	ZONE_SUBPROC_FATAL
27340  *	==================
27341  *	The subprocess failed in a fatal manner, usually one that will require
27342  *	some type of recovery action by the user.
27343  *
27344  *	For example, if the subprocess were called by "zoneadm install," the
27345  *	installation of the zone did not succeed and the user will need to
27346  *	perform a "zoneadm uninstall" before another install attempt is
27347  *	possible.
27348  *
27349  *	The non-success exit values are large to avoid accidental collision
27350  *	with values used internally by some commands (e.g. "Z_ERR" and
27351  *	"Z_USAGE" as used by zoneadm.)
27352  */
27353 # 189 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
27354 typedef struct {
27355  const char *zone_name;
27356  const char *zone_root;
27357  const struct priv_set *zone_privs;
27358  size_t zone_privssz;
27359  const char *rctlbuf;
27360  size_t rctlbufsz;
27361  int *extended_error;
27362  const char *zfsbuf;
27363  size_t zfsbufsz;
27364  int match; /* match level */
27365  uint32_t doi; /* DOI for label */
27366  const bslabel_t *label; /* label associated with zone */
27367  int flags;
27368 } zone_def;
27369 
27370 /* extended error information */
27371 
27372 
27373 
27374 
27375 
27376 /*
27377  * zone_status values
27378  *
27379  * You must modify zone_status_names in mdb(1M)'s genunix module
27380  * (genunix/zone.c) when you modify this enum.
27381  */
27382 typedef enum {
27383  ZONE_IS_UNINITIALIZED = 0,
27384  ZONE_IS_INITIALIZED,
27385  ZONE_IS_READY,
27386  ZONE_IS_BOOTING,
27387  ZONE_IS_RUNNING,
27388  ZONE_IS_SHUTTING_DOWN,
27389  ZONE_IS_EMPTY,
27390  ZONE_IS_DOWN,
27391  ZONE_IS_DYING,
27392  ZONE_IS_DEAD
27393 } zone_status_t;
27394 
27395 
27396 
27397 /*
27398  * Valid commands which may be issued by zoneadm to zoneadmd.  The kernel also
27399  * communicates with zoneadmd, but only uses Z_REBOOT and Z_HALT.
27400  */
27401 typedef enum zone_cmd {
27402  Z_READY, Z_BOOT, Z_FORCEBOOT, Z_REBOOT, Z_HALT, Z_NOTE_UNINSTALLING,
27403  Z_MOUNT, Z_FORCEMOUNT, Z_UNMOUNT, Z_SHUTDOWN
27404 } zone_cmd_t;
27405 
27406 /*
27407  * The structure of a request to zoneadmd.
27408  */
27409 typedef struct zone_cmd_arg {
27410  uint64_t uniqid; /* unique "generation number" */
27411  zone_cmd_t cmd; /* requested action */
27412  uint32_t _pad; /* need consistent 32/64 bit alignmt */
27413  char locale[1024]; /* locale in which to render messages */
27414  char bootbuf[256]; /* arguments passed to zone_boot() */
27415 } zone_cmd_arg_t;
27416 
27417 /*
27418  * Structure of zoneadmd's response to a request.  A NULL return value means
27419  * the caller should attempt to restart zoneadmd and retry.
27420  */
27421 typedef struct zone_cmd_rval {
27422  int rval; /* return value of request */
27423  char errbuf[1]; /* variable-sized buffer containing error messages */
27424 } zone_cmd_rval_t;
27425 
27426 /*
27427  * The zone support infrastructure uses the zone name as a component
27428  * of unix domain (AF_UNIX) sockets, which are limited to 108 characters
27429  * in length, so ZONENAME_MAX is limited by that.
27430  */
27431 
27432 
27433 
27434 
27435 /*
27436  * Extended Regular expression (see regex(5)) which matches all valid zone
27437  * names.
27438  */
27439 
27440 
27441 /*
27442  * Where the zones support infrastructure places temporary files.
27443  */
27444 
27445 
27446 /*
27447  * The path to the door used by clients to communicate with zoneadmd.
27448  */
27449 
27450 
27451 
27452 /* zone_flags */
27453 /*
27454  * Threads that read or write the following flag must hold zone_lock.
27455  */
27456 
27457 
27458 /*
27459  * The following threads are set when the zone is created and never changed.
27460  * Threads that test for these flags don't have to hold zone_lock.
27461  */
27462 
27463 
27464 
27465 
27466 
27467 /* zone_create flags */
27468 
27469 
27470 /* zone network properties */
27471 
27472 
27473 
27474 
27475 
27476 
27477 typedef struct zone_net_data {
27478  int zn_type;
27479  int zn_len;
27480  datalink_id_t zn_linkid;
27481  uint8_t zn_val[1];
27482 } zone_net_data_t;
27483 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h" 2
27484 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/refstr.h" 1
27485 /*
27486  * CDDL HEADER START
27487  *
27488  * The contents of this file are subject to the terms of the
27489  * Common Development and Distribution License, Version 1.0 only
27490  * (the "License").  You may not use this file except in compliance
27491  * with the License.
27492  *
27493  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27494  * or http://www.opensolaris.org/os/licensing.
27495  * See the License for the specific language governing permissions
27496  * and limitations under the License.
27497  *
27498  * When distributing Covered Code, include this CDDL HEADER in each
27499  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27500  * If applicable, add the following below this CDDL HEADER, with the
27501  * fields enclosed by brackets "[]" replaced with your own identifying
27502  * information: Portions Copyright [yyyy] [name of copyright owner]
27503  *
27504  * CDDL HEADER END
27505  */
27506 /*
27507  * Copyright (c) 1999 by Sun Microsystems, Inc.
27508  * All rights reserved.
27509  *
27510  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
27511  */
27512 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/refstr.h"
27513 /*
27514  * Strings with reference counts.
27515  * The 'struct refstr' definition is private to the refstr.c module.
27516  */
27517 
27518 typedef struct refstr refstr_t;
27519 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h" 2
27520 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
27521 /*
27522  * CDDL HEADER START
27523  *
27524  * The contents of this file are subject to the terms of the
27525  * Common Development and Distribution License (the "License").
27526  * You may not use this file except in compliance with the License.
27527  *
27528  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27529  * or http://www.opensolaris.org/os/licensing.
27530  * See the License for the specific language governing permissions
27531  * and limitations under the License.
27532  *
27533  * When distributing Covered Code, include this CDDL HEADER in each
27534  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27535  * If applicable, add the following below this CDDL HEADER, with the
27536  * fields enclosed by brackets "[]" replaced with your own identifying
27537  * information: Portions Copyright [yyyy] [name of copyright owner]
27538  *
27539  * CDDL HEADER END
27540  */
27541 /*
27542  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
27543  */
27544 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h" 2
27545 
27546 
27547 
27548 
27549 
27550 /*
27551  * Definitions for corectl() system call.
27552  */
27553 
27554 /* subcodes */
27555 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h"
27556 /* options */
27557 
27558 
27559 
27560 
27561 
27562 
27563 /* all of the above */
27564 
27565 
27566 
27567 
27568 /* contents */
27569 
27570 
27571 
27572 /* MAP_SHARED file mappings */
27573 
27574 
27575 
27576 /* MAP_PRIVATE file mappings */
27577 # 100 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h"
27578 typedef u_longlong_t core_content_t;
27579 
27580 typedef struct corectl_content {
27581  core_content_t ccc_content;
27582  kmutex_t ccc_mtx;
27583  uint32_t ccc_refcnt;
27584 } corectl_content_t;
27585 
27586 typedef struct corectl_path {
27587  refstr_t *ccp_path;
27588  kmutex_t ccp_mtx;
27589  uint32_t ccp_refcnt;
27590 } corectl_path_t;
27591 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/corectl.h"
27592 extern int core_set_options(int);
27593 extern int core_get_options(void);
27594 extern int core_set_global_path(const char *, size_t);
27595 extern int core_get_global_path(char *, size_t);
27596 extern int core_set_default_path(const char *, size_t);
27597 extern int core_get_default_path(char *, size_t);
27598 extern int core_set_process_path(const char *, size_t, pid_t);
27599 extern int core_get_process_path(char *, size_t, pid_t);
27600 extern int core_set_global_content(const core_content_t *);
27601 extern int core_get_global_content(core_content_t *);
27602 extern int core_set_default_content(const core_content_t *);
27603 extern int core_get_default_content(core_content_t *);
27604 extern int core_set_process_content(const core_content_t *, pid_t);
27605 extern int core_get_process_content(core_content_t *, pid_t);
27606 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
27607 
27608 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysi86.h" 1
27609 /*
27610  * CDDL HEADER START
27611  *
27612  * The contents of this file are subject to the terms of the
27613  * Common Development and Distribution License (the "License").
27614  * You may not use this file except in compliance with the License.
27615  *
27616  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27617  * or http://www.opensolaris.org/os/licensing.
27618  * See the License for the specific language governing permissions
27619  * and limitations under the License.
27620  *
27621  * When distributing Covered Code, include this CDDL HEADER in each
27622  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27623  * If applicable, add the following below this CDDL HEADER, with the
27624  * fields enclosed by brackets "[]" replaced with your own identifying
27625  * information: Portions Copyright [yyyy] [name of copyright owner]
27626  *
27627  * CDDL HEADER END
27628  */
27629 /*
27630  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
27631  * Use is subject to license terms.
27632  */
27633 
27634 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
27635 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */
27636 /*	  All Rights Reserved */
27637 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h" 2
27638 
27639 
27640 
27641 
27642 
27643 
27644 /*
27645  * Opaque structure tag reference to a process control structure.
27646  * Clients of libproc cannot look inside the process control structure.
27647  * The implementation of struct ps_prochandle can change w/o affecting clients.
27648  */
27649 struct ps_prochandle;
27650 
27651 /*
27652  * Opaque structure tag reference to an lwp control structure.
27653  */
27654 struct ps_lwphandle;
27655 
27656 extern int _libproc_debug; /* set non-zero to enable debugging fprintfs */
27657 extern int _libproc_no_qsort; /* set non-zero to inhibit sorting */
27658      /* of symbol tables */
27659 extern int _libproc_incore_elf; /* only use in-core elf data */
27660 # 113 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h"
27661 /* maximum sizes of things */
27662 
27663 
27664 
27665 
27666 /* State values returned by Pstate() */
27667 
27668 
27669 
27670 
27671 
27672 
27673 
27674 /* Flags accepted by Pgrab() */
27675 
27676 
27677 
27678 
27679 
27680 
27681 /* Error codes from Pcreate() */
27682 # 142 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h"
27683 /* Error codes from Pgrab(), Pfgrab_core(), and Pgrab_core() */
27684 # 163 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h"
27685 /* Flags accepted by Prelease */
27686 
27687 
27688 
27689 
27690 
27691 typedef struct { /* argument descriptor for system call (Psyscall) */
27692  long arg_value; /* value of argument given to system call */
27693  void *arg_object; /* pointer to object in controlling process */
27694  char arg_type; /* AT_BYVAL, AT_BYREF */
27695  char arg_inout; /* AI_INPUT, AI_OUTPUT, AI_INOUT */
27696  ushort_t arg_size; /* if AT_BYREF, size of object in bytes */
27697 } argdes_t;
27698 
27699 /* values for type */
27700 
27701 
27702 
27703 /* values for inout */
27704 
27705 
27706 
27707 
27708 /* maximum number of syscall arguments */
27709 
27710 
27711 /* maximum size in bytes of a BYREF argument */
27712 
27713 
27714 /*
27715  * Ops vector definition for the Pgrab_ops().
27716  */
27717 typedef ssize_t (*pop_pread_t)(struct ps_prochandle *, void *, size_t,
27718     uintptr_t, void *);
27719 typedef ssize_t (*pop_pwrite_t)(struct ps_prochandle *, const void *, size_t,
27720     uintptr_t, void *);
27721 typedef int (*pop_read_maps_t)(struct ps_prochandle *, prmap_t **, ssize_t *,
27722     void *);
27723 typedef void (*pop_read_aux_t)(struct ps_prochandle *, auxv_t **, int *,
27724     void *);
27725 typedef int (*pop_cred_t)(struct ps_prochandle *, prcred_t *, int,
27726     void *);
27727 typedef int (*pop_priv_t)(struct ps_prochandle *, prpriv_t **, void *);
27728 typedef const psinfo_t *(*pop_psinfo_t)(struct ps_prochandle *, psinfo_t *,
27729     void *);
27730 typedef void (*pop_status_t)(struct ps_prochandle *, pstatus_t *, void *);
27731 typedef prheader_t *(*pop_lstatus_t)(struct ps_prochandle *, void *);
27732 typedef prheader_t *(*pop_lpsinfo_t)(struct ps_prochandle *, void *);
27733 typedef void (*pop_fini_t)(struct ps_prochandle *, void *);
27734 typedef char *(*pop_platform_t)(struct ps_prochandle *, char *, size_t, void *);
27735 typedef int (*pop_uname_t)(struct ps_prochandle *, struct utsname *, void *);
27736 typedef char *(*pop_zonename_t)(struct ps_prochandle *, char *, size_t, void *);
27737 typedef char *(*pop_execname_t)(struct ps_prochandle *, char *, size_t, void *);
27738 
27739 typedef int (*pop_ldt_t)(struct ps_prochandle *, struct ssd *, int, void *);
27740 
27741 
27742 typedef struct ps_ops {
27743  pop_pread_t pop_pread;
27744  pop_pwrite_t pop_pwrite;
27745  pop_read_maps_t pop_read_maps;
27746  pop_read_aux_t pop_read_aux;
27747  pop_cred_t pop_cred;
27748  pop_priv_t pop_priv;
27749  pop_psinfo_t pop_psinfo;
27750  pop_status_t pop_status;
27751  pop_lstatus_t pop_lstatus;
27752  pop_lpsinfo_t pop_lpsinfo;
27753  pop_fini_t pop_fini;
27754  pop_platform_t pop_platform;
27755  pop_uname_t pop_uname;
27756  pop_zonename_t pop_zonename;
27757  pop_execname_t pop_execname;
27758 
27759  pop_ldt_t pop_ldt;
27760 
27761 } ps_ops_t;
27762 
27763 /*
27764  * Function prototypes for routines in the process control package.
27765  */
27766 extern struct ps_prochandle *Pcreate(const char *, char *const *,
27767     int *, char *, size_t);
27768 extern struct ps_prochandle *Pxcreate(const char *, char *const *,
27769     char *const *, int *, char *, size_t);
27770 
27771 extern const char *Pcreate_error(int);
27772 
27773 extern struct ps_prochandle *Pgrab(pid_t, int, int *);
27774 extern struct ps_prochandle *Pgrab_core(const char *, const char *, int, int *);
27775 extern struct ps_prochandle *Pfgrab_core(int, const char *, int *);
27776 extern struct ps_prochandle *Pgrab_file(const char *, int *);
27777 extern struct ps_prochandle *Pgrab_ops(pid_t, void *, const ps_ops_t *, int);
27778 extern const char *Pgrab_error(int);
27779 
27780 extern int Preopen(struct ps_prochandle *);
27781 extern void Prelease(struct ps_prochandle *, int);
27782 extern void Pfree(struct ps_prochandle *);
27783 
27784 extern int Pasfd(struct ps_prochandle *);
27785 extern char *Pbrandname(struct ps_prochandle *, char *, size_t);
27786 extern int Pctlfd(struct ps_prochandle *);
27787 extern int Pcreate_agent(struct ps_prochandle *);
27788 extern void Pdestroy_agent(struct ps_prochandle *);
27789 extern int Pstopstatus(struct ps_prochandle *, long, uint_t);
27790 extern int Pwait(struct ps_prochandle *, uint_t);
27791 extern int Pstop(struct ps_prochandle *, uint_t);
27792 extern int Pdstop(struct ps_prochandle *);
27793 extern int Pstate(struct ps_prochandle *);
27794 extern const psinfo_t *Ppsinfo(struct ps_prochandle *);
27795 extern const pstatus_t *Pstatus(struct ps_prochandle *);
27796 extern int Pcred(struct ps_prochandle *, prcred_t *, int);
27797 extern int Psetcred(struct ps_prochandle *, const prcred_t *);
27798 extern int Ppriv(struct ps_prochandle *, prpriv_t **);
27799 extern int Psetpriv(struct ps_prochandle *, prpriv_t *);
27800 extern void *Pprivinfo(struct ps_prochandle *);
27801 extern int Psetzoneid(struct ps_prochandle *, zoneid_t);
27802 extern int Pgetareg(struct ps_prochandle *, int, greg_t *);
27803 extern int Pputareg(struct ps_prochandle *, int, greg_t);
27804 extern int Psetrun(struct ps_prochandle *, int, int);
27805 extern ssize_t Pread(struct ps_prochandle *, void *, size_t, uintptr_t);
27806 extern ssize_t Pread_string(struct ps_prochandle *, char *, size_t, uintptr_t);
27807 extern ssize_t Pwrite(struct ps_prochandle *, const void *, size_t, uintptr_t);
27808 extern int Pclearsig(struct ps_prochandle *);
27809 extern int Pclearfault(struct ps_prochandle *);
27810 extern int Psetbkpt(struct ps_prochandle *, uintptr_t, ulong_t *);
27811 extern int Pdelbkpt(struct ps_prochandle *, uintptr_t, ulong_t);
27812 extern int Pxecbkpt(struct ps_prochandle *, ulong_t);
27813 extern int Psetwapt(struct ps_prochandle *, const prwatch_t *);
27814 extern int Pdelwapt(struct ps_prochandle *, const prwatch_t *);
27815 extern int Pxecwapt(struct ps_prochandle *, const prwatch_t *);
27816 extern int Psetflags(struct ps_prochandle *, long);
27817 extern int Punsetflags(struct ps_prochandle *, long);
27818 extern int Psignal(struct ps_prochandle *, int, int);
27819 extern int Pfault(struct ps_prochandle *, int, int);
27820 extern int Psysentry(struct ps_prochandle *, int, int);
27821 extern int Psysexit(struct ps_prochandle *, int, int);
27822 extern void Psetsignal(struct ps_prochandle *, const sigset_t *);
27823 extern void Psetfault(struct ps_prochandle *, const fltset_t *);
27824 extern void Psetsysentry(struct ps_prochandle *, const sysset_t *);
27825 extern void Psetsysexit(struct ps_prochandle *, const sysset_t *);
27826 
27827 extern void Psync(struct ps_prochandle *);
27828 extern int Psyscall(struct ps_prochandle *, sysret_t *,
27829    int, uint_t, argdes_t *);
27830 extern int Pisprocdir(struct ps_prochandle *, const char *);
27831 
27832 /*
27833  * Function prototypes for lwp-specific operations.
27834  */
27835 extern struct ps_lwphandle *Lgrab(struct ps_prochandle *, lwpid_t, int *);
27836 extern const char *Lgrab_error(int);
27837 
27838 extern struct ps_prochandle *Lprochandle(struct ps_lwphandle *);
27839 extern void Lfree(struct ps_lwphandle *);
27840 
27841 extern int Lctlfd(struct ps_lwphandle *);
27842 extern int Lwait(struct ps_lwphandle *, uint_t);
27843 extern int Lstop(struct ps_lwphandle *, uint_t);
27844 extern int Ldstop(struct ps_lwphandle *);
27845 extern int Lstate(struct ps_lwphandle *);
27846 extern const lwpsinfo_t *Lpsinfo(struct ps_lwphandle *);
27847 extern const lwpstatus_t *Lstatus(struct ps_lwphandle *);
27848 extern int Lgetareg(struct ps_lwphandle *, int, greg_t *);
27849 extern int Lputareg(struct ps_lwphandle *, int, greg_t);
27850 extern int Lsetrun(struct ps_lwphandle *, int, int);
27851 extern int Lclearsig(struct ps_lwphandle *);
27852 extern int Lclearfault(struct ps_lwphandle *);
27853 extern int Lxecbkpt(struct ps_lwphandle *, ulong_t);
27854 extern int Lxecwapt(struct ps_lwphandle *, const prwatch_t *);
27855 extern void Lsync(struct ps_lwphandle *);
27856 
27857 extern int Lstack(struct ps_lwphandle *, stack_t *);
27858 extern int Lmain_stack(struct ps_lwphandle *, stack_t *);
27859 extern int Lalt_stack(struct ps_lwphandle *, stack_t *);
27860 
27861 /*
27862  * Function prototypes for system calls forced on the victim process.
27863  */
27864 extern int pr_open(struct ps_prochandle *, const char *, int, mode_t);
27865 extern int pr_creat(struct ps_prochandle *, const char *, mode_t);
27866 extern int pr_close(struct ps_prochandle *, int);
27867 extern int pr_access(struct ps_prochandle *, const char *, int);
27868 extern int pr_door_info(struct ps_prochandle *, int, struct door_info *);
27869 extern void *pr_mmap(struct ps_prochandle *,
27870    void *, size_t, int, int, int, off_t);
27871 extern void *pr_zmap(struct ps_prochandle *,
27872    void *, size_t, int, int);
27873 extern int pr_munmap(struct ps_prochandle *, void *, size_t);
27874 extern int pr_memcntl(struct ps_prochandle *,
27875    caddr_t, size_t, int, caddr_t, int, int);
27876 extern int pr_meminfo(struct ps_prochandle *, const uint64_t *addrs,
27877    int addr_count, const uint_t *info, int info_count,
27878    uint64_t *outdata, uint_t *validity);
27879 extern int pr_sigaction(struct ps_prochandle *,
27880    int, const struct sigaction *, struct sigaction *);
27881 extern int pr_getitimer(struct ps_prochandle *,
27882    int, struct itimerval *);
27883 extern int pr_setitimer(struct ps_prochandle *,
27884    int, const struct itimerval *, struct itimerval *);
27885 extern int pr_ioctl(struct ps_prochandle *, int, int, void *, size_t);
27886 extern int pr_fcntl(struct ps_prochandle *, int, int, void *);
27887 extern int pr_stat(struct ps_prochandle *, const char *, struct stat *);
27888 extern int pr_lstat(struct ps_prochandle *, const char *, struct stat *);
27889 extern int pr_fstat(struct ps_prochandle *, int, struct stat *);
27890 extern int pr_stat64(struct ps_prochandle *, const char *,
27891    struct stat64 *);
27892 extern int pr_lstat64(struct ps_prochandle *, const char *,
27893    struct stat64 *);
27894 extern int pr_fstat64(struct ps_prochandle *, int, struct stat64 *);
27895 extern int pr_statvfs(struct ps_prochandle *, const char *, statvfs_t *);
27896 extern int pr_fstatvfs(struct ps_prochandle *, int, statvfs_t *);
27897 extern projid_t pr_getprojid(struct ps_prochandle *Pr);
27898 extern taskid_t pr_gettaskid(struct ps_prochandle *Pr);
27899 extern taskid_t pr_settaskid(struct ps_prochandle *Pr, projid_t project,
27900    int flags);
27901 extern zoneid_t pr_getzoneid(struct ps_prochandle *Pr);
27902 extern int pr_getrctl(struct ps_prochandle *,
27903    const char *, rctlblk_t *, rctlblk_t *, int);
27904 extern int pr_setrctl(struct ps_prochandle *,
27905    const char *, rctlblk_t *, rctlblk_t *, int);
27906 extern int pr_getrlimit(struct ps_prochandle *,
27907    int, struct rlimit *);
27908 extern int pr_setrlimit(struct ps_prochandle *,
27909    int, const struct rlimit *);
27910 extern int pr_setprojrctl(struct ps_prochandle *, const char *,
27911    rctlblk_t *, size_t, int);
27912 
27913 extern int pr_getrlimit64(struct ps_prochandle *,
27914    int, struct rlimit64 *);
27915 extern int pr_setrlimit64(struct ps_prochandle *,
27916    int, const struct rlimit64 *);
27917 
27918 extern int pr_lwp_exit(struct ps_prochandle *);
27919 extern int pr_exit(struct ps_prochandle *, int);
27920 extern int pr_waitid(struct ps_prochandle *,
27921    idtype_t, id_t, siginfo_t *, int);
27922 extern off_t pr_lseek(struct ps_prochandle *, int, off_t, int);
27923 extern offset_t pr_llseek(struct ps_prochandle *, int, offset_t, int);
27924 extern int pr_rename(struct ps_prochandle *, const char *, const char *);
27925 extern int pr_link(struct ps_prochandle *, const char *, const char *);
27926 extern int pr_unlink(struct ps_prochandle *, const char *);
27927 extern int pr_getpeerucred(struct ps_prochandle *, int, ucred_t **);
27928 extern int pr_getpeername(struct ps_prochandle *,
27929    int, struct sockaddr *, socklen_t *);
27930 extern int pr_getsockname(struct ps_prochandle *,
27931    int, struct sockaddr *, socklen_t *);
27932 extern int pr_getsockopt(struct ps_prochandle *,
27933    int, int, int, void *, int *);
27934 extern int pr_processor_bind(struct ps_prochandle *,
27935    idtype_t, id_t, int, int *);
27936 
27937 /*
27938  * Function prototypes for accessing per-LWP register information.
27939  */
27940 extern int Plwp_getregs(struct ps_prochandle *, lwpid_t, gregset_t);
27941 extern int Plwp_setregs(struct ps_prochandle *, lwpid_t, const gregset_t);
27942 
27943 extern int Plwp_getfpregs(struct ps_prochandle *, lwpid_t, fpregset_t *);
27944 extern int Plwp_setfpregs(struct ps_prochandle *, lwpid_t,
27945     const fpregset_t *);
27946 # 440 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h"
27947 extern int Pldt(struct ps_prochandle *, struct ssd *, int);
27948 extern int proc_get_ldt(pid_t, struct ssd *, int);
27949 
27950 
27951 extern int Plwp_getpsinfo(struct ps_prochandle *, lwpid_t, lwpsinfo_t *);
27952 extern int Plwp_getspymaster(struct ps_prochandle *, lwpid_t, psinfo_t *);
27953 
27954 extern int Plwp_stack(struct ps_prochandle *, lwpid_t, stack_t *);
27955 extern int Plwp_main_stack(struct ps_prochandle *, lwpid_t, stack_t *);
27956 extern int Plwp_alt_stack(struct ps_prochandle *, lwpid_t, stack_t *);
27957 
27958 /*
27959  * LWP iteration interface; iterate over all active LWPs.
27960  */
27961 typedef int proc_lwp_f(void *, const lwpstatus_t *);
27962 extern int Plwp_iter(struct ps_prochandle *, proc_lwp_f *, void *);
27963 
27964 /*
27965  * LWP iteration interface; iterate over all LWPs, active and zombie.
27966  */
27967 typedef int proc_lwp_all_f(void *, const lwpstatus_t *, const lwpsinfo_t *);
27968 extern int Plwp_iter_all(struct ps_prochandle *, proc_lwp_all_f *, void *);
27969 
27970 /*
27971  * Process iteration interface; iterate over all non-system processes.
27972  */
27973 typedef int proc_walk_f(psinfo_t *, lwpsinfo_t *, void *);
27974 extern int proc_walk(proc_walk_f *, void *, int);
27975 
27976 
27977 
27978 
27979 /*
27980  * Determine if an lwp is in a set as returned from proc_arg_xgrab().
27981  */
27982 extern int proc_lwp_in_set(const char *, lwpid_t);
27983 extern int proc_lwp_range_valid(const char *);
27984 
27985 /*
27986  * Symbol table interfaces.
27987  */
27988 
27989 /*
27990  * Pseudo-names passed to Plookup_by_name() for well-known load objects.
27991  * NOTE: It is required that PR_OBJ_EXEC and PR_OBJ_LDSO exactly match
27992  * the definitions of PS_OBJ_EXEC and PS_OBJ_LDSO from <proc_service.h>.
27993  */
27994 
27995 
27996 
27997 
27998 /*
27999  * Special Lmid_t passed to Plookup_by_lmid() to search all link maps.  The
28000  * special values LM_ID_BASE and LM_ID_LDSO from <link.h> may also be used.
28001  * If PR_OBJ_EXEC is used as the object name, the lmid must be PR_LMID_EVERY
28002  * or LM_ID_BASE in order to return a match.  If PR_OBJ_LDSO is used as the
28003  * object name, the lmid must be PR_LMID_EVERY or LM_ID_LDSO to return a match.
28004  */
28005 
28006 
28007 /*
28008  * 'object_name' is the name of a load object obtained from an
28009  * iteration over the process's address space mappings (Pmapping_iter),
28010  * or an iteration over the process's mapped objects (Pobject_iter),
28011  * or else it is one of the special PR_OBJ_* values above.
28012  */
28013 extern int Plookup_by_name(struct ps_prochandle *,
28014     const char *, const char *, GElf_Sym *);
28015 
28016 extern int Plookup_by_addr(struct ps_prochandle *,
28017     uintptr_t, char *, size_t, GElf_Sym *);
28018 
28019 typedef struct prsyminfo {
28020  const char *prs_object; /* object name */
28021  const char *prs_name; /* symbol name */
28022  Lmid_t prs_lmid; /* link map id */
28023  uint_t prs_id; /* symbol id */
28024  uint_t prs_table; /* symbol table id */
28025 } prsyminfo_t;
28026 
28027 extern int Pxlookup_by_name(struct ps_prochandle *,
28028     Lmid_t, const char *, const char *, GElf_Sym *, prsyminfo_t *);
28029 
28030 extern int Pxlookup_by_addr(struct ps_prochandle *,
28031     uintptr_t, char *, size_t, GElf_Sym *, prsyminfo_t *);
28032 extern int Pxlookup_by_addr_resolved(struct ps_prochandle *,
28033     uintptr_t, char *, size_t, GElf_Sym *, prsyminfo_t *);
28034 
28035 typedef int proc_map_f(void *, const prmap_t *, const char *);
28036 
28037 extern int Pmapping_iter(struct ps_prochandle *, proc_map_f *, void *);
28038 extern int Pmapping_iter_resolved(struct ps_prochandle *, proc_map_f *, void *);
28039 extern int Pobject_iter(struct ps_prochandle *, proc_map_f *, void *);
28040 extern int Pobject_iter_resolved(struct ps_prochandle *, proc_map_f *, void *);
28041 
28042 extern const prmap_t *Paddr_to_map(struct ps_prochandle *, uintptr_t);
28043 extern const prmap_t *Paddr_to_text_map(struct ps_prochandle *, uintptr_t);
28044 extern const prmap_t *Pname_to_map(struct ps_prochandle *, const char *);
28045 extern const prmap_t *Plmid_to_map(struct ps_prochandle *,
28046     Lmid_t, const char *);
28047 
28048 extern const rd_loadobj_t *Paddr_to_loadobj(struct ps_prochandle *, uintptr_t);
28049 extern const rd_loadobj_t *Pname_to_loadobj(struct ps_prochandle *,
28050     const char *);
28051 extern const rd_loadobj_t *Plmid_to_loadobj(struct ps_prochandle *,
28052     Lmid_t, const char *);
28053 
28054 extern ctf_file_t *Paddr_to_ctf(struct ps_prochandle *, uintptr_t);
28055 extern ctf_file_t *Pname_to_ctf(struct ps_prochandle *, const char *);
28056 
28057 extern char *Pplatform(struct ps_prochandle *, char *, size_t);
28058 extern int Puname(struct ps_prochandle *, struct utsname *);
28059 extern char *Pzonename(struct ps_prochandle *, char *, size_t);
28060 extern char *Pfindobj(struct ps_prochandle *, const char *, char *, size_t);
28061 
28062 extern char *Pexecname(struct ps_prochandle *, char *, size_t);
28063 extern char *Pobjname(struct ps_prochandle *, uintptr_t, char *, size_t);
28064 extern char *Pobjname_resolved(struct ps_prochandle *, uintptr_t, char *,
28065     size_t);
28066 extern int Plmid(struct ps_prochandle *, uintptr_t, Lmid_t *);
28067 
28068 typedef int proc_env_f(void *, struct ps_prochandle *, uintptr_t, const char *);
28069 extern int Penv_iter(struct ps_prochandle *, proc_env_f *, void *);
28070 extern char *Pgetenv(struct ps_prochandle *, const char *, char *, size_t);
28071 extern long Pgetauxval(struct ps_prochandle *, int);
28072 extern const auxv_t *Pgetauxvec(struct ps_prochandle *);
28073 
28074 extern void Pset_procfs_path(const char *);
28075 
28076 /*
28077  * Symbol table iteration interface.  The special lmid constants LM_ID_BASE,
28078  * LM_ID_LDSO, and PR_LMID_EVERY may be used with Psymbol_iter_by_lmid.
28079  */
28080 typedef int proc_sym_f(void *, const GElf_Sym *, const char *);
28081 typedef int proc_xsym_f(void *, const GElf_Sym *, const char *,
28082     const prsyminfo_t *);
28083 
28084 extern int Psymbol_iter(struct ps_prochandle *,
28085     const char *, int, int, proc_sym_f *, void *);
28086 extern int Psymbol_iter_by_addr(struct ps_prochandle *,
28087     const char *, int, int, proc_sym_f *, void *);
28088 extern int Psymbol_iter_by_name(struct ps_prochandle *,
28089     const char *, int, int, proc_sym_f *, void *);
28090 
28091 extern int Psymbol_iter_by_lmid(struct ps_prochandle *,
28092     Lmid_t, const char *, int, int, proc_sym_f *, void *);
28093 
28094 extern int Pxsymbol_iter(struct ps_prochandle *,
28095     Lmid_t, const char *, int, int, proc_xsym_f *, void *);
28096 
28097 /*
28098  * 'which' selects which symbol table and can be one of the following.
28099  */
28100 
28101 
28102 /*
28103  * 'type' selects the symbols of interest by binding and type.  It is a bit-
28104  * mask of one or more of the following flags, whose order MUST match the
28105  * order of STB and STT constants in <sys/elf.h>.
28106  */
28107 # 611 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libproc.h"
28108 /*
28109  * This returns the rtld_db agent handle for the process.
28110  * The handle will become invalid at the next successful exec() and
28111  * must not be used beyond that point (see Preset_maps(), below).
28112  */
28113 extern rd_agent_t *Prd_agent(struct ps_prochandle *);
28114 
28115 /*
28116  * This should be called when an RD_DLACTIVITY event with the
28117  * RD_CONSISTENT state occurs via librtld_db's event mechanism.
28118  * This makes libproc's address space mappings and symbol tables current.
28119  * The variant Pupdate_syms() can be used to preload all symbol tables as well.
28120  */
28121 extern void Pupdate_maps(struct ps_prochandle *);
28122 extern void Pupdate_syms(struct ps_prochandle *);
28123 
28124 /*
28125  * This must be called after the victim process performs a successful
28126  * exec() if any of the symbol table interface functions have been called
28127  * prior to that point.  This is essential because an exec() invalidates
28128  * all previous symbol table and address space mapping information.
28129  * It is always safe to call, but if it is called other than after an
28130  * exec() by the victim process it just causes unnecessary overhead.
28131  *
28132  * The rtld_db agent handle obtained from a previous call to Prd_agent() is
28133  * made invalid by Preset_maps() and Prd_agent() must be called again to get
28134  * the new handle.
28135  */
28136 extern void Preset_maps(struct ps_prochandle *);
28137 
28138 /*
28139  * Given an address, Ppltdest() determines if this is part of a PLT, and if
28140  * so returns a pointer to the symbol name that will be used for resolution.
28141  * If the specified address is not part of a PLT, the function returns NULL.
28142  */
28143 extern const char *Ppltdest(struct ps_prochandle *, uintptr_t);
28144 
28145 /*
28146  * See comments for Pissyscall(), in Pisadep.h
28147  */
28148 extern int Pissyscall_prev(struct ps_prochandle *, uintptr_t, uintptr_t *);
28149 
28150 /*
28151  * Stack frame iteration interface.
28152  */
28153 typedef int proc_stack_f(void *, gregset_t, uint_t, const long *);
28154 
28155 extern int Pstack_iter(struct ps_prochandle *,
28156     const gregset_t, proc_stack_f *, void *);
28157 
28158 /*
28159  * The following functions define a set of passive interfaces: libproc provides
28160  * default, empty definitions that are called internally.  If a client wishes
28161  * to override these definitions, it can simply provide its own version with
28162  * the same signature that interposes on the libproc definition.
28163  *
28164  * If the client program wishes to report additional error information, it
28165  * can provide its own version of Perror_printf.
28166  *
28167  * If the client program wishes to receive a callback after Pcreate forks
28168  * but before it execs, it can provide its own version of Pcreate_callback.
28169  */
28170 extern void Perror_printf(struct ps_prochandle *P, const char *format, ...);
28171 extern void Pcreate_callback(struct ps_prochandle *);
28172 
28173 /*
28174  * Remove unprintable characters from psinfo.pr_psargs and replace with
28175  * whitespace characters so it is safe for printing.
28176  */
28177 extern void proc_unctrl_psinfo(psinfo_t *);
28178 
28179 /*
28180  * Utility functions for processing arguments which should be /proc files,
28181  * pids, and/or core files.  The returned error code can be passed to
28182  * Pgrab_error() in order to convert it to an error string.
28183  */
28184 
28185 
28186 
28187 
28188 
28189 extern struct ps_prochandle *proc_arg_grab(const char *, int, int, int *);
28190 extern struct ps_prochandle *proc_arg_xgrab(const char *, const char *, int,
28191     int, int *, const char **);
28192 extern pid_t proc_arg_psinfo(const char *, int, psinfo_t *, int *);
28193 extern pid_t proc_arg_xpsinfo(const char *, int, psinfo_t *, int *,
28194     const char **);
28195 
28196 /*
28197  * Utility functions for obtaining information via /proc without actually
28198  * performing a Pcreate() or Pgrab():
28199  */
28200 extern int proc_get_auxv(pid_t, auxv_t *, int);
28201 extern int proc_get_cred(pid_t, prcred_t *, int);
28202 extern prpriv_t *proc_get_priv(pid_t);
28203 extern int proc_get_psinfo(pid_t, psinfo_t *);
28204 extern int proc_get_status(pid_t, pstatus_t *);
28205 
28206 /*
28207  * Utility functions for debugging tools to convert numeric fault,
28208  * signal, and system call numbers to symbolic names:
28209  */
28210 
28211 
28212 
28213 extern char *proc_fltname(int, char *, size_t);
28214 extern char *proc_signame(int, char *, size_t);
28215 extern char *proc_sysname(int, char *, size_t);
28216 
28217 /*
28218  * Utility functions for debugging tools to convert fault, signal, and system
28219  * call names back to the numeric constants:
28220  */
28221 extern int proc_str2flt(const char *, int *);
28222 extern int proc_str2sig(const char *, int *);
28223 extern int proc_str2sys(const char *, int *);
28224 
28225 /*
28226  * Utility functions for debugging tools to convert a fault, signal or system
28227  * call set to a string representation (e.g. "BUS,SEGV" or "open,close,read").
28228  */
28229 
28230 
28231 extern char *proc_fltset2str(const fltset_t *, const char *, int,
28232     char *, size_t);
28233 extern char *proc_sigset2str(const sigset_t *, const char *, int,
28234     char *, size_t);
28235 extern char *proc_sysset2str(const sysset_t *, const char *, int,
28236     char *, size_t);
28237 
28238 extern int Pgcore(struct ps_prochandle *, const char *, core_content_t);
28239 extern int Pfgcore(struct ps_prochandle *, int, core_content_t);
28240 extern core_content_t Pcontent(struct ps_prochandle *);
28241 
28242 /*
28243  * Utility functions for debugging tools to convert a string representation of
28244  * a fault, signal or system call set back to the numeric value of the
28245  * corresponding set type.
28246  */
28247 extern char *proc_str2fltset(const char *, const char *, int, fltset_t *);
28248 extern char *proc_str2sigset(const char *, const char *, int, sigset_t *);
28249 extern char *proc_str2sysset(const char *, const char *, int, sysset_t *);
28250 
28251 /*
28252  * Utility functions for converting between strings and core_content_t.
28253  */
28254 
28255 
28256 extern int proc_str2content(const char *, core_content_t *);
28257 extern int proc_content2str(core_content_t, char *, size_t);
28258 
28259 /*
28260  * Utility functions for buffering output to stdout, stderr while
28261  * process is grabbed.  Prevents deadlocks due to pfiles `pgrep xterm`
28262  * and other varients.
28263  */
28264 extern int proc_initstdio(void);
28265 extern int proc_flushstdio(void);
28266 extern int proc_finistdio(void);
28267 
28268 /*
28269  * Iterate over all open files.
28270  */
28271 typedef int proc_fdinfo_f(void *, prfdinfo_t *);
28272 extern int Pfdinfo_iter(struct ps_prochandle *, proc_fdinfo_f *, void *);
28273 # 52 "common/apptrace.c" 2
28274 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libctf.h" 1
28275 /*
28276  * CDDL HEADER START
28277  *
28278  * The contents of this file are subject to the terms of the
28279  * Common Development and Distribution License, Version 1.0 only
28280  * (the "License").  You may not use this file except in compliance
28281  * with the License.
28282  *
28283  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28284  * or http://www.opensolaris.org/os/licensing.
28285  * See the License for the specific language governing permissions
28286  * and limitations under the License.
28287  *
28288  * When distributing Covered Code, include this CDDL HEADER in each
28289  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28290  * If applicable, add the following below this CDDL HEADER, with the
28291  * fields enclosed by brackets "[]" replaced with your own identifying
28292  * information: Portions Copyright [yyyy] [name of copyright owner]
28293  *
28294  * CDDL HEADER END
28295  */
28296 /*
28297  * Copyright 2001-2003 Sun Microsystems, Inc.  All rights reserved.
28298  * Use is subject to license terms.
28299  */
28300 /*
28301  * Copyright (c) 2015, Joyent, Inc.
28302  */
28303 
28304 /*
28305  * This header file defines the interfaces available from the CTF debugger
28306  * library, libctf.  This library provides functions that a debugger can
28307  * use to operate on data in the Compact ANSI-C Type Format (CTF).  This
28308  * is NOT a public interface, although it may eventually become one in
28309  * the fullness of time after we gain more experience with the interfaces.
28310  *
28311  * In the meantime, be aware that any program linked with libctf in this
28312  * release of illumos is almost guaranteed to break in the next release.
28313  *
28314  * In short, do not user this header file or libctf for any purpose.
28315  */
28316 # 53 "common/apptrace.c" 2
28317 
28318 
28319 
28320 extern const char *type_name(ctf_file_t *, ctf_id_t, char *, size_t);
28321 extern void print_value(ctf_file_t *, ctf_id_t, ulong_t);
28322 
28323 static struct ps_prochandle *proc_hdl = 0;
28324 
28325 static Liblist *bindto_list;
28326 static Liblist *bindto_excl;
28327 static Liblist *bindfrom_list;
28328 static Liblist *bindfrom_excl;
28329 static Liblist *intlib_list;
28330 static uint_t pidout;
28331 static Intlist *trace_list;
28332 static Intlist *trace_excl;
28333 static Intlist *verbose_list;
28334 static Intlist *verbose_excl;
28335 
28336 /*
28337  * Required for calls to build_env_list1 where
28338  * things are added to the end of the list (preserving
28339  * search order implied by the setting of env variables
28340  * in apptracecmd.c)
28341  */
28342 static Liblist *intlib_listend;
28343 
28344 /*
28345  * These globals are sought and used by interceptlib.c
28346  * which goes into all interceptor objects.
28347  */
28348 FILE *__abi_outfile = (&__iob[2]);
28349 sigset_t abisigset;
28350 
28351 /*
28352  * Strings are printed with "%.*s", abi_strpsz, string
28353  */
28354 int abi_strpsz = 20;
28355 
28356 /*
28357  * Special function pointers that'll be set up to point at the
28358  * libc/libthread versions in the _application's_ link map (as opposed
28359  * to our own).
28360  *
28361  * Additionally, it is impossible to generalize the programmatic
28362  * creation of interceptor functions for variable argument list
28363  * functions.  However, in the case of the printf family, there is a
28364  * vprintf equivalent.  The interceptors for the printf family live in
28365  * interceptor.c and they call the appropriate vprintf interface
28366  * instead of the printf interface that they're intercepting.  The
28367  * link map issue remains, however, so function pointers for the
28368  * vprintf family in the application's link map are set up here.
28369  *
28370  * The interceptors also need to examine errno which also needs to be
28371  * extracted from the base link map.
28372  *
28373  * All of these pointers are initialized in la_preinit().
28374  */
28375 
28376 thread_t (*abi_thr_self)(void);
28377 int (*abi_thr_main)(void);
28378 
28379 int (*__abi_real_vfprintf)(FILE *, char const *, va_list);
28380 int (*__abi_real_vfwprintf)(FILE *, const wchar_t *, va_list);
28381 int (*__abi_real_vprintf)(char const *, va_list);
28382 int (*__abi_real_vsnprintf)(char *, size_t, char const *, va_list);
28383 int (*__abi_real_vsprintf)(char *, char const *, va_list);
28384 int (*__abi_real_vswprintf)(wchar_t *, size_t, const wchar_t *, va_list);
28385 int (*__abi_real_vwprintf)(const wchar_t *, va_list);
28386 int *(*__abi_real_errno)(void);
28387 
28388 
28389 
28390 
28391 
28392 
28393 static char const *libcpath = "/lib/libc.so.1";
28394 
28395 
28396 /* Used as arguments later to dlsym */
28397 static char const *thr_main_sym = "thr_main";
28398 static char const *thr_self_sym = "thr_self";
28399 static char const *vfprintf_sym = "vfprintf";
28400 static char const *vfwprintf_sym = "vfwprintf";
28401 static char const *vprintf_sym = "vprintf";
28402 static char const *vsnprintf_sym = "vsnprintf";
28403 static char const *vsprintf_sym = "vsprintf";
28404 static char const *vswprintf_sym = "vswprintf";
28405 static char const *vwprintf_sym = "vwprintf";
28406 static char const *errno_sym = "___errno";
28407 
28408 /*
28409  * The list of functions below are functions for which
28410  * apptrace.so will not perform any tracing.
28411  *
28412  * The user visible failure of tracing these functions
28413  * is a core dump of the application under observation.
28414  *
28415  * This list was originally discovered during sotruss
28416  * development.  Attempts lacking sufficient determination
28417  * to shrink this list have failed.
28418  *
28419  * There are a number of different kinds of issues here.
28420  *
28421  * The .stretX functions have to do with the relationship
28422  * that the caller and callee has with functions that
28423  * return structures and the altered calling convention
28424  * that results.
28425  *
28426  * We cannot trace *setjmp because the caller of these routines
28427  * is not allow to return which is exactly what an interceptor
28428  * function is going to do.
28429  *
28430  * The *context functions are on the list because we cannot trace
28431  * netscape without them on the list, but the exact mechanics of the
28432  * failure are not known at this time.
28433  *
28434  * The leaf functions *getsp can probably be removed given the
28435  * presence of an interceptor but that experiment has not been
28436  * conducted.
28437  *
28438  * NOTE: this list *must* be maintained in alphabetical order.
28439  *	 if this list ever became too long a faster search mechanism
28440  *	 should be considered.
28441  */
28442 static char *spec_sym[] = {
28443 
28444 
28445 
28446 
28447 
28448 
28449  "__getcontext",
28450  "_getcontext",
28451  "_getsp",
28452  "_longjmp",
28453  "_setcontext",
28454  "_setjmp",
28455  "_siglongjmp",
28456  "_sigsetjmp",
28457  "_vfork",
28458  "getcontext",
28459  "getsp",
28460  "longjmp",
28461  "setcontext",
28462  "setjmp",
28463  "siglongjmp",
28464  "sigsetjmp",
28465  "vfork",
28466  0
28467 };
28468 
28469 uint_t
28470 la_version(uint_t version)
28471 {
28472  char *str;
28473  FILE *fp;
28474 
28475  if (version > 5)
28476   (void) fprintf((&__iob[2]),
28477     dgettext(TEXT_DOMAIN,
28478      "apptrace: unexpected version: %u\n"),
28479     version);
28480 
28481  build_env_list(&bindto_list, "APPTRACE_BINDTO");
28482  build_env_list(&bindto_excl, "APPTRACE_BINDTO_EXCLUDE");
28483 
28484  build_env_list(&bindfrom_list, "APPTRACE_BINDFROM");
28485  build_env_list(&bindfrom_excl, "APPTRACE_BINDFROM_EXCLUDE");
28486 
28487  if (checkenv("APPTRACE_PID") != 0) {
28488   pidout = 1;
28489  } else {
28490   char *str = "LD_AUDIT=";
28491   char *str2 = "LD_AUDIT64=";
28492   /*
28493 		 * This disables apptrace output in subsequent exec'ed
28494 		 * processes.
28495 		 */
28496   (void) putenv(str);
28497   (void) putenv(str2);
28498  }
28499 
28500  if ((str = checkenv("APPTRACE_OUTPUT")) != 0) {
28501   int fd, newfd, targetfd, lowerlimit;
28502   struct rlimit rl;
28503 
28504   if (getrlimit(5, &rl) == -1) {
28505    (void) fprintf((&__iob[2]),
28506      dgettext(TEXT_DOMAIN,
28507       "apptrace: getrlimit: %s\n"),
28508      strerror((*(___errno()))));
28509    exit(1);
28510   }
28511 
28512   fd = open(str, 1|0x100|0x200, 0666);
28513   if (fd == -1) {
28514    (void) fprintf((&__iob[2]),
28515      dgettext(TEXT_DOMAIN,
28516       "apptrace: %s: %s\n"),
28517      str,
28518      strerror((*(___errno()))));
28519    exit(1);
28520   }
28521 
28522   /*
28523 		 * Those fans of dup2 should note that dup2 cannot
28524 		 * be used below because dup2 closes the target file
28525 		 * descriptor.  Thus, if we're apptracing say, ksh
28526 		 * we'd have closed the fd it uses for the history
28527 		 * file (63 on my box).
28528 		 *
28529 		 * fcntl with F_DUPFD returns first available >= arg3
28530 		 * so we iterate from the top until we find a available
28531 		 * fd.
28532 		 *
28533 		 * Not finding an fd after 10 tries is a failure.
28534 		 *
28535 		 * Since the _file member of the FILE structure is an
28536 		 * unsigned char, we must clamp our fd request to
28537 		 * UCHAR_MAX
28538 		 */
28539   lowerlimit = ((rl.rlim_cur >
28540       255) ? 255 : rl.rlim_cur) - 10;
28541 
28542   for (targetfd = lowerlimit + 10;
28543       targetfd > lowerlimit; targetfd--) {
28544    if ((newfd = fcntl(fd, 0, targetfd)) != -1)
28545     break;
28546   }
28547 
28548   if (newfd == -1) {
28549    (void) fprintf((&__iob[2]),
28550      dgettext(TEXT_DOMAIN,
28551       "apptrace: F_DUPFD: %s\n"),
28552      strerror((*(___errno()))));
28553    exit(1);
28554   }
28555   (void) close(fd);
28556 
28557   if (fcntl(newfd, 2, 1) == -1) {
28558    (void) fprintf((&__iob[2]),
28559      dgettext(TEXT_DOMAIN,
28560      "apptrace: fcntl FD_CLOEXEC: %s\n"),
28561      strerror((*(___errno()))));
28562    exit(1);
28563   }
28564 
28565   if ((fp = fdopen(newfd, "wF")) != 0) {
28566    __abi_outfile = fp;
28567   } else {
28568    (void) fprintf((&__iob[2]),
28569      dgettext(TEXT_DOMAIN,
28570       "apptrace: fdopen: %s\n"),
28571      strerror((*(___errno()))));
28572    exit(1);
28573   }
28574  }
28575 
28576 
28577 
28578 
28579 
28580  build_env_list1(&intlib_list, &intlib_listend,
28581      "APPTRACE_INTERCEPTORS");
28582 
28583 
28584  /* Set up lists interfaces to trace or ignore */
28585  env_to_intlist(&trace_list, "APPTRACE_INTERFACES");
28586  env_to_intlist(&trace_excl, "APPTRACE_INTERFACES_EXCLUDE");
28587  env_to_intlist(&verbose_list, "APPTRACE_VERBOSE");
28588  env_to_intlist(&verbose_excl, "APPTRACE_VERBOSE_EXCLUDE");
28589 
28590  return (5);
28591 }
28592 
28593 /* ARGSUSED1 */
28594 uint_t
28595 la_objopen(Link_map *lmp, Lmid_t lmid, uintptr_t *cookie)
28596 {
28597  uint_t flags;
28598  static int first = 1;
28599  int perr;
28600 
28601  /*
28602 	 * If this is the first time in, then l_name is the app
28603 	 * and unless the user gave an explict from list
28604 	 * we will trace calls from it.
28605 	 */
28606  if (first && bindfrom_list == 0) {
28607   flags = 0x0002 | 0x0001;
28608   first = 0;
28609   goto work;
28610  }
28611 
28612  /*
28613 	 * If we have no bindto_list, then we assume that we
28614 	 * bindto everything (apptrace -T \*)
28615 	 *
28616 	 * Otherwise we make sure that l_name is on the list.
28617 	 */
28618  flags = 0;
28619  if (bindto_list == 0) {
28620   flags = 0x0001;
28621  } else if (check_list(bindto_list, lmp->l_name) != 0) {
28622   flags |= 0x0001;
28623  }
28624 
28625  /*
28626 	 * If l_name is on the exclusion list, zero the bit.
28627 	 */
28628  if ((bindto_excl != 0) &&
28629      check_list(bindto_excl, lmp->l_name) != 0) {
28630   flags &= ~0x0001;
28631  }
28632 
28633  /*
28634 	 * If l_name is on the bindfrom list then trace
28635 	 */
28636  if (check_list(bindfrom_list, lmp->l_name) != 0) {
28637   flags |= 0x0002;
28638  }
28639 
28640  /*
28641 	 * If l_name is on the exclusion list, zero the bit
28642 	 * else trace, (this allows "-F !foo" to imply
28643 	 * "-F '*' -F !foo")
28644 	 */
28645  if (check_list(bindfrom_excl, lmp->l_name) != 0) {
28646   flags &= ~0x0002;
28647  } else if (bindfrom_excl != 0 && bindfrom_list == 0) {
28648   flags |= 0x0002;
28649  }
28650 
28651 work:
28652  if (flags) {
28653   *cookie = (uintptr_t)abibasename(lmp->l_name);
28654 
28655   /*
28656 		 * only call Pgrab() once to get the ps_prochandle
28657 		 */
28658   if (proc_hdl == 0)
28659    proc_hdl = Pgrab(getpid(), 0x04, &perr);
28660  }
28661 
28662  return (flags);
28663 }
28664 
28665 static void
28666 apptrace_preinit_fail(void)
28667 {
28668  (void) fprintf((&__iob[2]),
28669    dgettext(TEXT_DOMAIN, "apptrace: la_preinit: %s\n"),
28670    dlerror());
28671  exit(1);
28672 }
28673 
28674 /* ARGSUSED */
28675 void
28676 la_preinit(uintptr_t *cookie)
28677 {
28678  void *h = 0;
28679 
28680  (void) sigfillset(&abisigset);
28681 
28682  h = dlmopen(0x00, libcpath, 0x00001 | 0x00004);
28683  if (h == 0)
28684   apptrace_preinit_fail();
28685 
28686  if ((abi_thr_self =
28687      (thread_t (*)(void)) dlsym(h, thr_self_sym)) == 0)
28688   apptrace_preinit_fail();
28689  if ((abi_thr_main =
28690      (int (*)(void)) dlsym(h, thr_main_sym)) == 0)
28691   apptrace_preinit_fail();
28692 
28693  /* Do printf style pointers */
28694  if ((__abi_real_vfprintf =
28695      (int (*)(FILE *, char const *, va_list))
28696      dlsym(h, vfprintf_sym)) == 0)
28697   apptrace_preinit_fail();
28698 
28699  if ((__abi_real_vfwprintf =
28700      (int (*)(FILE *, const wchar_t *, va_list))
28701      dlsym(h, vfwprintf_sym)) == 0)
28702   apptrace_preinit_fail();
28703 
28704  if ((__abi_real_vprintf =
28705      (int (*)(char const *, va_list))
28706      dlsym(h, vprintf_sym)) == 0)
28707   apptrace_preinit_fail();
28708 
28709  if ((__abi_real_vsnprintf =
28710      (int (*)(char *, size_t, char const *, va_list))
28711      dlsym(h, vsnprintf_sym)) == 0)
28712   apptrace_preinit_fail();
28713 
28714  if ((__abi_real_vsprintf =
28715      (int (*)(char *, char const *, va_list))
28716      dlsym(h, vsprintf_sym)) == 0)
28717   apptrace_preinit_fail();
28718 
28719  if ((__abi_real_vswprintf =
28720      (int (*)(wchar_t *, size_t, const wchar_t *, va_list))
28721      dlsym(h, vswprintf_sym)) == 0)
28722   apptrace_preinit_fail();
28723 
28724  if ((__abi_real_vwprintf =
28725      (int (*)(const wchar_t *, va_list))
28726      dlsym(h, vwprintf_sym)) == 0)
28727   apptrace_preinit_fail();
28728 
28729  if ((__abi_real_errno =
28730      (int *(*)(void))
28731      dlsym(h, errno_sym)) == 0)
28732   apptrace_preinit_fail();
28733 
28734  (void) dlclose(h);
28735 }
28736 
28737 /* ARGSUSED1 */
28738 
28739 
28740 
28741 
28742 
28743 uintptr_t
28744 la_symbind32(Elf32_Sym *symp, uint_t symndx, uintptr_t *refcook,
28745     uintptr_t *defcook, uint_t *sb_flags)
28746 
28747 {
28748 
28749  char const *sym_name = (char const *) symp->st_name;
28750 
28751  int intercept = 0, verbose = 0;
28752  uintptr_t ret = symp->st_value;
28753  uint_t ndx;
28754  char *str;
28755 
28756 
28757 
28758 
28759 
28760  /* If we're not looking at a function, bug out */
28761  if (((symp->st_info) & 0xf) != 2)
28762   goto end;
28763 
28764 
28765  if (verbose_list != 0) {
28766   /* apptrace ... -v verbose_list ... cmd */
28767   if (check_intlist(verbose_list, sym_name))
28768    verbose = 1;
28769  }
28770  if (verbose_excl != 0) {
28771   /* apptrace ... -v !verbose_excl ... cmd */
28772   if (check_intlist(verbose_excl, sym_name))
28773    verbose = 0;
28774   else if (verbose_list == 0 && trace_list == 0 &&
28775       trace_excl == 0)
28776    /* apptrace -v !verbose_excl cmd */
28777    intercept = 1;
28778  }
28779  if (trace_list != 0) {
28780   /* apptrace ... -t trace_list ... cmd */
28781   if (check_intlist(trace_list, sym_name))
28782    intercept = 1;
28783  } else if (verbose_list == 0 && verbose_excl == 0)
28784   /* default (implies -t '*'):  apptrace cmd */
28785   intercept = 1;
28786 
28787  if (trace_excl != 0) {
28788   /* apptrace ... -t !trace_excl ... cmd */
28789   if (check_intlist(trace_excl, sym_name))
28790    intercept = 0;
28791  }
28792 
28793  if (verbose == 0 && intercept == 0) {
28794   *sb_flags |= (0x0002 | 0x0001);
28795   goto end;
28796  }
28797 
28798  /*
28799 	 * Check to see if this symbol is one of the 'special' symbols.
28800 	 * If so we disable calls for that symbol.
28801 	 */
28802  for (ndx = 0; (str = spec_sym[ndx]) != 0; ndx++) {
28803   int cmpval;
28804   cmpval = strcmp(sym_name, str);
28805   if (cmpval < 0)
28806    break;
28807   if (cmpval == 0) {
28808    intercept = verbose = 0;
28809    *sb_flags |= (0x0002 | 0x0001);
28810    break;
28811   }
28812  }
28813 
28814 end:
28815  return (ret);
28816 }
28817 
28818 /* ARGSUSED1 */
28819 # 570 "common/apptrace.c"
28820 uintptr_t
28821 la_i86_pltenter(Elf32_Sym *symp, uint_t symndx, uintptr_t *refcookie,
28822  uintptr_t *defcookie, La_i86_regs *regset, uint_t *sb_flags)
28823 
28824 {
28825  char *defname = (char *)(*defcookie);
28826  char *refname = (char *)(*refcookie);
28827  sigset_t omask;
28828 
28829  char const *sym_name = (char const *)symp->st_name;
28830 
28831 
28832  char buf[256];
28833  GElf_Sym sym;
28834  prsyminfo_t si;
28835  ctf_file_t *ctfp;
28836  ctf_funcinfo_t finfo;
28837  int argc;
28838  ctf_id_t argt[40];
28839  ulong_t argv[40];
28840  int i;
28841  char *sep = "";
28842  ctf_id_t type, rtype;
28843  int kind;
28844 
28845  abilock(&omask);
28846 
28847  if (pidout)
28848   (void) fprintf(__abi_outfile, "%7u:", (unsigned int)getpid());
28849 
28850  if ((ctfp = Pname_to_ctf(proc_hdl, defname)) == 0)
28851   goto fail;
28852 
28853  if (Pxlookup_by_name(proc_hdl, ((Lmid_t)-1UL), defname, sym_name,
28854      &sym, &si) != 0)
28855   goto fail;
28856 
28857  if (ctf_func_info(ctfp, si.prs_id, &finfo) == (-1L))
28858   goto fail;
28859 
28860  (void) type_name(ctfp, finfo.ctc_return, buf, sizeof (buf));
28861  (void) fprintf(__abi_outfile, "-> %-8s -> %8s:%s %s(",
28862      refname, defname, buf, sym_name);
28863 
28864  /*
28865 	 * According to bug in la_pltexit(), it can't return
28866 	 * if the type is just a struct/union.  So, if the return
28867 	 * type is a struct/union, la_pltexit() should be off.
28868 	 */
28869  rtype = ctf_type_resolve(ctfp, finfo.ctc_return);
28870  type = ctf_type_reference(ctfp, rtype);
28871  rtype = ctf_type_resolve(ctfp, type);
28872  kind = ctf_type_kind(ctfp, rtype);
28873  if ((kind == 6 || kind == 7) &&
28874      strpbrk(buf, "*") == 0)
28875   *sb_flags |= 0x0002;
28876 
28877  argc = ((sizeof (argt) / sizeof (argt[0])) < (finfo.ctc_argc) ? (sizeof (argt) / sizeof (argt[0])) : (finfo.ctc_argc));
28878  (void) ctf_func_args(ctfp, si.prs_id, argc, argt);
28879 
28880  argv[0] = (((ulong_t *)regset->lr_esp)[1]);
28881  if (argc > 1)
28882   argv[1] = (((ulong_t *)regset->lr_esp)[2]);
28883  if (argc > 2)
28884   argv[2] = (((ulong_t *)regset->lr_esp)[3]);
28885  if (argc > 3)
28886   argv[3] = (((ulong_t *)regset->lr_esp)[4]);
28887  if (argc > 4)
28888   argv[4] = (((ulong_t *)regset->lr_esp)[5]);
28889  if (argc > 5)
28890   argv[5] = (((ulong_t *)regset->lr_esp)[6]);
28891  if (argc > 6) {
28892   for (i = 6; i < argc; i++)
28893    argv[i] = (((ulong_t *)regset->lr_esp)[i+1]);
28894  }
28895 
28896  for (i = 0; i < argc; i++) {
28897   (void) type_name(ctfp, argt[i], buf, sizeof (buf));
28898   (void) fprintf(__abi_outfile, "%s%s = ", sep, buf);
28899   rtype = ctf_type_resolve(ctfp, argt[i]);
28900   type = ctf_type_reference(ctfp, rtype);
28901   rtype = ctf_type_resolve(ctfp, type);
28902   kind = ctf_type_kind(ctfp, rtype);
28903   if (kind == 6 || kind == 7)
28904    (void) fprintf(__abi_outfile, "0x%p", (void *)argv[i]);
28905   else
28906    print_value(ctfp, argt[i], argv[i]);
28907   sep = ", ";
28908  }
28909 
28910  if (finfo.ctc_flags & 0x1)
28911   (void) fprintf(__abi_outfile, "%s...", sep);
28912  else if (argc == 0)
28913   (void) fprintf(__abi_outfile, "void");
28914 
28915  if ((*sb_flags & 0x0002) != 0)
28916   (void) fprintf(__abi_outfile, ") ** ST\n");
28917  else
28918   (void) fprintf(__abi_outfile, ")\n");
28919 
28920  if (verbose_list != 0 &&
28921      check_intlist(verbose_list, sym_name) != 0) {
28922   for (i = 0; i < argc; i++) {
28923    (void) type_name(ctfp, argt[i], buf, sizeof (buf));
28924    (void) fprintf(__abi_outfile, "\targ%d = (%s) ", i, buf);
28925    print_value(ctfp, argt[i], argv[i]);
28926    (void) fprintf(__abi_outfile, "\n");
28927   }
28928   if ((*sb_flags & 0x0002) != 0) {
28929    if (kind == 6)
28930     (void) fprintf(__abi_outfile,
28931         "\treturn = (struct), apptrace "
28932         "will not trace the return\n");
28933    else
28934     (void) fprintf(__abi_outfile,
28935         "\treturn = (union), apptrace "
28936         "will not trace the return\n");
28937   }
28938  }
28939 
28940  (void) fflush(__abi_outfile);
28941  abiunlock(&omask);
28942  return (symp->st_value);
28943 
28944 fail:
28945  (void) fprintf(__abi_outfile,
28946      "-> %-8s -> %8s:%s(0x%lx, 0x%lx, 0x%lx) ** NR\n",
28947      refname, defname, sym_name,
28948      (ulong_t)(((ulong_t *)regset->lr_esp)[1]),
28949      (ulong_t)(((ulong_t *)regset->lr_esp)[2]),
28950      (ulong_t)(((ulong_t *)regset->lr_esp)[3]));
28951 
28952  *sb_flags |= 0x0002;
28953  (void) fflush(__abi_outfile);
28954  abiunlock(&omask);
28955  return (symp->st_value);
28956 }
28957 
28958 /* ARGSUSED */
28959 
28960 
28961 
28962 
28963 
28964 uintptr_t
28965 la_pltexit(Elf32_Sym *symp, uint_t symndx, uintptr_t *refcookie,
28966  uintptr_t *defcookie, uintptr_t retval)
28967 
28968 {
28969 
28970  const char *sym_name = (const char *)symp->st_name;
28971 
28972  sigset_t omask;
28973  char buf[256];
28974  GElf_Sym sym;
28975  prsyminfo_t si;
28976  ctf_file_t *ctfp;
28977  ctf_funcinfo_t finfo;
28978  char *defname = (char *)(*defcookie);
28979  char *refname = (char *)(*refcookie);
28980 
28981  abilock(&omask);
28982 
28983  if (pidout)
28984   (void) fprintf(__abi_outfile, "%7u:", (unsigned int)getpid());
28985 
28986  if (retval == 0) {
28987   if (verbose_list == 0) {
28988    (void) fprintf(__abi_outfile, "<- %-8s -> %8s:%s()\n",
28989        refname, defname, sym_name);
28990    (void) fflush(__abi_outfile);
28991   }
28992   abiunlock(&omask);
28993   return (retval);
28994  }
28995 
28996  if ((ctfp = Pname_to_ctf(proc_hdl, defname)) == 0)
28997   goto fail;
28998 
28999  if (Pxlookup_by_name(proc_hdl, ((Lmid_t)-1UL), defname,
29000      sym_name, &sym, &si) != 0)
29001   goto fail;
29002 
29003  if (ctf_func_info(ctfp, si.prs_id, &finfo) == (-1L))
29004   goto fail;
29005 
29006  if (verbose_list != 0) {
29007   if (check_intlist(verbose_list, sym_name) != 0) {
29008    (void) type_name(ctfp, finfo.ctc_return, buf,
29009        sizeof (buf));
29010    (void) fprintf(__abi_outfile, "\treturn = (%s) ", buf);
29011    print_value(ctfp, finfo.ctc_return, retval);
29012    (void) fprintf(__abi_outfile, "\n");
29013    (void) fprintf(__abi_outfile, "<- %-8s -> %8s:%s()",
29014        refname, defname, sym_name);
29015    (void) fprintf(__abi_outfile, " = 0x%p\n", (void *)retval);
29016   }
29017  } else {
29018   (void) fprintf(__abi_outfile, "<- %-8s -> %8s:%s()",
29019       refname, defname, sym_name);
29020   (void) fprintf(__abi_outfile, " = 0x%p\n", (void *)retval);
29021  }
29022 
29023  (void) fflush(__abi_outfile);
29024  abiunlock(&omask);
29025  return (retval);
29026 
29027 fail:
29028  if (verbose_list != 0) {
29029   if (check_intlist(verbose_list, sym_name) != 0) {
29030    (void) fprintf(__abi_outfile,
29031        "\treturn = 0x%p\n", (void *)retval);
29032    (void) fprintf(__abi_outfile, "<- %-8s -> %8s:%s()",
29033        refname, defname, sym_name);
29034    (void) fprintf(__abi_outfile, " = 0x%p\n", (void *)retval);
29035   }
29036  } else {
29037   (void) fprintf(__abi_outfile, "<- %-8s -> %8s:%s()",
29038       refname, defname, sym_name);
29039   (void) fprintf(__abi_outfile, " = 0x%p\n", (void *)retval);
29040  }
29041 
29042  (void) fflush(__abi_outfile);
29043  abiunlock(&omask);
29044  return (retval);
29045 }
29046