1 # 1 "../common/zones_lofs.c"
2 # 1 "<built-in>"
3 # 1 "<command-line>"
4 # 1 "../common/zones_lofs.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 /*
27  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
28  * Use is subject to license terms.
29  */
30 
31 
32 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.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 /*
55  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
56  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
57  */
58 
59 /*	Copyright (c) 1988 AT&T	*/
60 /*	  All Rights Reserved  	*/
61 
62 /*
63  * User-visible pieces of the ANSI C standard I/O package.
64  */
65 
66 
67 
68 
69 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
70 /*
71  * CDDL HEADER START
72  *
73  * The contents of this file are subject to the terms of the
74  * Common Development and Distribution License (the "License").
75  * You may not use this file except in compliance with the License.
76  *
77  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
78  * or http://www.opensolaris.org/os/licensing.
79  * See the License for the specific language governing permissions
80  * and limitations under the License.
81  *
82  * When distributing Covered Code, include this CDDL HEADER in each
83  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
84  * If applicable, add the following below this CDDL HEADER, with the
85  * fields enclosed by brackets "[]" replaced with your own identifying
86  * information: Portions Copyright [yyyy] [name of copyright owner]
87  *
88  * CDDL HEADER END
89  */
90 
91 /*
92  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
93  * Copyright 2016 Joyent, Inc.
94  *
95  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
96  * Use is subject to license terms.
97  */
98 
99 
100 
101 
102 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1
103 /*
104  * CDDL HEADER START
105  *
106  * The contents of this file are subject to the terms of the
107  * Common Development and Distribution License, Version 1.0 only
108  * (the "License").  You may not use this file except in compliance
109  * with the License.
110  *
111  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
112  * or http://www.opensolaris.org/os/licensing.
113  * See the License for the specific language governing permissions
114  * and limitations under the License.
115  *
116  * When distributing Covered Code, include this CDDL HEADER in each
117  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
118  * If applicable, add the following below this CDDL HEADER, with the
119  * fields enclosed by brackets "[]" replaced with your own identifying
120  * information: Portions Copyright [yyyy] [name of copyright owner]
121  *
122  * CDDL HEADER END
123  */
124 /*
125  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
126  * Use is subject to license terms.
127  */
128 /*
129  * Copyright 2015 EveryCity Ltd. All rights reserved.
130  */
131 
132 
133 
134 
135 /*
136  * This file contains definitions designed to enable different compilers
137  * to be used harmoniously on Solaris systems.
138  */
139 
140 
141 
142 
143 
144 /*
145  * Allow for version tests for compiler bugs and features.
146  */
147 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
148 /*
149  * analogous to lint's PRINTFLIKEn
150  */
151 
152 
153 
154 
155 
156 /*
157  * Handle the kernel printf routines that can take '%b' too
158  */
159 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
160 /*
161  * This one's pretty obvious -- the function never returns
162  */
163 
164 
165 /*
166  * The function is 'extern inline' and expects GNU C89 behaviour, not C99
167  * behaviour.
168  *
169  * Should only be used on 'extern inline' definitions for GCC.
170  */
171 
172 
173 
174 
175 
176 
177 /*
178  * The function has control flow such that it may return multiple times (in
179  * the manner of setjmp or vfork)
180  */
181 
182 
183 
184 
185 
186 
187 /*
188  * This is an appropriate label for functions that do not
189  * modify their arguments, e.g. strlen()
190  */
191 
192 
193 /*
194  * This is a stronger form of __pure__. Can be used for functions
195  * that do not modify their arguments and don't depend on global
196  * memory.
197  */
198 
199 
200 
201 
202 /*
203  * This attribute, attached to a variable, means that the variable is meant to
204  * be possibly unused. GCC will not produce a warning for this variable.
205  */
206 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
207 /*
208  * Shorthand versions for readability
209  */
210 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
211 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
212 /*
213  * CDDL HEADER START
214  *
215  * The contents of this file are subject to the terms of the
216  * Common Development and Distribution License (the "License").
217  * You may not use this file except in compliance with the License.
218  *
219  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
220  * or http://www.opensolaris.org/os/licensing.
221  * See the License for the specific language governing permissions
222  * and limitations under the License.
223  *
224  *
225  * When distributing Covered Code, include this CDDL HEADER in each
226  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
227  * If applicable, add the following below this CDDL HEADER, with the
228  * fields enclosed by brackets "[]" replaced with your own identifying
229  * information: Portions Copyright [yyyy] [name of copyright owner]
230  *
231  * CDDL HEADER END
232  */
233 
234 /*
235  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
236  * Use is subject to license terms.
237  * Copyright 2016 Joyent, Inc.
238  */
239 
240 
241 
242 
243 /*
244  * This header file serves to group a set of well known defines and to
245  * set these for each instruction set architecture.  These defines may
246  * be divided into two groups;  characteristics of the processor and
247  * implementation choices for Solaris on a processor.
248  *
249  * Processor Characteristics:
250  *
251  * _LITTLE_ENDIAN / _BIG_ENDIAN:
252  *	The natural byte order of the processor.  A pointer to an int points
253  *	to the least/most significant byte of that int.
254  *
255  * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
256  *	The processor specific direction of stack growth.  A push onto the
257  *	stack increases/decreases the stack pointer, so it stores data at
258  *	successively higher/lower addresses.  (Stackless machines ignored
259  *	without regrets).
260  *
261  * _LONG_LONG_HTOL / _LONG_LONG_LTOH:
262  *	A pointer to a long long points to the most/least significant long
263  *	within that long long.
264  *
265  * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
266  *	The C compiler assigns bit fields from the high/low to the low/high end
267  *	of an int (most to least significant vs. least to most significant).
268  *
269  * _IEEE_754:
270  *	The processor (or supported implementations of the processor)
271  *	supports the ieee-754 floating point standard.  No other floating
272  *	point standards are supported (or significant).  Any other supported
273  *	floating point formats are expected to be cased on the ISA processor
274  *	symbol.
275  *
276  * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
277  *	The C Compiler implements objects of type `char' as `unsigned' or
278  *	`signed' respectively.  This is really an implementation choice of
279  *	the compiler writer, but it is specified in the ABI and tends to
280  *	be uniform across compilers for an instruction set architecture.
281  *	Hence, it has the properties of a processor characteristic.
282  *
283  * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
284  * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
285  * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
286  *	The ABI defines alignment requirements of each of the primitive
287  *	object types.  Some, if not all, may be hardware requirements as
288  * 	well.  The values are expressed in "byte-alignment" units.
289  *
290  * _MAX_ALIGNMENT:
291  *	The most stringent alignment requirement as specified by the ABI.
292  *	Equal to the maximum of all the above _XXX_ALIGNMENT values.
293  *
294  * _MAX_ALIGNMENT_TYPE:
295  * 	The name of the C type that has the value descried in _MAX_ALIGNMENT.
296  *
297  * _ALIGNMENT_REQUIRED:
298  *	True or false (1 or 0) whether or not the hardware requires the ABI
299  *	alignment.
300  *
301  * _LONG_LONG_ALIGNMENT_32
302  *	The 32-bit ABI supported by a 64-bit kernel may have different
303  *	alignment requirements for primitive object types.  The value of this
304  *	identifier is expressed in "byte-alignment" units.
305  *
306  * _HAVE_CPUID_INSN
307  *	This indicates that the architecture supports the 'cpuid'
308  *	instruction as defined by Intel.  (Intel allows other vendors
309  *	to extend the instruction for their own purposes.)
310  *
311  *
312  * Implementation Choices:
313  *
314  * _ILP32 / _LP64:
315  *	This specifies the compiler data type implementation as specified in
316  *	the relevant ABI.  The choice between these is strongly influenced
317  *	by the underlying hardware, but is not absolutely tied to it.
318  *	Currently only two data type models are supported:
319  *
320  *	_ILP32:
321  *		Int/Long/Pointer are 32 bits.  This is the historical UNIX
322  *		and Solaris implementation.  Due to its historical standing,
323  *		this is the default case.
324  *
325  *	_LP64:
326  *		Long/Pointer are 64 bits, Int is 32 bits.  This is the chosen
327  *		implementation for 64-bit ABIs such as SPARC V9.
328  *
329  *	_I32LPx:
330  *		A compilation environment where 'int' is 32-bit, and
331  *		longs and pointers are simply the same size.
332  *
333  *	In all cases, Char is 8 bits and Short is 16 bits.
334  *
335  * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
336  *	This specifies the form of the disk VTOC (or label):
337  *
338  *	_SUNOS_VTOC_8:
339  *		This is a VTOC form which is upwardly compatible with the
340  *		SunOS 4.x disk label and allows 8 partitions per disk.
341  *
342  *	_SUNOS_VTOC_16:
343  *		In this format the incore vtoc image matches the ondisk
344  *		version.  It allows 16 slices per disk, and is not
345  *		compatible with the SunOS 4.x disk label.
346  *
347  *	Note that these are not the only two VTOC forms possible and
348  *	additional forms may be added.  One possible form would be the
349  *	SVr4 VTOC form.  The symbol for that is reserved now, although
350  *	it is not implemented.
351  *
352  *	_SVR4_VTOC_16:
353  *		This VTOC form is compatible with the System V Release 4
354  *		VTOC (as implemented on the SVr4 Intel and 3b ports) with
355  *		16 partitions per disk.
356  *
357  *
358  * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
359  *	This describes the type of addresses used by system DMA:
360  *
361  *	_DMA_USES_PHYSADDR:
362  *		This type of DMA, used in the x86 implementation,
363  *		requires physical addresses for DMA buffers.  The 24-bit
364  *		addresses used by some legacy boards is the source of the
365  *		"low-memory" (<16MB) requirement for some devices using DMA.
366  *
367  *	_DMA_USES_VIRTADDR:
368  *		This method of DMA allows the use of virtual addresses for
369  *		DMA transfers.
370  *
371  * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
372  *      This indicates the presence/absence of an fdisk table.
373  *
374  *      _FIRMWARE_NEEDS_FDISK
375  *              The fdisk table is required by system firmware.  If present,
376  *              it allows a disk to be subdivided into multiple fdisk
377  *              partitions, each of which is equivalent to a separate,
378  *              virtual disk.  This enables the co-existence of multiple
379  *              operating systems on a shared hard disk.
380  *
381  *      _NO_FDISK_PRESENT
382  *              If the fdisk table is absent, it is assumed that the entire
383  *              media is allocated for a single operating system.
384  *
385  * _HAVE_TEM_FIRMWARE
386  *	Defined if this architecture has the (fallback) option of
387  *	using prom_* calls for doing I/O if a suitable kernel driver
388  *	is not available to do it.
389  *
390  * _DONT_USE_1275_GENERIC_NAMES
391  *		Controls whether or not device tree node names should
392  *		comply with the IEEE 1275 "Generic Names" Recommended
393  *		Practice. With _DONT_USE_GENERIC_NAMES, device-specific
394  *		names identifying the particular device will be used.
395  *
396  * __i386_COMPAT
397  *	This indicates whether the i386 ABI is supported as a *non-native*
398  *	mode for the platform.  When this symbol is defined:
399  *	-	32-bit xstat-style system calls are enabled
400  *	-	32-bit xmknod-style system calls are enabled
401  *	-	32-bit system calls use i386 sizes -and- alignments
402  *
403  *	Note that this is NOT defined for the i386 native environment!
404  *
405  * __x86
406  *	This is ONLY a synonym for defined(__i386) || defined(__amd64)
407  *	which is useful only insofar as these two architectures share
408  *	common attributes.  Analogous to __sparc.
409  *
410  * _PSM_MODULES
411  *	This indicates whether or not the implementation uses PSM
412  *	modules for processor support, reading /etc/mach from inside
413  *	the kernel to extract a list.
414  *
415  * _RTC_CONFIG
416  *	This indicates whether or not the implementation uses /etc/rtc_config
417  *	to configure the real-time clock in the kernel.
418  *
419  * _UNIX_KRTLD
420  *	This indicates that the implementation uses a dynamically
421  *	linked unix + krtld to form the core kernel image at boot
422  *	time, or (in the absence of this symbol) a prelinked kernel image.
423  *
424  * _OBP
425  *	This indicates the firmware interface is OBP.
426  *
427  * _SOFT_HOSTID
428  *	This indicates that the implementation obtains the hostid
429  *	from the file /etc/hostid, rather than from hardware.
430  */
431 
432 
433 
434 
435 
436 /*
437  * The following set of definitions characterize Solaris on AMD's
438  * 64-bit systems.
439  */
440 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
441 /*
442  * Define the appropriate "processor characteristics"
443  */
444 # 265 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
445 /*
446  * Different alignment constraints for the i386 ABI in compatibility mode
447  */
448 
449 
450 /*
451  * Define the appropriate "implementation choices".
452  */
453 # 290 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
454 /*
455  * The feature test macro __i386 is generic for all processors implementing
456  * the Intel 386 instruction set or a superset of it.  Specifically, this
457  * includes all members of the 386, 486, and Pentium family of processors.
458  */
459 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
460 
461 
462 
463 
464 
465 /*
466  * Values of _POSIX_C_SOURCE
467  *
468  *		undefined   not a POSIX compilation
469  *		1	    POSIX.1-1990 compilation
470  *		2	    POSIX.2-1992 compilation
471  *		199309L	    POSIX.1b-1993 compilation (Real Time)
472  *		199506L	    POSIX.1c-1995 compilation (POSIX Threads)
473  *		200112L	    POSIX.1-2001 compilation (Austin Group Revision)
474  *		200809L     POSIX.1-2008 compilation
475  */
476 
477 
478 
479 
480 /*
481  * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
482  * and _STDC_C99 are Sun implementation specific macros created in order to
483  * compress common standards specified feature test macros for easier reading.
484  * These macros should not be used by the application developer as
485  * unexpected results may occur. Instead, the user should reference
486  * standards(5) for correct usage of the standards feature test macros.
487  *
488  * __XOPEN_OR_POSIX     Used in cases where a symbol is defined by both
489  *                      X/Open or POSIX or in the negative, when neither
490  *                      X/Open or POSIX defines a symbol.
491  *
492  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
493  *                      by the compiler. For Sun compilers the value of
494  *                      __STDC__ is either 1, 0, or not defined based on the
495  *                      compilation mode (see cc(1)). When the value of
496  *                      __STDC__ is 1 and in the absence of any other feature
497  *                      test macros, the namespace available to the application
498  *                      is limited to only those symbols defined by the C
499  *                      Standard. _STRICT_STDC provides a more readable means
500  *                      of identifying symbols defined by the standard, or in
501  *                      the negative, symbols that are extensions to the C
502  *                      Standard. See additional comments for GNU C differences.
503  *
504  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
505  *                      defined by the compiler and indicates the version of
506  *                      the C standard. A value of 199901L indicates a
507  *                      compiler that complies with ISO/IEC 9899:1999, other-
508  *                      wise known as the C99 standard.
509  *
510  * _STDC_C11		Like _STDC_C99 except that the value of __STDC_VERSION__
511  *                      is 201112L indicating a compiler that compiles with
512  *                      ISO/IEXC 9899:2011, otherwise known as the C11 standard.
513  *
514  * _STRICT_SYMBOLS	Used in cases where symbol visibility is restricted
515  *                      by the standards, and the user has not explicitly
516  *                      relaxed the strictness via __EXTENSIONS__.
517  */
518 
519 
520 
521 
522 
523 /*
524  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
525  * 99899:2011 specify the following predefined macro name:
526  *
527  * __STDC__	The integer constant 1, intended to indicate a conforming
528  *		implementation.
529  *
530  * Furthermore, a strictly conforming program shall use only those features
531  * of the language and library specified in these standards. A conforming
532  * implementation shall accept any strictly conforming program.
533  *
534  * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
535  * strictly conforming environments and __STDC__ to 0 for environments that
536  * use ANSI C semantics but allow extensions to the C standard. For non-ANSI
537  * C semantics, Sun's C compiler does not define __STDC__.
538  *
539  * The GNU C project interpretation is that __STDC__ should always be defined
540  * to 1 for compilation modes that accept ANSI C syntax regardless of whether
541  * or not extensions to the C standard are used. Violations of conforming
542  * behavior are conditionally flagged as warnings via the use of the
543  * -pedantic option. In addition to defining __STDC__ to 1, the GNU C
544  * compiler also defines __STRICT_ANSI__ as a means of specifying strictly
545  * conforming environments using the -ansi or -std=<standard> options.
546  *
547  * In the absence of any other compiler options, Sun and GNU set the value
548  * of __STDC__ as follows when using the following options:
549  *
550  *				Value of __STDC__  __STRICT_ANSI__
551  *
552  * cc -Xa (default)			0	      undefined
553  * cc -Xt (transitional)		0             undefined
554  * cc -Xc (strictly conforming)		1	      undefined
555  * cc -Xs (K&R C)		    undefined	      undefined
556  *
557  * gcc (default)			1	      undefined
558  * gcc -ansi, -std={c89, c99,...)  	1              defined
559  * gcc -traditional (K&R)	    undefined	      undefined
560  *
561  * The default compilation modes for Sun C compilers versus GNU C compilers
562  * results in a differing value for __STDC__ which results in a more
563  * restricted namespace when using Sun compilers. To allow both GNU and Sun
564  * interpretations to peacefully co-exist, we use the following Sun
565  * implementation _STRICT_STDC_ macro:
566  */
567 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
568 /*
569  * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
570  */
571 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
572 /*
573  * Use strict symbol visibility.
574  */
575 
576 
577 
578 
579 
580 /*
581  * Large file interfaces:
582  *
583  *	_LARGEFILE_SOURCE
584  *		1		large file-related additions to POSIX
585  *				interfaces requested (fseeko, etc.)
586  *	_LARGEFILE64_SOURCE
587  *		1		transitional large-file-related interfaces
588  *				requested (seek64, stat64, etc.)
589  *
590  * The corresponding announcement macros are respectively:
591  *	_LFS_LARGEFILE
592  *	_LFS64_LARGEFILE
593  * (These are set in <unistd.h>.)
594  *
595  * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
596  * well.
597  *
598  * The large file interfaces are made visible regardless of the initial values
599  * of the feature test macros under certain circumstances:
600  *    -	If no explicit standards-conforming environment is requested (neither
601  *	of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
602  *	__STDC__ does not imply standards conformance).
603  *    -	Extended system interfaces are explicitly requested (__EXTENSIONS__
604  * 	is defined).
605  *    -	Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
606  *	defined).  (Note that this dependency is an artifact of the current
607  *	kernel implementation and may change in future releases.)
608  */
609 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
610 /*
611  * Large file compilation environment control:
612  *
613  * The setting of _FILE_OFFSET_BITS controls the size of various file-related
614  * types and governs the mapping between file-related source function symbol
615  * names and the corresponding binary entry points.
616  *
617  * In the 32-bit environment, the default value is 32; if not set, set it to
618  * the default here, to simplify tests in other headers.
619  *
620  * In the 64-bit compilation environment, the only value allowed is 64.
621  */
622 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
623 /*
624  * Use of _XOPEN_SOURCE
625  *
626  * The following X/Open specifications are supported:
627  *
628  * X/Open Portability Guide, Issue 3 (XPG3)
629  * X/Open CAE Specification, Issue 4 (XPG4)
630  * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
631  * X/Open CAE Specification, Issue 5 (XPG5)
632  * Open Group Technical Standard, Issue 6 (XPG6), also referred to as
633  *    IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
634  * Open Group Technical Standard, Issue 7 (XPG7), also referred to as
635  *    IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
636  *
637  * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
638  * XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
639  *     Version 2 (SUSv2)
640  * XPG6 is the result of a merge of the X/Open and POSIX specifications
641  *     and as such is also referred to as IEEE Std. 1003.1-2001 in
642  *     addition to UNIX 03 and SUSv3.
643  * XPG7 is also referred to as UNIX 08 and SUSv4.
644  *
645  * When writing a conforming X/Open application, as per the specification
646  * requirements, the appropriate feature test macros must be defined at
647  * compile time. These are as follows. For more info, see standards(5).
648  *
649  * Feature Test Macro				     Specification
650  * ------------------------------------------------  -------------
651  * _XOPEN_SOURCE                                         XPG3
652  * _XOPEN_SOURCE && _XOPEN_VERSION = 4                   XPG4
653  * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1           XPG4v2
654  * _XOPEN_SOURCE = 500                                   XPG5
655  * _XOPEN_SOURCE = 600  (or POSIX_C_SOURCE=200112L)      XPG6
656  * _XOPEN_SOURCE = 700  (or POSIX_C_SOURCE=200809L)      XPG7
657  *
658  * In order to simplify the guards within the headers, the following
659  * implementation private test macros have been created. Applications
660  * must NOT use these private test macros as unexpected results will
661  * occur.
662  *
663  * Note that in general, the use of these private macros is cumulative.
664  * For example, the use of _XPG3 with no other restrictions on the X/Open
665  * namespace will make the symbols visible for XPG3 through XPG6
666  * compilation environments. The use of _XPG4_2 with no other X/Open
667  * namespace restrictions indicates that the symbols were introduced in
668  * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
669  * environments, but not for XPG3 or XPG4 compilation environments.
670  *
671  * _XPG3    X/Open Portability Guide, Issue 3 (XPG3)
672  * _XPG4    X/Open CAE Specification, Issue 4 (XPG4)
673  * _XPG4_2  X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
674  * _XPG5    X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
675  * _XPG6    Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
676  * _XPG7    Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
677  */
678 
679 /* X/Open Portability Guide, Issue 3 */
680 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
681 /*
682  * _XOPEN_VERSION is defined by the X/Open specifications and is not
683  * normally defined by the application, except in the case of an XPG4
684  * application.  On the implementation side, _XOPEN_VERSION defined with
685  * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
686  * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
687  * _XOPEN_VERSION  defined with a value of 500 indicates an XPG5 (UNIX 98)
688  * application and with a value of 600 indicates an XPG6 (UNIX 03)
689  * application and with a value of 700 indicates an XPG7 (UNIX 08).
690  * The appropriate version is determined by the use of the
691  * feature test macros described earlier.  The value of _XOPEN_VERSION
692  * defaults to 3 otherwise indicating support for XPG3 applications.
693  */
694 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
695 /*
696  * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
697  * conforming environments.  ISO 9899:1999 says it does.
698  *
699  * The presence of _LONGLONG_TYPE says "long long exists" which is therefore
700  * defined in all but strictly conforming environments that disallow it.
701  */
702 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
703 /*
704  * The following macro defines a value for the ISO C99 restrict
705  * keyword so that _RESTRICT_KYWD resolves to "restrict" if
706  * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
707  * if any other compiler is used. This allows for the use of single
708  * prototype declarations regardless of compiler version.
709  */
710 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
711 /*
712  * The following macro defines a value for the ISO C11 _Noreturn
713  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
714  * an ISO C11 compiler is used and "" (null string) if any other
715  * compiler is used. This allows for the use of single prototype
716  * declarations regardless of compiler version.
717  */
718 
719 
720 
721 
722 
723 
724 
725 /*
726  * The following macro indicates header support for the ANSI C++
727  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
728  */
729 
730 
731 /*
732  * The following macro indicates header support for the C99 standard,
733  * ISO/IEC 9899:1999, Programming Languages - C.
734  */
735 
736 
737 /*
738  * The following macro indicates header support for the C99 standard,
739  * ISO/IEC 9899:2011, Programming Languages - C.
740  */
741 
742 
743 /*
744  * The following macro indicates header support for DTrace. The value is an
745  * integer that corresponds to the major version number for DTrace.
746  */
747 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
748 
749 
750 
751 
752 
753 /*
754  * Do all of our 'redefine_extname' processing before
755  * declarations of the associated functions are seen.
756  * This is necessary to keep gcc happy.
757  */
758 
759 
760 /* large file compilation environment setup */
761 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
762 /* In the LP64 compilation environment, all APIs are already large file */
763 
764 
765 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
766 #pragma redefine_extname fopen64 fopen
767 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
768 
769 
770 # 66 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
771 #pragma redefine_extname freopen64 freopen
772 # 66 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
773 
774 
775 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
776 #pragma redefine_extname tmpfile64 tmpfile
777 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
778 
779 
780 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
781 #pragma redefine_extname fgetpos64 fgetpos
782 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
783 
784 
785 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
786 #pragma redefine_extname fsetpos64 fsetpos
787 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
788 
789 
790 
791 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
792 #pragma redefine_extname fseeko64 fseeko
793 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
794 
795 
796 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
797 #pragma redefine_extname ftello64 ftello
798 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
799 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
800 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1
801 /*
802  * CDDL HEADER START
803  *
804  * The contents of this file are subject to the terms of the
805  * Common Development and Distribution License, Version 1.0 only
806  * (the "License").  You may not use this file except in compliance
807  * with the License.
808  *
809  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
810  * or http://www.opensolaris.org/os/licensing.
811  * See the License for the specific language governing permissions
812  * and limitations under the License.
813  *
814  * When distributing Covered Code, include this CDDL HEADER in each
815  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
816  * If applicable, add the following below this CDDL HEADER, with the
817  * fields enclosed by brackets "[]" replaced with your own identifying
818  * information: Portions Copyright [yyyy] [name of copyright owner]
819  *
820  * CDDL HEADER END
821  */
822 /*
823  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
824  * Copyright 2014 PALO, Richard.
825  *
826  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
827  * Use is subject to license terms.
828  */
829 
830 /*	Copyright (c) 1988 AT&T	*/
831 /*	  All Rights Reserved  	*/
832 
833 /*
834  * An application should not include this header directly.  Instead it
835  * should be included only through the inclusion of other Sun headers.
836  *
837  * The contents of this header is limited to identifiers specified in the
838  * C Standard.  Any new identifiers specified in future amendments to the
839  * C Standard must be placed in this header.  If these new identifiers
840  * are required to also be in the C++ Standard "std" namespace, then for
841  * anything other than macro definitions, corresponding "using" directives
842  * must also be added to <stdio.h>.
843  */
844 
845 /*
846  * User-visible pieces of the ANSI C standard I/O package.
847  */
848 
849 
850 
851 
852 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
853 /*
854  * CDDL HEADER START
855  *
856  * The contents of this file are subject to the terms of the
857  * Common Development and Distribution License (the "License").
858  * You may not use this file except in compliance with the License.
859  *
860  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
861  * or http://www.opensolaris.org/os/licensing.
862  * See the License for the specific language governing permissions
863  * and limitations under the License.
864  *
865  * When distributing Covered Code, include this CDDL HEADER in each
866  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
867  * If applicable, add the following below this CDDL HEADER, with the
868  * fields enclosed by brackets "[]" replaced with your own identifying
869  * information: Portions Copyright [yyyy] [name of copyright owner]
870  *
871  * CDDL HEADER END
872  */
873 
874 /*
875  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
876  * Copyright 2016 Joyent, Inc.
877  *
878  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
879  * Use is subject to license terms.
880  */
881 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
882 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
883 /*
884  * This file and its contents are supplied under the terms of the
885  * Common Development and Distribution License ("CDDL"), version 1.0.
886  * You may only use this file in accordance with the terms of version
887  * 1.0 of the CDDL.
888  *
889  * A full copy of the text of the CDDL should have accompanied this
890  * source.  A copy of the CDDL is also available via the Internet at
891  * http://www.illumos.org/license/CDDL.
892  */
893 
894 /*
895  * Copyright 2014-2016 PALO, Richard.
896  */
897 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
898 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
899 /*
900  * CDDL HEADER START
901  *
902  * The contents of this file are subject to the terms of the
903  * Common Development and Distribution License, Version 1.0 only
904  * (the "License").  You may not use this file except in compliance
905  * with the License.
906  *
907  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
908  * or http://www.opensolaris.org/os/licensing.
909  * See the License for the specific language governing permissions
910  * and limitations under the License.
911  *
912  * When distributing Covered Code, include this CDDL HEADER in each
913  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
914  * If applicable, add the following below this CDDL HEADER, with the
915  * fields enclosed by brackets "[]" replaced with your own identifying
916  * information: Portions Copyright [yyyy] [name of copyright owner]
917  *
918  * CDDL HEADER END
919  */
920 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
921 /*	  All Rights Reserved	*/
922 
923 
924 /*
925  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
926  *
927  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
928  * Use is subject to license terms.
929  */
930 
931 
932 
933 
934 /*
935  * An application should not include this header directly.  Instead it
936  * should be included only through the inclusion of other Sun headers.
937  *
938  * The purpose of this header is to provide the type definitions for
939  * the va_list argument used by a number of printf and printf like
940  * functions. The headers that define these various function prototypes
941  * #include this header directly. These include but are not necessarily
942  * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and
943  * <syslog.h>. The type definitions included in this header are for
944  * the benefit of consumers of va_list.
945  *
946  * Any application that accepts variable argument lists must as documented,
947  * include either <varargs.h> or the preferred <stdarg.h>. Doing so will
948  * pull in the appropriate compiler protocols defined in <sys/va_impl.h>
949  * which is in turn is included by <varargs.h> and <stdarg.h>. See comments
950  * in <sys/va_impl.h> for more detailed information regarding implementation
951  * and compiler specific protocols.
952  */
953 
954 /*
955  * The common definitions exported by this header or compilers using
956  * this header are:
957  *
958  * the identifier __builtin_va_alist for the variable list pseudo parameter
959  * the type __va_alist_type for the variable list pseudo parameter
960  * the type __va_list defining the type of the variable list iterator
961  *
962  * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros
963  * (__GNUC__) and processor macros (e.g. __amd64) are intended to be
964  * defined by the compilation system, not the user of the system.
965  */
966 
967 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
968 /*
969  * CDDL HEADER START
970  *
971  * The contents of this file are subject to the terms of the
972  * Common Development and Distribution License (the "License").
973  * You may not use this file except in compliance with the License.
974  *
975  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
976  * or http://www.opensolaris.org/os/licensing.
977  * See the License for the specific language governing permissions
978  * and limitations under the License.
979  *
980  *
981  * When distributing Covered Code, include this CDDL HEADER in each
982  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
983  * If applicable, add the following below this CDDL HEADER, with the
984  * fields enclosed by brackets "[]" replaced with your own identifying
985  * information: Portions Copyright [yyyy] [name of copyright owner]
986  *
987  * CDDL HEADER END
988  */
989 
990 /*
991  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
992  * Use is subject to license terms.
993  * Copyright 2016 Joyent, Inc.
994  */
995 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2
996 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h"
997 typedef __builtin_va_list __gnuc_va_list;
998 /*
999  * XX64 This seems unnecessary .. but is needed because vcmn_err is
1000  *	defined with __va_list instead of plain old va_list.
1001  *	Perhaps that should be fixed!
1002  */
1003 typedef __builtin_va_list __va_list;
1004 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1005 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1
1006 /*
1007  * CDDL HEADER START
1008  *
1009  * The contents of this file are subject to the terms of the
1010  * Common Development and Distribution License, Version 1.0 only
1011  * (the "License").  You may not use this file except in compliance
1012  * with the License.
1013  *
1014  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1015  * or http://www.opensolaris.org/os/licensing.
1016  * See the License for the specific language governing permissions
1017  * and limitations under the License.
1018  *
1019  * When distributing Covered Code, include this CDDL HEADER in each
1020  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1021  * If applicable, add the following below this CDDL HEADER, with the
1022  * fields enclosed by brackets "[]" replaced with your own identifying
1023  * information: Portions Copyright [yyyy] [name of copyright owner]
1024  *
1025  * CDDL HEADER END
1026  */
1027 /*
1028  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1029  * Use is subject to license terms.
1030  */
1031 
1032 
1033 
1034 
1035 #pragma ident "%Z%%M%	%I%	%E% SMI"
1036 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h"
1037 typedef struct __FILE __FILE;
1038 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1039 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1
1040 /*
1041  * CDDL HEADER START
1042  *
1043  * The contents of this file are subject to the terms of the
1044  * Common Development and Distribution License (the "License").
1045  * You may not use this file except in compliance with the License.
1046  *
1047  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1048  * or http://www.opensolaris.org/os/licensing.
1049  * See the License for the specific language governing permissions
1050  * and limitations under the License.
1051  *
1052  * When distributing Covered Code, include this CDDL HEADER in each
1053  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1054  * If applicable, add the following below this CDDL HEADER, with the
1055  * fields enclosed by brackets "[]" replaced with your own identifying
1056  * information: Portions Copyright [yyyy] [name of copyright owner]
1057  *
1058  * CDDL HEADER END
1059  */
1060 
1061 /*
1062  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1063  * Use is subject to license terms.
1064  */
1065 
1066 
1067 
1068 
1069 #pragma ident "%Z%%M%	%I%	%E% SMI"
1070 
1071 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
1072 /*
1073  * CDDL HEADER START
1074  *
1075  * The contents of this file are subject to the terms of the
1076  * Common Development and Distribution License (the "License").
1077  * You may not use this file except in compliance with the License.
1078  *
1079  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1080  * or http://www.opensolaris.org/os/licensing.
1081  * See the License for the specific language governing permissions
1082  * and limitations under the License.
1083  *
1084  *
1085  * When distributing Covered Code, include this CDDL HEADER in each
1086  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1087  * If applicable, add the following below this CDDL HEADER, with the
1088  * fields enclosed by brackets "[]" replaced with your own identifying
1089  * information: Portions Copyright [yyyy] [name of copyright owner]
1090  *
1091  * CDDL HEADER END
1092  */
1093 
1094 /*
1095  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
1096  * Use is subject to license terms.
1097  * Copyright 2016 Joyent, Inc.
1098  */
1099 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2
1100 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h"
1101 struct __FILE {
1102  long __pad[16];
1103 };
1104 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1105 
1106 /*
1107  * If feature test macros are set that enable interfaces that use types
1108  * defined in <sys/types.h>, get those types by doing the include.
1109  *
1110  * Note that in asking for the interfaces associated with this feature test
1111  * macro one also asks for definitions of the POSIX types.
1112  */
1113 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1114 typedef __FILE FILE;
1115 
1116 
1117 
1118 
1119 
1120 typedef unsigned long size_t; /* size of something in bytes */
1121 
1122 
1123 
1124 
1125 
1126 
1127 typedef long fpos_t;
1128 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1129 /*
1130  * The value of _NFILE is defined in the Processor Specific ABI.  The value
1131  * is chosen for historical reasons rather than for truly processor related
1132  * attribute.  Note that the SPARC Processor Specific ABI uses the common
1133  * UNIX historical value of 20 so it is allowed to fall through.
1134  */
1135 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1136 extern __FILE __iob[20];
1137 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1138 extern int remove(const char *);
1139 extern int rename(const char *, const char *);
1140 extern FILE *tmpfile(void);
1141 extern char *tmpnam(char *);
1142 extern int fclose(FILE *);
1143 extern int fflush(FILE *);
1144 extern FILE *fopen(const char *, const char *);
1145 extern FILE *freopen(const char *,
1146    const char *, FILE *);
1147 extern void setbuf(FILE *, char *);
1148 extern int setvbuf(FILE *, char *, int,
1149    size_t);
1150 /* PRINTFLIKE2 */
1151 extern int fprintf(FILE *, const char *, ...);
1152 /* SCANFLIKE2 */
1153 extern int fscanf(FILE *, const char *, ...);
1154 /* PRINTFLIKE1 */
1155 extern int printf(const char *, ...);
1156 /* SCANFLIKE1 */
1157 extern int scanf(const char *, ...);
1158 /* PRINTFLIKE2 */
1159 extern int sprintf(char *, const char *, ...);
1160 /* SCANFLIKE2 */
1161 extern int sscanf(const char *,
1162    const char *, ...);
1163 extern int vfprintf(FILE *, const char *,
1164    __va_list);
1165 extern int vprintf(const char *, __va_list);
1166 extern int vsprintf(char *, const char *,
1167    __va_list);
1168 extern int fgetc(FILE *);
1169 extern char *fgets(char *, int, FILE *);
1170 extern int fputc(int, FILE *);
1171 extern int fputs(const char *, FILE *);
1172 
1173 
1174 extern int getc(FILE *);
1175 extern int putc(int, FILE *);
1176 
1177 
1178 
1179 extern int getchar(void);
1180 extern int putchar(int);
1181 
1182 
1183 /*
1184  * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11
1185  * environment has been requested, we remove it.
1186  */
1187 
1188 extern char *gets(char *);
1189 
1190 extern int puts(const char *);
1191 extern int ungetc(int, FILE *);
1192 extern size_t fread(void *, size_t, size_t,
1193  FILE *);
1194 extern size_t fwrite(const void *, size_t, size_t,
1195  FILE *);
1196 
1197 extern int fgetpos(FILE *, fpos_t *);
1198 extern int fsetpos(FILE *, const fpos_t *);
1199 
1200 extern int fseek(FILE *, long, int);
1201 extern long ftell(FILE *);
1202 extern void rewind(FILE *);
1203 
1204 
1205 extern void clearerr(FILE *);
1206 extern int feof(FILE *);
1207 extern int ferror(FILE *);
1208 
1209 extern void perror(const char *);
1210 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
1211 
1212 /*
1213  * If feature test macros are set that enable interfaces that use types
1214  * defined in <sys/types.h>, get those types by doing the include.
1215  *
1216  * Note that in asking for the interfaces associated with this feature test
1217  * macro one also asks for definitions of the POSIX types.
1218  */
1219 
1220 /*
1221  * Allow global visibility for symbols defined in
1222  * C++ "std" namespace in <iso/stdio_iso.h>.
1223  */
1224 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1225 /*
1226  * This header needs to be included here because it relies on the global
1227  * visibility of FILE and size_t in the C++ environment.
1228  */
1229 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1
1230 /*
1231  * CDDL HEADER START
1232  *
1233  * The contents of this file are subject to the terms of the
1234  * Common Development and Distribution License, Version 1.0 only
1235  * (the "License").  You may not use this file except in compliance
1236  * with the License.
1237  *
1238  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1239  * or http://www.opensolaris.org/os/licensing.
1240  * See the License for the specific language governing permissions
1241  * and limitations under the License.
1242  *
1243  * When distributing Covered Code, include this CDDL HEADER in each
1244  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1245  * If applicable, add the following below this CDDL HEADER, with the
1246  * fields enclosed by brackets "[]" replaced with your own identifying
1247  * information: Portions Copyright [yyyy] [name of copyright owner]
1248  *
1249  * CDDL HEADER END
1250  */
1251 /*
1252  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1253  *
1254  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1255  * Use is subject to license terms.
1256  */
1257 
1258 /*
1259  * An application should not include this header directly.  Instead it
1260  * should be included only through the inclusion of other Sun headers.
1261  *
1262  * The contents of this header is limited to identifiers specified in
1263  * the C99 standard and in conflict with the C++ implementation of the
1264  * standard header.  The C++ standard may adopt the C99 standard at
1265  * which point it is expected that the symbols included here will
1266  * become part of the C++ std namespace.
1267  */
1268 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
1269 /*
1270  * The following have been added as a result of the ISO/IEC 9899:1999
1271  * standard. For a strictly conforming C application, visibility is
1272  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1273  * For non-strictly conforming C applications, there are no restrictions
1274  * on the C namespace.
1275  */
1276 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
1277 extern int vfscanf(FILE *, const char *, __va_list);
1278 extern int vscanf(const char *, __va_list);
1279 extern int vsscanf(const char *, const char *,
1280   __va_list);
1281 
1282 
1283 
1284 
1285 extern int snprintf(char *, size_t, const char *,
1286  ...);
1287 extern int vsnprintf(char *, size_t, const char *,
1288  __va_list);
1289 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
1290 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1291 typedef long off_t;
1292 
1293 
1294 
1295 
1296 
1297 typedef off_t off64_t;
1298 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1299 typedef fpos_t fpos64_t;
1300 
1301 
1302 
1303 
1304 
1305 /*
1306  * XPG4 requires that va_list be defined in <stdio.h> "as described in
1307  * <stdarg.h>".  ANSI-C and POSIX require that the namespace of <stdio.h>
1308  * not be polluted with this name.
1309  */
1310 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1311 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1312 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1313 extern unsigned char _sibuf[], _sobuf[];
1314 
1315 
1316 /* large file compilation environment setup */
1317 # 241 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1318 /* In the LP64 compilation environment, all APIs are already large file */
1319 # 259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1320 typedef long ssize_t; /* size of something in bytes or -1 */
1321 # 268 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1322 extern char *tmpnam_r(char *);
1323 
1324 
1325 
1326 
1327 extern int fcloseall(void);
1328 extern void setbuffer(FILE *, char *, size_t);
1329 extern int setlinebuf(FILE *);
1330 /* PRINTFLIKE2 */
1331 extern int asprintf(char **, const char *, ...);
1332 /* PRINTFLIKE2 */
1333 extern int vasprintf(char **, const char *, __va_list);
1334 
1335 
1336 
1337 
1338  /* || defined(_XPG7) */
1339 extern ssize_t getdelim(char **, size_t *,
1340  int, FILE *);
1341 extern ssize_t getline(char **, size_t *,
1342  FILE *);
1343 
1344 
1345 /*
1346  * The following are known to POSIX and XOPEN, but not to ANSI-C.
1347  */
1348 
1349 
1350 
1351 extern FILE *fdopen(int, const char *);
1352 extern char *ctermid(char *);
1353 extern int fileno(FILE *);
1354 
1355 
1356 
1357 /*
1358  * The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
1359  */
1360 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1361 /*
1362  * The following are known to XOPEN, but not to ANSI-C or POSIX.
1363  */
1364 
1365 
1366 extern FILE *popen(const char *, const char *);
1367 extern char *tempnam(const char *, const char *);
1368 extern int pclose(FILE *);
1369 
1370 extern int getsubopt(char **, char *const *, char **);
1371 
1372 
1373 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1374 
1375 extern char *cuserid(char *);
1376 extern int getopt(int, char *const *, const char *);
1377 extern char *optarg;
1378 extern int optind, opterr, optopt;
1379 extern int getw(FILE *);
1380 extern int putw(int, FILE *);
1381 
1382 
1383 
1384 
1385 /*
1386  * The following are defined as part of the Large File Summit interfaces.
1387  */
1388 
1389 extern int fseeko(FILE *, off_t, int);
1390 extern off_t ftello(FILE *);
1391 
1392 
1393 /*
1394  * The following are defined as part of the transitional Large File Summit
1395  * interfaces.
1396  */
1397 
1398 
1399 extern FILE *fopen64(const char *, const char *);
1400 extern FILE *freopen64(const char *, const char *, FILE *);
1401 extern FILE *tmpfile64(void);
1402 extern int fgetpos64(FILE *, fpos64_t *);
1403 extern int fsetpos64(FILE *, const fpos64_t *);
1404 extern int fseeko64(FILE *, off64_t, int);
1405 extern off64_t ftello64(FILE *);
1406 
1407 
1408 /*
1409  * XPG7 symbols
1410  */
1411 
1412 extern FILE *fmemopen(void *, size_t,
1413       const char *);
1414 extern FILE *open_memstream(char **, size_t *);
1415 # 29 "../common/zones_lofs.c" 2
1416 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1
1417 /*
1418  * CDDL HEADER START
1419  *
1420  * The contents of this file are subject to the terms of the
1421  * Common Development and Distribution License (the "License").
1422  * You may not use this file except in compliance with the License.
1423  *
1424  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1425  * or http://www.opensolaris.org/os/licensing.
1426  * See the License for the specific language governing permissions
1427  * and limitations under the License.
1428  *
1429  * When distributing Covered Code, include this CDDL HEADER in each
1430  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1431  * If applicable, add the following below this CDDL HEADER, with the
1432  * fields enclosed by brackets "[]" replaced with your own identifying
1433  * information: Portions Copyright [yyyy] [name of copyright owner]
1434  *
1435  * CDDL HEADER END
1436  */
1437 
1438 /*
1439  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1440  * Copyright (c) 2013 Gary Mills
1441  *
1442  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
1443  */
1444 
1445 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
1446 
1447 /*	Copyright (c) 1988 AT&T	*/
1448 /*	  All Rights Reserved  	*/
1449 
1450 
1451 
1452 
1453 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1
1454 /*
1455  * CDDL HEADER START
1456  *
1457  * The contents of this file are subject to the terms of the
1458  * Common Development and Distribution License, Version 1.0 only
1459  * (the "License").  You may not use this file except in compliance
1460  * with the License.
1461  *
1462  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1463  * or http://www.opensolaris.org/os/licensing.
1464  * See the License for the specific language governing permissions
1465  * and limitations under the License.
1466  *
1467  * When distributing Covered Code, include this CDDL HEADER in each
1468  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1469  * If applicable, add the following below this CDDL HEADER, with the
1470  * fields enclosed by brackets "[]" replaced with your own identifying
1471  * information: Portions Copyright [yyyy] [name of copyright owner]
1472  *
1473  * CDDL HEADER END
1474  */
1475 /*
1476  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1477  * Copyright 2014 PALO, Richard.
1478  *
1479  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
1480  * Use is subject to license terms.
1481  */
1482 
1483 /*	Copyright (c) 1988 AT&T	*/
1484 /*	  All Rights Reserved  	*/
1485 
1486 
1487 /*
1488  * An application should not include this header directly.  Instead it
1489  * should be included only through the inclusion of other Sun headers.
1490  *
1491  * The contents of this header is limited to identifiers specified in the
1492  * C Standard.  Any new identifiers specified in future amendments to the
1493  * C Standard must be placed in this header.  If these new identifiers
1494  * are required to also be in the C++ Standard "std" namespace, then for
1495  * anything other than macro definitions, corresponding "using" directives
1496  * must also be added to <locale.h>.
1497  */
1498 
1499 
1500 
1501 
1502 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1503 /*
1504  * CDDL HEADER START
1505  *
1506  * The contents of this file are subject to the terms of the
1507  * Common Development and Distribution License (the "License").
1508  * You may not use this file except in compliance with the License.
1509  *
1510  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1511  * or http://www.opensolaris.org/os/licensing.
1512  * See the License for the specific language governing permissions
1513  * and limitations under the License.
1514  *
1515  * When distributing Covered Code, include this CDDL HEADER in each
1516  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1517  * If applicable, add the following below this CDDL HEADER, with the
1518  * fields enclosed by brackets "[]" replaced with your own identifying
1519  * information: Portions Copyright [yyyy] [name of copyright owner]
1520  *
1521  * CDDL HEADER END
1522  */
1523 
1524 /*
1525  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1526  * Copyright 2016 Joyent, Inc.
1527  *
1528  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1529  * Use is subject to license terms.
1530  */
1531 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
1532 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
1533 /*
1534  * This file and its contents are supplied under the terms of the
1535  * Common Development and Distribution License ("CDDL"), version 1.0.
1536  * You may only use this file in accordance with the terms of version
1537  * 1.0 of the CDDL.
1538  *
1539  * A full copy of the text of the CDDL should have accompanied this
1540  * source.  A copy of the CDDL is also available via the Internet at
1541  * http://www.illumos.org/license/CDDL.
1542  */
1543 
1544 /*
1545  * Copyright 2014-2016 PALO, Richard.
1546  */
1547 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
1548 
1549 
1550 
1551 
1552 
1553 unsigned char __mb_cur_max(void);
1554 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1555 typedef struct {
1556  int quot;
1557  int rem;
1558 } div_t;
1559 
1560 typedef struct {
1561  long quot;
1562  long rem;
1563 } ldiv_t;
1564 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1565 /*
1566  * wchar_t is a built-in type in standard C++ and as such is not
1567  * defined here when using standard C++. However, the GNU compiler
1568  * fixincludes utility nonetheless creates its own version of this
1569  * header for use by gcc and g++. In that version it adds a redundant
1570  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
1571  * header we need to include the following magic comment:
1572  *
1573  * we must use the C++ compiler's type
1574  *
1575  * The above comment should not be removed or changed until GNU
1576  * gcc/fixinc/inclhack.def is updated to bypass this header.
1577  */
1578 
1579 
1580 
1581 
1582 typedef int wchar_t;
1583 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1584 extern void abort(void) __attribute__((__noreturn__));
1585 extern int abs(int);
1586 extern int atexit(void (*)(void));
1587 extern double atof(const char *);
1588 extern int atoi(const char *);
1589 extern long int atol(const char *);
1590 extern void *bsearch(const void *, const void *, size_t, size_t,
1591  int (*)(const void *, const void *));
1592 
1593 
1594 
1595 
1596 
1597 
1598 extern void *calloc(size_t, size_t);
1599 extern div_t div(int, int);
1600 extern void exit(int)
1601  __attribute__((__noreturn__));
1602 extern void free(void *);
1603 extern char *getenv(const char *);
1604 extern long int labs(long);
1605 extern ldiv_t ldiv(long, long);
1606 extern void *malloc(size_t);
1607 extern int mblen(const char *, size_t);
1608 extern size_t mbstowcs(wchar_t *, const char *,
1609  size_t);
1610 extern int mbtowc(wchar_t *, const char *, size_t);
1611 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
1612 
1613 
1614 
1615 
1616 
1617 extern int rand(void);
1618 extern void *realloc(void *, size_t);
1619 extern void srand(unsigned int);
1620 extern double strtod(const char *, char **);
1621 extern long int strtol(const char *, char **, int);
1622 extern unsigned long int strtoul(const char *,
1623  char **, int);
1624 extern int system(const char *);
1625 extern int wctomb(char *, wchar_t);
1626 extern size_t wcstombs(char *, const wchar_t *,
1627  size_t);
1628 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1629 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1
1630 /*
1631  * CDDL HEADER START
1632  *
1633  * The contents of this file are subject to the terms of the
1634  * Common Development and Distribution License, Version 1.0 only
1635  * (the "License").  You may not use this file except in compliance
1636  * with the License.
1637  *
1638  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1639  * or http://www.opensolaris.org/os/licensing.
1640  * See the License for the specific language governing permissions
1641  * and limitations under the License.
1642  *
1643  * When distributing Covered Code, include this CDDL HEADER in each
1644  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1645  * If applicable, add the following below this CDDL HEADER, with the
1646  * fields enclosed by brackets "[]" replaced with your own identifying
1647  * information: Portions Copyright [yyyy] [name of copyright owner]
1648  *
1649  * CDDL HEADER END
1650  */
1651 /*
1652  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1653  *
1654  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1655  * Use is subject to license terms.
1656  */
1657 
1658 /*
1659  * An application should not include this header directly.  Instead it
1660  * should be included only through the inclusion of other Sun headers.
1661  *
1662  * The contents of this header is limited to identifiers specified in
1663  * the C99 standard and in conflict with the C++ implementation of the
1664  * standard header.  The C++ standard may adopt the C99 standard at
1665  * which point it is expected that the symbols included here will
1666  * become part of the C++ std namespace.
1667  */
1668 
1669 
1670 
1671 
1672 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1673 /*
1674  * CDDL HEADER START
1675  *
1676  * The contents of this file are subject to the terms of the
1677  * Common Development and Distribution License (the "License").
1678  * You may not use this file except in compliance with the License.
1679  *
1680  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1681  * or http://www.opensolaris.org/os/licensing.
1682  * See the License for the specific language governing permissions
1683  * and limitations under the License.
1684  *
1685  * When distributing Covered Code, include this CDDL HEADER in each
1686  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1687  * If applicable, add the following below this CDDL HEADER, with the
1688  * fields enclosed by brackets "[]" replaced with your own identifying
1689  * information: Portions Copyright [yyyy] [name of copyright owner]
1690  *
1691  * CDDL HEADER END
1692  */
1693 
1694 /*
1695  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1696  * Copyright 2016 Joyent, Inc.
1697  *
1698  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1699  * Use is subject to license terms.
1700  */
1701 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2
1702 
1703 
1704 
1705 
1706 
1707 /*
1708  * The following have been added as a result of the ISO/IEC 9899:1999
1709  * standard. For a strictly conforming C application, visibility is
1710  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1711  * For non-strictly conforming C applications, there are no restrictions
1712  * on the C namespace.
1713  */
1714 
1715 
1716 typedef struct {
1717  long long quot;
1718  long long rem;
1719 } lldiv_t;
1720 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h"
1721 extern void _Exit(int);
1722 extern float strtof(const char *, char **);
1723 extern long double strtold(const char *, char **);
1724 
1725 
1726 extern long long atoll(const char *);
1727 extern long long llabs(long long);
1728 extern lldiv_t lldiv(long long, long long);
1729 extern long long strtoll(const char *, char **,
1730  int);
1731 extern unsigned long long strtoull(const char *,
1732  char **, int);
1733 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1734 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1
1735 /*
1736  * This file and its contents are supplied under the terms of the
1737  * Common Development and Distribution License ("CDDL"), version 1.0.
1738  * You may only use this file in accordance with the terms of version
1739  * 1.0 of the CDDL.
1740  *
1741  * A full copy of the text of the CDDL should have accompanied this
1742  * source.  A copy of the CDDL is also available via the Internet at
1743  * http://www.illumos.org/license/CDDL.
1744  */
1745 
1746 /*
1747  * Copyright 2016 Joyent, Inc.
1748  */
1749 
1750 /*
1751  * An application should not include this header directly.  Instead it
1752  * should be included only through the inclusion of other illumos headers.
1753  *
1754  * The contents of this header is limited to identifiers specified in
1755  * the C11 standard and in conflict with the C++ implementation of the
1756  * standard header.  The C++ standard may adopt the C11 standard at
1757  * which point it is expected that the symbols included here will
1758  * become part of the C++ std namespace.
1759  */
1760 
1761 
1762 
1763 
1764 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1765 /*
1766  * CDDL HEADER START
1767  *
1768  * The contents of this file are subject to the terms of the
1769  * Common Development and Distribution License (the "License").
1770  * You may not use this file except in compliance with the License.
1771  *
1772  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1773  * or http://www.opensolaris.org/os/licensing.
1774  * See the License for the specific language governing permissions
1775  * and limitations under the License.
1776  *
1777  * When distributing Covered Code, include this CDDL HEADER in each
1778  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1779  * If applicable, add the following below this CDDL HEADER, with the
1780  * fields enclosed by brackets "[]" replaced with your own identifying
1781  * information: Portions Copyright [yyyy] [name of copyright owner]
1782  *
1783  * CDDL HEADER END
1784  */
1785 
1786 /*
1787  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1788  * Copyright 2016 Joyent, Inc.
1789  *
1790  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1791  * Use is subject to license terms.
1792  */
1793 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2
1794 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
1795 /*
1796  * The following have been added as a result of the ISO/IEC 9899:2011
1797  * standard. For a strictly conforming C application, visibility is
1798  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1799  * For non-strictly conforming C applications, there are no restrictions
1800  * on the C namespace.
1801  */
1802 
1803 /*
1804  * Work around fix-includes and other bad actors with using multiple headers.
1805  */
1806 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
1807 extern void *aligned_alloc(size_t, size_t);
1808 extern int at_quick_exit(void (*)(void));
1809 extern void quick_exit(int);
1810 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1811 
1812 
1813 
1814 
1815 
1816 /*
1817  * Allow global visibility for symbols defined in
1818  * C++ "std" namespace in <iso/stdlib_iso.h>.
1819  */
1820 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1821 /*
1822  * Allow global visibility for symbols defined in
1823  * C++ "std" namespace in <iso/stdlib_c11.h>.
1824  */
1825 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1826 typedef unsigned int uid_t; /* UID type		*/
1827 
1828 
1829 /* large file compilation environment setup */
1830 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1831 /* In the LP64 compilation environment, all APIs are already large file */
1832 
1833 
1834 
1835 
1836 # 125 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1837 #pragma redefine_extname mkstemp64 mkstemp
1838 # 125 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1839 
1840 
1841 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1842 #pragma redefine_extname mkstemps64 mkstemps
1843 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1844 
1845 
1846 # 127 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1847 #pragma redefine_extname mkostemp64 mkostemp
1848 # 127 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1849 
1850 
1851 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1852 #pragma redefine_extname mkostemps64 mkostemps
1853 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1854 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1855 extern int rand_r(unsigned int *);
1856 
1857 
1858 extern void _exithandle(void);
1859 
1860 
1861 
1862 
1863 extern double drand48(void);
1864 extern double erand48(unsigned short *);
1865 extern long jrand48(unsigned short *);
1866 extern void lcong48(unsigned short *);
1867 extern long lrand48(void);
1868 extern long mrand48(void);
1869 extern long nrand48(unsigned short *);
1870 extern unsigned short *seed48(unsigned short *);
1871 extern void srand48(long);
1872 extern int putenv(char *);
1873 extern void setkey(const char *);
1874 
1875 
1876 /*
1877  * swab() has historically been in <stdlib.h> as delivered from AT&T
1878  * and continues to be visible in the default compilation environment.
1879  * As of Issue 4 of the X/Open Portability Guides, swab() was declared
1880  * in <unistd.h>. As a result, with respect to X/Open namespace the
1881  * swab() declaration in this header is only visible for the XPG3
1882  * environment.
1883  */
1884 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1885 extern void swab(const char *, char *, ssize_t);
1886 
1887 
1888 
1889 
1890 
1891 extern int mkstemp(char *);
1892 
1893 extern int mkstemps(char *, int);
1894 
1895 
1896 
1897 
1898 
1899 extern int mkstemp64(char *);
1900 
1901 extern int mkstemps64(char *, int);
1902 
1903 
1904 
1905 
1906 extern char *mkdtemp(char *);
1907 
1908 
1909 
1910 extern int mkostemp(char *, int);
1911 extern int mkostemps(char *, int, int);
1912 
1913 
1914 extern int mkostemp64(char *, int);
1915 extern int mkostemps64(char *, int, int);
1916 
1917 
1918 
1919 
1920 
1921 
1922 extern long a64l(const char *);
1923 extern char *ecvt(double, int, int *, int *);
1924 extern char *fcvt(double, int, int *, int *);
1925 extern char *gcvt(double, int, char *);
1926 extern int getsubopt(char **, char *const *, char **);
1927 extern int grantpt(int);
1928 extern char *initstate(unsigned, char *, size_t);
1929 extern char *l64a(long);
1930 extern char *mktemp(char *);
1931 extern char *ptsname(int);
1932 extern long random(void);
1933 extern char *realpath(const char *, char *);
1934 extern char *setstate(const char *);
1935 extern void srandom(unsigned);
1936 extern int unlockpt(int);
1937 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1938 
1939 extern int ttyslot(void);
1940 extern void *valloc(size_t);
1941 
1942 
1943 
1944 
1945 
1946 
1947 extern int posix_memalign(void **, size_t, size_t);
1948 extern int posix_openpt(int);
1949 extern int setenv(const char *, const char *, int);
1950 extern int unsetenv(const char *);
1951 
1952 
1953 
1954 
1955 extern char *canonicalize_file_name(const char *);
1956 extern int clearenv(void);
1957 extern void closefrom(int);
1958 extern int daemon(int, int);
1959 extern int dup2(int, int);
1960 extern int dup3(int, int, int);
1961 extern int fdwalk(int (*)(void *, int), void *);
1962 extern char *qecvt(long double, int, int *, int *);
1963 extern char *qfcvt(long double, int, int *, int *);
1964 extern char *qgcvt(long double, int, char *);
1965 extern char *getcwd(char *, size_t);
1966 extern const char *getexecname(void);
1967 
1968 
1969 
1970 
1971 
1972 
1973 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1974 #pragma redefine_extname getlogin getloginx
1975 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1976 
1977 
1978 
1979 
1980 
1981 
1982 extern char *getlogin(void);
1983 
1984 
1985 extern int getopt(int, char *const *, const char *);
1986 extern char *optarg;
1987 extern int optind, opterr, optopt;
1988 extern char *getpass(const char *);
1989 extern char *getpassphrase(const char *);
1990 extern int getpw(uid_t, char *);
1991 extern int isatty(int);
1992 extern void *memalign(size_t, size_t);
1993 extern char *ttyname(int);
1994 extern char *mkdtemp(char *);
1995 extern const char *getprogname(void);
1996 extern void setprogname(const char *);
1997 
1998 
1999 extern char *lltostr(long long, char *);
2000 extern char *ulltostr(unsigned long long, char *);
2001 
2002 
2003 
2004 
2005 /* OpenBSD compatibility functions */
2006 
2007 
2008 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
2009 /*
2010  * CDDL HEADER START
2011  *
2012  * The contents of this file are subject to the terms of the
2013  * Common Development and Distribution License, Version 1.0 only
2014  * (the "License").  You may not use this file except in compliance
2015  * with the License.
2016  *
2017  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2018  * or http://www.opensolaris.org/os/licensing.
2019  * See the License for the specific language governing permissions
2020  * and limitations under the License.
2021  *
2022  * When distributing Covered Code, include this CDDL HEADER in each
2023  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2024  * If applicable, add the following below this CDDL HEADER, with the
2025  * fields enclosed by brackets "[]" replaced with your own identifying
2026  * information: Portions Copyright [yyyy] [name of copyright owner]
2027  *
2028  * CDDL HEADER END
2029  */
2030 /*
2031  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2032  *
2033  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
2034  * Use is subject to license terms.
2035  */
2036 
2037 
2038 
2039 
2040 /*
2041  * This file, <inttypes.h>, is specified by the ISO C standard,
2042  * standard, ISO/IEC 9899:1999 Programming language - C and is
2043  * also defined by SUSv3.
2044  *
2045  * ISO	  International Organization for Standardization.
2046  * SUSv3  Single Unix Specification, Version 3
2047  */
2048 
2049 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2050 /*
2051  * CDDL HEADER START
2052  *
2053  * The contents of this file are subject to the terms of the
2054  * Common Development and Distribution License (the "License").
2055  * You may not use this file except in compliance with the License.
2056  *
2057  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2058  * or http://www.opensolaris.org/os/licensing.
2059  * See the License for the specific language governing permissions
2060  * and limitations under the License.
2061  *
2062  * When distributing Covered Code, include this CDDL HEADER in each
2063  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2064  * If applicable, add the following below this CDDL HEADER, with the
2065  * fields enclosed by brackets "[]" replaced with your own identifying
2066  * information: Portions Copyright [yyyy] [name of copyright owner]
2067  *
2068  * CDDL HEADER END
2069  */
2070 
2071 /*
2072  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2073  * Copyright 2016 Joyent, Inc.
2074  *
2075  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2076  * Use is subject to license terms.
2077  */
2078 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2079 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1
2080 /*
2081  * CDDL HEADER START
2082  *
2083  * The contents of this file are subject to the terms of the
2084  * Common Development and Distribution License, Version 1.0 only
2085  * (the "License").  You may not use this file except in compliance
2086  * with the License.
2087  *
2088  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2089  * or http://www.opensolaris.org/os/licensing.
2090  * See the License for the specific language governing permissions
2091  * and limitations under the License.
2092  *
2093  * When distributing Covered Code, include this CDDL HEADER in each
2094  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2095  * If applicable, add the following below this CDDL HEADER, with the
2096  * fields enclosed by brackets "[]" replaced with your own identifying
2097  * information: Portions Copyright [yyyy] [name of copyright owner]
2098  *
2099  * CDDL HEADER END
2100  */
2101 /*
2102  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
2103  * Use is subject to license terms.
2104  */
2105 
2106 
2107 
2108 
2109 #pragma ident "%Z%%M%	%I%	%E% SMI"
2110 
2111 /*
2112  * This header, <sys/inttypes.h>, contains (through nested inclusion) the
2113  * vast majority of the facilities specified for <inttypes.h> as defined
2114  * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
2115  *
2116  * Kernel/Driver developers are encouraged to include this file to access
2117  * the fixed size types, limits and utility macros. Application developers
2118  * should use the standard defined header <inttypes.h>.
2119  */
2120 
2121 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2122 /*
2123  * CDDL HEADER START
2124  *
2125  * The contents of this file are subject to the terms of the
2126  * Common Development and Distribution License (the "License").
2127  * You may not use this file except in compliance with the License.
2128  *
2129  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2130  * or http://www.opensolaris.org/os/licensing.
2131  * See the License for the specific language governing permissions
2132  * and limitations under the License.
2133  *
2134  * When distributing Covered Code, include this CDDL HEADER in each
2135  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2136  * If applicable, add the following below this CDDL HEADER, with the
2137  * fields enclosed by brackets "[]" replaced with your own identifying
2138  * information: Portions Copyright [yyyy] [name of copyright owner]
2139  *
2140  * CDDL HEADER END
2141  */
2142 
2143 /*
2144  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2145  * Copyright 2016 Joyent, Inc.
2146  *
2147  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2148  * Use is subject to license terms.
2149  */
2150 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2151 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
2152 /*
2153  * CDDL HEADER START
2154  *
2155  * The contents of this file are subject to the terms of the
2156  * Common Development and Distribution License, Version 1.0 only
2157  * (the "License").  You may not use this file except in compliance
2158  * with the License.
2159  *
2160  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2161  * or http://www.opensolaris.org/os/licensing.
2162  * See the License for the specific language governing permissions
2163  * and limitations under the License.
2164  *
2165  * When distributing Covered Code, include this CDDL HEADER in each
2166  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2167  * If applicable, add the following below this CDDL HEADER, with the
2168  * fields enclosed by brackets "[]" replaced with your own identifying
2169  * information: Portions Copyright [yyyy] [name of copyright owner]
2170  *
2171  * CDDL HEADER END
2172  */
2173 /*
2174  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2175  *
2176  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2177  * Use is subject to license terms.
2178  */
2179 
2180 
2181 
2182 
2183 /*
2184  * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
2185  * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
2186  * Programming language - C.
2187  *
2188  * Programs/Modules should not directly include this file.  Access to the
2189  * types defined in this file should be through the inclusion of one of the
2190  * following files:
2191  *
2192  *	<sys/types.h>		Provides only the "_t" types defined in this
2193  *				file which is a subset of the contents of
2194  *				<inttypes.h>.  (This can be appropriate for
2195  *				all programs/modules except those claiming
2196  *				ANSI-C conformance.)
2197  *
2198  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2199  *				components of <inttypes.h>.
2200  *
2201  *	<inttypes.h>		For use by applications.
2202  *
2203  * See these files for more details.
2204  */
2205 
2206 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2207 /*
2208  * CDDL HEADER START
2209  *
2210  * The contents of this file are subject to the terms of the
2211  * Common Development and Distribution License (the "License").
2212  * You may not use this file except in compliance with the License.
2213  *
2214  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2215  * or http://www.opensolaris.org/os/licensing.
2216  * See the License for the specific language governing permissions
2217  * and limitations under the License.
2218  *
2219  * When distributing Covered Code, include this CDDL HEADER in each
2220  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2221  * If applicable, add the following below this CDDL HEADER, with the
2222  * fields enclosed by brackets "[]" replaced with your own identifying
2223  * information: Portions Copyright [yyyy] [name of copyright owner]
2224  *
2225  * CDDL HEADER END
2226  */
2227 
2228 /*
2229  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2230  * Copyright 2016 Joyent, Inc.
2231  *
2232  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2233  * Use is subject to license terms.
2234  */
2235 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2
2236 
2237 
2238 
2239 
2240 
2241 /*
2242  * Basic / Extended integer types
2243  *
2244  * The following defines the basic fixed-size integer types.
2245  *
2246  * Implementations are free to typedef them to Standard C integer types or
2247  * extensions that they support. If an implementation does not support one
2248  * of the particular integer data types below, then it should not define the
2249  * typedefs and macros corresponding to that data type.  Note that int8_t
2250  * is not defined in -Xs mode on ISAs for which the ABI specifies "char"
2251  * as an unsigned entity because there is no way to define an eight bit
2252  * signed integral.
2253  */
2254 
2255 typedef char int8_t;
2256 
2257 
2258 
2259 typedef short int16_t;
2260 typedef int int32_t;
2261 
2262 
2263 typedef long int64_t;
2264 
2265 
2266 
2267 
2268 
2269 
2270 
2271 typedef unsigned char uint8_t;
2272 typedef unsigned short uint16_t;
2273 typedef unsigned int uint32_t;
2274 
2275 typedef unsigned long uint64_t;
2276 
2277 
2278 
2279 
2280 
2281 
2282 /*
2283  * intmax_t and uintmax_t are to be the longest (in number of bits) signed
2284  * and unsigned integer types supported by the implementation.
2285  */
2286 
2287 typedef int64_t intmax_t;
2288 typedef uint64_t uintmax_t;
2289 
2290 
2291 
2292 
2293 
2294 /*
2295  * intptr_t and uintptr_t are signed and unsigned integer types large enough
2296  * to hold any data pointer; that is, data pointers can be assigned into or
2297  * from these integer types without losing precision.
2298  */
2299 
2300 typedef long intptr_t;
2301 typedef unsigned long uintptr_t;
2302 
2303 
2304 
2305 
2306 
2307 /*
2308  * The following define the fastest integer types that can hold the
2309  * specified number of bits.
2310  */
2311 
2312 typedef char int_fast8_t;
2313 
2314 
2315 
2316 typedef int int_fast16_t;
2317 typedef int int_fast32_t;
2318 
2319 typedef long int_fast64_t;
2320 
2321 
2322 
2323 
2324 
2325 
2326 typedef unsigned char uint_fast8_t;
2327 typedef unsigned int uint_fast16_t;
2328 typedef unsigned int uint_fast32_t;
2329 
2330 typedef unsigned long uint_fast64_t;
2331 
2332 
2333 
2334 
2335 
2336 
2337 /*
2338  * The following define the smallest integer types that can hold the
2339  * specified number of bits.
2340  */
2341 
2342 typedef char int_least8_t;
2343 
2344 
2345 
2346 typedef short int_least16_t;
2347 typedef int int_least32_t;
2348 
2349 typedef long int_least64_t;
2350 
2351 
2352 
2353 
2354 
2355 
2356 /*
2357  * If these are changed, please update char16_t and char32_t in head/uchar.h.
2358  */
2359 typedef unsigned char uint_least8_t;
2360 typedef unsigned short uint_least16_t;
2361 typedef unsigned int uint_least32_t;
2362 
2363 typedef unsigned long uint_least64_t;
2364 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2365 
2366 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
2367 /*
2368  * CDDL HEADER START
2369  *
2370  * The contents of this file are subject to the terms of the
2371  * Common Development and Distribution License, Version 1.0 only
2372  * (the "License").  You may not use this file except in compliance
2373  * with the License.
2374  *
2375  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2376  * or http://www.opensolaris.org/os/licensing.
2377  * See the License for the specific language governing permissions
2378  * and limitations under the License.
2379  *
2380  * When distributing Covered Code, include this CDDL HEADER in each
2381  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2382  * If applicable, add the following below this CDDL HEADER, with the
2383  * fields enclosed by brackets "[]" replaced with your own identifying
2384  * information: Portions Copyright [yyyy] [name of copyright owner]
2385  *
2386  * CDDL HEADER END
2387  */
2388 /*
2389  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2390  *
2391  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2392  * Use is subject to license terms.
2393  */
2394 
2395 
2396 
2397 
2398 /*
2399  * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation
2400  * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999
2401  * Programming language - C.
2402  *
2403  * Programs/Modules should not directly include this file.  Access to the
2404  * types defined in this file should be through the inclusion of one of the
2405  * following files:
2406  *
2407  *	<limits.h>		This nested inclusion is disabled for strictly
2408  *				ANSI-C conforming compilations.  The *_MIN
2409  *				definitions are not visible to POSIX or XPG
2410  *				conforming applications (due to what may be
2411  *				a bug in the specification - this is under
2412  *				investigation)
2413  *
2414  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2415  *				components of <inttypes.h>.
2416  *
2417  *	<inttypes.h>		For use by applications.
2418  *
2419  * See these files for more details.
2420  */
2421 
2422 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2423 /*
2424  * CDDL HEADER START
2425  *
2426  * The contents of this file are subject to the terms of the
2427  * Common Development and Distribution License (the "License").
2428  * You may not use this file except in compliance with the License.
2429  *
2430  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2431  * or http://www.opensolaris.org/os/licensing.
2432  * See the License for the specific language governing permissions
2433  * and limitations under the License.
2434  *
2435  * When distributing Covered Code, include this CDDL HEADER in each
2436  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2437  * If applicable, add the following below this CDDL HEADER, with the
2438  * fields enclosed by brackets "[]" replaced with your own identifying
2439  * information: Portions Copyright [yyyy] [name of copyright owner]
2440  *
2441  * CDDL HEADER END
2442  */
2443 
2444 /*
2445  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2446  * Copyright 2016 Joyent, Inc.
2447  *
2448  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2449  * Use is subject to license terms.
2450  */
2451 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2
2452 
2453 
2454 
2455 
2456 
2457 /*
2458  * Limits
2459  *
2460  * The following define the limits for the types defined in <sys/int_types.h>.
2461  *
2462  * INTMAX_MIN (minimum value of the largest supported signed integer type),
2463  * INTMAX_MAX (maximum value of the largest supported signed integer type),
2464  * and UINTMAX_MAX (maximum value of the largest supported unsigned integer
2465  * type) can be set to implementation defined limits.
2466  *
2467  * NOTE : A programmer can test to see whether an implementation supports
2468  * a particular size of integer by testing if the macro that gives the
2469  * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX
2470  * tests false, the implementation does not support unsigned 64 bit integers.
2471  *
2472  * The type of these macros is intentionally unspecified.
2473  *
2474  * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs
2475  * where the ABI specifies "char" as unsigned when the translation mode is
2476  * not ANSI-C.
2477  */
2478 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2479 /*
2480  * The following 2 macros are provided for testing whether the types
2481  * intptr_t and uintptr_t (integers large enough to hold a void *) are
2482  * defined in this header. They are needed in case the architecture can't
2483  * represent a pointer in any standard integral type.
2484  */
2485 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2486 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */
2487 
2488 
2489 
2490 
2491 
2492 
2493 /*
2494  * Maximum value of a "size_t".  SIZE_MAX was previously defined
2495  * in <limits.h>, however, the standards specify it be defined
2496  * in <stdint.h>. The <stdint.h> headers includes this header as
2497  * does <limits.h>. The value of SIZE_MAX should not deviate
2498  * from the value of ULONG_MAX defined <sys/types.h>.
2499  */
2500 
2501 
2502 
2503 
2504 
2505 
2506 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */
2507 
2508 
2509 
2510 
2511 /*
2512  * Maximum limit of wchar_t. The WCHAR_* macros are also
2513  * defined in <iso/wchar_iso.h>, but inclusion of that header
2514  * will break ISO/IEC C namespace.
2515  */
2516 
2517 
2518 
2519 
2520 /* Maximum limit of wint_t */
2521 
2522 
2523 
2524 
2525 /*
2526  * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that
2527  * when including <limits.h> that the suffix _MAX is reserved but not the
2528  * suffix _MIN.  However, until that issue is resolved....
2529  */
2530 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2531 /* Minimum value of a pointer-holding signed integer type */
2532 
2533 
2534 
2535 
2536 
2537 
2538 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */
2539 
2540 
2541 
2542 
2543 
2544 
2545 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */
2546 
2547 
2548 
2549 
2550 /*
2551  * Minimum limit of wchar_t. The WCHAR_* macros are also
2552  * defined in <iso/wchar_iso.h>, but inclusion of that header
2553  * will break ISO/IEC C namespace.
2554  */
2555 
2556 
2557 
2558 
2559 /* Minimum limit of wint_t */
2560 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2561 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
2562 /*
2563  * CDDL HEADER START
2564  *
2565  * The contents of this file are subject to the terms of the
2566  * Common Development and Distribution License, Version 1.0 only
2567  * (the "License").  You may not use this file except in compliance
2568  * with the License.
2569  *
2570  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2571  * or http://www.opensolaris.org/os/licensing.
2572  * See the License for the specific language governing permissions
2573  * and limitations under the License.
2574  *
2575  * When distributing Covered Code, include this CDDL HEADER in each
2576  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2577  * If applicable, add the following below this CDDL HEADER, with the
2578  * fields enclosed by brackets "[]" replaced with your own identifying
2579  * information: Portions Copyright [yyyy] [name of copyright owner]
2580  *
2581  * CDDL HEADER END
2582  */
2583 /*
2584  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2585  *
2586  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2587  * Use is subject to license terms.
2588  */
2589 
2590 
2591 
2592 
2593 /*
2594  * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation
2595  * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working
2596  * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990
2597  * Programming language - C.
2598  *
2599  * Programs/Modules should not directly include this file.  Access to the
2600  * types defined in this file should be through the inclusion of one of the
2601  * following files:
2602  *
2603  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2604  *				components of <inttypes.h>.
2605  *
2606  *	<inttypes.h>		For use by applications.
2607  *
2608  * See these files for more details.
2609  *
2610  * Use at your own risk.  This file will track the evolution of the revision
2611  * of the current ISO C standard.  As of February 1996, the committee is
2612  * squarely behind the fixed sized types.
2613  */
2614 
2615 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2616 /*
2617  * CDDL HEADER START
2618  *
2619  * The contents of this file are subject to the terms of the
2620  * Common Development and Distribution License (the "License").
2621  * You may not use this file except in compliance with the License.
2622  *
2623  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2624  * or http://www.opensolaris.org/os/licensing.
2625  * See the License for the specific language governing permissions
2626  * and limitations under the License.
2627  *
2628  * When distributing Covered Code, include this CDDL HEADER in each
2629  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2630  * If applicable, add the following below this CDDL HEADER, with the
2631  * fields enclosed by brackets "[]" replaced with your own identifying
2632  * information: Portions Copyright [yyyy] [name of copyright owner]
2633  *
2634  * CDDL HEADER END
2635  */
2636 
2637 /*
2638  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2639  * Copyright 2016 Joyent, Inc.
2640  *
2641  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2642  * Use is subject to license terms.
2643  */
2644 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2
2645 
2646 
2647 
2648 
2649 
2650 /*
2651  * Constants
2652  *
2653  * The following macros create constants of the types defined in
2654  * <sys/int_types.h>. The intent is that:
2655  *	Constants defined using these macros have a specific size and
2656  *	signedness. The suffix used for int64_t and uint64_t (ll and ull)
2657  *	are for examples only. Implementations are permitted to use other
2658  *	suffixes.
2659  *
2660  * The "CSTYLED" comments are flags to an internal code style analysis tool
2661  * telling it to silently accept the line which follows.  This internal
2662  * standard requires a space between arguments, but the historical,
2663  * non-ANSI-C ``method'' of concatenation can't tolerate those spaces.
2664  */
2665 /* CSTYLED */
2666 
2667 
2668 
2669 
2670 
2671 
2672 /* CSTYLED */
2673 # 91 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
2674 /* CSTYLED */
2675 
2676 /* CSTYLED */
2677 
2678 /* CSTYLED */
2679 
2680 
2681 /* CSTYLED */
2682 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
2683 /* CSTYLED */
2684 
2685 /* CSTYLED */
2686 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2687 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1
2688 /*
2689  * CDDL HEADER START
2690  *
2691  * The contents of this file are subject to the terms of the
2692  * Common Development and Distribution License, Version 1.0 only
2693  * (the "License").  You may not use this file except in compliance
2694  * with the License.
2695  *
2696  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2697  * or http://www.opensolaris.org/os/licensing.
2698  * See the License for the specific language governing permissions
2699  * and limitations under the License.
2700  *
2701  * When distributing Covered Code, include this CDDL HEADER in each
2702  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2703  * If applicable, add the following below this CDDL HEADER, with the
2704  * fields enclosed by brackets "[]" replaced with your own identifying
2705  * information: Portions Copyright [yyyy] [name of copyright owner]
2706  *
2707  * CDDL HEADER END
2708  */
2709 /*
2710  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2711  *
2712  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2713  * Use is subject to license terms.
2714  */
2715 
2716 
2717 
2718 
2719 /*
2720  * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation
2721  * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999
2722  * Programming language - C.
2723  *
2724  * ISO  International Organization for Standardization.
2725  *
2726  * Programs/Modules should not directly include this file.  Access to the
2727  * types defined in this file should be through the inclusion of one of the
2728  * following files:
2729  *
2730  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2731  *				components of <inttypes.h>.
2732  *
2733  *	<inttypes.h>		For use by applications.
2734  *
2735  * See these files for more details.
2736  */
2737 
2738 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2739 /*
2740  * CDDL HEADER START
2741  *
2742  * The contents of this file are subject to the terms of the
2743  * Common Development and Distribution License (the "License").
2744  * You may not use this file except in compliance with the License.
2745  *
2746  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2747  * or http://www.opensolaris.org/os/licensing.
2748  * See the License for the specific language governing permissions
2749  * and limitations under the License.
2750  *
2751  * When distributing Covered Code, include this CDDL HEADER in each
2752  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2753  * If applicable, add the following below this CDDL HEADER, with the
2754  * fields enclosed by brackets "[]" replaced with your own identifying
2755  * information: Portions Copyright [yyyy] [name of copyright owner]
2756  *
2757  * CDDL HEADER END
2758  */
2759 
2760 /*
2761  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2762  * Copyright 2016 Joyent, Inc.
2763  *
2764  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2765  * Use is subject to license terms.
2766  */
2767 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2
2768 
2769 
2770 
2771 
2772 
2773 /*
2774  * Formatted I/O
2775  *
2776  * The following macros can be used even when an implementation has not
2777  * extended the printf/scanf family of functions.
2778  *
2779  * The form of the names of the macros is either "PRI" for printf specifiers
2780  * or "SCN" for scanf specifiers, followed by the conversion specifier letter
2781  * followed by the datatype size. For example, PRId32 is the macro for
2782  * the printf d conversion specifier with the flags for 32 bit datatype.
2783  *
2784  * An example using one of these macros:
2785  *
2786  *	uint64_t u;
2787  *	printf("u = %016" PRIx64 "\n", u);
2788  *
2789  * For the purpose of example, the definitions of the printf/scanf macros
2790  * below have the values appropriate for a machine with 8 bit shorts, 16
2791  * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation
2792  * mode, and 64 bit long longs.
2793  */
2794 
2795 /*
2796  * fprintf macros for signed integers
2797  */
2798 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2799 /*
2800  * fprintf macros for unsigned integers
2801  */
2802 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2803 /*
2804  * fprintf macros for pointers
2805  */
2806 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2807 /*
2808  * fscanf macros for signed integers
2809  */
2810 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2811 /*
2812  * fscanf macros for unsigned integers
2813  */
2814 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2815 /*
2816  * The following macros define I/O formats for intmax_t and uintmax_t.
2817  */
2818 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2819 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2820 
2821 
2822 
2823 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1
2824 /*
2825  * CDDL HEADER START
2826  *
2827  * The contents of this file are subject to the terms of the
2828  * Common Development and Distribution License, Version 1.0 only
2829  * (the "License").  You may not use this file except in compliance
2830  * with the License.
2831  *
2832  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2833  * or http://www.opensolaris.org/os/licensing.
2834  * See the License for the specific language governing permissions
2835  * and limitations under the License.
2836  *
2837  * When distributing Covered Code, include this CDDL HEADER in each
2838  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2839  * If applicable, add the following below this CDDL HEADER, with the
2840  * fields enclosed by brackets "[]" replaced with your own identifying
2841  * information: Portions Copyright [yyyy] [name of copyright owner]
2842  *
2843  * CDDL HEADER END
2844  */
2845 /*
2846  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
2847  * Use is subject to license terms.
2848  */
2849 
2850 
2851 
2852 
2853 #pragma ident "%Z%%M%	%I%	%E% SMI"
2854 
2855 /*
2856  * This header is included by <stdint.h> which was introduced by
2857  * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
2858  * The header is a subset of the <inttypes.h> header.
2859  */
2860 
2861 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
2862 /*
2863  * CDDL HEADER START
2864  *
2865  * The contents of this file are subject to the terms of the
2866  * Common Development and Distribution License, Version 1.0 only
2867  * (the "License").  You may not use this file except in compliance
2868  * with the License.
2869  *
2870  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2871  * or http://www.opensolaris.org/os/licensing.
2872  * See the License for the specific language governing permissions
2873  * and limitations under the License.
2874  *
2875  * When distributing Covered Code, include this CDDL HEADER in each
2876  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2877  * If applicable, add the following below this CDDL HEADER, with the
2878  * fields enclosed by brackets "[]" replaced with your own identifying
2879  * information: Portions Copyright [yyyy] [name of copyright owner]
2880  *
2881  * CDDL HEADER END
2882  */
2883 /*
2884  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2885  *
2886  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2887  * Use is subject to license terms.
2888  */
2889 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2890 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
2891 /*
2892  * CDDL HEADER START
2893  *
2894  * The contents of this file are subject to the terms of the
2895  * Common Development and Distribution License, Version 1.0 only
2896  * (the "License").  You may not use this file except in compliance
2897  * with the License.
2898  *
2899  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2900  * or http://www.opensolaris.org/os/licensing.
2901  * See the License for the specific language governing permissions
2902  * and limitations under the License.
2903  *
2904  * When distributing Covered Code, include this CDDL HEADER in each
2905  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2906  * If applicable, add the following below this CDDL HEADER, with the
2907  * fields enclosed by brackets "[]" replaced with your own identifying
2908  * information: Portions Copyright [yyyy] [name of copyright owner]
2909  *
2910  * CDDL HEADER END
2911  */
2912 /*
2913  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2914  *
2915  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2916  * Use is subject to license terms.
2917  */
2918 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2919 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
2920 /*
2921  * CDDL HEADER START
2922  *
2923  * The contents of this file are subject to the terms of the
2924  * Common Development and Distribution License, Version 1.0 only
2925  * (the "License").  You may not use this file except in compliance
2926  * with the License.
2927  *
2928  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2929  * or http://www.opensolaris.org/os/licensing.
2930  * See the License for the specific language governing permissions
2931  * and limitations under the License.
2932  *
2933  * When distributing Covered Code, include this CDDL HEADER in each
2934  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2935  * If applicable, add the following below this CDDL HEADER, with the
2936  * fields enclosed by brackets "[]" replaced with your own identifying
2937  * information: Portions Copyright [yyyy] [name of copyright owner]
2938  *
2939  * CDDL HEADER END
2940  */
2941 /*
2942  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2943  *
2944  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2945  * Use is subject to license terms.
2946  */
2947 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2948 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2949 
2950 
2951 
2952 
2953 
2954 
2955 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */
2956 
2957 /*
2958  * wchar_t is a built-in type in standard C++ and as such is not
2959  * defined here when using standard C++. However, the GNU compiler
2960  * fixincludes utility nonetheless creates its own version of this
2961  * header for use by gcc and g++. In that version it adds a redundant
2962  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
2963  * header we need to include the following magic comment:
2964  *
2965  * we must use the C++ compiler's type
2966  *
2967  * The above comment should not be removed or changed until GNU
2968  * gcc/fixinc/inclhack.def is updated to bypass this header.
2969  */
2970 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
2971 typedef struct {
2972  intmax_t quot;
2973  intmax_t rem;
2974 } imaxdiv_t;
2975 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
2976 extern intmax_t imaxabs(intmax_t);
2977 extern imaxdiv_t imaxdiv(intmax_t, intmax_t);
2978 extern intmax_t strtoimax(const char *, char **,
2979  int);
2980 extern uintmax_t strtoumax(const char *, char **,
2981  int);
2982 extern intmax_t wcstoimax(const wchar_t *,
2983  wchar_t **, int);
2984 extern uintmax_t wcstoumax(const wchar_t *,
2985  wchar_t **, int);
2986 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
2987 extern uint32_t arc4random(void);
2988 extern void arc4random_buf(void *, size_t);
2989 extern uint32_t arc4random_uniform(uint32_t);
2990 extern void freezero(void *, size_t);
2991 extern void *recallocarray(void *, size_t, size_t, size_t);
2992 # 30 "../common/zones_lofs.c" 2
2993 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
2994 /*
2995  * CDDL HEADER START
2996  *
2997  * The contents of this file are subject to the terms of the
2998  * Common Development and Distribution License (the "License").
2999  * You may not use this file except in compliance with the License.
3000  *
3001  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3002  * or http://www.opensolaris.org/os/licensing.
3003  * See the License for the specific language governing permissions
3004  * and limitations under the License.
3005  *
3006  * When distributing Covered Code, include this CDDL HEADER in each
3007  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3008  * If applicable, add the following below this CDDL HEADER, with the
3009  * fields enclosed by brackets "[]" replaced with your own identifying
3010  * information: Portions Copyright [yyyy] [name of copyright owner]
3011  *
3012  * CDDL HEADER END
3013  */
3014 
3015 /*
3016  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3017  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
3018  */
3019 
3020 /*	Copyright (c) 1988 AT&T	*/
3021 /*	  All Rights Reserved  	*/
3022 
3023 
3024 
3025 
3026 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1
3027 /*
3028  * CDDL HEADER START
3029  *
3030  * The contents of this file are subject to the terms of the
3031  * Common Development and Distribution License, Version 1.0 only
3032  * (the "License").  You may not use this file except in compliance
3033  * with the License.
3034  *
3035  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3036  * or http://www.opensolaris.org/os/licensing.
3037  * See the License for the specific language governing permissions
3038  * and limitations under the License.
3039  *
3040  * When distributing Covered Code, include this CDDL HEADER in each
3041  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3042  * If applicable, add the following below this CDDL HEADER, with the
3043  * fields enclosed by brackets "[]" replaced with your own identifying
3044  * information: Portions Copyright [yyyy] [name of copyright owner]
3045  *
3046  * CDDL HEADER END
3047  */
3048 /*	Copyright (c) 1988 AT&T	*/
3049 /*	  All Rights Reserved  	*/
3050 
3051 
3052 /*
3053  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3054  * Copyright 2014 PALO, Richard.
3055  *
3056  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3057  * Use is subject to license terms.
3058  */
3059 
3060 /*
3061  * An application should not include this header directly.  Instead it
3062  * should be included only through the inclusion of other Sun headers.
3063  *
3064  * The contents of this header is limited to identifiers specified in the
3065  * C Standard.  Any new identifiers specified in future amendments to the
3066  * C Standard must be placed in this header.  If these new identifiers
3067  * are required to also be in the C++ Standard "std" namespace, then for
3068  * anything other than macro definitions, corresponding "using" directives
3069  * must also be added to <string.h>.
3070  */
3071 
3072 
3073 
3074 
3075 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3076 /*
3077  * CDDL HEADER START
3078  *
3079  * The contents of this file are subject to the terms of the
3080  * Common Development and Distribution License (the "License").
3081  * You may not use this file except in compliance with the License.
3082  *
3083  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3084  * or http://www.opensolaris.org/os/licensing.
3085  * See the License for the specific language governing permissions
3086  * and limitations under the License.
3087  *
3088  * When distributing Covered Code, include this CDDL HEADER in each
3089  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3090  * If applicable, add the following below this CDDL HEADER, with the
3091  * fields enclosed by brackets "[]" replaced with your own identifying
3092  * information: Portions Copyright [yyyy] [name of copyright owner]
3093  *
3094  * CDDL HEADER END
3095  */
3096 
3097 /*
3098  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3099  * Copyright 2016 Joyent, Inc.
3100  *
3101  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3102  * Use is subject to license terms.
3103  */
3104 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
3105 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
3106 /*
3107  * This file and its contents are supplied under the terms of the
3108  * Common Development and Distribution License ("CDDL"), version 1.0.
3109  * You may only use this file in accordance with the terms of version
3110  * 1.0 of the CDDL.
3111  *
3112  * A full copy of the text of the CDDL should have accompanied this
3113  * source.  A copy of the CDDL is also available via the Internet at
3114  * http://www.illumos.org/license/CDDL.
3115  */
3116 
3117 /*
3118  * Copyright 2014-2016 PALO, Richard.
3119  */
3120 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
3121 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
3122 extern int memcmp(const void *, const void *, size_t);
3123 extern void *memcpy(void *, const void *, size_t);
3124 extern void *memmove(void *, const void *, size_t);
3125 extern void *memset(void *, int, size_t);
3126 extern char *strcat(char *, const char *);
3127 extern int strcmp(const char *, const char *);
3128 extern char *strcpy(char *, const char *);
3129 extern int strcoll(const char *, const char *);
3130 extern size_t strcspn(const char *, const char *);
3131 extern char *strerror(int);
3132 extern size_t strlen(const char *);
3133 extern char *strncat(char *, const char *, size_t);
3134 extern int strncmp(const char *, const char *, size_t);
3135 extern char *strncpy(char *, const char *, size_t);
3136 extern size_t strspn(const char *, const char *);
3137 extern char *strtok(char *, const char *);
3138 extern size_t strxfrm(char *, const char *, size_t);
3139 
3140 /*
3141  * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the
3142  * function signatures for the following functions be replaced by
3143  * two declarations, both of which have the same behavior.
3144  */
3145 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
3146 extern void *memchr(const void *, int, size_t);
3147 extern char *strchr(const char *, int);
3148 extern char *strpbrk(const char *, const char *);
3149 extern char *strrchr(const char *, int);
3150 extern char *strstr(const char *, const char *);
3151 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2
3152 
3153 /*
3154  * Allow global visibility for symbols defined in
3155  * C++ "std" namespace in <iso/string_iso.h>.
3156  */
3157 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h"
3158 extern int strerror_r(int, char *, size_t);
3159 
3160 
3161 
3162 
3163 
3164 extern char *strtok_r(char *, const char *,
3165  char **);
3166 
3167 
3168 
3169 
3170 extern void *memccpy(void *, const void *,
3171   int, size_t);
3172 
3173 
3174 
3175 
3176 extern char *stpcpy(char *, const char *);
3177 extern char *stpncpy(char *, const char *, size_t);
3178 extern char *strndup(const char *, size_t);
3179 extern size_t strnlen(const char *, size_t);
3180 extern char *strsignal(int);
3181 
3182 
3183 
3184 typedef struct _locale *locale_t;
3185 
3186 
3187 extern int strcoll_l(const char *, const char *, locale_t);
3188 extern size_t strxfrm_l(char *, const char *,
3189     size_t, locale_t);
3190 extern int strcasecmp_l(const char *, const char *, locale_t);
3191 extern int strncasecmp_l(const char *, const char *, size_t, locale_t);
3192 extern char *strerror_l(int, locale_t);
3193 
3194 
3195 
3196 
3197 
3198 /* Note that some of these are also declared in strings.h for XPG4_2+ */
3199 extern void explicit_bzero(void *, size_t);
3200 extern int uucopy(const void *, void *, size_t);
3201 extern int uucopystr(const void *, void *, size_t);
3202 extern int ffs(int);
3203 extern int ffsl(long);
3204 extern int ffsll(long long);
3205 extern int fls(int);
3206 extern int flsl(long);
3207 extern int flsll(long long);
3208 extern void *memmem(const void *, size_t, const void *, size_t);
3209 extern char *strcasestr(const char *, const char *);
3210 extern char *strnstr(const char *, const char *, size_t);
3211 extern size_t strlcpy(char *, const char *, size_t);
3212 extern size_t strlcat(char *, const char *, size_t);
3213 extern char *strsep(char **stringp, const char *delim);
3214 extern char *strchrnul(const char *, int);
3215 extern char *strcasestr_l(const char *, const char *, locale_t);
3216 extern int strcasecmp(const char *, const char *);
3217 extern int strncasecmp(const char *, const char *, size_t);
3218 
3219 
3220 
3221 
3222 
3223 extern char *strdup(const char *);
3224 
3225 
3226 
3227 
3228 
3229 
3230 /*
3231  * gcc provides this inlining facility but Studio C does not.
3232  * We should use it exclusively once Studio C also provides it.
3233  */
3234 extern void *__builtin_alloca(size_t);
3235 # 31 "../common/zones_lofs.c" 2
3236 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1
3237 /*
3238  * CDDL HEADER START
3239  *
3240  * The contents of this file are subject to the terms of the
3241  * Common Development and Distribution License (the "License").
3242  * You may not use this file except in compliance with the License.
3243  *
3244  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3245  * or http://www.opensolaris.org/os/licensing.
3246  * See the License for the specific language governing permissions
3247  * and limitations under the License.
3248  *
3249  * When distributing Covered Code, include this CDDL HEADER in each
3250  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3251  * If applicable, add the following below this CDDL HEADER, with the
3252  * fields enclosed by brackets "[]" replaced with your own identifying
3253  * information: Portions Copyright [yyyy] [name of copyright owner]
3254  *
3255  * CDDL HEADER END
3256  */
3257 
3258 /*
3259  * Copyright 2014 PALO, Richard.
3260  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3261  * Copyright (c) 2013 Gary Mills
3262  *
3263  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
3264  */
3265 
3266 /*	Copyright (c) 1988 AT&T	*/
3267 /*	  All Rights Reserved  	*/
3268 
3269 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
3270 
3271 
3272 
3273 
3274 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3275 /*
3276  * CDDL HEADER START
3277  *
3278  * The contents of this file are subject to the terms of the
3279  * Common Development and Distribution License (the "License").
3280  * You may not use this file except in compliance with the License.
3281  *
3282  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3283  * or http://www.opensolaris.org/os/licensing.
3284  * See the License for the specific language governing permissions
3285  * and limitations under the License.
3286  *
3287  * When distributing Covered Code, include this CDDL HEADER in each
3288  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3289  * If applicable, add the following below this CDDL HEADER, with the
3290  * fields enclosed by brackets "[]" replaced with your own identifying
3291  * information: Portions Copyright [yyyy] [name of copyright owner]
3292  *
3293  * CDDL HEADER END
3294  */
3295 
3296 /*
3297  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3298  * Copyright 2016 Joyent, Inc.
3299  *
3300  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3301  * Use is subject to license terms.
3302  */
3303 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
3304 
3305 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
3306 /*
3307  * This file and its contents are supplied under the terms of the
3308  * Common Development and Distribution License ("CDDL"), version 1.0.
3309  * You may only use this file in accordance with the terms of version
3310  * 1.0 of the CDDL.
3311  *
3312  * A full copy of the text of the CDDL should have accompanied this
3313  * source.  A copy of the CDDL is also available via the Internet at
3314  * http://www.illumos.org/license/CDDL.
3315  */
3316 
3317 /*
3318  * Copyright 2014-2016 PALO, Richard.
3319  */
3320 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
3321 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
3322 /*
3323  * CDDL HEADER START
3324  *
3325  * The contents of this file are subject to the terms of the
3326  * Common Development and Distribution License (the "License").
3327  * You may not use this file except in compliance with the License.
3328  *
3329  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3330  * or http://www.opensolaris.org/os/licensing.
3331  * See the License for the specific language governing permissions
3332  * and limitations under the License.
3333  *
3334  * When distributing Covered Code, include this CDDL HEADER in each
3335  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3336  * If applicable, add the following below this CDDL HEADER, with the
3337  * fields enclosed by brackets "[]" replaced with your own identifying
3338  * information: Portions Copyright [yyyy] [name of copyright owner]
3339  *
3340  * CDDL HEADER END
3341  */
3342 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3343 /*	  All Rights Reserved  	*/
3344 
3345 
3346 /*
3347  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3348  * Use is subject to license terms.
3349  *
3350  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3351  * Copyright 2016 Joyent, Inc.
3352  */
3353 
3354 
3355 
3356 
3357 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3358 /*
3359  * CDDL HEADER START
3360  *
3361  * The contents of this file are subject to the terms of the
3362  * Common Development and Distribution License (the "License").
3363  * You may not use this file except in compliance with the License.
3364  *
3365  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3366  * or http://www.opensolaris.org/os/licensing.
3367  * See the License for the specific language governing permissions
3368  * and limitations under the License.
3369  *
3370  * When distributing Covered Code, include this CDDL HEADER in each
3371  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3372  * If applicable, add the following below this CDDL HEADER, with the
3373  * fields enclosed by brackets "[]" replaced with your own identifying
3374  * information: Portions Copyright [yyyy] [name of copyright owner]
3375  *
3376  * CDDL HEADER END
3377  */
3378 
3379 /*
3380  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3381  * Copyright 2016 Joyent, Inc.
3382  *
3383  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3384  * Use is subject to license terms.
3385  */
3386 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3387 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
3388 /*
3389  * CDDL HEADER START
3390  *
3391  * The contents of this file are subject to the terms of the
3392  * Common Development and Distribution License (the "License").
3393  * You may not use this file except in compliance with the License.
3394  *
3395  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3396  * or http://www.opensolaris.org/os/licensing.
3397  * See the License for the specific language governing permissions
3398  * and limitations under the License.
3399  *
3400  *
3401  * When distributing Covered Code, include this CDDL HEADER in each
3402  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3403  * If applicable, add the following below this CDDL HEADER, with the
3404  * fields enclosed by brackets "[]" replaced with your own identifying
3405  * information: Portions Copyright [yyyy] [name of copyright owner]
3406  *
3407  * CDDL HEADER END
3408  */
3409 
3410 /*
3411  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3412  * Use is subject to license terms.
3413  * Copyright 2016 Joyent, Inc.
3414  */
3415 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3416 
3417 /*
3418  * Machine dependent definitions moved to <sys/machtypes.h>.
3419  */
3420 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1
3421 /*
3422  * CDDL HEADER START
3423  *
3424  * The contents of this file are subject to the terms of the
3425  * Common Development and Distribution License, Version 1.0 only
3426  * (the "License").  You may not use this file except in compliance
3427  * with the License.
3428  *
3429  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3430  * or http://www.opensolaris.org/os/licensing.
3431  * See the License for the specific language governing permissions
3432  * and limitations under the License.
3433  *
3434  * When distributing Covered Code, include this CDDL HEADER in each
3435  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3436  * If applicable, add the following below this CDDL HEADER, with the
3437  * fields enclosed by brackets "[]" replaced with your own identifying
3438  * information: Portions Copyright [yyyy] [name of copyright owner]
3439  *
3440  * CDDL HEADER END
3441  */
3442 /*
3443  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3444  * Use is subject to license terms.
3445  */
3446 
3447 
3448 
3449 
3450 #pragma ident "%Z%%M%	%I%	%E% SMI"
3451 
3452 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3453 /*
3454  * CDDL HEADER START
3455  *
3456  * The contents of this file are subject to the terms of the
3457  * Common Development and Distribution License (the "License").
3458  * You may not use this file except in compliance with the License.
3459  *
3460  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3461  * or http://www.opensolaris.org/os/licensing.
3462  * See the License for the specific language governing permissions
3463  * and limitations under the License.
3464  *
3465  * When distributing Covered Code, include this CDDL HEADER in each
3466  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3467  * If applicable, add the following below this CDDL HEADER, with the
3468  * fields enclosed by brackets "[]" replaced with your own identifying
3469  * information: Portions Copyright [yyyy] [name of copyright owner]
3470  *
3471  * CDDL HEADER END
3472  */
3473 
3474 /*
3475  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3476  * Copyright 2016 Joyent, Inc.
3477  *
3478  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3479  * Use is subject to license terms.
3480  */
3481 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
3482 
3483 
3484 
3485 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1
3486 /*
3487  * CDDL HEADER START
3488  *
3489  * The contents of this file are subject to the terms of the
3490  * Common Development and Distribution License (the "License").
3491  * You may not use this file except in compliance with the License.
3492  *
3493  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3494  * or http://www.opensolaris.org/os/licensing.
3495  * See the License for the specific language governing permissions
3496  * and limitations under the License.
3497  *
3498  * When distributing Covered Code, include this CDDL HEADER in each
3499  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3500  * If applicable, add the following below this CDDL HEADER, with the
3501  * fields enclosed by brackets "[]" replaced with your own identifying
3502  * information: Portions Copyright [yyyy] [name of copyright owner]
3503  *
3504  * CDDL HEADER END
3505  */
3506 /*
3507  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3508  * Use is subject to license terms.
3509  */
3510 
3511 
3512 
3513 
3514 #pragma ident "%Z%%M%	%I%	%E% SMI"
3515 
3516 
3517 
3518 
3519 
3520 /*
3521  * Machine dependent types:
3522  *
3523  *	intel ia32 Version
3524  */
3525 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h"
3526 typedef struct _label_t { long val[8]; } label_t;
3527 
3528 
3529 
3530 typedef unsigned char lock_t; /* lock work for busy wait */
3531 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
3532 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3533 
3534 /*
3535  * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
3536  * committee's working draft for the revision of the current ISO C standard,
3537  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
3538  * required by any standard but constitute a useful, general purpose set
3539  * of type definitions which is namespace clean with respect to all standards.
3540  */
3541 
3542 
3543 
3544 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
3545 /*
3546  * CDDL HEADER START
3547  *
3548  * The contents of this file are subject to the terms of the
3549  * Common Development and Distribution License, Version 1.0 only
3550  * (the "License").  You may not use this file except in compliance
3551  * with the License.
3552  *
3553  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3554  * or http://www.opensolaris.org/os/licensing.
3555  * See the License for the specific language governing permissions
3556  * and limitations under the License.
3557  *
3558  * When distributing Covered Code, include this CDDL HEADER in each
3559  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3560  * If applicable, add the following below this CDDL HEADER, with the
3561  * fields enclosed by brackets "[]" replaced with your own identifying
3562  * information: Portions Copyright [yyyy] [name of copyright owner]
3563  *
3564  * CDDL HEADER END
3565  */
3566 /*
3567  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3568  *
3569  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3570  * Use is subject to license terms.
3571  */
3572 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3573 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3574 /*
3575  * Strictly conforming ANSI C environments prior to the 1999
3576  * revision of the C Standard (ISO/IEC 9899:1999) do not have
3577  * the long long data type.
3578  */
3579 
3580 typedef long long longlong_t;
3581 typedef unsigned long long u_longlong_t;
3582 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3583 /*
3584  * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
3585  * to use them instead of int32_t and uint32_t because DEC had
3586  * shipped 64-bit wide.
3587  */
3588 
3589 typedef int32_t t_scalar_t;
3590 typedef uint32_t t_uscalar_t;
3591 
3592 
3593 
3594 
3595 
3596 /*
3597  * POSIX Extensions
3598  */
3599 typedef unsigned char uchar_t;
3600 typedef unsigned short ushort_t;
3601 typedef unsigned int uint_t;
3602 typedef unsigned long ulong_t;
3603 
3604 typedef char *caddr_t; /* ?<core address> type */
3605 typedef long daddr_t; /* <disk address> type */
3606 typedef short cnt_t; /* ?<count> type */
3607 
3608 
3609 
3610 
3611 typedef long ptrdiff_t; /* pointer difference */
3612 
3613 
3614 
3615 
3616 
3617 /*
3618  * VM-related types
3619  */
3620 typedef ulong_t pfn_t; /* page frame number */
3621 typedef ulong_t pgcnt_t; /* number of pages */
3622 typedef long spgcnt_t; /* signed number of pages */
3623 
3624 typedef uchar_t use_t; /* use count for swap.  */
3625 typedef short sysid_t;
3626 typedef short index_t;
3627 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */
3628 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */
3629 
3630 /*
3631  * The size of off_t and related types depends on the setting of
3632  * _FILE_OFFSET_BITS.  (Note that other system headers define other types
3633  * related to those defined here.)
3634  *
3635  * If _LARGEFILE64_SOURCE is defined, variants of these types that are
3636  * explicitly 64 bits wide become available.
3637  */
3638 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3639 typedef ulong_t ino_t; /* expanded inode type	*/
3640 typedef long blkcnt_t; /* count of file blocks */
3641 typedef ulong_t fsblkcnt_t; /* count of file system blocks */
3642 typedef ulong_t fsfilcnt_t; /* count of files */
3643 # 173 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3644 typedef ino_t ino64_t; /* expanded inode type */
3645 typedef blkcnt_t blkcnt64_t; /* count of file blocks */
3646 typedef fsblkcnt_t fsblkcnt64_t; /* count of file system blocks */
3647 typedef fsfilcnt_t fsfilcnt64_t; /* count of files */
3648 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3649 typedef int blksize_t; /* used for block sizes */
3650 
3651 
3652 
3653 
3654 
3655 
3656 
3657 typedef enum { B_FALSE, B_TRUE } boolean_t;
3658 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3659 /*
3660  * The {u,}pad64_t types can be used in structures such that those structures
3661  * may be accessed by code produced by compilation environments which don't
3662  * support a 64 bit integral datatype.  The intention is not to allow
3663  * use of these fields in such environments, but to maintain the alignment
3664  * and offsets of the structure.
3665  *
3666  * Similar comments for {u,}pad128_t.
3667  *
3668  * Note that these types do NOT generate any stronger alignment constraints
3669  * than those available in the underlying ABI.  See <sys/isa_defs.h>
3670  */
3671 
3672 typedef int64_t pad64_t;
3673 typedef uint64_t upad64_t;
3674 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3675 typedef union {
3676  long double _q;
3677  int32_t _l[4];
3678 } pad128_t;
3679 
3680 typedef union {
3681  long double _q;
3682  uint32_t _l[4];
3683 } upad128_t;
3684 
3685 typedef longlong_t offset_t;
3686 typedef u_longlong_t u_offset_t;
3687 typedef u_longlong_t len_t;
3688 typedef u_longlong_t diskaddr_t;
3689 
3690 
3691 
3692 
3693 /*
3694  * Definitions remaining from previous partial support for 64-bit file
3695  * offsets.  This partial support for devices greater than 2gb requires
3696  * compiler support for long long.
3697  */
3698 
3699 typedef union {
3700  offset_t _f; /* Full 64 bit offset value */
3701  struct {
3702   int32_t _l; /* lower 32 bits of offset value */
3703   int32_t _u; /* upper 32 bits of offset value */
3704  } _p;
3705 } lloff_t;
3706 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3707 typedef union {
3708  longlong_t _f; /* Full 64 bit disk address value */
3709  struct {
3710   int32_t _l; /* lower 32 bits of disk address value */
3711   int32_t _u; /* upper 32 bits of disk address value */
3712  } _p;
3713 } lldaddr_t;
3714 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3715 typedef uint_t k_fltset_t; /* kernel fault set type */
3716 
3717 /*
3718  * The following type is for various kinds of identifiers.  The
3719  * actual type must be the same for all since some system calls
3720  * (such as sigsend) take arguments that may be any of these
3721  * types.  The enumeration type idtype_t defined in sys/procset.h
3722  * is used to indicate what type of id is being specified --
3723  * a process id, process group id, session id, scheduling class id,
3724  * user id, group id, project id, task id or zone id.
3725  */
3726 
3727 typedef int id_t;
3728 
3729 
3730 
3731 
3732 typedef id_t lgrp_id_t; /* lgroup ID */
3733 
3734 /*
3735  * Type useconds_t is an unsigned integral type capable of storing
3736  * values at least in the range of zero to 1,000,000.
3737  */
3738 typedef uint_t useconds_t; /* Time, in microseconds */
3739 
3740 
3741 
3742 typedef long suseconds_t; /* signed # of microseconds */
3743 
3744 
3745 /*
3746  * Typedefs for dev_t components.
3747  */
3748 
3749 typedef uint_t major_t; /* major part of device number */
3750 typedef uint_t minor_t; /* minor part of device number */
3751 
3752 
3753 
3754 
3755 
3756 /*
3757  * The data type of a thread priority.
3758  */
3759 typedef short pri_t;
3760 
3761 /*
3762  * The data type for a CPU flags field.  (Can be extended to larger unsigned
3763  * types, if needed, limited by ability to update atomically.)
3764  */
3765 typedef ushort_t cpu_flag_t;
3766 
3767 /*
3768  * For compatibility reasons the following typedefs (prefixed o_)
3769  * can't grow regardless of the EFT definition. Although,
3770  * applications should not explicitly use these typedefs
3771  * they may be included via a system header definition.
3772  * WARNING: These typedefs may be removed in a future
3773  * release.
3774  *		ex. the definitions in s5inode.h (now obsoleted)
3775  *			remained small to preserve compatibility
3776  *			in the S5 file system type.
3777  */
3778 typedef ushort_t o_mode_t; /* old file attribute type */
3779 typedef short o_dev_t; /* old device type	*/
3780 typedef ushort_t o_uid_t; /* old UID type		*/
3781 typedef o_uid_t o_gid_t; /* old GID type		*/
3782 typedef short o_nlink_t; /* old file link type	*/
3783 typedef short o_pid_t; /* old process id type	*/
3784 typedef ushort_t o_ino_t; /* old inode type	*/
3785 
3786 
3787 /*
3788  * POSIX and XOPEN Declarations
3789  */
3790 typedef int key_t; /* IPC key type		*/
3791 
3792 typedef uint_t mode_t; /* file attribute type	*/
3793 # 382 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3794 typedef uid_t gid_t; /* GID type		*/
3795 
3796 typedef uint32_t datalink_id_t;
3797 typedef uint32_t vrid_t;
3798 
3799 typedef id_t taskid_t;
3800 typedef id_t projid_t;
3801 typedef id_t poolid_t;
3802 typedef id_t zoneid_t;
3803 typedef id_t ctid_t;
3804 
3805 /*
3806  * POSIX definitions are same as defined in thread.h and synch.h.
3807  * Any changes made to here should be reflected in corresponding
3808  * files as described in comments.
3809  */
3810 typedef uint_t pthread_t; /* = thread_t in thread.h */
3811 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */
3812 
3813 /* "Magic numbers" tagging synchronization object types */
3814 
3815 
3816 
3817 
3818 
3819 typedef struct _pthread_mutex { /* = mutex_t in synch.h */
3820  struct {
3821   uint16_t __pthread_mutex_flag1;
3822   uint8_t __pthread_mutex_flag2;
3823   uint8_t __pthread_mutex_ceiling;
3824   uint16_t __pthread_mutex_type;
3825   uint16_t __pthread_mutex_magic;
3826  } __pthread_mutex_flags;
3827  union {
3828   struct {
3829    uint8_t __pthread_mutex_pad[8];
3830   } __pthread_mutex_lock64;
3831   struct {
3832    uint32_t __pthread_ownerpid;
3833    uint32_t __pthread_lockword;
3834   } __pthread_mutex_lock32;
3835   upad64_t __pthread_mutex_owner64;
3836  } __pthread_mutex_lock;
3837  upad64_t __pthread_mutex_data;
3838 } pthread_mutex_t;
3839 
3840 typedef struct _pthread_cond { /* = cond_t in synch.h */
3841  struct {
3842   uint8_t __pthread_cond_flag[4];
3843   uint16_t __pthread_cond_type;
3844   uint16_t __pthread_cond_magic;
3845  } __pthread_cond_flags;
3846  upad64_t __pthread_cond_data;
3847 } pthread_cond_t;
3848 
3849 /*
3850  * UNIX 98 Extension
3851  */
3852 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */
3853  int32_t __pthread_rwlock_readers;
3854  uint16_t __pthread_rwlock_type;
3855  uint16_t __pthread_rwlock_magic;
3856  pthread_mutex_t __pthread_rwlock_mutex;
3857  pthread_cond_t __pthread_rwlock_readercv;
3858  pthread_cond_t __pthread_rwlock_writercv;
3859 } pthread_rwlock_t;
3860 
3861 /*
3862  * SUSV3
3863  */
3864 typedef struct {
3865  uint32_t __pthread_barrier_count;
3866  uint32_t __pthread_barrier_current;
3867  upad64_t __pthread_barrier_cycle;
3868  upad64_t __pthread_barrier_reserved;
3869  pthread_mutex_t __pthread_barrier_lock;
3870  pthread_cond_t __pthread_barrier_cond;
3871 } pthread_barrier_t;
3872 
3873 typedef pthread_mutex_t pthread_spinlock_t;
3874 
3875 /*
3876  * attributes for threads, dynamically allocated by library
3877  */
3878 typedef struct _pthread_attr {
3879  void *__pthread_attrp;
3880 } pthread_attr_t;
3881 
3882 /*
3883  * attributes for mutex, dynamically allocated by library
3884  */
3885 typedef struct _pthread_mutexattr {
3886  void *__pthread_mutexattrp;
3887 } pthread_mutexattr_t;
3888 
3889 /*
3890  * attributes for cond, dynamically allocated by library
3891  */
3892 typedef struct _pthread_condattr {
3893  void *__pthread_condattrp;
3894 } pthread_condattr_t;
3895 
3896 /*
3897  * pthread_once
3898  */
3899 typedef struct _once {
3900  upad64_t __pthread_once_pad[4];
3901 } pthread_once_t;
3902 
3903 /*
3904  * UNIX 98 Extensions
3905  * attributes for rwlock, dynamically allocated by library
3906  */
3907 typedef struct _pthread_rwlockattr {
3908  void *__pthread_rwlockattrp;
3909 } pthread_rwlockattr_t;
3910 
3911 /*
3912  * SUSV3
3913  * attributes for pthread_barrier_t, dynamically allocated by library
3914  */
3915 typedef struct {
3916  void *__pthread_barrierattrp;
3917 } pthread_barrierattr_t;
3918 
3919 typedef ulong_t dev_t; /* expanded device type */
3920 
3921 
3922 typedef uint_t nlink_t; /* file link type	*/
3923 typedef int pid_t; /* process id type	*/
3924 # 537 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3925 typedef long time_t; /* time of day in seconds */
3926 
3927 
3928 
3929 
3930 typedef long clock_t; /* relative time in a specified resolution */
3931 
3932 
3933 
3934 
3935 typedef int clockid_t; /* clock identifier type */
3936 
3937 
3938 
3939 
3940 typedef int timer_t; /* timer identifier type */
3941 
3942 
3943 
3944 
3945 /* BEGIN CSTYLED */
3946 typedef unsigned char unchar;
3947 typedef unsigned short ushort;
3948 typedef unsigned int uint;
3949 typedef unsigned long ulong;
3950 /* END CSTYLED */
3951 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3952 /*
3953  * The following is the value of type id_t to use to indicate the
3954  * caller's current id.  See procset.h for the type idtype_t
3955  * which defines which kind of id is being specified.
3956  */
3957 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3958 /*
3959  * The following value of type pfn_t is used to indicate
3960  * invalid page frame number.
3961  */
3962 
3963 
3964 
3965 /* BEGIN CSTYLED */
3966 typedef unsigned char u_char;
3967 typedef unsigned short u_short;
3968 typedef unsigned int u_int;
3969 typedef unsigned long u_long;
3970 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */
3971 typedef quad_t quad; /* used by UFS */
3972 /* END CSTYLED */
3973 
3974 /*
3975  * Nested include for BSD/sockets source compatibility.
3976  * (The select macros used to be defined here).
3977  */
3978 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
3979 /*
3980  * CDDL HEADER START
3981  *
3982  * The contents of this file are subject to the terms of the
3983  * Common Development and Distribution License (the "License").
3984  * You may not use this file except in compliance with the License.
3985  *
3986  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3987  * or http://www.opensolaris.org/os/licensing.
3988  * See the License for the specific language governing permissions
3989  * and limitations under the License.
3990  *
3991  * When distributing Covered Code, include this CDDL HEADER in each
3992  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3993  * If applicable, add the following below this CDDL HEADER, with the
3994  * fields enclosed by brackets "[]" replaced with your own identifying
3995  * information: Portions Copyright [yyyy] [name of copyright owner]
3996  *
3997  * CDDL HEADER END
3998  */
3999 
4000 /*
4001  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4002  *
4003  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4004  *
4005  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
4006  * Use is subject to license terms.
4007  */
4008 
4009 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4010 /*	  All Rights Reserved	*/
4011 
4012 /*
4013  * University Copyright- Copyright (c) 1982, 1986, 1988
4014  * The Regents of the University of California
4015  * All Rights Reserved
4016  *
4017  * University Acknowledgment- Portions of this document are derived from
4018  * software developed by the University of California, Berkeley, and its
4019  * contributors.
4020  */
4021 
4022 
4023 
4024 
4025 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4026 /*
4027  * CDDL HEADER START
4028  *
4029  * The contents of this file are subject to the terms of the
4030  * Common Development and Distribution License (the "License").
4031  * You may not use this file except in compliance with the License.
4032  *
4033  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4034  * or http://www.opensolaris.org/os/licensing.
4035  * See the License for the specific language governing permissions
4036  * and limitations under the License.
4037  *
4038  * When distributing Covered Code, include this CDDL HEADER in each
4039  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4040  * If applicable, add the following below this CDDL HEADER, with the
4041  * fields enclosed by brackets "[]" replaced with your own identifying
4042  * information: Portions Copyright [yyyy] [name of copyright owner]
4043  *
4044  * CDDL HEADER END
4045  */
4046 
4047 /*
4048  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4049  * Copyright 2016 Joyent, Inc.
4050  *
4051  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4052  * Use is subject to license terms.
4053  */
4054 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
4055 
4056 
4057 
4058 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
4059 /*
4060  * CDDL HEADER START
4061  *
4062  * The contents of this file are subject to the terms of the
4063  * Common Development and Distribution License, Version 1.0 only
4064  * (the "License").  You may not use this file except in compliance
4065  * with the License.
4066  *
4067  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4068  * or http://www.opensolaris.org/os/licensing.
4069  * See the License for the specific language governing permissions
4070  * and limitations under the License.
4071  *
4072  * When distributing Covered Code, include this CDDL HEADER in each
4073  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4074  * If applicable, add the following below this CDDL HEADER, with the
4075  * fields enclosed by brackets "[]" replaced with your own identifying
4076  * information: Portions Copyright [yyyy] [name of copyright owner]
4077  *
4078  * CDDL HEADER END
4079  */
4080 /*
4081  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
4082  * Use is subject to license terms.
4083  */
4084 
4085 /*
4086  * Implementation-private.  This header should not be included
4087  * directly by an application.  The application should instead
4088  * include <time.h> which includes this header conditionally
4089  * depending on which feature test macros are defined. By default,
4090  * this header is included by <time.h>.  X/Open and POSIX
4091  * standards requirements result in this header being included
4092  * by <time.h> only under a restricted set of conditions.
4093  */
4094 
4095 
4096 
4097 
4098 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4099 /*
4100  * CDDL HEADER START
4101  *
4102  * The contents of this file are subject to the terms of the
4103  * Common Development and Distribution License (the "License").
4104  * You may not use this file except in compliance with the License.
4105  *
4106  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4107  * or http://www.opensolaris.org/os/licensing.
4108  * See the License for the specific language governing permissions
4109  * and limitations under the License.
4110  *
4111  * When distributing Covered Code, include this CDDL HEADER in each
4112  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4113  * If applicable, add the following below this CDDL HEADER, with the
4114  * fields enclosed by brackets "[]" replaced with your own identifying
4115  * information: Portions Copyright [yyyy] [name of copyright owner]
4116  *
4117  * CDDL HEADER END
4118  */
4119 
4120 /*
4121  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4122  * Copyright 2016 Joyent, Inc.
4123  *
4124  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4125  * Use is subject to license terms.
4126  */
4127 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2
4128 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
4129 /*
4130  * Time expressed in seconds and nanoseconds
4131  */
4132 
4133 typedef struct timespec { /* definition per POSIX.4 */
4134  time_t tv_sec; /* seconds */
4135  long tv_nsec; /* and nanoseconds */
4136 } timespec_t;
4137 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
4138 typedef struct timespec timestruc_t; /* definition per SVr4 */
4139 
4140 /*
4141  * The following has been left in for backward compatibility. Portable
4142  * applications should not use the structure name timestruc.
4143  */
4144 
4145 
4146 
4147 
4148 
4149 /*
4150  * Timer specification
4151  */
4152 typedef struct itimerspec { /* definition per POSIX.4 */
4153  struct timespec it_interval; /* timer period */
4154  struct timespec it_value; /* timer expiration */
4155 } itimerspec_t;
4156 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
4157 
4158 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
4159 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4160 /*	  All Rights Reserved  	*/
4161 
4162 
4163 /*
4164  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
4165  * All rights reserved.  The Berkeley software License Agreement
4166  * specifies the terms and conditions for redistribution.
4167  */
4168 
4169 /*
4170  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4171  *
4172  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4173  * Use is subject to license terms.
4174  *
4175  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4176  */
4177 
4178 /*
4179  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
4180  */
4181 
4182 
4183 
4184 
4185 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4186 /*
4187  * CDDL HEADER START
4188  *
4189  * The contents of this file are subject to the terms of the
4190  * Common Development and Distribution License (the "License").
4191  * You may not use this file except in compliance with the License.
4192  *
4193  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4194  * or http://www.opensolaris.org/os/licensing.
4195  * See the License for the specific language governing permissions
4196  * and limitations under the License.
4197  *
4198  * When distributing Covered Code, include this CDDL HEADER in each
4199  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4200  * If applicable, add the following below this CDDL HEADER, with the
4201  * fields enclosed by brackets "[]" replaced with your own identifying
4202  * information: Portions Copyright [yyyy] [name of copyright owner]
4203  *
4204  * CDDL HEADER END
4205  */
4206 
4207 /*
4208  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4209  * Copyright 2016 Joyent, Inc.
4210  *
4211  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4212  * Use is subject to license terms.
4213  */
4214 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4215 
4216 /*
4217  * Structure returned by gettimeofday(2) system call,
4218  * and used in other calls.
4219  */
4220 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4221 struct timeval {
4222  time_t tv_sec; /* seconds */
4223  suseconds_t tv_usec; /* and microseconds */
4224 };
4225 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4226 struct timezone {
4227  int tz_minuteswest; /* minutes west of Greenwich */
4228  int tz_dsttime; /* type of dst correction */
4229 };
4230 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4231 /*
4232  * Needed for longlong_t type.  Placement of this due to <sys/types.h>
4233  * including <sys/select.h> which relies on the presense of the itimerval
4234  * structure.
4235  */
4236 
4237 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4238 /*
4239  * CDDL HEADER START
4240  *
4241  * The contents of this file are subject to the terms of the
4242  * Common Development and Distribution License (the "License").
4243  * You may not use this file except in compliance with the License.
4244  *
4245  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4246  * or http://www.opensolaris.org/os/licensing.
4247  * See the License for the specific language governing permissions
4248  * and limitations under the License.
4249  *
4250  * When distributing Covered Code, include this CDDL HEADER in each
4251  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4252  * If applicable, add the following below this CDDL HEADER, with the
4253  * fields enclosed by brackets "[]" replaced with your own identifying
4254  * information: Portions Copyright [yyyy] [name of copyright owner]
4255  *
4256  * CDDL HEADER END
4257  */
4258 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4259 /*	  All Rights Reserved  	*/
4260 
4261 
4262 /*
4263  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4264  * Use is subject to license terms.
4265  *
4266  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4267  * Copyright 2016 Joyent, Inc.
4268  */
4269 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4270 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4271 /*
4272  * Operations on timevals.
4273  */
4274 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4275 /*
4276  * Names of the interval timers, and structure
4277  * defining a timer setting.
4278  */
4279 
4280 
4281 
4282     /* time and when system is running on */
4283     /* behalf of the process. */
4284 
4285     /* time profiling of multithreaded */
4286     /* programs. */
4287 
4288 
4289 struct itimerval {
4290  struct timeval it_interval; /* timer interval */
4291  struct timeval it_value; /* current value */
4292 };
4293 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4294 /*
4295  *	Definitions for commonly used resolutions.
4296  */
4297 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4298 /*
4299  * Time expressed as a 64-bit nanosecond counter.
4300  */
4301 typedef longlong_t hrtime_t;
4302 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4303 int adjtime(struct timeval *, struct timeval *);
4304 
4305 
4306 
4307 
4308 int futimesat(int, const char *, const struct timeval *);
4309 
4310 
4311 
4312 
4313 
4314 int getitimer(int, struct itimerval *);
4315 int utimes(const char *, const struct timeval *);
4316 
4317 
4318 
4319 
4320 int setitimer(int, struct itimerval *,
4321  struct itimerval *);
4322 
4323 
4324 
4325 
4326 /*
4327  * gettimeofday() and settimeofday() were included in SVr4 due to their
4328  * common use in BSD based applications.  They were to be included exactly
4329  * as in BSD, with two parameters.  However, AT&T/USL noted that the second
4330  * parameter was unused and deleted it, thereby making a routine included
4331  * for compatibility, incompatible.
4332  *
4333  * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two
4334  * parameters.
4335  *
4336  * This has caused general disagreement in the application community as to
4337  * the syntax of these routines.  Solaris defaults to the XSH4.2 definition.
4338  * The flag _SVID_GETTOD may be used to force the SVID version.
4339  */
4340 
4341 
4342 
4343 
4344 
4345 int settimeofday(struct timeval *, void *);
4346 
4347 hrtime_t gethrtime(void);
4348 hrtime_t gethrvtime(void);
4349 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4350 int gettimeofday(struct timeval *, void *);
4351 
4352 
4353 
4354 
4355 /*
4356  * The inclusion of <time.h> is historical and was added for
4357  * backward compatibility in delta 1.2 when a number of definitions
4358  * were moved out of <sys/time.h>.  More recently, the timespec and
4359  * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
4360  * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
4361  * which is now included by <time.h>.  This change was due to POSIX
4362  * 1003.1b-1993 and X/Open UNIX 98 requirements.  For non-POSIX and
4363  * non-X/Open applications, including this header will still make
4364  * visible these definitions.
4365  */
4366 
4367 
4368 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
4369 /*
4370  * CDDL HEADER START
4371  *
4372  * The contents of this file are subject to the terms of the
4373  * Common Development and Distribution License (the "License").
4374  * You may not use this file except in compliance with the License.
4375  *
4376  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4377  * or http://www.opensolaris.org/os/licensing.
4378  * See the License for the specific language governing permissions
4379  * and limitations under the License.
4380  *
4381  * When distributing Covered Code, include this CDDL HEADER in each
4382  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4383  * If applicable, add the following below this CDDL HEADER, with the
4384  * fields enclosed by brackets "[]" replaced with your own identifying
4385  * information: Portions Copyright [yyyy] [name of copyright owner]
4386  *
4387  * CDDL HEADER END
4388  */
4389 /*	Copyright (c) 1988 AT&T	*/
4390 /*	  All Rights Reserved  	*/
4391 
4392 
4393 /*
4394  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4395  *
4396  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
4397  * Use is subject to license terms.
4398  */
4399 /*
4400  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
4401  * Copyright 2016 Joyent, Inc.
4402  */
4403 
4404 
4405 
4406 
4407 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4408 /*
4409  * CDDL HEADER START
4410  *
4411  * The contents of this file are subject to the terms of the
4412  * Common Development and Distribution License (the "License").
4413  * You may not use this file except in compliance with the License.
4414  *
4415  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4416  * or http://www.opensolaris.org/os/licensing.
4417  * See the License for the specific language governing permissions
4418  * and limitations under the License.
4419  *
4420  * When distributing Covered Code, include this CDDL HEADER in each
4421  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4422  * If applicable, add the following below this CDDL HEADER, with the
4423  * fields enclosed by brackets "[]" replaced with your own identifying
4424  * information: Portions Copyright [yyyy] [name of copyright owner]
4425  *
4426  * CDDL HEADER END
4427  */
4428 
4429 /*
4430  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4431  * Copyright 2016 Joyent, Inc.
4432  *
4433  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4434  * Use is subject to license terms.
4435  */
4436 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4437 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1
4438 /*
4439  * CDDL HEADER START
4440  *
4441  * The contents of this file are subject to the terms of the
4442  * Common Development and Distribution License, Version 1.0 only
4443  * (the "License").  You may not use this file except in compliance
4444  * with the License.
4445  *
4446  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4447  * or http://www.opensolaris.org/os/licensing.
4448  * See the License for the specific language governing permissions
4449  * and limitations under the License.
4450  *
4451  * When distributing Covered Code, include this CDDL HEADER in each
4452  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4453  * If applicable, add the following below this CDDL HEADER, with the
4454  * fields enclosed by brackets "[]" replaced with your own identifying
4455  * information: Portions Copyright [yyyy] [name of copyright owner]
4456  *
4457  * CDDL HEADER END
4458  */
4459 /*	Copyright (c) 1988 AT&T	*/
4460 /*	  All Rights Reserved  	*/
4461 
4462 /*
4463  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4464  * Copyright 2014 PALO, Richard.
4465  *
4466  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
4467  * Use is subject to license terms.
4468  */
4469 
4470 /*
4471  * An application should not include this header directly.  Instead it
4472  * should be included only through the inclusion of other Sun headers.
4473  *
4474  * The contents of this header is limited to identifiers specified in the
4475  * C Standard.  Any new identifiers specified in future amendments to the
4476  * C Standard must be placed in this header.  If these new identifiers
4477  * are required to also be in the C++ Standard "std" namespace, then for
4478  * anything other than macro definitions, corresponding "using" directives
4479  * must also be added to <time.h.h>.
4480  */
4481 
4482 
4483 
4484 
4485 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4486 /*
4487  * CDDL HEADER START
4488  *
4489  * The contents of this file are subject to the terms of the
4490  * Common Development and Distribution License (the "License").
4491  * You may not use this file except in compliance with the License.
4492  *
4493  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4494  * or http://www.opensolaris.org/os/licensing.
4495  * See the License for the specific language governing permissions
4496  * and limitations under the License.
4497  *
4498  * When distributing Covered Code, include this CDDL HEADER in each
4499  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4500  * If applicable, add the following below this CDDL HEADER, with the
4501  * fields enclosed by brackets "[]" replaced with your own identifying
4502  * information: Portions Copyright [yyyy] [name of copyright owner]
4503  *
4504  * CDDL HEADER END
4505  */
4506 
4507 /*
4508  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4509  * Copyright 2016 Joyent, Inc.
4510  *
4511  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4512  * Use is subject to license terms.
4513  */
4514 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
4515 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
4516 /*
4517  * This file and its contents are supplied under the terms of the
4518  * Common Development and Distribution License ("CDDL"), version 1.0.
4519  * You may only use this file in accordance with the terms of version
4520  * 1.0 of the CDDL.
4521  *
4522  * A full copy of the text of the CDDL should have accompanied this
4523  * source.  A copy of the CDDL is also available via the Internet at
4524  * http://www.illumos.org/license/CDDL.
4525  */
4526 
4527 /*
4528  * Copyright 2014-2016 PALO, Richard.
4529  */
4530 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
4531 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h"
4532 struct tm { /* see ctime(3) */
4533  int tm_sec;
4534  int tm_min;
4535  int tm_hour;
4536  int tm_mday;
4537  int tm_mon;
4538  int tm_year;
4539  int tm_wday;
4540  int tm_yday;
4541  int tm_isdst;
4542 };
4543 
4544 
4545 extern char *asctime(const struct tm *);
4546 extern clock_t clock(void);
4547 extern char *ctime(const time_t *);
4548 extern double difftime(time_t, time_t);
4549 extern struct tm *gmtime(const time_t *);
4550 extern struct tm *localtime(const time_t *);
4551 extern time_t mktime(struct tm *);
4552 extern time_t time(time_t *);
4553 extern size_t strftime(char *, size_t, const char *,
4554  const struct tm *);
4555 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4556 /*
4557  * C11 requires sys/time_impl.h for the definition of the struct timespec.
4558  */
4559 
4560 
4561 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4562 /*
4563  * CDDL HEADER START
4564  *
4565  * The contents of this file are subject to the terms of the
4566  * Common Development and Distribution License (the "License").
4567  * You may not use this file except in compliance with the License.
4568  *
4569  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4570  * or http://www.opensolaris.org/os/licensing.
4571  * See the License for the specific language governing permissions
4572  * and limitations under the License.
4573  *
4574  * When distributing Covered Code, include this CDDL HEADER in each
4575  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4576  * If applicable, add the following below this CDDL HEADER, with the
4577  * fields enclosed by brackets "[]" replaced with your own identifying
4578  * information: Portions Copyright [yyyy] [name of copyright owner]
4579  *
4580  * CDDL HEADER END
4581  */
4582 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4583 /*	  All Rights Reserved  	*/
4584 
4585 
4586 /*
4587  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4588  * Use is subject to license terms.
4589  *
4590  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4591  * Copyright 2016 Joyent, Inc.
4592  */
4593 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4594 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
4595 /*
4596  * CDDL HEADER START
4597  *
4598  * The contents of this file are subject to the terms of the
4599  * Common Development and Distribution License, Version 1.0 only
4600  * (the "License").  You may not use this file except in compliance
4601  * with the License.
4602  *
4603  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4604  * or http://www.opensolaris.org/os/licensing.
4605  * See the License for the specific language governing permissions
4606  * and limitations under the License.
4607  *
4608  * When distributing Covered Code, include this CDDL HEADER in each
4609  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4610  * If applicable, add the following below this CDDL HEADER, with the
4611  * fields enclosed by brackets "[]" replaced with your own identifying
4612  * information: Portions Copyright [yyyy] [name of copyright owner]
4613  *
4614  * CDDL HEADER END
4615  */
4616 /*
4617  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
4618  * Use is subject to license terms.
4619  */
4620 
4621 /*
4622  * Implementation-private.  This header should not be included
4623  * directly by an application.  The application should instead
4624  * include <time.h> which includes this header conditionally
4625  * depending on which feature test macros are defined. By default,
4626  * this header is included by <time.h>.  X/Open and POSIX
4627  * standards requirements result in this header being included
4628  * by <time.h> only under a restricted set of conditions.
4629  */
4630 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4631 
4632 
4633 /*
4634  * Allow global visibility for symbols defined in
4635  * C++ "std" namespace in <iso/time_iso.h>.
4636  */
4637 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4638 extern struct tm *gmtime_r(const time_t *,
4639    struct tm *);
4640 extern struct tm *localtime_r(const time_t *,
4641    struct tm *);
4642 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4643 extern char *strptime(const char *, const char *,
4644   struct tm *);
4645 
4646 
4647 
4648 
4649 
4650 /*
4651  * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
4652  * definition of the sigevent structure.  Both require the inclusion
4653  * of <signal.h> and <time.h> when using the timer_create() function.
4654  * However, X/Open also specifies that the sigevent structure be defined
4655  * in <time.h> as described in the header <signal.h>.  This prevents
4656  * compiler warnings for applications that only include <time.h> and not
4657  * also <signal.h>.  The sigval union and the sigevent structure is
4658  * therefore defined both here and in <sys/siginfo.h> which gets included
4659  * via inclusion of <signal.h>.
4660  */
4661 
4662 
4663 union sigval {
4664  int sival_int; /* integer value */
4665  void *sival_ptr; /* pointer value */
4666 };
4667 
4668 
4669 
4670 
4671 struct sigevent {
4672  int sigev_notify; /* notification mode */
4673  int sigev_signo; /* signal number */
4674  union sigval sigev_value; /* signal value */
4675  void (*sigev_notify_function)(union sigval);
4676  pthread_attr_t *sigev_notify_attributes;
4677  int __sigev_pad2;
4678 };
4679 
4680 
4681 extern int clock_getres(clockid_t, struct timespec *);
4682 extern int clock_gettime(clockid_t, struct timespec *);
4683 extern int clock_settime(clockid_t, const struct timespec *);
4684 extern int timer_create(clockid_t, struct sigevent *,
4685   timer_t *);
4686 extern int timer_delete(timer_t);
4687 extern int timer_getoverrun(timer_t);
4688 extern int timer_gettime(timer_t, struct itimerspec *);
4689 extern int timer_settime(timer_t, int, const struct itimerspec *,
4690   struct itimerspec *);
4691 
4692 extern int nanosleep(const struct timespec *, struct timespec *);
4693 extern int clock_nanosleep(clockid_t, int,
4694  const struct timespec *, struct timespec *);
4695 
4696 
4697 
4698 
4699 
4700 
4701 extern void tzset(void);
4702 extern char *tzname[2];
4703 
4704 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */
4705 
4706 
4707 extern long _sysconf(int); /* System Private interface to sysconf() */
4708 
4709     /* 3 is _SC_CLK_TCK */
4710 
4711 
4712 
4713 
4714 
4715 extern long timezone;
4716 extern int daylight;
4717 
4718 
4719 
4720 
4721 
4722 
4723 extern time_t timegm(struct tm *);
4724 extern int cftime(char *, char *, const time_t *);
4725 extern int ascftime(char *, const char *, const struct tm *);
4726 extern long altzone;
4727 
4728 
4729 
4730 
4731 extern struct tm *getdate(const char *);
4732 
4733 
4734 
4735 
4736 
4737 extern int getdate_err;
4738 
4739 
4740 
4741 /*
4742  * ctime_r() & asctime_r() prototypes are defined here.
4743  */
4744 
4745 /*
4746  * Previous releases of Solaris, starting at 2.3, provided definitions of
4747  * various functions as specified in POSIX.1c, Draft 6.  For some of these
4748  * functions, the final POSIX 1003.1c standard had a different number of
4749  * arguments and return values.
4750  *
4751  * The following segment of this header provides support for the standard
4752  * interfaces while supporting applications written under earlier
4753  * releases.  The application defines appropriate values of the feature
4754  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
4755  * whether it was written to expect the Draft 6 or standard versions of
4756  * these interfaces, before including this header.  This header then
4757  * provides a mapping from the source version of the interface to an
4758  * appropriate binary interface.  Such mappings permit an application
4759  * to be built from libraries and objects which have mixed expectations
4760  * of the definitions of these functions.
4761  *
4762  * For applications using the Draft 6 definitions, the binary symbol is the
4763  * same as the source symbol, and no explicit mapping is needed.  For the
4764  * standard interface, the function func() is mapped to the binary symbol
4765  * _posix_func().  The preferred mechanism for the remapping is a compiler
4766  * #pragma.  If the compiler does not provide such a #pragma, the header file
4767  * defines a static function func() which calls the _posix_func() version;
4768  * this has to be done instead of #define since POSIX specifies that an
4769  * application can #undef the symbol and still be bound to the correct
4770  * implementation.  Unfortunately, the statics confuse lint so we fallback to
4771  * #define in that case.
4772  *
4773  * NOTE: Support for the Draft 6 definitions is provided for compatibility
4774  * only.  New applications/libraries should use the standard definitions.
4775  */
4776 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4777 extern char *asctime_r(const struct tm *, char *, int);
4778 extern char *ctime_r(const time_t *, char *, int);
4779 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4780 extern size_t strftime_l(char *, size_t,
4781  const char *, const struct tm *, locale_t);
4782 
4783 
4784 
4785 
4786 
4787 /*
4788  * Note, the C11 standard requires that all the various base values that are
4789  * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one.
4790  */
4791 
4792 
4793 extern int timespec_get(struct timespec *, int);
4794 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4795 
4796 
4797 /*
4798  * The inclusion of <sys/select.h> is needed for the FD_CLR,
4799  * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
4800  * select() prototype defined in the XOpen specifications
4801  * beginning with XSH4v2.  Placement required after definition
4802  * for itimerval.
4803  */
4804 
4805 
4806 
4807 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
4808 /*
4809  * CDDL HEADER START
4810  *
4811  * The contents of this file are subject to the terms of the
4812  * Common Development and Distribution License (the "License").
4813  * You may not use this file except in compliance with the License.
4814  *
4815  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4816  * or http://www.opensolaris.org/os/licensing.
4817  * See the License for the specific language governing permissions
4818  * and limitations under the License.
4819  *
4820  * When distributing Covered Code, include this CDDL HEADER in each
4821  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4822  * If applicable, add the following below this CDDL HEADER, with the
4823  * fields enclosed by brackets "[]" replaced with your own identifying
4824  * information: Portions Copyright [yyyy] [name of copyright owner]
4825  *
4826  * CDDL HEADER END
4827  */
4828 
4829 /*
4830  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4831  *
4832  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4833  *
4834  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
4835  * Use is subject to license terms.
4836  */
4837 
4838 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4839 /*	  All Rights Reserved	*/
4840 
4841 /*
4842  * University Copyright- Copyright (c) 1982, 1986, 1988
4843  * The Regents of the University of California
4844  * All Rights Reserved
4845  *
4846  * University Acknowledgment- Portions of this document are derived from
4847  * software developed by the University of California, Berkeley, and its
4848  * contributors.
4849  */
4850 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4851 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
4852 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4853 /*
4854  * The sigset_t type is defined in <sys/signal.h> and duplicated
4855  * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
4856  * now allows the visibility of signal.h in this header, however
4857  * an order of inclusion problem occurs as a result of inclusion
4858  * of <sys/select.h> in <signal.h> under certain conditions.
4859  * Rather than include <sys/signal.h> here, we've duplicated
4860  * the sigset_t type instead. This type is required for the XPG6
4861  * introduced pselect() function also declared in this header.
4862  */
4863 
4864 
4865 typedef struct { /* signal set type */
4866  unsigned int __sigbits[4];
4867 } sigset_t;
4868 
4869 
4870 
4871 
4872 /*
4873  * Select uses bit masks of file descriptors in longs.
4874  * These macros manipulate such bit fields.
4875  * FD_SETSIZE may be defined by the user, but the default here
4876  * should be >= NOFILE (param.h).
4877  */
4878 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4879 typedef long fd_mask;
4880 
4881 typedef long fds_mask;
4882 
4883 /*
4884  *  The value of _NBBY needs to be consistant with the value
4885  *  of NBBY in <sys/param.h>.
4886  */
4887 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4888 typedef struct fd_set {
4889 
4890 
4891 
4892  long fds_bits[(((65536)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
4893 } fd_set;
4894 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4895 extern int select(int, fd_set *, fd_set *,
4896  fd_set *, struct timeval *);
4897 
4898 
4899 extern int pselect(int, fd_set *, fd_set *,
4900  fd_set *, const struct timespec *,
4901  const sigset_t *);
4902 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
4903 
4904 
4905 
4906 /*
4907  * _VOID was defined to be either void or char but this is not
4908  * required because previous SunOS compilers have accepted the void
4909  * type. However, because many system header and source files use the
4910  * void keyword, the volatile keyword, and ANSI C function prototypes,
4911  * non-ANSI compilers cannot compile the system anyway. The _VOID macro
4912  * should therefore not be used and remains for source compatibility
4913  * only.
4914  */
4915 /* CSTYLED */
4916 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
4917 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
4918 /*
4919  * CDDL HEADER START
4920  *
4921  * The contents of this file are subject to the terms of the
4922  * Common Development and Distribution License (the "License").
4923  * You may not use this file except in compliance with the License.
4924  *
4925  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4926  * or http://www.opensolaris.org/os/licensing.
4927  * See the License for the specific language governing permissions
4928  * and limitations under the License.
4929  *
4930  * When distributing Covered Code, include this CDDL HEADER in each
4931  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4932  * If applicable, add the following below this CDDL HEADER, with the
4933  * fields enclosed by brackets "[]" replaced with your own identifying
4934  * information: Portions Copyright [yyyy] [name of copyright owner]
4935  *
4936  * CDDL HEADER END
4937  */
4938 
4939 /*
4940  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
4941  *	  All Rights Reserved
4942  *
4943  */
4944 
4945 /*
4946  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4947  * Use is subject to license terms.
4948  */
4949 
4950 /*
4951  * WARNING: This is an implementation-specific header,
4952  * its contents are not guaranteed. Applications
4953  * should include <unistd.h> and not this header.
4954  */
4955 
4956 
4957 
4958 
4959 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4960 /*
4961  * CDDL HEADER START
4962  *
4963  * The contents of this file are subject to the terms of the
4964  * Common Development and Distribution License (the "License").
4965  * You may not use this file except in compliance with the License.
4966  *
4967  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4968  * or http://www.opensolaris.org/os/licensing.
4969  * See the License for the specific language governing permissions
4970  * and limitations under the License.
4971  *
4972  * When distributing Covered Code, include this CDDL HEADER in each
4973  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4974  * If applicable, add the following below this CDDL HEADER, with the
4975  * fields enclosed by brackets "[]" replaced with your own identifying
4976  * information: Portions Copyright [yyyy] [name of copyright owner]
4977  *
4978  * CDDL HEADER END
4979  */
4980 
4981 /*
4982  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4983  * Copyright 2016 Joyent, Inc.
4984  *
4985  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4986  * Use is subject to license terms.
4987  */
4988 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2
4989 
4990 
4991 
4992 
4993 
4994 /* command names for confstr */
4995 
4996 
4997 
4998 /*
4999  * command names for large file configuration information
5000  */
5001 /* large file compilation environment configuration */
5002 
5003 
5004 
5005 
5006 /* transitional large file interface configuration */
5007 
5008 
5009 
5010 
5011 
5012 /* UNIX 98 */
5013 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5014 /* UNIX 03 */
5015 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5016 /* command names for POSIX sysconf */
5017 
5018 /* POSIX.1 names */
5019 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5020 /* SVR4 names */
5021 
5022 
5023 
5024 
5025 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
5026 
5027 
5028 
5029 
5030 /* POSIX.4 names */
5031 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5032 /* XPG4 names */
5033 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5034 /* additional XSH4/XCU4 command names for sysconf */
5035 
5036 
5037 
5038 /* additional XPG4v2 (UNIX 95) command names */
5039 
5040 
5041 
5042 
5043 
5044 /* defined for XTI (XNS Issue 5) */
5045 
5046 
5047 
5048 
5049 
5050 
5051 
5052 /*
5053  * Hardware specific items
5054  * Note that not all items are supported on all architectures
5055  */
5056 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5057 /*
5058  * POSIX.1c (pthreads) names. These values are defined above
5059  * the sub-500 range. See psarc case 1995/257.
5060  */
5061 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5062 /* UNIX 98 */
5063 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5064 /* UNIX 03 */
5065 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5066 /* command names for POSIX pathconf */
5067 
5068 /* POSIX.1 names */
5069 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5070 /* POSIX.4 names */
5071 
5072 
5073 
5074 /* UNIX 03 names */
5075 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5076 /* UNIX 08 names */
5077 
5078 
5079 /*
5080  * Large File Summit names
5081  *
5082  * This value matches the MIPS ABI choice, but leaves a large gap in the
5083  * value space.
5084  */
5085 
5086 
5087 /*
5088  * Extended attributes
5089  */
5090 
5091 
5092 
5093 /*
5094  * If you add a _PC define above 101, you must change _PC_LAST (and truss).
5095  */
5096 
5097 
5098 /*
5099  * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
5100  */
5101 
5102 
5103 
5104 /*
5105  * The value of 0 is returned when
5106  * ACL's are not supported
5107  */
5108 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5109 /*
5110  * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
5111  * should not rely on this value, it has been aligned with the current
5112  * standard to avoid confusion if used.
5113  */
5114 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
5115 /* UNIX 03 names */
5116 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
5117 
5118 
5119 
5120 
5121 
5122 /* Symbolic constants for the "access" routine: */
5123 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5124 /* Symbolic constants for the "lseek" routine: */
5125 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5126 /* Path names: */
5127 
5128 
5129 
5130 
5131 /*
5132  * compile-time symbolic constants,
5133  * Support does not mean the feature is enabled.
5134  * Use pathconf/sysconf to obtain actual configuration value.
5135  */
5136 
5137 /* Values unchanged in UNIX 03 */
5138 
5139 
5140 
5141 
5142 
5143 /*
5144  * POSIX.1b compile-time symbolic constants.
5145  */
5146 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5147 /*
5148  * POSIX.1c compile-time symbolic constants.
5149  */
5150 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5151 /* New in UNIX 03 */
5152 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5153 /*
5154  * Support for the POSIX.1 mutex protocol attribute. For realtime applications
5155  * which need mutexes to support priority inheritance/ceiling.
5156  */
5157 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5158 /*
5159  * Large File Summit-related announcement macros.  The system supports both
5160  * the additional and transitional Large File Summit interfaces.  (The final
5161  * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.)
5162  */
5163 
5164 
5165 
5166 
5167 
5168 /* large file compilation environment setup */
5169 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5170 /* In the LP64 compilation environment, the APIs are already large file */
5171 
5172 
5173 
5174 # 221 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5175 #pragma redefine_extname ftruncate64 ftruncate
5176 # 221 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5177 
5178 
5179 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5180 #pragma redefine_extname lseek64 lseek
5181 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5182 
5183 
5184 # 223 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5185 #pragma redefine_extname pread64 pread
5186 # 223 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5187 
5188 
5189 # 224 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5190 #pragma redefine_extname pwrite64 pwrite
5191 # 224 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5192 
5193 
5194 # 225 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5195 #pragma redefine_extname truncate64 truncate
5196 # 225 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5197 
5198 
5199 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5200 #pragma redefine_extname lockf64 lockf
5201 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5202 
5203 
5204 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5205 #pragma redefine_extname tell64 tell
5206 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5207 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5208 extern int access(const char *, int);
5209 
5210 extern int acct(const char *);
5211 
5212 extern unsigned alarm(unsigned);
5213 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5214 
5215 
5216 extern int brk(void *);
5217 
5218 extern int chdir(const char *);
5219 extern int chown(const char *, uid_t, gid_t);
5220 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5221 
5222 
5223 extern int chroot(const char *);
5224 
5225 extern int close(int);
5226 
5227 
5228 
5229 
5230 
5231 
5232 extern char *ctermid(char *);
5233 
5234 
5235 extern char *ctermid_r(char *);
5236 
5237 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5238 
5239 extern char *cuserid(char *);
5240 
5241 extern int dup(int);
5242 extern int dup2(int, int);
5243 extern int dup3(int, int, int);
5244 
5245 
5246 
5247 
5248 extern void endusershell(void);
5249 
5250 extern int execl(const char *, const char *, ...);
5251 extern int execle(const char *, const char *, ...);
5252 extern int execlp(const char *, const char *, ...);
5253 extern int execv(const char *, char *const *);
5254 extern int execve(const char *, char *const *, char *const *);
5255 extern int execvp(const char *, char *const *);
5256 extern void _exit(int)
5257  __attribute__((__noreturn__));
5258 /*
5259  * The following fattach prototype is duplicated in <stropts.h>. The
5260  * duplication is necessitated by XPG4.2 which requires the prototype
5261  * be defined in <stropts.h>.
5262  */
5263 
5264 extern int fattach(int, const char *);
5265 
5266 
5267 extern int fchdir(int);
5268 extern int fchown(int, uid_t, gid_t);
5269 
5270 
5271 extern int fchroot(int);
5272 
5273 
5274 
5275 extern int fdatasync(int);
5276 
5277 /*
5278  * The following fdetach prototype is duplicated in <stropts.h>. The
5279  * duplication is necessitated by XPG4.2 which requires the prototype
5280  * be defined in <stropts.h>.
5281  */
5282 
5283 extern int fdetach(const char *);
5284 
5285 extern pid_t fork(void);
5286 
5287 extern pid_t fork1(void);
5288 extern pid_t forkall(void);
5289 
5290 extern long fpathconf(int, int);
5291 
5292 
5293 extern int fsync(int);
5294 
5295 
5296 
5297 
5298 extern int ftruncate(int, off_t);
5299 
5300 extern char *getcwd(char *, size_t);
5301 
5302 
5303 extern int getdtablesize(void);
5304 
5305 extern gid_t getegid(void);
5306 extern uid_t geteuid(void);
5307 extern gid_t getgid(void);
5308 extern int getgroups(int, gid_t *);
5309 
5310 extern long gethostid(void);
5311 
5312 
5313 
5314 
5315 extern int gethostname(char *, int);
5316 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5317 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5318 
5319 extern int getpagesize(void);
5320 
5321 extern pid_t getpgid(pid_t);
5322 
5323 extern pid_t getpid(void);
5324 extern pid_t getppid(void);
5325 extern pid_t getpgrp(void);
5326 
5327 
5328 char *gettxt(const char *, const char *);
5329 
5330 
5331 extern pid_t getsid(pid_t);
5332 
5333 extern uid_t getuid(void);
5334 
5335 extern char *getusershell(void);
5336 
5337 /*
5338  * The following ioctl prototype is duplicated in <stropts.h>. The
5339  * duplication is necessitated by XPG4.2 which requires the prototype
5340  * be defined in <stropts.h>.
5341  */
5342 
5343 extern int ioctl(int, int, ...);
5344 extern int isaexec(const char *, char *const *, char *const *);
5345 extern int issetugid(void);
5346 
5347 extern int isatty(int);
5348 
5349 extern int lchown(const char *, uid_t, gid_t);
5350 
5351 extern int link(const char *, const char *);
5352 
5353 extern offset_t llseek(int, offset_t, int);
5354 
5355 
5356 
5357 
5358 extern int lockf(int, int, off_t);
5359 
5360 extern off_t lseek(int, off_t, int);
5361 
5362 
5363 extern int nice(int);
5364 
5365 
5366 extern int mincore(caddr_t, size_t, char *);
5367 
5368 extern long pathconf(const char *, int);
5369 extern int pause(void);
5370 extern int pipe(int *);
5371 extern int pipe2(int *, int);
5372 
5373 
5374 
5375 extern ssize_t pread(int, void *, size_t, off_t);
5376 
5377 
5378 extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
5379 
5380 /*
5381  * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The
5382  * declarations are identical. A change to either one may also require
5383  * appropriate namespace updates in order to avoid redeclaration
5384  * warnings in the case where both prototypes are exposed via inclusion
5385  * of both <pthread.h> and <unistd.h>.
5386  */
5387 
5388 
5389 
5390 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
5391 # 454 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5392 extern ssize_t pwrite(int, const void *, size_t, off_t);
5393 
5394 
5395 /* per RFC 3542; This is also defined in netdb.h */
5396 extern int rcmd_af(char **, unsigned short, const char *, const char *,
5397  const char *, int *, int);
5398 
5399 extern ssize_t read(int, void *, size_t);
5400 
5401 
5402 extern ssize_t readlink(const char *, char *,
5403  size_t);
5404 
5405 
5406 
5407 
5408 
5409 
5410 extern int rename(const char *, const char *);
5411 
5412 
5413 
5414 
5415 
5416 
5417 
5418 extern int resolvepath(const char *, char *, size_t);
5419 /* per RFC 3542; This is also defined in netdb.h */
5420 extern int rexec_af(char **, unsigned short, const char *, const char *,
5421  const char *, int *, int);
5422 
5423 extern int rmdir(const char *);
5424 
5425 /* per RFC 3542; This is also defined in netdb.h */
5426 extern int rresvport_af(int *, int);
5427 
5428 
5429 
5430 
5431 extern void *sbrk(intptr_t);
5432 
5433 
5434 extern int setegid(gid_t);
5435 extern int seteuid(uid_t);
5436 
5437 extern int setgid(gid_t);
5438 
5439 extern int setgroups(int, const gid_t *);
5440 extern int sethostname(char *, int);
5441 
5442 extern int setpgid(pid_t, pid_t);
5443 
5444 extern pid_t setpgrp(void);
5445 extern int setregid(gid_t, gid_t);
5446 extern int setreuid(uid_t, uid_t);
5447 
5448 extern pid_t setsid(void);
5449 extern int setuid(uid_t);
5450 
5451 extern void setusershell(void);
5452 
5453 extern unsigned sleep(unsigned);
5454 
5455 extern int stime(const time_t *);
5456 
5457 
5458 
5459 
5460 
5461 
5462 extern int symlink(const char *, const char *);
5463 extern void sync(void);
5464 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5465 extern long sysconf(int);
5466 extern pid_t tcgetpgrp(int);
5467 extern int tcsetpgrp(int, pid_t);
5468 
5469 
5470 
5471 extern off_t tell(int);
5472 
5473 
5474 
5475 
5476 extern int truncate(const char *, off_t);
5477 
5478 extern char *ttyname(int);
5479 
5480 extern useconds_t ualarm(useconds_t, useconds_t);
5481 
5482 extern int unlink(const char *);
5483 
5484 extern char *getwd(char *);
5485 extern int usleep(useconds_t);
5486 extern pid_t vfork(void) __attribute__((__returns_twice__));
5487 #pragma unknown_control_flow(vfork)
5488 
5489 
5490 extern void vhangup(void);
5491 
5492 extern ssize_t write(int, const void *, size_t);
5493 
5494 extern void yield(void);
5495 
5496 
5497 
5498 
5499  /* || defined(_XPG7) */
5500 extern int faccessat(int, const char *, int, int);
5501 extern int fchownat(int, const char *, uid_t, gid_t, int);
5502 extern int linkat(int, const char *, int, const char *, int);
5503 extern ssize_t readlinkat(int, const char *,
5504  char *, size_t);
5505 extern int renameat(int, const char *, int, const char *);
5506 extern int symlinkat(const char *, int, const char *);
5507 extern int unlinkat(int, const char *, int);
5508 
5509 
5510 extern int get_nprocs(void);
5511 extern int get_nprocs_conf(void);
5512 
5513 
5514 /* transitional large file interface versions */
5515 
5516 
5517 extern int ftruncate64(int, off64_t);
5518 extern off64_t lseek64(int, off64_t, int);
5519 extern ssize_t pread64(int, void *, size_t, off64_t);
5520 extern ssize_t pwrite64(int, const void *, size_t, off64_t);
5521 extern off64_t tell64(int);
5522 extern int truncate64(const char *, off64_t);
5523 extern int lockf64(int, int, off64_t);
5524 
5525 
5526 /*
5527  * getlogin_r() & ttyname_r() prototypes are defined here.
5528  */
5529 
5530 /*
5531  * Previous releases of Solaris, starting at 2.3, provided definitions of
5532  * various functions as specified in POSIX.1c, Draft 6.  For some of these
5533  * functions, the final POSIX 1003.1c standard had a different number of
5534  * arguments and return values.
5535  *
5536  * The following segment of this header provides support for the standard
5537  * interfaces while supporting applications written under earlier
5538  * releases.  The application defines appropriate values of the feature
5539  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
5540  * whether it was written to expect the Draft 6 or standard versions of
5541  * these interfaces, before including this header.  This header then
5542  * provides a mapping from the source version of the interface to an
5543  * appropriate binary interface.  Such mappings permit an application
5544  * to be built from libraries and objects which have mixed expectations
5545  * of the definitions of these functions.
5546  *
5547  * For applications using the Draft 6 definitions, the binary symbol is the
5548  * same as the source symbol, and no explicit mapping is needed.  For the
5549  * standard interface, the function func() is mapped to the binary symbol
5550  * _posix_func().  The preferred mechanism for the remapping is a compiler
5551  * #pragma.  If the compiler does not provide such a #pragma, the header file
5552  * defines a static function func() which calls the _posix_func() version;
5553  * this has to be done instead of #define since POSIX specifies that an
5554  * application can #undef the symbol and still be bound to the correct
5555  * implementation.  Unfortunately, the statics confuse lint so we fallback to
5556  * #define in that case.
5557  *
5558  * NOTE: Support for the Draft 6 definitions is provided for compatibility
5559  * only.  New applications/libraries should use the standard definitions.
5560  */
5561 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5562 
5563 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5564 #pragma redefine_extname getlogin_r getloginx_r
5565 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5566 
5567 
5568 
5569 
5570 
5571 
5572 extern char *getlogin_r(char *, int);
5573 
5574 extern char *ttyname_r(int, char *, int);
5575 
5576 
5577 
5578 
5579 
5580 
5581 extern int getentropy(void *, size_t);
5582 # 32 "../common/zones_lofs.c" 2
5583 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
5584 /*
5585  * CDDL HEADER START
5586  *
5587  * The contents of this file are subject to the terms of the
5588  * Common Development and Distribution License (the "License").
5589  * You may not use this file except in compliance with the License.
5590  *
5591  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5592  * or http://www.opensolaris.org/os/licensing.
5593  * See the License for the specific language governing permissions
5594  * and limitations under the License.
5595  *
5596  * When distributing Covered Code, include this CDDL HEADER in each
5597  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5598  * If applicable, add the following below this CDDL HEADER, with the
5599  * fields enclosed by brackets "[]" replaced with your own identifying
5600  * information: Portions Copyright [yyyy] [name of copyright owner]
5601  *
5602  * CDDL HEADER END
5603  */
5604 /*
5605  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5606  *
5607  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
5608  * Use is subject to license terms.
5609  */
5610 
5611 
5612 
5613 
5614 
5615 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
5616 /*
5617  * CDDL HEADER START
5618  *
5619  * The contents of this file are subject to the terms of the
5620  * Common Development and Distribution License (the "License").
5621  * You may not use this file except in compliance with the License.
5622  *
5623  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5624  * or http://www.opensolaris.org/os/licensing.
5625  * See the License for the specific language governing permissions
5626  * and limitations under the License.
5627  *
5628  *
5629  * When distributing Covered Code, include this CDDL HEADER in each
5630  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5631  * If applicable, add the following below this CDDL HEADER, with the
5632  * fields enclosed by brackets "[]" replaced with your own identifying
5633  * information: Portions Copyright [yyyy] [name of copyright owner]
5634  *
5635  * CDDL HEADER END
5636  */
5637 
5638 /*
5639  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
5640  * Use is subject to license terms.
5641  * Copyright 2016 Joyent, Inc.
5642  */
5643 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2
5644 
5645 
5646 
5647 
5648 
5649 /*
5650  * wchar_t is a built-in type in standard C++ and as such is not
5651  * defined here when using standard C++. However, the GNU compiler
5652  * fixincludes utility nonetheless creates its own version of this
5653  * header for use by gcc and g++. In that version it adds a redundant
5654  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
5655  * header we need to include the following magic comment:
5656  *
5657  * we must use the C++ compiler's type
5658  *
5659  * The above comment should not be removed or changed until GNU
5660  * gcc/fixinc/inclhack.def is updated to bypass this header.
5661  */
5662 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h"
5663 extern char *dcgettext(const char *, const char *, const int);
5664 extern char *dgettext(const char *, const char *);
5665 extern char *gettext(const char *);
5666 extern char *textdomain(const char *);
5667 extern char *bindtextdomain(const char *, const char *);
5668 
5669 /*
5670  * LI18NUX 2000 Globalization Specification Version 1.0
5671  * with Amendment 2
5672  */
5673 extern char *dcngettext(const char *, const char *,
5674  const char *, unsigned long int, int);
5675 extern char *dngettext(const char *, const char *,
5676  const char *, unsigned long int);
5677 extern char *ngettext(const char *, const char *, unsigned long int);
5678 extern char *bind_textdomain_codeset(const char *, const char *);
5679 
5680 /* Word handling functions --- requires dynamic linking */
5681 /* Warning: these are experimental and subject to change. */
5682 extern int wdinit(void);
5683 extern int wdchkind(wchar_t);
5684 extern int wdbindf(wchar_t, wchar_t, int);
5685 extern wchar_t *wddelim(wchar_t, wchar_t, int);
5686 extern wchar_t mcfiller(void);
5687 extern int mcwrap(void);
5688 # 33 "../common/zones_lofs.c" 2
5689 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 1
5690 /*
5691  * CDDL HEADER START
5692  *
5693  * The contents of this file are subject to the terms of the
5694  * Common Development and Distribution License, Version 1.0 only
5695  * (the "License").  You may not use this file except in compliance
5696  * with the License.
5697  *
5698  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5699  * or http://www.opensolaris.org/os/licensing.
5700  * See the License for the specific language governing permissions
5701  * and limitations under the License.
5702  *
5703  * When distributing Covered Code, include this CDDL HEADER in each
5704  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5705  * If applicable, add the following below this CDDL HEADER, with the
5706  * fields enclosed by brackets "[]" replaced with your own identifying
5707  * information: Portions Copyright [yyyy] [name of copyright owner]
5708  *
5709  * CDDL HEADER END
5710  */
5711 /*	Copyright (c) 1988 AT&T	*/
5712 /*	  All Rights Reserved  	*/
5713 
5714 
5715 /*
5716  * Copyright 1999-2003 Sun Microsystems, Inc.  All rights reserved.
5717  * Use is subject to license terms.
5718  */
5719 
5720 
5721 
5722 
5723 
5724 #pragma ident "%Z%%M%	%I%	%E% SMI"
5725 
5726 /*
5727  * Error codes
5728  */
5729 
5730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1
5731 /*
5732  * CDDL HEADER START
5733  *
5734  * The contents of this file are subject to the terms of the
5735  * Common Development and Distribution License, Version 1.0 only
5736  * (the "License").  You may not use this file except in compliance
5737  * with the License.
5738  *
5739  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5740  * or http://www.opensolaris.org/os/licensing.
5741  * See the License for the specific language governing permissions
5742  * and limitations under the License.
5743  *
5744  * When distributing Covered Code, include this CDDL HEADER in each
5745  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5746  * If applicable, add the following below this CDDL HEADER, with the
5747  * fields enclosed by brackets "[]" replaced with your own identifying
5748  * information: Portions Copyright [yyyy] [name of copyright owner]
5749  *
5750  * CDDL HEADER END
5751  */
5752 /*
5753  * Copyright 2000 Sun Microsystems, Inc.  All rights reserved.
5754  * Use is subject to license terms.
5755  */
5756 
5757 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
5758 /*	  All Rights Reserved  	*/
5759 
5760 /*
5761  * University Copyright- Copyright (c) 1982, 1986, 1988
5762  * The Regents of the University of California
5763  * All Rights Reserved
5764  *
5765  * University Acknowledgment- Portions of this document are derived from
5766  * software developed by the University of California, Berkeley, and its
5767  * contributors.
5768  */
5769 
5770 
5771 
5772 
5773 #pragma ident "%Z%%M%	%I%	%E% SMI"
5774 
5775 
5776 
5777 
5778 
5779 /*
5780  * Error codes
5781  */
5782 # 102 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5783 /* Filesystem Quotas */
5784 
5785 
5786 /* Convergent Error Returns */
5787 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5788 /* Interprocess Robust Locks */
5789 
5790 
5791 
5792 /* stream problems */
5793 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5794 /* Interprocess Robust Locks */
5795 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5796 /* shared library problems */
5797 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5798 /* BSD Networking Software */
5799  /* argument errors */
5800 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5801     /* protocol family */
5802 
5803 
5804  /* operational errors */
5805 
5806 
5807 
5808     /* of reset */
5809 
5810 
5811 
5812 
5813 
5814 /* XENIX has 135 - 142 */
5815 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
5816 /* SUN Network File System */
5817 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 2
5818 
5819 
5820 
5821 
5822 
5823 
5824 /*
5825  * The symbols _sys_errlist and _sys_nerr are not visible in the
5826  * LP64 libc.  Use strerror(3C) instead.
5827  */
5828 
5829 
5830 
5831 extern int *___errno();
5832 # 34 "../common/zones_lofs.c" 2
5833 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h" 1
5834 /*
5835  * CDDL HEADER START
5836  *
5837  * The contents of this file are subject to the terms of the
5838  * Common Development and Distribution License, Version 1.0 only
5839  * (the "License").  You may not use this file except in compliance
5840  * with the License.
5841  *
5842  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5843  * or http://www.opensolaris.org/os/licensing.
5844  * See the License for the specific language governing permissions
5845  * and limitations under the License.
5846  *
5847  * When distributing Covered Code, include this CDDL HEADER in each
5848  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5849  * If applicable, add the following below this CDDL HEADER, with the
5850  * fields enclosed by brackets "[]" replaced with your own identifying
5851  * information: Portions Copyright [yyyy] [name of copyright owner]
5852  *
5853  * CDDL HEADER END
5854  */
5855 /*	Copyright (c) 1988 AT&T	*/
5856 /*	  All Rights Reserved  	*/
5857 
5858 /*
5859  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5860  * Copyright 2016 Joyent, Inc.
5861  * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
5862  *
5863  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
5864  * Use is subject to license terms.
5865  */
5866 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h"
5867 extern void __assert(const char *, const char *, int);
5868 
5869 
5870 /*
5871  * In C11 the static_assert macro is always defined, unlike the assert macro.
5872  */
5873 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h"
5874 /*
5875  * Note that the ANSI C Standard requires all headers to be idempotent except
5876  * <assert.h> which is explicitly required not to be idempotent (section 4.1.2).
5877  * Therefore, it is by intent that the header guards (#ifndef _ASSERT_H) do
5878  * not span this entire file.
5879  */
5880 # 35 "../common/zones_lofs.c" 2
5881 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5882 /*
5883  * CDDL HEADER START
5884  *
5885  * The contents of this file are subject to the terms of the
5886  * Common Development and Distribution License (the "License").
5887  * You may not use this file except in compliance with the License.
5888  *
5889  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5890  * or http://www.opensolaris.org/os/licensing.
5891  * See the License for the specific language governing permissions
5892  * and limitations under the License.
5893  *
5894  * When distributing Covered Code, include this CDDL HEADER in each
5895  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5896  * If applicable, add the following below this CDDL HEADER, with the
5897  * fields enclosed by brackets "[]" replaced with your own identifying
5898  * information: Portions Copyright [yyyy] [name of copyright owner]
5899  *
5900  * CDDL HEADER END
5901  */
5902 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5903 /*	  All Rights Reserved  	*/
5904 
5905 
5906 /*
5907  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5908  * Use is subject to license terms.
5909  *
5910  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5911  * Copyright 2016 Joyent, Inc.
5912  */
5913 # 36 "../common/zones_lofs.c" 2
5914 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mntent.h" 1
5915 /*
5916  * CDDL HEADER START
5917  *
5918  * The contents of this file are subject to the terms of the
5919  * Common Development and Distribution License (the "License").
5920  * You may not use this file except in compliance with the License.
5921  *
5922  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5923  * or http://www.opensolaris.org/os/licensing.
5924  * See the License for the specific language governing permissions
5925  * and limitations under the License.
5926  *
5927  * When distributing Covered Code, include this CDDL HEADER in each
5928  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5929  * If applicable, add the following below this CDDL HEADER, with the
5930  * fields enclosed by brackets "[]" replaced with your own identifying
5931  * information: Portions Copyright [yyyy] [name of copyright owner]
5932  *
5933  * CDDL HEADER END
5934  */
5935 /*
5936  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
5937  * Use is subject to license terms.
5938  * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
5939  *
5940  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
5941  *		All Rights Reserved
5942  */
5943 # 37 "../common/zones_lofs.c" 2
5944 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h" 1
5945 /*
5946  * CDDL HEADER START
5947  *
5948  * The contents of this file are subject to the terms of the
5949  * Common Development and Distribution License (the "License").
5950  * You may not use this file except in compliance with the License.
5951  *
5952  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5953  * or http://www.opensolaris.org/os/licensing.
5954  * See the License for the specific language governing permissions
5955  * and limitations under the License.
5956  *
5957  * When distributing Covered Code, include this CDDL HEADER in each
5958  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5959  * If applicable, add the following below this CDDL HEADER, with the
5960  * fields enclosed by brackets "[]" replaced with your own identifying
5961  * information: Portions Copyright [yyyy] [name of copyright owner]
5962  *
5963  * CDDL HEADER END
5964  */
5965 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5966 /*	  All Rights Reserved  	*/
5967 
5968 
5969 /*
5970  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5971  *
5972  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5973  * Use is subject to license terms.
5974  */
5975 
5976 
5977 
5978 
5979 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5980 /*
5981  * CDDL HEADER START
5982  *
5983  * The contents of this file are subject to the terms of the
5984  * Common Development and Distribution License (the "License").
5985  * You may not use this file except in compliance with the License.
5986  *
5987  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5988  * or http://www.opensolaris.org/os/licensing.
5989  * See the License for the specific language governing permissions
5990  * and limitations under the License.
5991  *
5992  * When distributing Covered Code, include this CDDL HEADER in each
5993  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5994  * If applicable, add the following below this CDDL HEADER, with the
5995  * fields enclosed by brackets "[]" replaced with your own identifying
5996  * information: Portions Copyright [yyyy] [name of copyright owner]
5997  *
5998  * CDDL HEADER END
5999  */
6000 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6001 /*	  All Rights Reserved  	*/
6002 
6003 
6004 /*
6005  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6006  * Use is subject to license terms.
6007  *
6008  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6009  * Copyright 2016 Joyent, Inc.
6010  */
6011 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h" 2
6012 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h"
6013 /*
6014  * The fields in struct extmnttab should match those in struct mnttab until new
6015  * fields are encountered. This allows hasmntopt(), getmntent_common() and
6016  * mntioctl() to cast one type to the other safely.
6017  *
6018  * The fields in struct mnttab, struct extmnttab and struct mntentbuf must all
6019  * match those in the corresponding 32-bit versions defined in mntvnops.c.
6020  */
6021 struct mnttab {
6022  char *mnt_special;
6023  char *mnt_mountp;
6024  char *mnt_fstype;
6025  char *mnt_mntopts;
6026  char *mnt_time;
6027 };
6028 
6029 struct extmnttab {
6030  char *mnt_special;
6031  char *mnt_mountp;
6032  char *mnt_fstype;
6033  char *mnt_mntopts;
6034  char *mnt_time;
6035  uint_t mnt_major;
6036  uint_t mnt_minor;
6037 };
6038 
6039 struct mntentbuf {
6040  struct extmnttab *mbuf_emp;
6041  size_t mbuf_bufsize;
6042  char *mbuf_buf;
6043 };
6044 
6045 
6046 extern void resetmnttab(FILE *);
6047 extern int getmntent(FILE *, struct mnttab *);
6048 extern int getextmntent(FILE *, struct extmnttab *, size_t);
6049 extern int getmntany(FILE *, struct mnttab *, struct mnttab *);
6050 extern char *hasmntopt(struct mnttab *, char *);
6051 extern char *mntopt(char **);
6052 # 38 "../common/zones_lofs.c" 2
6053 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
6054 /*
6055  * CDDL HEADER START
6056  *
6057  * The contents of this file are subject to the terms of the
6058  * Common Development and Distribution License (the "License").
6059  * You may not use this file except in compliance with the License.
6060  *
6061  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6062  * or http://www.opensolaris.org/os/licensing.
6063  * See the License for the specific language governing permissions
6064  * and limitations under the License.
6065  *
6066  * When distributing Covered Code, include this CDDL HEADER in each
6067  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6068  * If applicable, add the following below this CDDL HEADER, with the
6069  * fields enclosed by brackets "[]" replaced with your own identifying
6070  * information: Portions Copyright [yyyy] [name of copyright owner]
6071  *
6072  * CDDL HEADER END
6073  */
6074 
6075 /*
6076  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
6077  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
6078  */
6079 
6080 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
6081 /*	  All Rights Reserved  	*/
6082 
6083 /*
6084  * University Copyright- Copyright (c) 1982, 1986, 1988
6085  * The Regents of the University of California
6086  * All Rights Reserved
6087  *
6088  * University Acknowledgment- Portions of this document are derived from
6089  * software developed by the University of California, Berkeley, and its
6090  * contributors.
6091  */
6092 
6093 
6094 
6095 
6096 
6097 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
6098 /*
6099  * CDDL HEADER START
6100  *
6101  * The contents of this file are subject to the terms of the
6102  * Common Development and Distribution License (the "License").
6103  * You may not use this file except in compliance with the License.
6104  *
6105  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6106  * or http://www.opensolaris.org/os/licensing.
6107  * See the License for the specific language governing permissions
6108  * and limitations under the License.
6109  *
6110  * When distributing Covered Code, include this CDDL HEADER in each
6111  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6112  * If applicable, add the following below this CDDL HEADER, with the
6113  * fields enclosed by brackets "[]" replaced with your own identifying
6114  * information: Portions Copyright [yyyy] [name of copyright owner]
6115  *
6116  * CDDL HEADER END
6117  */
6118 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6119 /*	  All Rights Reserved  	*/
6120 
6121 
6122 /*
6123  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6124  * Use is subject to license terms.
6125  *
6126  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6127  * Copyright 2016 Joyent, Inc.
6128  */
6129 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
6130 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
6131 /*
6132  * CDDL HEADER START
6133  *
6134  * The contents of this file are subject to the terms of the
6135  * Common Development and Distribution License (the "License").
6136  * You may not use this file except in compliance with the License.
6137  *
6138  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6139  * or http://www.opensolaris.org/os/licensing.
6140  * See the License for the specific language governing permissions
6141  * and limitations under the License.
6142  *
6143  *
6144  * When distributing Covered Code, include this CDDL HEADER in each
6145  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6146  * If applicable, add the following below this CDDL HEADER, with the
6147  * fields enclosed by brackets "[]" replaced with your own identifying
6148  * information: Portions Copyright [yyyy] [name of copyright owner]
6149  *
6150  * CDDL HEADER END
6151  */
6152 
6153 /*
6154  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
6155  * Use is subject to license terms.
6156  * Copyright 2016 Joyent, Inc.
6157  */
6158 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
6159 
6160 
6161 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
6162 /*
6163  * This file and its contents are supplied under the terms of the
6164  * Common Development and Distribution License ("CDDL"), version 1.0.
6165  * You may only use this file in accordance with the terms of version
6166  * 1.0 of the CDDL.
6167  *
6168  * A full copy of the text of the CDDL should have accompanied this
6169  * source.  A copy of the CDDL is also available via the Internet at
6170  * http://www.illumos.org/license/CDDL.
6171  */
6172 
6173 /*
6174  * Copyright 2014-2016 PALO, Richard.
6175  */
6176 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
6177 
6178 
6179 
6180 
6181 
6182 /*
6183  * Fundamental variables; don't change too often.
6184  */
6185 
6186 /*
6187  * _POSIX_VDISABLE has historically been defined in <sys/param.h> since
6188  * an early merge with AT&T source.  It has also historically been defined
6189  * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially
6190  * required the existence of _POSIX_VDISABLE in <sys/termios.h>.
6191  * Subsequent versions of the IEEE Standard as well as the X/Open
6192  * specifications required that _POSIX_VDISABLE be defined in <unistd.h>
6193  * while still allowing for it's existence in other headers.  With the
6194  * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>.
6195  */
6196 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6197     /* compatibility purposes only	*/
6198     /* and will be removed in a	*/
6199     /* later release		*/
6200 
6201 /*
6202  * These define the maximum and minimum allowable values of the
6203  * configurable parameter NGROUPS_MAX.
6204  */
6205 
6206 
6207 
6208 
6209 /*
6210  * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h.
6211  */
6212 
6213 
6214 /*
6215  * Default process priority.  Keep it in sync with limits.h.
6216  */
6217 
6218 
6219 /*
6220  * Fundamental constants of the implementation--cannot be changed easily.
6221  */
6222 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6223 /* REMOTE -- whether machine is primary, secondary, or regular */
6224 
6225 
6226 
6227 /*
6228  * MAXPATHLEN defines the longest permissible path length,
6229  * including the terminating null, after expanding symbolic links.
6230  * TYPICALMAXPATHLEN is used in a few places as an optimization
6231  * with a local buffer on the stack to avoid kmem_alloc().
6232  * MAXSYMLINKS defines the maximum number of symbolic links
6233  * that may be expanded in a path name. It should be set high
6234  * enough to allow all legitimate uses, but halt infinite loops
6235  * reasonably quickly.
6236  * MAXNAMELEN is the length (including the terminating null) of
6237  * the longest permissible file (component) name.
6238  */
6239 
6240 
6241 
6242 
6243 
6244 /*
6245  * MAXLINKNAMELEN defines the longest possible permitted datalink name,
6246  * including the terminating NUL.  Note that this must not be larger
6247  * than related networking constants such as LIFNAMSIZ.
6248  */
6249 
6250 
6251 
6252 
6253 
6254 
6255 /*
6256  * The following are defined to be the same as
6257  * defined in /usr/include/limits.h.  They are
6258  * needed for pipe and FIFO compatibility.
6259  */
6260 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6261 /* macros replacing interleaving functions */
6262 
6263 
6264 
6265 /*
6266  * File system parameters and macros.
6267  *
6268  * The file system is made out of blocks of at most MAXBSIZE units,
6269  * with smaller units (fragments) only in the last direct block.
6270  * MAXBSIZE primarily determines the size of buffers in the buffer
6271  * pool. It may be made larger without any effect on existing
6272  * file systems; however making it smaller make make some file
6273  * systems unmountable.
6274  *
6275  * Note that the blocked devices are assumed to have DEV_BSIZE
6276  * "sectors" and that fragments must be some multiple of this size.
6277  */
6278 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6279 /*	64 bit versions of btodb and dbtob */
6280 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6281 /*
6282  * Size of arg list passed in by user.
6283  */
6284 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6285 /*
6286  * Scale factor for scaled integers used to count
6287  * %cpu time and load averages.
6288  */
6289 
6290 
6291 
6292 /*
6293  * Delay units are in microseconds.
6294  *
6295  * XXX	These macros are not part of the DDI!
6296  */
6297 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6298 /*
6299  * The following is to free utilities from machine dependencies within
6300  * an architecture. Must be included after definition of DEV_BSIZE.
6301  */
6302 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
6303 /*
6304  * The following are assorted machine dependent values which can be
6305  * obtained in a machine independent manner through sysconf(2) or
6306  * sysinfo(2). In order to guarantee that these provide the expected
6307  * value at all times, the System Private interface (leading underscore)
6308  * is used.
6309  */
6310 
6311 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
6312 /*
6313  * CDDL HEADER START
6314  *
6315  * The contents of this file are subject to the terms of the
6316  * Common Development and Distribution License (the "License").
6317  * You may not use this file except in compliance with the License.
6318  *
6319  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6320  * or http://www.opensolaris.org/os/licensing.
6321  * See the License for the specific language governing permissions
6322  * and limitations under the License.
6323  *
6324  * When distributing Covered Code, include this CDDL HEADER in each
6325  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6326  * If applicable, add the following below this CDDL HEADER, with the
6327  * fields enclosed by brackets "[]" replaced with your own identifying
6328  * information: Portions Copyright [yyyy] [name of copyright owner]
6329  *
6330  * CDDL HEADER END
6331  */
6332 
6333 /*
6334  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
6335  *	  All Rights Reserved
6336  *
6337  */
6338 
6339 /*
6340  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6341  * Use is subject to license terms.
6342  */
6343 
6344 /*
6345  * WARNING: This is an implementation-specific header,
6346  * its contents are not guaranteed. Applications
6347  * should include <unistd.h> and not this header.
6348  */
6349 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
6350 
6351 
6352 
6353 
6354 
6355 
6356 extern long _sysconf(int); /* System Private interface to sysconf() */
6357 # 39 "../common/zones_lofs.c" 2
6358 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 1
6359 /*
6360  * CDDL HEADER START
6361  *
6362  * The contents of this file are subject to the terms of the
6363  * Common Development and Distribution License (the "License").
6364  * You may not use this file except in compliance with the License.
6365  *
6366  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6367  * or http://www.opensolaris.org/os/licensing.
6368  * See the License for the specific language governing permissions
6369  * and limitations under the License.
6370  *
6371  * When distributing Covered Code, include this CDDL HEADER in each
6372  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6373  * If applicable, add the following below this CDDL HEADER, with the
6374  * fields enclosed by brackets "[]" replaced with your own identifying
6375  * information: Portions Copyright [yyyy] [name of copyright owner]
6376  *
6377  * CDDL HEADER END
6378  */
6379 
6380 /*
6381  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
6382  */
6383 
6384 
6385 
6386 
6387 /*
6388  * Zone configuration header file.
6389  */
6390 
6391 
6392 
6393 
6394 
6395 /* sys/socket.h is required by net/if.h, which has a constant needed here */
6396 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
6397 /*
6398  * CDDL HEADER START
6399  *
6400  * The contents of this file are subject to the terms of the
6401  * Common Development and Distribution License (the "License").
6402  * You may not use this file except in compliance with the License.
6403  *
6404  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6405  * or http://www.opensolaris.org/os/licensing.
6406  * See the License for the specific language governing permissions
6407  * and limitations under the License.
6408  *
6409  * When distributing Covered Code, include this CDDL HEADER in each
6410  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6411  * If applicable, add the following below this CDDL HEADER, with the
6412  * fields enclosed by brackets "[]" replaced with your own identifying
6413  * information: Portions Copyright [yyyy] [name of copyright owner]
6414  *
6415  * CDDL HEADER END
6416  */
6417 
6418 /*
6419  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
6420  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
6421  */
6422 
6423 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
6424 /*	  All Rights Reserved  	*/
6425 
6426 /*
6427  * University Copyright- Copyright (c) 1982, 1986, 1988
6428  * The Regents of the University of California
6429  * All Rights Reserved
6430  *
6431  * University Acknowledgment- Portions of this document are derived from
6432  * software developed by the University of California, Berkeley, and its
6433  * contributors.
6434  */
6435 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
6436 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fstyp.h" 1
6437 /*
6438  * CDDL HEADER START
6439  *
6440  * The contents of this file are subject to the terms of the
6441  * Common Development and Distribution License, Version 1.0 only
6442  * (the "License").  You may not use this file except in compliance
6443  * with the License.
6444  *
6445  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6446  * or http://www.opensolaris.org/os/licensing.
6447  * See the License for the specific language governing permissions
6448  * and limitations under the License.
6449  *
6450  * When distributing Covered Code, include this CDDL HEADER in each
6451  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6452  * If applicable, add the following below this CDDL HEADER, with the
6453  * fields enclosed by brackets "[]" replaced with your own identifying
6454  * information: Portions Copyright [yyyy] [name of copyright owner]
6455  *
6456  * CDDL HEADER END
6457  */
6458 /*
6459  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6460  */
6461 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6462 /*	  All Rights Reserved  	*/
6463 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fstyp.h"
6464 /*
6465  * Opcodes for the sysfs() system call.
6466  */
6467 
6468 
6469 
6470 
6471 
6472 int sysfs(int, ...);
6473 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
6474 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mount.h" 1
6475 /*
6476  * CDDL HEADER START
6477  *
6478  * The contents of this file are subject to the terms of the
6479  * Common Development and Distribution License, Version 1.0 only
6480  * (the "License").  You may not use this file except in compliance
6481  * with the License.
6482  *
6483  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6484  * or http://www.opensolaris.org/os/licensing.
6485  * See the License for the specific language governing permissions
6486  * and limitations under the License.
6487  *
6488  * When distributing Covered Code, include this CDDL HEADER in each
6489  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6490  * If applicable, add the following below this CDDL HEADER, with the
6491  * fields enclosed by brackets "[]" replaced with your own identifying
6492  * information: Portions Copyright [yyyy] [name of copyright owner]
6493  *
6494  * CDDL HEADER END
6495  */
6496 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6497 /*	  All Rights Reserved  	*/
6498 
6499 
6500 /*
6501  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6502  *
6503  * Copyright (c) 1996, 1999 by Sun Microsystems, Inc.
6504  * All rights reserved.
6505  */
6506 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mount.h"
6507 /*
6508  * Flag bits passed to mount(2).
6509  */
6510 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mount.h"
6511 /*
6512  * Additional flag bits that domount() is prepared to interpret, but that
6513  * can't be passed through mount(2).
6514  */
6515 
6516 
6517 
6518 /*
6519  * Mask to sift out flag bits allowable from mount(2).
6520  */
6521 
6522 
6523 
6524 
6525 /*
6526  * Mask to sift out flag bits allowable from umount2(2).
6527  */
6528 
6529 
6530 
6531 /*
6532  * Maximum option string length accepted or returned by mount(2).
6533  */
6534 
6535 
6536 
6537 int mount(const char *, const char *, int, ...);
6538 int umount(const char *);
6539 int umount2(const char *, int);
6540 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
6541 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h" 1
6542 /*
6543  * CDDL HEADER START
6544  *
6545  * The contents of this file are subject to the terms of the
6546  * Common Development and Distribution License (the "License").
6547  * You may not use this file except in compliance with the License.
6548  *
6549  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6550  * or http://www.opensolaris.org/os/licensing.
6551  * See the License for the specific language governing permissions
6552  * and limitations under the License.
6553  *
6554  * When distributing Covered Code, include this CDDL HEADER in each
6555  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6556  * If applicable, add the following below this CDDL HEADER, with the
6557  * fields enclosed by brackets "[]" replaced with your own identifying
6558  * information: Portions Copyright [yyyy] [name of copyright owner]
6559  *
6560  * CDDL HEADER END
6561  */
6562 /*
6563  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6564  *
6565  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
6566  * Use is subject to license terms.
6567  */
6568 
6569 
6570 
6571 
6572 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 1
6573 /*
6574  * CDDL HEADER START
6575  *
6576  * The contents of this file are subject to the terms of the
6577  * Common Development and Distribution License (the "License").
6578  * You may not use this file except in compliance with the License.
6579  *
6580  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6581  * or http://www.opensolaris.org/os/licensing.
6582  * See the License for the specific language governing permissions
6583  * and limitations under the License.
6584  *
6585  * When distributing Covered Code, include this CDDL HEADER in each
6586  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6587  * If applicable, add the following below this CDDL HEADER, with the
6588  * fields enclosed by brackets "[]" replaced with your own identifying
6589  * information: Portions Copyright [yyyy] [name of copyright owner]
6590  *
6591  * CDDL HEADER END
6592  */
6593 /*
6594  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6595  *
6596  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
6597  */
6598 
6599 
6600 
6601 
6602 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
6603 /*
6604  * CDDL HEADER START
6605  *
6606  * The contents of this file are subject to the terms of the
6607  * Common Development and Distribution License (the "License").
6608  * You may not use this file except in compliance with the License.
6609  *
6610  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6611  * or http://www.opensolaris.org/os/licensing.
6612  * See the License for the specific language governing permissions
6613  * and limitations under the License.
6614  *
6615  * When distributing Covered Code, include this CDDL HEADER in each
6616  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6617  * If applicable, add the following below this CDDL HEADER, with the
6618  * fields enclosed by brackets "[]" replaced with your own identifying
6619  * information: Portions Copyright [yyyy] [name of copyright owner]
6620  *
6621  * CDDL HEADER END
6622  */
6623 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6624 /*	  All Rights Reserved  	*/
6625 
6626 
6627 /*
6628  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6629  * Use is subject to license terms.
6630  *
6631  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6632  * Copyright 2016 Joyent, Inc.
6633  */
6634 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
6635 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
6636 /*
6637  * CDDL HEADER START
6638  *
6639  * The contents of this file are subject to the terms of the
6640  * Common Development and Distribution License (the "License").
6641  * You may not use this file except in compliance with the License.
6642  *
6643  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6644  * or http://www.opensolaris.org/os/licensing.
6645  * See the License for the specific language governing permissions
6646  * and limitations under the License.
6647  *
6648  * When distributing Covered Code, include this CDDL HEADER in each
6649  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6650  * If applicable, add the following below this CDDL HEADER, with the
6651  * fields enclosed by brackets "[]" replaced with your own identifying
6652  * information: Portions Copyright [yyyy] [name of copyright owner]
6653  *
6654  * CDDL HEADER END
6655  */
6656 /*
6657  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6658  * Use is subject to license terms.
6659  */
6660 
6661 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
6662 /*	  All Rights Reserved  	*/
6663 
6664 /*
6665  * Portions of this source code were derived from Berkeley 4.3 BSD
6666  * under license from the Regents of the University of California.
6667  */
6668 
6669 
6670 
6671 
6672 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
6673 /*
6674  * CDDL HEADER START
6675  *
6676  * The contents of this file are subject to the terms of the
6677  * Common Development and Distribution License (the "License").
6678  * You may not use this file except in compliance with the License.
6679  *
6680  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6681  * or http://www.opensolaris.org/os/licensing.
6682  * See the License for the specific language governing permissions
6683  * and limitations under the License.
6684  *
6685  * When distributing Covered Code, include this CDDL HEADER in each
6686  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6687  * If applicable, add the following below this CDDL HEADER, with the
6688  * fields enclosed by brackets "[]" replaced with your own identifying
6689  * information: Portions Copyright [yyyy] [name of copyright owner]
6690  *
6691  * CDDL HEADER END
6692  */
6693 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6694 /*	  All Rights Reserved  	*/
6695 
6696 
6697 /*
6698  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6699  * Use is subject to license terms.
6700  *
6701  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6702  * Copyright 2016 Joyent, Inc.
6703  */
6704 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2
6705 
6706 
6707 
6708 
6709 
6710 /*
6711  * The credential is an opaque kernel private data structure defined in
6712  * <sys/cred_impl.h>.
6713  */
6714 
6715 typedef struct cred cred_t;
6716 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
6717 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv_names.h" 1
6718 /*
6719  * CDDL HEADER START
6720  *
6721  * The contents of this file are subject to the terms of the
6722  * Common Development and Distribution License (the "License").
6723  * You may not use this file except in compliance with the License.
6724  *
6725  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6726  * or http://www.opensolaris.org/os/licensing.
6727  * See the License for the specific language governing permissions
6728  * and limitations under the License.
6729  *
6730  * When distributing Covered Code, include this CDDL HEADER in each
6731  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6732  * If applicable, add the following below this CDDL HEADER, with the
6733  * fields enclosed by brackets "[]" replaced with your own identifying
6734  * information: Portions Copyright [yyyy] [name of copyright owner]
6735  *
6736  * CDDL HEADER END
6737  */
6738 /*
6739  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
6740  * Copyright 2015, Joyent, Inc. All rights reserved.
6741  *
6742  * Privilege constant definitions.  Privileges and privilege sets
6743  * are only known by name and should be mapped at runtime.
6744  *
6745  * THIS FILE WAS GENERATED; DO NOT EDIT
6746  */
6747 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv_names.h"
6748 /*
6749  * Privilege names
6750  */
6751 /*
6752  * Allows a process to request critical events without limitation.
6753  * Allows a process to request reliable delivery of all events on
6754  * any event queue.
6755  */
6756 
6757 
6758 /*
6759  * Allows a process to set the service FMRI value of a process
6760  * contract template.
6761  */
6762 
6763 
6764 /*
6765  * Allows a process to observe contract events generated by
6766  * contracts created and owned by users other than the process's
6767  * effective user ID.
6768  * Allows a process to open contract event endpoints belonging to
6769  * contracts created and owned by users other than the process's
6770  * effective user ID.
6771  */
6772 
6773 
6774 /*
6775  * Allow a process to access per-CPU hardware performance counters.
6776  */
6777 
6778 
6779 /*
6780  * Allows DTrace kernel-level tracing.
6781  */
6782 
6783 
6784 /*
6785  * Allows DTrace process-level tracing.
6786  * Allows process-level tracing probes to be placed and enabled in
6787  * processes to which the user has permissions.
6788  */
6789 
6790 
6791 /*
6792  * Allows DTrace user-level tracing.
6793  * Allows use of the syscall and profile DTrace providers to
6794  * examine processes to which the user has permissions.
6795  */
6796 
6797 
6798 /*
6799  * Allows a process to change a file's owner user ID.
6800  * Allows a process to change a file's group ID to one other than
6801  * the process' effective group ID or one of the process'
6802  * supplemental group IDs.
6803  */
6804 
6805 
6806 /*
6807  * Allows a process to give away its files; a process with this
6808  * privilege will run as if {_POSIX_CHOWN_RESTRICTED} is not
6809  * in effect.
6810  */
6811 
6812 
6813 /*
6814  * Allows a process to execute an executable file whose permission
6815  * bits or ACL do not allow the process execute permission.
6816  */
6817 
6818 
6819 /*
6820  * Allows a process to read a file or directory whose permission
6821  * bits or ACL do not allow the process read permission.
6822  */
6823 
6824 
6825 /*
6826  * Allows a process to search a directory whose permission bits or
6827  * ACL do not allow the process search permission.
6828  */
6829 
6830 
6831 /*
6832  * Allows a process to write a file or directory whose permission
6833  * bits or ACL do not allow the process write permission.
6834  * In order to write files owned by uid 0 in the absence of an
6835  * effective uid of 0 ALL privileges are required.
6836  */
6837 
6838 
6839 /*
6840  * Allows a process to set the sensitivity label of a file or
6841  * directory to a sensitivity label that does not dominate the
6842  * existing sensitivity label.
6843  * This privilege is interpreted only if the system is configured
6844  * with Trusted Extensions.
6845  */
6846 
6847 
6848 /*
6849  * Allows a process to set immutable, nounlink or appendonly
6850  * file attributes.
6851  */
6852 
6853 
6854 /*
6855  * Allows a process to create hardlinks to files owned by a uid
6856  * different from the process' effective uid.
6857  */
6858 
6859 
6860 /*
6861  * Allows a process which is not the owner of a file or directory
6862  * to perform the following operations that are normally permitted
6863  * only for the file owner: modify that file's access and
6864  * modification times; remove or rename a file or directory whose
6865  * parent directory has the ``save text image after execution''
6866  * (sticky) bit set; mount a ``namefs'' upon a file; modify
6867  * permission bits or ACL except for the set-uid and set-gid
6868  * bits.
6869  */
6870 
6871 
6872 /*
6873  * Allows a process to read objects in the filesystem.
6874  */
6875 
6876 
6877 /*
6878  * Allows a process to change the ownership of a file or write to
6879  * a file without the set-user-ID and set-group-ID bits being
6880  * cleared.
6881  * Allows a process to set the set-group-ID bit on a file or
6882  * directory whose group is not the process' effective group or
6883  * one of the process' supplemental groups.
6884  * Allows a process to set the set-user-ID bit on a file with
6885  * different ownership in the presence of PRIV_FILE_OWNER.
6886  * Additional restrictions apply when creating or modifying a
6887  * set-uid 0 file.
6888  */
6889 
6890 
6891 /*
6892  * Allows a process to set the sensitivity label of a file or
6893  * directory to a sensitivity label that dominates the existing
6894  * sensitivity label.
6895  * This privilege is interpreted only if the system is configured
6896  * with Trusted Extensions.
6897  */
6898 
6899 
6900 /*
6901  * Allows a process to modify objects in the filesystem.
6902  */
6903 
6904 
6905 /*
6906  * Allows a process to make privileged ioctls to graphics devices.
6907  * Typically only xserver process needs to have this privilege.
6908  * A process with this privilege is also allowed to perform
6909  * privileged graphics device mappings.
6910  */
6911 
6912 
6913 /*
6914  * Allows a process to perform privileged mappings through a
6915  * graphics device.
6916  */
6917 
6918 
6919 /*
6920  * Allows a process to read a System V IPC
6921  * Message Queue, Semaphore Set, or Shared Memory Segment whose
6922  * permission bits do not allow the process read permission.
6923  * Allows a process to read remote shared memory whose
6924  * permission bits do not allow the process read permission.
6925  */
6926 
6927 
6928 /*
6929  * Allows a process to write a System V IPC
6930  * Message Queue, Semaphore Set, or Shared Memory Segment whose
6931  * permission bits do not allow the process write permission.
6932  * Allows a process to read remote shared memory whose
6933  * permission bits do not allow the process write permission.
6934  * Additional restrictions apply if the owner of the object has uid 0
6935  * and the effective uid of the current process is not 0.
6936  */
6937 
6938 
6939 /*
6940  * Allows a process which is not the owner of a System
6941  * V IPC Message Queue, Semaphore Set, or Shared Memory Segment to
6942  * remove, change ownership of, or change permission bits of the
6943  * Message Queue, Semaphore Set, or Shared Memory Segment.
6944  * Additional restrictions apply if the owner of the object has uid 0
6945  * and the effective uid of the current process is not 0.
6946  */
6947 
6948 
6949 /*
6950  * Allows a process to open a TCP, UDP, SDP or SCTP network endpoint.
6951  */
6952 
6953 
6954 /*
6955  * Allow a process to bind to a port that is configured as a
6956  * multi-level port(MLP) for the process's zone. This privilege
6957  * applies to both shared address and zone-specific address MLPs.
6958  * See tnzonecfg(4) from the Trusted Extensions manual pages for
6959  * information on configuring MLP ports.
6960  * This privilege is interpreted only if the system is configured
6961  * with Trusted Extensions.
6962  */
6963 
6964 
6965 /*
6966  * Allows a process to send and receive ICMP packets.
6967  */
6968 
6969 
6970 /*
6971  * Allows a process to set NET_MAC_AWARE process flag by using
6972  * setpflags(2). This privilege also allows a process to set
6973  * SO_MAC_EXEMPT socket option by using setsockopt(3SOCKET).
6974  * The NET_MAC_AWARE process flag and the SO_MAC_EXEMPT socket
6975  * option both allow a local process to communicate with an
6976  * unlabeled peer if the local process' label dominates the
6977  * peer's default label, or if the local process runs in the
6978  * global zone.
6979  * This privilege is interpreted only if the system is configured
6980  * with Trusted Extensions.
6981  */
6982 
6983 
6984 /*
6985  * Allows a process to set SO_MAC_IMPLICIT option by using
6986  * setsockopt(3SOCKET).  This allows a privileged process to
6987  * transmit implicitly-labeled packets to a peer.
6988  * This privilege is interpreted only if the system is configured
6989  * with Trusted Extensions.
6990  */
6991 
6992 
6993 /*
6994  * Allows a process to access /dev/lo0 and the devices in /dev/ipnet/
6995  * while not requiring them to need PRIV_NET_RAWACCESS.
6996  */
6997 
6998 
6999 /*
7000  * Allows a process to bind to a privileged port
7001  * number. The privilege port numbers are 1-1023 (the traditional
7002  * UNIX privileged ports) as well as those ports marked as
7003  * "udp/tcp_extra_priv_ports" with the exception of the ports
7004  * reserved for use by NFS.
7005  */
7006 
7007 
7008 /*
7009  * Allows a process to have direct access to the network layer.
7010  */
7011 
7012 
7013 /*
7014  * Allows a process to generate audit records.
7015  * Allows a process to get its own audit pre-selection information.
7016  */
7017 
7018 
7019 /*
7020  * Allows a process to change its root directory.
7021  */
7022 
7023 
7024 /*
7025  * Allows a process to use high resolution timers.
7026  */
7027 
7028 
7029 /*
7030  * Allows a process to call execve().
7031  */
7032 
7033 
7034 /*
7035  * Allows a process to call fork1()/forkall()/vfork()
7036  */
7037 
7038 
7039 /*
7040  * Allows a process to examine the status of processes other
7041  * than those it can send signals to.  Processes which cannot
7042  * be examined cannot be seen in /proc and appear not to exist.
7043  */
7044 
7045 
7046 /*
7047  * Allows a process to lock pages in physical memory.
7048  */
7049 
7050 
7051 /*
7052  * Allows a process to access physical memory information.
7053  */
7054 
7055 
7056 /*
7057  * Allows a process to send signals to other processes, inspect
7058  * and modify process state to other processes regardless of
7059  * ownership.  When modifying another process, additional
7060  * restrictions apply:  the effective privilege set of the
7061  * attaching process must be a superset of the target process'
7062  * effective, permitted and inheritable sets; the limit set must
7063  * be a superset of the target's limit set; if the target process
7064  * has any uid set to 0 all privilege must be asserted unless the
7065  * effective uid is 0.
7066  * Allows a process to bind arbitrary processes to CPUs.
7067  */
7068 
7069 
7070 /*
7071  * Allows a process to elevate its priority above its current level.
7072  */
7073 
7074 
7075 /*
7076  * Allows all that PRIV_PROC_PRIOUP allows.
7077  * Allows a process to change its scheduling class to any scheduling class,
7078  * including the RT class.
7079  */
7080 
7081 
7082 /*
7083  * Allows a process to send signals or trace processes outside its
7084  * session.
7085  */
7086 
7087 
7088 /*
7089  * Allows a process to set its uids at will.
7090  * Assuming uid 0 requires all privileges to be asserted.
7091  */
7092 
7093 
7094 /*
7095  * Allows a process to assign a new task ID to the calling process.
7096  */
7097 
7098 
7099 /*
7100  * Allows a process to trace or send signals to processes in
7101  * other zones.
7102  */
7103 
7104 
7105 /*
7106  * Allows a process to enable and disable and manage accounting through
7107  * acct(2), getacct(2), putacct(2) and wracct(2).
7108  */
7109 
7110 
7111 /*
7112  * Allows a process to perform system administration tasks such
7113  * as setting node and domain name and specifying nscd and coreadm
7114  * settings.
7115  */
7116 
7117 
7118 /*
7119  * Allows a process to start the (kernel) audit daemon.
7120  * Allows a process to view and set audit state (audit user ID,
7121  * audit terminal ID, audit sessions ID, audit pre-selection mask).
7122  * Allows a process to turn off and on auditing.
7123  * Allows a process to configure the audit parameters (cache and
7124  * queue sizes, event to class mappings, policy options).
7125  */
7126 
7127 
7128 /*
7129  * Allows a process to perform various system configuration tasks.
7130  * Allows a process to add and remove swap devices; when adding a swap
7131  * device, a process must also have sufficient privileges to read from
7132  * and write to the swap device.
7133  */
7134 
7135 
7136 /*
7137  * Allows a process to successfully call a kernel module that
7138  * calls the kernel drv_priv(9F) function to check for allowed
7139  * access.
7140  * Allows a process to open the real console device directly.
7141  * Allows a process to open devices that have been exclusively opened.
7142  */
7143 
7144 
7145 /*
7146  * Allows a process to increase the size of a System V IPC Message
7147  * Queue buffer.
7148  */
7149 
7150 
7151 /*
7152  * Allows a process to unlink and link directories.
7153  */
7154 
7155 
7156 /*
7157  * Allows filesystem specific administrative procedures, such as
7158  * filesystem configuration ioctls, quota calls and creation/deletion
7159  * of snapshots.
7160  * Allows a process to mount and unmount filesystems which would
7161  * otherwise be restricted (i.e., most filesystems except
7162  * namefs).
7163  * A process performing a mount operation needs to have
7164  * appropriate access to the device being mounted (read-write for
7165  * "rw" mounts, read for "ro" mounts).
7166  * A process performing any of the aforementioned
7167  * filesystem operations needs to have read/write/owner
7168  * access to the mount point.
7169  * Only regular files and directories can serve as mount points
7170  * for processes which do not have all zone privileges asserted.
7171  * Unless a process has all zone privileges, the mount(2)
7172  * system call will force the "nosuid" and "restrict" options, the
7173  * latter only for autofs mountpoints.
7174  * Regardless of privileges, a process running in a non-global zone may
7175  * only control mounts performed from within said zone.
7176  * Outside the global zone, the "nodevices" option is always forced.
7177  */
7178 
7179 
7180 /*
7181  * Allows a process to configure IP tunnel links.
7182  */
7183 
7184 
7185 /*
7186  * Allows a process to configure all classes of datalinks, including
7187  * configuration allowed by PRIV_SYS_IPTUN_CONFIG.
7188  */
7189 
7190 
7191 /*
7192  * Allows a process to configure a system's IP interfaces and routes.
7193  * Allows a process to configure network parameters using ndd.
7194  * Allows a process access to otherwise restricted information using ndd.
7195  * Allows a process to configure IPsec.
7196  * Allows a process to pop anchored STREAMs modules with matching zoneid.
7197  */
7198 
7199 
7200 /*
7201  * Allows all that PRIV_SYS_IP_CONFIG, PRIV_SYS_DL_CONFIG, and
7202  * PRIV_SYS_PPP_CONFIG allow.
7203  * Allows a process to push the rpcmod STREAMs module.
7204  * Allows a process to INSERT/REMOVE STREAMs modules on locations other
7205  * than the top of the module stack.
7206  */
7207 
7208 
7209 /*
7210  * Allows a process to perform Sun private NFS specific system calls.
7211  * Allows a process to bind to ports reserved by NFS: ports 2049 (nfs)
7212  * and port 4045 (lockd).
7213  */
7214 
7215 
7216 /*
7217  * Allows a process to create and destroy PPP (sppp) interfaces.
7218  * Allows a process to configure PPP tunnels (sppptun).
7219  */
7220 
7221 
7222 /*
7223  * Allows a process to bind processes to processor sets.
7224  */
7225 
7226 
7227 /*
7228  * Allows all that PRIV_SYS_RES_BIND allows.
7229  * Allows a process to create and delete processor sets, assign
7230  * CPUs to processor sets and override the PSET_NOESCAPE property.
7231  * Allows a process to change the operational status of CPUs in
7232  * the system using p_online(2).
7233  * Allows a process to configure resource pools and to bind
7234  * processes to pools
7235  */
7236 
7237 
7238 /*
7239  * Allows a process to modify the resource limits specified
7240  * by setrlimit(2) and setrctl(2) without restriction.
7241  * Allows a process to exceed the per-user maximum number of
7242  * processes.
7243  * Allows a process to extend or create files on a filesystem that
7244  * has less than minfree space in reserve.
7245  */
7246 
7247 
7248 /*
7249  * Allows a process to access the Sun private SMB kernel module.
7250  * Allows a process to bind to ports reserved by NetBIOS and SMB:
7251  * ports 137 (NBNS), 138 (NetBIOS Datagram Service), 139 (NetBIOS
7252  * Session Service and SMB-over-NBT) and 445 (SMB-over-TCP).
7253  */
7254 
7255 
7256 /*
7257  * Allows a process to successfully call a third party loadable module
7258  * that calls the kernel suser() function to check for allowed access.
7259  * This privilege exists only for third party loadable module
7260  * compatibility and is not used by Solaris proper.
7261  */
7262 
7263 
7264 /*
7265  * Allows a process to manipulate system time using any of the
7266  * appropriate system calls: stime, adjtime, ntp_adjtime and
7267  * the IA specific RTC calls.
7268  */
7269 
7270 
7271 /*
7272  * Allows a process to translate labels that are not dominated
7273  * by the process' sensitivity label to and from an external
7274  * string form.
7275  * This privilege is interpreted only if the system is configured
7276  * with Trusted Extensions.
7277  */
7278 
7279 
7280 /*
7281  * Allows a process to manage virtualized environments such as
7282  * xVM(5).
7283  */
7284 
7285 
7286 /*
7287  * Allows a process to override colormap restrictions.
7288  * Allows a process to install or remove colormaps.
7289  * Allows a process to retrieve colormap cell entries allocated
7290  * by other processes.
7291  * This privilege is interpreted only if the system is configured
7292  * with Trusted Extensions.
7293  */
7294 
7295 
7296 /*
7297  * Allows a process to configure or destroy resources that are
7298  * permanently retained by the X server.
7299  * Allows a process to use SetScreenSaver to set the screen
7300  * saver timeout value.
7301  * Allows a process to use ChangeHosts to modify the display
7302  * access control list.
7303  * Allows a process to use GrabServer.
7304  * Allows a process to use the SetCloseDownMode request which
7305  * may retain window, pixmap, colormap, property, cursor, font,
7306  * or graphic context resources.
7307  * This privilege is interpreted only if the system is configured
7308  * with Trusted Extensions.
7309  */
7310 
7311 
7312 /*
7313  * Allows a process to read from a window resource that it does
7314  * not own (has a different user ID).
7315  * This privilege is interpreted only if the system is configured
7316  * with Trusted Extensions.
7317  */
7318 
7319 
7320 /*
7321  * Allows a process to write to or create a window resource that
7322  * it does not own (has a different user ID). A newly created
7323  * window property is created with the window's user ID.
7324  * This privilege is interpreted only if the system is configured
7325  * with Trusted Extensions.
7326  */
7327 
7328 
7329 /*
7330  * Allows a process to perform operations on window input devices.
7331  * Allows a process to get and set keyboard and pointer controls.
7332  * Allows a process to modify pointer button and key mappings.
7333  * This privilege is interpreted only if the system is configured
7334  * with Trusted Extensions.
7335  */
7336 
7337 
7338 /*
7339  * Allows a process to use the direct graphics access (DGA) X protocol
7340  * extensions. Direct process access to the frame buffer is still
7341  * required. Thus the process must have MAC and DAC privileges that
7342  * allow access to the frame buffer, or the frame buffer must be
7343  * allocated to the process.
7344  * This privilege is interpreted only if the system is configured
7345  * with Trusted Extensions.
7346  */
7347 
7348 
7349 /*
7350  * Allows a process to set the sensitivity label of a window resource
7351  * to a sensitivity label that does not dominate the existing
7352  * sensitivity label.
7353  * This privilege is interpreted only if the system is configured
7354  * with Trusted Extensions.
7355  */
7356 
7357 
7358 /*
7359  * Allows a process to set a font path.
7360  * This privilege is interpreted only if the system is configured
7361  * with Trusted Extensions.
7362  */
7363 
7364 
7365 /*
7366  * Allows a process to read from a window resource whose sensitivity
7367  * label is not equal to the process sensitivity label.
7368  * This privilege is interpreted only if the system is configured
7369  * with Trusted Extensions.
7370  */
7371 
7372 
7373 /*
7374  * Allows a process to create a window resource whose sensitivity
7375  * label is not equal to the process sensitivity label.
7376  * A newly created window property is created with the window's
7377  * sensitivity label.
7378  * This privilege is interpreted only if the system is configured
7379  * with Trusted Extensions.
7380  */
7381 
7382 
7383 /*
7384  * Allows a process to request inter-window data moves without the
7385  * intervention of the selection confirmer.
7386  * This privilege is interpreted only if the system is configured
7387  * with Trusted Extensions.
7388  */
7389 
7390 
7391 /*
7392  * Allows a process to set the sensitivity label of a window
7393  * resource to a sensitivity label that dominates the existing
7394  * sensitivity label.
7395  * This privilege is interpreted only if the system is configured
7396  * with Trusted Extensions.
7397  */
7398 
7399 
7400 /*
7401  * Allows a process access to the xVM(5) control devices for
7402  * managing guest domains and the hypervisor. This privilege is
7403  * used only if booted into xVM on x86 platforms.
7404  */
7405 
7406 
7407 
7408 /*
7409  * Privilege set names
7410  */
7411 /*
7412  * Set of privileges currently in effect.
7413  */
7414 
7415 
7416 /*
7417  * Set of privileges that comes into effect on exec.
7418  */
7419 
7420 
7421 /*
7422  * Set of privileges that can be put into the effective set without
7423  * restriction.
7424  */
7425 
7426 
7427 /*
7428  * Set of privileges that determines the absolute upper bound of
7429  * privileges this process and its off-spring can obtain.
7430  */
7431 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
7432 
7433 
7434 
7435 
7436 
7437 typedef uint32_t priv_chunk_t;
7438 typedef struct priv_set priv_set_t;
7439 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
7440 /*
7441  * Userland type definitions.
7442  */
7443 
7444 typedef const char *priv_ptype_t;
7445 typedef const char *priv_t;
7446 
7447 
7448 
7449 /*
7450  * priv_op_t indicates a privilege operation type
7451  */
7452 typedef enum priv_op {
7453  PRIV_ON,
7454  PRIV_OFF,
7455  PRIV_SET
7456 } priv_op_t;
7457 
7458 /*
7459  * Privilege system call subcodes.
7460  */
7461 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
7462 /*
7463  * Maximum length of a user defined privilege name.
7464  */
7465 
7466 
7467 /*
7468  * Privilege interface functions for those parts of the kernel that
7469  * know nothing of the privilege internals.
7470  *
7471  * A privilege implementation can have a varying number of sets; sets
7472  * consist of a number of priv_chunk_t's and the size is expressed as such.
7473  * The privileges can be represented as
7474  *
7475  *		priv_chunk_t privs[info.priv_nsets][info.priv_setsize]
7476  *		... priv_infosize of extra information ...
7477  *
7478  * Extra data contained in the privilege information consists of chunks
7479  * of data with specified size and type all headed by a priv_info_t header
7480  * which defines both the type of information as well as the size of the
7481  * information.  ((char*)&info)+info->priv_info_size should be rounded up
7482  * to point to the next piece of information.
7483  */
7484 
7485 typedef struct priv_impl_info {
7486  uint32_t priv_headersize; /* sizeof (priv_impl_info) */
7487  uint32_t priv_flags; /* additional flags */
7488  uint32_t priv_nsets; /* number of priv sets */
7489  uint32_t priv_setsize; /* size in priv_chunk_t */
7490  uint32_t priv_max; /* highest actual valid priv */
7491  uint32_t priv_infosize; /* Per proc. additional info */
7492  uint32_t priv_globalinfosize; /* Per system info */
7493 } priv_impl_info_t;
7494 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
7495 /*
7496  * Per credential flags.
7497  */
7498 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
7499 /* user-settable flags: */
7500 
7501 
7502 
7503 /*
7504  * Header of the privilege info data structure; multiple structures can
7505  * follow the privilege sets and priv_impl_info structures.
7506  */
7507 typedef struct priv_info {
7508  uint32_t priv_info_type;
7509  uint32_t priv_info_size;
7510 } priv_info_t;
7511 
7512 typedef struct priv_info_uint {
7513  priv_info_t info;
7514  uint_t val;
7515 } priv_info_uint_t;
7516 
7517 /*
7518  * Global privilege set information item; the actual size of the array is
7519  * {priv_setsize}.
7520  */
7521 typedef struct priv_info_set {
7522  priv_info_t info;
7523  priv_chunk_t set[1];
7524 } priv_info_set_t;
7525 
7526 /*
7527  * names[1] is a place holder which can contain multiple NUL terminated,
7528  * non-empty strings.
7529  */
7530 
7531 typedef struct priv_info_names {
7532  priv_info_t info;
7533  int cnt; /* number of strings */
7534  char names[1]; /* "string1\0string2\0 ..stringN\0" */
7535 } priv_info_names_t;
7536 
7537 /*
7538  * Privilege information types.
7539  */
7540 
7541 
7542 
7543 
7544 
7545 /*
7546  * Special "privileges" used to indicate special conditions in privilege
7547  * debugging/tracing code.
7548  */
7549 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h" 2
7550 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h"
7551 /*
7552  * library functions prototype.
7553  */
7554 
7555 extern int setppriv(priv_op_t, priv_ptype_t, const priv_set_t *);
7556 extern int getppriv(priv_ptype_t, priv_set_t *);
7557 extern int setpflags(uint_t, uint_t);
7558 extern uint_t getpflags(uint_t);
7559 extern const priv_impl_info_t *getprivimplinfo(void);
7560 
7561 extern int priv_set(priv_op_t, priv_ptype_t, ...);
7562 extern boolean_t priv_ineffect(const char *);
7563 extern priv_set_t *priv_str_to_set(const char *, const char *, const char **);
7564 extern char *priv_set_to_str(const priv_set_t *, char, int);
7565 
7566 extern int priv_getbyname(const char *);
7567 extern const char *priv_getbynum(int);
7568 extern int priv_getsetbyname(const char *);
7569 extern const char *priv_getsetbynum(int);
7570 extern char *priv_gettext(const char *);
7571 
7572 extern priv_set_t *priv_allocset(void);
7573 extern void priv_freeset(priv_set_t *);
7574 
7575 extern void priv_emptyset(priv_set_t *);
7576 extern void priv_basicset(priv_set_t *);
7577 extern void priv_fillset(priv_set_t *);
7578 extern boolean_t priv_isemptyset(const priv_set_t *);
7579 extern boolean_t priv_isfullset(const priv_set_t *);
7580 extern boolean_t priv_isequalset(const priv_set_t *, const priv_set_t *);
7581 extern boolean_t priv_issubset(const priv_set_t *, const priv_set_t *);
7582 extern void priv_intersect(const priv_set_t *, priv_set_t *);
7583 extern void priv_union(const priv_set_t *, priv_set_t *);
7584 extern void priv_inverse(priv_set_t *);
7585 extern int priv_addset(priv_set_t *, const char *);
7586 extern void priv_copyset(const priv_set_t *, priv_set_t *);
7587 extern int priv_delset(priv_set_t *, const char *);
7588 extern boolean_t priv_ismember(const priv_set_t *, const char *);
7589 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
7590 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
7591 /*
7592  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7593  * Use is subject to license terms.
7594  *
7595  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
7596  */
7597 /*
7598  * Copyright (c) 1982, 1986 Regents of the University of California.
7599  * All rights reserved.
7600  *
7601  * Redistribution and use in source and binary forms are permitted
7602  * provided that this notice is preserved and that due credit is given
7603  * to the University of California at Berkeley. The name of the University
7604  * may not be used to endorse or promote products derived from this
7605  * software without specific prior written permission. This software
7606  * is provided ``as is'' without express or implied warranty.
7607  */
7608 
7609 /*
7610  * Constants and structures defined by the internet system,
7611  * according to following documents
7612  *
7613  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
7614  *	http://www.iana.org/assignments/protocol-numbers
7615  *	http://www.iana.org/assignments/port-numbers
7616  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
7617  *
7618  */
7619 
7620 
7621 
7622 
7623 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7624 /*
7625  * CDDL HEADER START
7626  *
7627  * The contents of this file are subject to the terms of the
7628  * Common Development and Distribution License (the "License").
7629  * You may not use this file except in compliance with the License.
7630  *
7631  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7632  * or http://www.opensolaris.org/os/licensing.
7633  * See the License for the specific language governing permissions
7634  * and limitations under the License.
7635  *
7636  * When distributing Covered Code, include this CDDL HEADER in each
7637  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7638  * If applicable, add the following below this CDDL HEADER, with the
7639  * fields enclosed by brackets "[]" replaced with your own identifying
7640  * information: Portions Copyright [yyyy] [name of copyright owner]
7641  *
7642  * CDDL HEADER END
7643  */
7644 
7645 /*
7646  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7647  * Copyright 2016 Joyent, Inc.
7648  *
7649  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7650  * Use is subject to license terms.
7651  */
7652 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
7653 
7654 
7655 
7656 
7657 
7658 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7659 /*
7660  * CDDL HEADER START
7661  *
7662  * The contents of this file are subject to the terms of the
7663  * Common Development and Distribution License (the "License").
7664  * You may not use this file except in compliance with the License.
7665  *
7666  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7667  * or http://www.opensolaris.org/os/licensing.
7668  * See the License for the specific language governing permissions
7669  * and limitations under the License.
7670  *
7671  * When distributing Covered Code, include this CDDL HEADER in each
7672  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7673  * If applicable, add the following below this CDDL HEADER, with the
7674  * fields enclosed by brackets "[]" replaced with your own identifying
7675  * information: Portions Copyright [yyyy] [name of copyright owner]
7676  *
7677  * CDDL HEADER END
7678  */
7679 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7680 /*	  All Rights Reserved  	*/
7681 
7682 
7683 /*
7684  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7685  * Use is subject to license terms.
7686  *
7687  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7688  * Copyright 2016 Joyent, Inc.
7689  */
7690 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
7691 
7692 
7693 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
7694 /*
7695  * CDDL HEADER START
7696  *
7697  * The contents of this file are subject to the terms of the
7698  * Common Development and Distribution License (the "License").
7699  * You may not use this file except in compliance with the License.
7700  *
7701  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7702  * or http://www.opensolaris.org/os/licensing.
7703  * See the License for the specific language governing permissions
7704  * and limitations under the License.
7705  *
7706  * When distributing Covered Code, include this CDDL HEADER in each
7707  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7708  * If applicable, add the following below this CDDL HEADER, with the
7709  * fields enclosed by brackets "[]" replaced with your own identifying
7710  * information: Portions Copyright [yyyy] [name of copyright owner]
7711  *
7712  * CDDL HEADER END
7713  */
7714 /*
7715  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7716  * Use is subject to license terms.
7717  */
7718 
7719 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
7720 /*	  All Rights Reserved	*/
7721 
7722 /*
7723  * Portions of this source code were derived from Berkeley 4.3 BSD
7724  * under license from the Regents of the University of California.
7725  */
7726 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h"
7727 typedef uint16_t sa_family_t;
7728 
7729 
7730 /*
7731  * Structure used by kernel to store most
7732  * addresses.
7733  */
7734 struct sockaddr {
7735  sa_family_t sa_family; /* address family */
7736  char sa_data[14]; /* up to 14 bytes of direct address */
7737 };
7738 
7739 
7740 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1
7741 /*
7742  * CDDL HEADER START
7743  *
7744  * The contents of this file are subject to the terms of the
7745  * Common Development and Distribution License (the "License").
7746  * You may not use this file except in compliance with the License.
7747  *
7748  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7749  * or http://www.opensolaris.org/os/licensing.
7750  * See the License for the specific language governing permissions
7751  * and limitations under the License.
7752  *
7753  * When distributing Covered Code, include this CDDL HEADER in each
7754  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7755  * If applicable, add the following below this CDDL HEADER, with the
7756  * fields enclosed by brackets "[]" replaced with your own identifying
7757  * information: Portions Copyright [yyyy] [name of copyright owner]
7758  *
7759  * CDDL HEADER END
7760  */
7761 /*
7762  * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
7763  */
7764 
7765 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
7766 /*	  All Rights Reserved  	*/
7767 
7768 /*
7769  * University Copyright- Copyright (c) 1982, 1986, 1988
7770  * The Regents of the University of California
7771  * All Rights Reserved
7772  *
7773  * University Acknowledgment- Portions of this document are derived from
7774  * software developed by the University of California, Berkeley, and its
7775  * contributors.
7776  */
7777 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
7778 /*
7779  * Definitions for UNIX IPC domain.
7780  */
7781 struct sockaddr_un {
7782  sa_family_t sun_family; /* AF_UNIX */
7783  char sun_path[108]; /* path name (gag) */
7784 };
7785 
7786 
7787 
7788 /*
7789  * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to
7790  * change.
7791  *
7792  * Also, include a strlen() prototype, and we have to protect it w.r.t.
7793  * UNIX{98,03}.  And because there's strlen, we need size_t as well.
7794  */
7795 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
7796 extern size_t strlen(const char *);
7797 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
7798 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1
7799 /*
7800  * Copyright 1993-2003 Sun Microsystems, Inc.  All rights reserved.
7801  * Use is subject to license terms.
7802  */
7803 /*
7804  * Copyright (c) 1990, 1993
7805  *	The Regents of the University of California.  All rights reserved.
7806  *
7807  * Redistribution and use in source and binary forms, with or without
7808  * modification, are permitted provided that the following conditions
7809  * are met:
7810  * 1. Redistributions of source code must retain the above copyright
7811  *    notice, this list of conditions and the following disclaimer.
7812  * 2. Redistributions in binary form must reproduce the above copyright
7813  *    notice, this list of conditions and the following disclaimer in the
7814  *    documentation and/or other materials provided with the distribution.
7815  * 3. All advertising materials mentioning features or use of this software
7816  *    must display the following acknowledgement:
7817  *	This product includes software developed by the University of
7818  *	California, Berkeley and its contributors.
7819  * 4. Neither the name of the University nor the names of its contributors
7820  *    may be used to endorse or promote products derived from this software
7821  *    without specific prior written permission.
7822  *
7823  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
7824  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
7825  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
7826  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
7827  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
7828  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
7829  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
7830  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
7831  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
7832  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
7833  * SUCH DAMAGE.
7834  */
7835 
7836 
7837 
7838 
7839 #pragma ident "%Z%%M%	%I%	%E% SMI"
7840 /* from UCB 8.1 (Berkeley) 6/10/93 */
7841 
7842 
7843 
7844 
7845 
7846 /*
7847  * A Link-Level Sockaddr may specify the interface in one of two
7848  * ways: either by means of a system-provided index number (computed
7849  * anew and possibly differently on every reboot), or by a human-readable
7850  * string such as "il0" (for managerial convenience).
7851  *
7852  * Census taking actions, such as something akin to SIOCGCONF would return
7853  * both the index and the human name.
7854  *
7855  * High volume transactions (such as giving a link-level ``from'' address
7856  * in a recvfrom or recvmsg call) may be likely only to provide the indexed
7857  * form, (which requires fewer copy operations and less space).
7858  *
7859  * The form and interpretation  of the link-level address is purely a matter
7860  * of convention between the device driver and its consumers; however, it is
7861  * expected that all drivers for an interface of a given if_type will agree.
7862  */
7863 
7864 /*
7865  * Structure of a Link-Level sockaddr:
7866  */
7867 struct sockaddr_dl {
7868  ushort_t sdl_family; /* AF_LINK */
7869  ushort_t sdl_index; /* if != 0, system given index for interface */
7870  uchar_t sdl_type; /* interface type */
7871  uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */
7872  uchar_t sdl_alen; /* link level address length */
7873  uchar_t sdl_slen; /* link layer selector length */
7874  char sdl_data[244]; /* contains both if name and ll address */
7875 };
7876 
7877 
7878 
7879 
7880 extern char *_link_ntoa(const unsigned char *, char *, int, int);
7881 extern unsigned char *_link_aton(const char *, int *);
7882 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
7883 
7884 
7885 
7886 /*
7887  * sockaddr_storage:
7888  * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr
7889  * structures. Has sufficient size and alignment for those sockaddrs.
7890  */
7891 
7892 /*
7893  * Desired maximum size, alignment size and related types.
7894  */
7895 
7896 
7897 /*
7898  * To represent desired sockaddr max alignment for platform, a
7899  * type is chosen which may depend on implementation platform architecture.
7900  * Type chosen based on alignment size restrictions from <sys/isa_defs.h>.
7901  * We desire to force up to (but no more than) 64-bit (8 byte) alignment,
7902  * on platforms where it is possible to do so. (e.g not possible on ia32).
7903  * For all currently supported platforms by our implementation
7904  * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64)
7905  * type "double" is suitable for that intent.
7906  *
7907  * Note: Type "double" is chosen over the more obvious integer type int64_t.
7908  *   int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32.
7909  */
7910 typedef double sockaddr_maxalign_t;
7911 
7912 
7913 
7914 /*
7915  * Definitions used for sockaddr_storage structure paddings design.
7916  */
7917 
7918 
7919 
7920 
7921 struct sockaddr_storage {
7922  sa_family_t ss_family; /* Address family */
7923  /* Following fields are implementation specific */
7924  char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))];
7925  sockaddr_maxalign_t _ss_align;
7926  char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))];
7927 };
7928 
7929 
7930 /*
7931  * To be compatible with the Linux interfaces used, this structure is
7932  * placed in socket_impl.h so that an include for <sys/socket.h> will
7933  * pickup this structure. This structure is for use with PF_PACKET
7934  * sockets.
7935  */
7936 struct sockaddr_ll {
7937  uint16_t sll_family;
7938  uint16_t sll_protocol;
7939  int32_t sll_ifindex;
7940  uint16_t sll_hatype;
7941  uint8_t sll_pkttype;
7942  uint8_t sll_halen;
7943  uint8_t sll_addr[8];
7944 };
7945 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
7946 
7947 
7948 
7949 
7950 
7951 /*
7952  * The socklen definitions are reproduced here from sys/socket.h so as to
7953  * not introduce that namespace into existing users of netinet/in.h.
7954  */
7955 
7956 
7957 
7958 typedef uint32_t socklen_t;
7959 
7960 
7961 
7962 
7963 
7964 typedef void *Psocklen_t;
7965 
7966 
7967 
7968 
7969 
7970 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1
7971 /*
7972  * CDDL HEADER START
7973  *
7974  * The contents of this file are subject to the terms of the
7975  * Common Development and Distribution License (the "License").
7976  * You may not use this file except in compliance with the License.
7977  *
7978  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7979  * or http://www.opensolaris.org/os/licensing.
7980  * See the License for the specific language governing permissions
7981  * and limitations under the License.
7982  *
7983  * When distributing Covered Code, include this CDDL HEADER in each
7984  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7985  * If applicable, add the following below this CDDL HEADER, with the
7986  * fields enclosed by brackets "[]" replaced with your own identifying
7987  * information: Portions Copyright [yyyy] [name of copyright owner]
7988  *
7989  * CDDL HEADER END
7990  */
7991 /*
7992  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7993  * Use is subject to license terms.
7994  */
7995 
7996 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7997 /*	  All Rights Reserved  	*/
7998 
7999 
8000 
8001 
8002 
8003 /*
8004  * For source compatibility
8005  */
8006 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
8007 /*
8008  * CDDL HEADER START
8009  *
8010  * The contents of this file are subject to the terms of the
8011  * Common Development and Distribution License (the "License").
8012  * You may not use this file except in compliance with the License.
8013  *
8014  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8015  * or http://www.opensolaris.org/os/licensing.
8016  * See the License for the specific language governing permissions
8017  * and limitations under the License.
8018  *
8019  *
8020  * When distributing Covered Code, include this CDDL HEADER in each
8021  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8022  * If applicable, add the following below this CDDL HEADER, with the
8023  * fields enclosed by brackets "[]" replaced with your own identifying
8024  * information: Portions Copyright [yyyy] [name of copyright owner]
8025  *
8026  * CDDL HEADER END
8027  */
8028 
8029 /*
8030  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
8031  * Use is subject to license terms.
8032  * Copyright 2016 Joyent, Inc.
8033  */
8034 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
8035 
8036 
8037 
8038 
8039 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1
8040 /*
8041  * CDDL HEADER START
8042  *
8043  * The contents of this file are subject to the terms of the
8044  * Common Development and Distribution License, Version 1.0 only
8045  * (the "License").  You may not use this file except in compliance
8046  * with the License.
8047  *
8048  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8049  * or http://www.opensolaris.org/os/licensing.
8050  * See the License for the specific language governing permissions
8051  * and limitations under the License.
8052  *
8053  * When distributing Covered Code, include this CDDL HEADER in each
8054  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8055  * If applicable, add the following below this CDDL HEADER, with the
8056  * fields enclosed by brackets "[]" replaced with your own identifying
8057  * information: Portions Copyright [yyyy] [name of copyright owner]
8058  *
8059  * CDDL HEADER END
8060  */
8061 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8062 /*	  All Rights Reserved  	*/
8063 
8064 
8065 /*
8066  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8067  *
8068  * Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
8069  * All rights reserved.
8070  */
8071 
8072 /*
8073  * Copyright 2015, Joyent, Inc.
8074  */
8075 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
8076 /*
8077  * Structure of file descriptor/event pairs supplied in
8078  * the poll arrays.
8079  */
8080 typedef struct pollfd {
8081  int fd; /* file desc to poll */
8082  short events; /* events of interest on fd */
8083  short revents; /* events that occurred on fd */
8084 } pollfd_t;
8085 
8086 typedef unsigned long nfds_t;
8087 
8088 /*
8089  * Testable select events
8090  */
8091 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
8092 /*
8093  * Non-testable poll events (may not be specified in events field,
8094  * but may be returned in revents field).
8095  */
8096 
8097 
8098 
8099 
8100 /*
8101  * These events will never be specified in revents, but may be specified in
8102  * events to control /dev/poll behavior.
8103  */
8104 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
8105 int poll(struct pollfd *, nfds_t, int);
8106 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
8107 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1
8108 /*
8109  * CDDL HEADER START
8110  *
8111  * The contents of this file are subject to the terms of the
8112  * Common Development and Distribution License, Version 1.0 only
8113  * (the "License").  You may not use this file except in compliance
8114  * with the License.
8115  *
8116  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8117  * or http://www.opensolaris.org/os/licensing.
8118  * See the License for the specific language governing permissions
8119  * and limitations under the License.
8120  *
8121  * When distributing Covered Code, include this CDDL HEADER in each
8122  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8123  * If applicable, add the following below this CDDL HEADER, with the
8124  * fields enclosed by brackets "[]" replaced with your own identifying
8125  * information: Portions Copyright [yyyy] [name of copyright owner]
8126  *
8127  * CDDL HEADER END
8128  */
8129 /*
8130  * Copyright (c) 1997-1998 by Sun Microsystems, Inc.
8131  * All rights reserved.
8132  */
8133 
8134 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8135 /*	  All Rights Reserved  	*/
8136 
8137 
8138 
8139 
8140 
8141 #pragma ident "%Z%%M%	%I%	%E% SMI"
8142 
8143 
8144 
8145 
8146 
8147 /*
8148  * This file contains all machine-dependent declarations
8149  * in STREAMS.
8150  */
8151 
8152 /*
8153  * Copy data from one data buffer to another.
8154  * The addresses must be word aligned - if not, use bcopy!
8155  */
8156 
8157 
8158 /*
8159  * save the address of the calling function on the 3b2 to
8160  * enable tracking of who is allocating message blocks
8161  */
8162 
8163 
8164 /*
8165  * macro to check pointer alignment
8166  * (true if alignment is sufficient for worst case)
8167  */
8168 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
8169 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
8170 /*
8171  * CDDL HEADER START
8172  *
8173  * The contents of this file are subject to the terms of the
8174  * Common Development and Distribution License (the "License").
8175  * You may not use this file except in compliance with the License.
8176  *
8177  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8178  * or http://www.opensolaris.org/os/licensing.
8179  * See the License for the specific language governing permissions
8180  * and limitations under the License.
8181  *
8182  * When distributing Covered Code, include this CDDL HEADER in each
8183  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8184  * If applicable, add the following below this CDDL HEADER, with the
8185  * fields enclosed by brackets "[]" replaced with your own identifying
8186  * information: Portions Copyright [yyyy] [name of copyright owner]
8187  *
8188  * CDDL HEADER END
8189  */
8190 /*
8191  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8192  * Use is subject to license terms.
8193  */
8194 
8195 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
8196 /*	  All Rights Reserved  	*/
8197 
8198 /*
8199  * Portions of this source code were derived from Berkeley 4.3 BSD
8200  * under license from the Regents of the University of California.
8201  */
8202 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
8203 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
8204 /*
8205  * CDDL HEADER START
8206  *
8207  * The contents of this file are subject to the terms of the
8208  * Common Development and Distribution License, Version 1.0 only
8209  * (the "License").  You may not use this file except in compliance
8210  * with the License.
8211  *
8212  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8213  * or http://www.opensolaris.org/os/licensing.
8214  * See the License for the specific language governing permissions
8215  * and limitations under the License.
8216  *
8217  * When distributing Covered Code, include this CDDL HEADER in each
8218  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8219  * If applicable, add the following below this CDDL HEADER, with the
8220  * fields enclosed by brackets "[]" replaced with your own identifying
8221  * information: Portions Copyright [yyyy] [name of copyright owner]
8222  *
8223  * CDDL HEADER END
8224  */
8225 /*
8226  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
8227  * All rights reserved.
8228  */
8229 
8230 /*
8231  * t_lock.h:	Prototypes for disp_locks, plus include files
8232  *		that describe the interfaces to kernel synch.
8233  *		objects.
8234  */
8235 
8236 
8237 
8238 
8239 #pragma ident "%Z%%M%	%I%	%E% SMI"
8240 
8241 
8242 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1
8243 /*
8244  * CDDL HEADER START
8245  *
8246  * The contents of this file are subject to the terms of the
8247  * Common Development and Distribution License (the "License").
8248  * You may not use this file except in compliance with the License.
8249  *
8250  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8251  * or http://www.opensolaris.org/os/licensing.
8252  * See the License for the specific language governing permissions
8253  * and limitations under the License.
8254  *
8255  * When distributing Covered Code, include this CDDL HEADER in each
8256  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8257  * If applicable, add the following below this CDDL HEADER, with the
8258  * fields enclosed by brackets "[]" replaced with your own identifying
8259  * information: Portions Copyright [yyyy] [name of copyright owner]
8260  *
8261  * CDDL HEADER END
8262  */
8263 /*
8264  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
8265  * Use is subject to license terms.
8266  * Copyright 2016 Joyent, Inc.
8267  */
8268 
8269 
8270 
8271 
8272 #pragma ident "%Z%%M%	%I%	%E% SMI"
8273 
8274 
8275 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8276 /*
8277  * CDDL HEADER START
8278  *
8279  * The contents of this file are subject to the terms of the
8280  * Common Development and Distribution License (the "License").
8281  * You may not use this file except in compliance with the License.
8282  *
8283  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8284  * or http://www.opensolaris.org/os/licensing.
8285  * See the License for the specific language governing permissions
8286  * and limitations under the License.
8287  *
8288  * When distributing Covered Code, include this CDDL HEADER in each
8289  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8290  * If applicable, add the following below this CDDL HEADER, with the
8291  * fields enclosed by brackets "[]" replaced with your own identifying
8292  * information: Portions Copyright [yyyy] [name of copyright owner]
8293  *
8294  * CDDL HEADER END
8295  */
8296 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8297 /*	  All Rights Reserved  	*/
8298 
8299 
8300 /*
8301  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8302  * Use is subject to license terms.
8303  *
8304  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8305  * Copyright 2016 Joyent, Inc.
8306  */
8307 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
8308 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
8309 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8310 /*	  All Rights Reserved  	*/
8311 
8312 
8313 /*
8314  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
8315  * All rights reserved.  The Berkeley software License Agreement
8316  * specifies the terms and conditions for redistribution.
8317  */
8318 
8319 /*
8320  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8321  *
8322  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8323  * Use is subject to license terms.
8324  *
8325  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8326  */
8327 
8328 /*
8329  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
8330  */
8331 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
8332 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
8333 typedef lock_t disp_lock_t; /* dispatcher lock type */
8334 
8335 /*
8336  * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or
8337  * an adaptive mutex, depending on what interrupt levels use it.
8338  */
8339 
8340 
8341 /*
8342  * Macro to control loops which spin on a lock and then check state
8343  * periodically.  Its passed an integer, and returns a boolean value
8344  * that if true indicates its a good time to get the scheduler lock and
8345  * check the state of the current owner of the lock.
8346  */
8347 
8348 
8349 /*
8350  * Externs for CLOCK_LOCK and clock resolution
8351  */
8352 extern volatile uint32_t hres_lock;
8353 extern hrtime_t hrtime_base;
8354 extern int clock_res;
8355 
8356 
8357 
8358 /*
8359  * The definitions of the symbolic interrupt levels:
8360  *
8361  *   CLOCK_LEVEL =>  The level at which one must be to block the clock.
8362  *
8363  *   LOCK_LEVEL  =>  The highest level at which one may block (and thus the
8364  *                   highest level at which one may acquire adaptive locks)
8365  *                   Also the highest level at which one may be preempted.
8366  *
8367  *   DISP_LEVEL  =>  The level at which one must be to perform dispatcher
8368  *                   operations.
8369  *
8370  * The constraints on the platform:
8371  *
8372  *  - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL
8373  *  - LOCK_LEVEL must be less than DISP_LEVEL
8374  *  - DISP_LEVEL should be as close to LOCK_LEVEL as possible
8375  *
8376  * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal;
8377  * changing this relationship is probably possible but not advised.
8378  *
8379  */
8380 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
8381 /*
8382  * The following mask is for the cpu_intr_actv bits corresponding to
8383  * high-level PILs. It should equal:
8384  * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1)
8385  */
8386 
8387 
8388 /*
8389  * The semaphore code depends on being able to represent a lock plus
8390  * owner in a single 32-bit word.  (Mutexes used to have a similar
8391  * dependency, but no longer.)  Thus the owner must contain at most
8392  * 24 significant bits.  At present only threads and semaphores
8393  * must be aware of this vile constraint.  Different ISAs may handle this
8394  * differently depending on their capabilities (e.g. compare-and-swap)
8395  * and limitations (e.g. constraints on alignment and/or KERNELBASE).
8396  */
8397 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
8398 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
8399 /*
8400  * CDDL HEADER START
8401  *
8402  * The contents of this file are subject to the terms of the
8403  * Common Development and Distribution License (the "License").
8404  * You may not use this file except in compliance with the License.
8405  *
8406  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8407  * or http://www.opensolaris.org/os/licensing.
8408  * See the License for the specific language governing permissions
8409  * and limitations under the License.
8410  *
8411  * When distributing Covered Code, include this CDDL HEADER in each
8412  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8413  * If applicable, add the following below this CDDL HEADER, with the
8414  * fields enclosed by brackets "[]" replaced with your own identifying
8415  * information: Portions Copyright [yyyy] [name of copyright owner]
8416  *
8417  * CDDL HEADER END
8418  */
8419 
8420 /*
8421  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
8422  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
8423  */
8424 
8425 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
8426 /*	  All Rights Reserved  	*/
8427 
8428 /*
8429  * University Copyright- Copyright (c) 1982, 1986, 1988
8430  * The Regents of the University of California
8431  * All Rights Reserved
8432  *
8433  * University Acknowledgment- Portions of this document are derived from
8434  * software developed by the University of California, Berkeley, and its
8435  * contributors.
8436  */
8437 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
8438 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
8439 /*
8440  * CDDL HEADER START
8441  *
8442  * The contents of this file are subject to the terms of the
8443  * Common Development and Distribution License (the "License").
8444  * You may not use this file except in compliance with the License.
8445  *
8446  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8447  * or http://www.opensolaris.org/os/licensing.
8448  * See the License for the specific language governing permissions
8449  * and limitations under the License.
8450  *
8451  * When distributing Covered Code, include this CDDL HEADER in each
8452  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8453  * If applicable, add the following below this CDDL HEADER, with the
8454  * fields enclosed by brackets "[]" replaced with your own identifying
8455  * information: Portions Copyright [yyyy] [name of copyright owner]
8456  *
8457  * CDDL HEADER END
8458  */
8459 /*
8460  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
8461  */
8462 
8463 
8464 
8465 
8466 
8467 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8468 /*
8469  * CDDL HEADER START
8470  *
8471  * The contents of this file are subject to the terms of the
8472  * Common Development and Distribution License (the "License").
8473  * You may not use this file except in compliance with the License.
8474  *
8475  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8476  * or http://www.opensolaris.org/os/licensing.
8477  * See the License for the specific language governing permissions
8478  * and limitations under the License.
8479  *
8480  * When distributing Covered Code, include this CDDL HEADER in each
8481  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8482  * If applicable, add the following below this CDDL HEADER, with the
8483  * fields enclosed by brackets "[]" replaced with your own identifying
8484  * information: Portions Copyright [yyyy] [name of copyright owner]
8485  *
8486  * CDDL HEADER END
8487  */
8488 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8489 /*	  All Rights Reserved  	*/
8490 
8491 
8492 /*
8493  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8494  * Use is subject to license terms.
8495  *
8496  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8497  * Copyright 2016 Joyent, Inc.
8498  */
8499 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2
8500 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h"
8501 /*
8502  * Public interface to mutual exclusion locks.  See mutex(9F) for details.
8503  *
8504  * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used
8505  * in almost all of the kernel.  MUTEX_SPIN provides interrupt blocking
8506  * and must be used in interrupt handlers above LOCK_LEVEL.  The iblock
8507  * cookie argument to mutex_init() encodes the interrupt level to block.
8508  * The iblock cookie must be NULL for adaptive locks.
8509  *
8510  * MUTEX_DEFAULT is the type usually specified (except in drivers) to
8511  * mutex_init().  It is identical to MUTEX_ADAPTIVE.
8512  *
8513  * MUTEX_DRIVER is always used by drivers.  mutex_init() converts this to
8514  * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie.
8515  *
8516  * Mutex statistics can be gathered on the fly, without rebooting or
8517  * recompiling the kernel, via the lockstat driver (lockstat(7D)).
8518  */
8519 typedef enum {
8520  MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */
8521  MUTEX_SPIN = 1, /* block interrupts and spin */
8522  MUTEX_DRIVER = 4, /* driver (DDI) mutex */
8523  MUTEX_DEFAULT = 6 /* kernel default mutex */
8524 } kmutex_type_t;
8525 
8526 typedef struct mutex {
8527 
8528  void *_opaque[1];
8529 
8530 
8531 
8532 } kmutex_t;
8533 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
8534 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1
8535 /*
8536  * CDDL HEADER START
8537  *
8538  * The contents of this file are subject to the terms of the
8539  * Common Development and Distribution License (the "License").
8540  * You may not use this file except in compliance with the License.
8541  *
8542  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8543  * or http://www.opensolaris.org/os/licensing.
8544  * See the License for the specific language governing permissions
8545  * and limitations under the License.
8546  *
8547  * When distributing Covered Code, include this CDDL HEADER in each
8548  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8549  * If applicable, add the following below this CDDL HEADER, with the
8550  * fields enclosed by brackets "[]" replaced with your own identifying
8551  * information: Portions Copyright [yyyy] [name of copyright owner]
8552  *
8553  * CDDL HEADER END
8554  */
8555 /*
8556  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
8557  * Use is subject to license terms.
8558  */
8559 
8560 /*
8561  * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
8562  */
8563 
8564 
8565 
8566 
8567 /*
8568  * Public interface to readers/writer locks.  See rwlock(9F) for details.
8569  */
8570 
8571 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8572 /*
8573  * CDDL HEADER START
8574  *
8575  * The contents of this file are subject to the terms of the
8576  * Common Development and Distribution License (the "License").
8577  * You may not use this file except in compliance with the License.
8578  *
8579  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8580  * or http://www.opensolaris.org/os/licensing.
8581  * See the License for the specific language governing permissions
8582  * and limitations under the License.
8583  *
8584  * When distributing Covered Code, include this CDDL HEADER in each
8585  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8586  * If applicable, add the following below this CDDL HEADER, with the
8587  * fields enclosed by brackets "[]" replaced with your own identifying
8588  * information: Portions Copyright [yyyy] [name of copyright owner]
8589  *
8590  * CDDL HEADER END
8591  */
8592 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8593 /*	  All Rights Reserved  	*/
8594 
8595 
8596 /*
8597  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8598  * Use is subject to license terms.
8599  *
8600  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8601  * Copyright 2016 Joyent, Inc.
8602  */
8603 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2
8604 
8605 
8606 
8607 
8608 
8609 
8610 
8611 typedef enum {
8612  RW_DRIVER = 2, /* driver (DDI) rwlock */
8613  RW_DEFAULT = 4 /* kernel default rwlock */
8614 } krw_type_t;
8615 
8616 typedef enum {
8617  RW_WRITER,
8618  RW_READER,
8619  RW_READER_STARVEWRITER
8620 } krw_t;
8621 
8622 typedef struct _krwlock {
8623  void *_opaque[1];
8624 } krwlock_t;
8625 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
8626 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1
8627 /*
8628  * CDDL HEADER START
8629  *
8630  * The contents of this file are subject to the terms of the
8631  * Common Development and Distribution License, Version 1.0 only
8632  * (the "License").  You may not use this file except in compliance
8633  * 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  * Copyright (c) 1993-1998 by Sun Microsystems, Inc.
8650  * All rights reserved.
8651  */
8652 
8653 
8654 
8655 
8656 #pragma ident "%Z%%M%	%I%	%E% SMI"
8657 
8658 /*
8659  * Public interface to semaphores.  See semaphore(9F) for details.
8660  */
8661 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h"
8662 typedef enum {
8663  SEMA_DEFAULT,
8664  SEMA_DRIVER
8665 } ksema_type_t;
8666 
8667 typedef struct _ksema {
8668  void * _opaque[2]; /* 2 words on 4 byte alignment */
8669 } ksema_t;
8670 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
8671 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1
8672 /*
8673  * CDDL HEADER START
8674  *
8675  * The contents of this file are subject to the terms of the
8676  * Common Development and Distribution License (the "License").
8677  * You may not use this file except in compliance with the License.
8678  *
8679  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8680  * or http://www.opensolaris.org/os/licensing.
8681  * See the License for the specific language governing permissions
8682  * and limitations under the License.
8683  *
8684  * When distributing Covered Code, include this CDDL HEADER in each
8685  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8686  * If applicable, add the following below this CDDL HEADER, with the
8687  * fields enclosed by brackets "[]" replaced with your own identifying
8688  * information: Portions Copyright [yyyy] [name of copyright owner]
8689  *
8690  * CDDL HEADER END
8691  */
8692 /*
8693  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8694  * Use is subject to license terms.
8695  */
8696 
8697 /*
8698  * Copyright (c) 2012 by Delphix. All rights reserved.
8699  */
8700 
8701 /*
8702  * condvar.h:
8703  *
8704  * definitions for thread synchronization primitives: condition variables
8705  * This is the public part of the interface to condition variables. The
8706  * private (implementation-specific) part is in <arch>/sys/condvar_impl.h.
8707  */
8708 
8709 
8710 
8711 
8712 
8713 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8714 /*
8715  * CDDL HEADER START
8716  *
8717  * The contents of this file are subject to the terms of the
8718  * Common Development and Distribution License (the "License").
8719  * You may not use this file except in compliance with the License.
8720  *
8721  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8722  * or http://www.opensolaris.org/os/licensing.
8723  * See the License for the specific language governing permissions
8724  * and limitations under the License.
8725  *
8726  * When distributing Covered Code, include this CDDL HEADER in each
8727  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8728  * If applicable, add the following below this CDDL HEADER, with the
8729  * fields enclosed by brackets "[]" replaced with your own identifying
8730  * information: Portions Copyright [yyyy] [name of copyright owner]
8731  *
8732  * CDDL HEADER END
8733  */
8734 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8735 /*	  All Rights Reserved  	*/
8736 
8737 
8738 /*
8739  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8740  * Use is subject to license terms.
8741  *
8742  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8743  * Copyright 2016 Joyent, Inc.
8744  */
8745 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
8746 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
8747 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8748 /*	  All Rights Reserved  	*/
8749 
8750 
8751 /*
8752  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
8753  * All rights reserved.  The Berkeley software License Agreement
8754  * specifies the terms and conditions for redistribution.
8755  */
8756 
8757 /*
8758  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8759  *
8760  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8761  * Use is subject to license terms.
8762  *
8763  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8764  */
8765 
8766 /*
8767  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
8768  */
8769 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
8770 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h"
8771 /*
8772  * Condtion variables.
8773  */
8774 
8775 typedef struct _kcondvar {
8776  ushort_t _opaque;
8777 } kcondvar_t;
8778 
8779 typedef enum {
8780  CV_DEFAULT,
8781  CV_DRIVER
8782 } kcv_type_t;
8783 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
8784 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h"
8785 /*
8786  * Mutual exclusion locks described in common/sys/mutex.h.
8787  *
8788  * Semaphores described in common/sys/semaphore.h.
8789  *
8790  * Readers/Writer locks described in common/sys/rwlock.h.
8791  *
8792  * Condition variables described in common/sys/condvar.h
8793  */
8794 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
8795 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1
8796 /*
8797  * CDDL HEADER START
8798  *
8799  * The contents of this file are subject to the terms of the
8800  * Common Development and Distribution License, Version 1.0 only
8801  * (the "License").  You may not use this file except in compliance
8802  * with the License.
8803  *
8804  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8805  * or http://www.opensolaris.org/os/licensing.
8806  * See the License for the specific language governing permissions
8807  * and limitations under the License.
8808  *
8809  * When distributing Covered Code, include this CDDL HEADER in each
8810  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8811  * If applicable, add the following below this CDDL HEADER, with the
8812  * fields enclosed by brackets "[]" replaced with your own identifying
8813  * information: Portions Copyright [yyyy] [name of copyright owner]
8814  *
8815  * CDDL HEADER END
8816  */
8817 /*
8818  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
8819  * Use is subject to license terms.
8820  */
8821 
8822 
8823 
8824 
8825 #pragma ident "%Z%%M%	%I%	%E% SMI"
8826 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
8827 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
8828 /*
8829  * CDDL HEADER START
8830  *
8831  * The contents of this file are subject to the terms of the
8832  * Common Development and Distribution License (the "License").
8833  * You may not use this file except in compliance with the License.
8834  *
8835  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8836  * or http://www.opensolaris.org/os/licensing.
8837  * See the License for the specific language governing permissions
8838  * and limitations under the License.
8839  *
8840  *
8841  * When distributing Covered Code, include this CDDL HEADER in each
8842  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8843  * If applicable, add the following below this CDDL HEADER, with the
8844  * fields enclosed by brackets "[]" replaced with your own identifying
8845  * information: Portions Copyright [yyyy] [name of copyright owner]
8846  *
8847  * CDDL HEADER END
8848  */
8849 
8850 /*
8851  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
8852  * Use is subject to license terms.
8853  * Copyright 2016 Joyent, Inc.
8854  */
8855 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2
8856 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
8857 /*
8858  * XXX	Ick.  This type needs to be visible outside the above guard because
8859  * the proc structure is visible outside the _KERNEL | _KMEMUSER guard.
8860  * If we can make proc internals less visible, (which we obviously should)
8861  * then this can be invisible too.
8862  */
8863 typedef unsigned int model_t;
8864 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
8865 
8866 
8867 
8868 
8869 
8870 /*
8871  * Data queue.
8872  *
8873  * NOTE: The *only* public fields are documented in queue(9S).
8874  *       Everything else is implementation-private.
8875  *
8876  * The locking rules for the queue_t structure are extremely subtle and vary
8877  * widely depending on the field in question.  As such, each field is
8878  * annotated according to the following legend:
8879  *
8880  *   Q9S: The field is documented in queue(9S) and may be accessed without
8881  *        locks by a STREAMS module when inside an entry point (e.g., put(9E)).
8882  *        However, no fields can be directly modified unless q_lock is held
8883  *        (which is not possible in a DDI compliant STREAMS module), with the
8884  *        following exceptions:
8885  *
8886  *	   - q_ptr: can be modified as per the rules of the STREAMS module.
8887  *		    The STREAMS framework ignores q_ptr and thus imposes *no*
8888  *		    locking rules on it.
8889  *         - q_qinfo: can be modified before qprocson().
8890  *
8891  *	   - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the
8892  *		    rules of the STREAMS module.  The STREAMS framework never
8893  *		    modifies these fields, and is tolerant of temporarily
8894  *		    stale field values.
8895  *
8896  *	  In general, the STREAMS framework employs one of the following
8897  *	  techniques to ensure STREAMS modules can safely access Q9S fields:
8898  *
8899  *	   - The field is only modified by the framework when the stream is
8900  *	     locked with strlock() (q_next).
8901  *
8902  *	   - The field is modified by the framework, but the modifies are
8903  *	     atomic, and temporarily stale values are harmless (q_count,
8904  *	     q_first, q_last).
8905  *
8906  *	   - The field is modified by the framework, but the field's visible
8907  *	     values are either constant or directly under the control
8908  *	     of the STREAMS module itself (q_flag).
8909  *
8910  *   QLK: The field must be accessed or modified under q_lock, except when
8911  *        the stream has been locked with strlock().  If multiple q_locks must
8912  *        be acquired, q_locks at higher addresses must be taken first.
8913  *
8914  *   STR: The field can be accessed without a lock, but must be modified under
8915  *	  strlock().
8916  *
8917  *   SQLK: The field must be accessed or modified under SQLOCK().
8918  *
8919  *   NOLK: The field can be accessed without a lock, but can only be modified
8920  *	   when the queue_t is not known to any other threads.
8921  *
8922  *   SVLK: The field must be accessed or modified under the service_queue lock.
8923  *         Note that service_lock must be taken after any needed q_locks,
8924  *	   and that no other lock should be taken while service_lock is held.
8925  *
8926  * In addition, it is always acceptable to modify a field that is not yet
8927  * known to any other threads -- and other special case exceptions exist in
8928  * the code.  Also, q_lock is used with q_wait to implement a stream head
8929  * monitor for reads and writes.
8930  */
8931 typedef struct queue {
8932  struct qinit *q_qinfo; /* Q9S: Q processing procedure  */
8933  struct msgb *q_first; /* Q9S: first message in Q	*/
8934  struct msgb *q_last; /* Q9S: last message in Q	*/
8935  struct queue *q_next; /* Q9S: next Q in stream	*/
8936  struct queue *q_link; /* SVLK: next Q for scheduling	*/
8937  void *q_ptr; /* Q9S: module-specific data	*/
8938  size_t q_count; /* Q9S: number of bytes on Q	*/
8939  uint_t q_flag; /* Q9S: Q state			*/
8940  ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */
8941  ssize_t q_maxpsz; /* Q9S: largest packet OK on Q	*/
8942  size_t q_hiwat; /* Q9S: Q high water mark	*/
8943  size_t q_lowat; /* Q9S: Q low water mark	*/
8944  struct qband *q_bandp; /* QLK: band flow information	*/
8945  kmutex_t q_lock; /* NOLK: structure lock		*/
8946  struct stdata *q_stream; /* NOLK: stream backpointer	*/
8947  struct syncq *q_syncq; /* NOLK: associated syncq 	*/
8948  unsigned char q_nband; /* QLK: number of bands		*/
8949  kcondvar_t q_wait; /* NOLK: read/write sleep CV	*/
8950  struct queue *q_nfsrv; /* STR: next Q with svc routine */
8951  ushort_t q_draining; /* QLK: Q is draining		*/
8952  short q_struiot; /* QLK: sync streams Q UIO mode	*/
8953  clock_t q_qtstamp; /* QLK: when Q was enabled	*/
8954  size_t q_mblkcnt; /* QLK: mblk count		*/
8955  uint_t q_syncqmsgs; /* QLK: syncq message count	*/
8956  size_t q_rwcnt; /* QLK: # threads in rwnext()	*/
8957  pri_t q_spri; /* QLK: Q scheduling priority	*/
8958 
8959  /*
8960 	 * Syncq scheduling
8961 	 */
8962  struct msgb *q_sqhead; /* QLK: first syncq message	*/
8963  struct msgb *q_sqtail; /* QLK: last syncq message 	*/
8964  struct queue *q_sqnext; /* SQLK: next Q on syncq list	*/
8965  struct queue *q_sqprev; /* SQLK: prev Q on syncq list 	*/
8966  uint_t q_sqflags; /* SQLK: syncq flags		*/
8967  clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */
8968 
8969  /*
8970 	 * NOLK: Reference to the queue's module's implementation
8971 	 * structure. This will be NULL for queues associated with drivers.
8972 	 */
8973  struct fmodsw_impl *q_fp;
8974 } queue_t;
8975 
8976 /*
8977  * Queue flags; unused flags not documented in queue(9S) can be recycled.
8978  */
8979 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
8980 /*	UNUSED		0x00000200	   was QHLIST			*/
8981 /* 	UNUSED 		0x00000400	   was QUNSAFE			*/
8982 
8983 
8984 
8985 
8986 
8987 
8988      /* all MT type flags		*/
8989 
8990 
8991 
8992 
8993 
8994 
8995 /*	UNUSED		0x00400000	   was QHOT			*/
8996 /*	UNUSED		0x00800000	   was QNEXTHOT			*/
8997 /* 	UNUSED		0x01000000	   was _QNEXTLESS		*/
8998 
8999 
9000 
9001 
9002      /* direct interface to/from sockfs */
9003 
9004 /* queue sqflags (protected by SQLOCK). */
9005 
9006 
9007      /* This is also noted by the	*/
9008      /* q_draining field, but this one is */
9009      /* protected by SQLOCK */
9010 
9011 /*
9012  * Structure that describes the separate information
9013  * for each priority band in the queue.
9014  */
9015 typedef struct qband {
9016  struct qband *qb_next; /* next band's info */
9017  size_t qb_count; /* number of bytes in band */
9018  struct msgb *qb_first; /* beginning of band's data */
9019  struct msgb *qb_last; /* end of band's data */
9020  size_t qb_hiwat; /* high water mark for band */
9021  size_t qb_lowat; /* low water mark for band */
9022  uint_t qb_flag; /* see below */
9023  size_t qb_mblkcnt; /* mblk counter for runaway msgs */
9024 } qband_t;
9025 
9026 /*
9027  * qband flags
9028  */
9029 
9030 
9031 
9032 
9033 /*
9034  * Maximum number of bands.
9035  */
9036 
9037 
9038 /*
9039  * Fields that can be manipulated through strqset() and strqget().
9040  */
9041 typedef enum qfields {
9042  QHIWAT = 0, /* q_hiwat or qb_hiwat */
9043  QLOWAT = 1, /* q_lowat or qb_lowat */
9044  QMAXPSZ = 2, /* q_maxpsz */
9045  QMINPSZ = 3, /* q_minpsz */
9046  QCOUNT = 4, /* q_count or qb_count */
9047  QFIRST = 5, /* q_first or qb_first */
9048  QLAST = 6, /* q_last or qb_last */
9049  QFLAG = 7, /* q_flag or qb_flag */
9050  QSTRUIOT = 8, /* q_struiot */
9051  QBAD = 9
9052 } qfields_t;
9053 
9054 /*
9055  * Module information structure
9056  */
9057 struct module_info {
9058  ushort_t mi_idnum; /* module id number */
9059  char *mi_idname; /* module name */
9060  ssize_t mi_minpsz; /* min packet size accepted */
9061  ssize_t mi_maxpsz; /* max packet size accepted */
9062  size_t mi_hiwat; /* hi-water mark */
9063  size_t mi_lowat; /* lo-water mark */
9064 };
9065 
9066 /*
9067  * queue information structure (with Synchronous STREAMS extensions)
9068  */
9069 struct qinit {
9070  int (*qi_putp)(); /* put procedure */
9071  int (*qi_srvp)(); /* service procedure */
9072  int (*qi_qopen)(); /* called on startup */
9073  int (*qi_qclose)(); /* called on finish */
9074  int (*qi_qadmin)(); /* for future use */
9075  struct module_info *qi_minfo; /* module information structure */
9076  struct module_stat *qi_mstat; /* module statistics structure */
9077  int (*qi_rwp)(); /* r/w procedure */
9078  int (*qi_infop)(); /* information procedure */
9079  int qi_struiot; /* stream uio type for struio() */
9080 };
9081 
9082 /*
9083  * Values for qi_struiot and q_struiot:
9084  */
9085 
9086 
9087 
9088 
9089 /*
9090  * Streamtab (used in cdevsw and fmodsw to point to module or driver)
9091  */
9092 struct streamtab {
9093  struct qinit *st_rdinit;
9094  struct qinit *st_wrinit;
9095  struct qinit *st_muxrinit;
9096  struct qinit *st_muxwinit;
9097 };
9098 
9099 /*
9100  * Structure sent to mux drivers to indicate a link.
9101  */
9102 struct linkblk {
9103  queue_t *l_qtop; /* lowest level write queue of upper stream */
9104     /* (set to NULL for persistent links) */
9105  queue_t *l_qbot; /* highest level write queue of lower stream */
9106  int l_index; /* index for lower stream. */
9107 };
9108 
9109 /*
9110  * Esballoc data buffer freeing routine
9111  */
9112 typedef struct free_rtn {
9113  void (*free_func)();
9114  caddr_t free_arg;
9115 } frtn_t;
9116 
9117 /*
9118  * Data block descriptor
9119  *
9120  * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields,
9121  * as described in datab(9S).  Everything else is implementation-private.
9122  */
9123 
9124 
9125 
9126 typedef struct datab {
9127  frtn_t *db_frtnp;
9128  unsigned char *db_base;
9129  unsigned char *db_lim;
9130  unsigned char db_ref;
9131  unsigned char db_type;
9132  unsigned char db_flags;
9133  unsigned char db_struioflag;
9134  pid_t db_cpid; /* cached pid, needs verification */
9135  void *db_cache; /* kmem cache descriptor */
9136  struct msgb *db_mblk;
9137  void (*db_free)(struct msgb *, struct datab *);
9138  void (*db_lastfree)(struct msgb *, struct datab *);
9139  intptr_t db_cksumstart;
9140  intptr_t db_cksumend;
9141  intptr_t db_cksumstuff;
9142  union {
9143   double enforce_alignment;
9144   unsigned char data[8];
9145   struct {
9146    union {
9147     uint32_t u32;
9148     uint16_t u16;
9149    } cksum_val; /* used to store calculated cksum */
9150    uint16_t flags;
9151    uint16_t pad;
9152   } cksum;
9153   /*
9154 		 * Union used for future extensions (pointer to data ?).
9155 		 */
9156  } db_struioun;
9157  struct fthdr *db_fthdr;
9158  cred_t *db_credp; /* credential */
9159 } dblk_t;
9160 
9161 
9162 
9163 
9164 /*
9165  * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>).
9166  */
9167 
9168 
9169 
9170 /*
9171  * Used by GLDv2 to store the TCI information.
9172  */
9173 
9174 
9175 /*
9176  * Message block descriptor
9177  */
9178 typedef struct msgb {
9179  struct msgb *b_next;
9180  struct msgb *b_prev;
9181  struct msgb *b_cont;
9182  unsigned char *b_rptr;
9183  unsigned char *b_wptr;
9184  struct datab *b_datap;
9185  unsigned char b_band;
9186  unsigned char b_tag;
9187  unsigned short b_flag;
9188  queue_t *b_queue; /* for sync queues */
9189 } mblk_t;
9190 
9191 /*
9192  * bcache descriptor
9193  */
9194 typedef struct bcache {
9195  kmutex_t mutex;
9196  struct kmem_cache *buffer_cache;
9197  struct kmem_cache *dblk_cache;
9198  int alloc;
9199  int destroy;
9200  size_t size;
9201  uint_t align;
9202 } bcache_t;
9203 
9204 /*
9205  * db_flags values (all implementation private!)
9206  */
9207 
9208 
9209 
9210 
9211 /*
9212  * db_struioflag values:
9213  */
9214 
9215 
9216 
9217 
9218 
9219 
9220 /*
9221  * Message flags.  These are interpreted by the stream head.
9222  */
9223 
9224 
9225     /* write side of stream */
9226 
9227 /*	UNUSED		0x08	   was MSGNOGET (can be recycled) */
9228 
9229 
9230 
9231 
9232 /*
9233  * Streams message types.
9234  */
9235 
9236 /*
9237  * Data and protocol messages (regular and priority)
9238  */
9239 
9240 
9241 
9242 
9243 /*
9244  * Control messages (regular and priority)
9245  */
9246 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
9247 /*
9248  * Control messages (high priority; go to head of queue)
9249  */
9250 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
9251 /*
9252  * Queue message class definitions.
9253  */
9254 
9255 
9256 
9257 /*
9258  *  IOCTL structure - this structure is the format of the M_IOCTL message type.
9259  */
9260 
9261 struct iocblk {
9262  int ioc_cmd; /* ioctl command type */
9263  cred_t *ioc_cr; /* full credentials */
9264  uint_t ioc_id; /* ioctl id */
9265  uint_t ioc_flag; /* see below */
9266  size_t ioc_count; /* count of bytes in data field */
9267  int ioc_rval; /* return value  */
9268  int ioc_error; /* error code */
9269 };
9270 # 501 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
9271 typedef struct iocblk *IOCP;
9272 
9273 /* {ioc,cp}_flags values */
9274 
9275 
9276 
9277 
9278 
9279 
9280 
9281 /*
9282  *	Is the ioctl data formatted for our native model?
9283  */
9284 
9285 
9286 
9287 /*
9288  * structure for the M_COPYIN and M_COPYOUT message types.
9289  */
9290 
9291 struct copyreq {
9292  int cq_cmd; /* ioctl command (from ioc_cmd) */
9293  cred_t *cq_cr; /* full credentials (from ioc_cmd) */
9294  uint_t cq_id; /* ioctl id (from ioc_id) */
9295  uint_t cq_flag; /* must be zero */
9296  mblk_t *cq_private; /* private state information */
9297  caddr_t cq_addr; /* address to copy data to/from */
9298  size_t cq_size; /* number of bytes to copy */
9299 };
9300 # 543 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
9301 /*
9302  * structure for the M_IOCDATA message type.
9303  */
9304 
9305 struct copyresp {
9306  int cp_cmd; /* ioctl command (from ioc_cmd) */
9307  cred_t *cp_cr; /* full credentials (from ioc_cmd) */
9308  uint_t cp_id; /* ioctl id (from ioc_id) */
9309  uint_t cp_flag; /* datamodel IOC_ flags; see above */
9310  mblk_t *cp_private; /* private state information */
9311  caddr_t cp_rval; /* status of request: 0 -> success */
9312      /* 		non-zero -> failure */
9313 };
9314 # 571 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
9315 /*
9316  * Since these structures are all intended to travel in the same message
9317  * at different stages of a STREAMS ioctl, this union is used to determine
9318  * the message size in strdoioctl().
9319  */
9320 union ioctypes {
9321  struct iocblk iocblk;
9322  struct copyreq copyreq;
9323  struct copyresp copyresp;
9324 };
9325 
9326 /*
9327  * Options structure for M_SETOPTS message.  This is sent upstream
9328  * by a module or driver to set stream head options.
9329  */
9330 struct stroptions {
9331  uint_t so_flags; /* options to set */
9332  short so_readopt; /* read option */
9333  ushort_t so_wroff; /* write offset */
9334  ssize_t so_minpsz; /* minimum read packet size */
9335  ssize_t so_maxpsz; /* maximum read packet size */
9336  size_t so_hiwat; /* read queue high water mark */
9337  size_t so_lowat; /* read queue low water mark */
9338  unsigned char so_band; /* band for water marks */
9339  ushort_t so_erropt; /* error option */
9340  ssize_t so_maxblk; /* maximum message block size */
9341  ushort_t so_copyopt; /* copy options (see stropts.h) */
9342  ushort_t so_tail; /* space available at the end */
9343 };
9344 
9345 /* flags for stream options set message */
9346 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
9347 /*
9348  * Miscellaneous parameters and flags.
9349  */
9350 
9351 /*
9352  * Values for stream flag in open to indicate module open, clone open,
9353  * and the return value for failure.
9354  */
9355 
9356 
9357 
9358 
9359 /*
9360  * Priority definitions for block allocation.
9361  */
9362 
9363 
9364 
9365 
9366 /*
9367  * Value for packet size that denotes infinity
9368  */
9369 
9370 
9371 /*
9372  * Flags for flushq()
9373  */
9374 
9375 
9376 
9377 /*
9378  * Flag for transparent ioctls
9379  */
9380 
9381 
9382 /*
9383  * Stream head default high/low water marks
9384  */
9385 
9386 
9387 
9388 /*
9389  * qwriter perimeter types
9390  */
9391 
9392 
9393 
9394 /*
9395  * Definitions of Streams macros and function interfaces.
9396  */
9397 
9398 /*
9399  * canenable - check if queue can be enabled by putq().
9400  */
9401 
9402 
9403 /*
9404  * Test if data block type is one of the data messages (i.e. not a control
9405  * message).
9406  */
9407 
9408 
9409 
9410 
9411 
9412 
9413 
9414 /*
9415  * Extract queue class of message block.
9416  */
9417 
9418 
9419 /*
9420  * Align address on next lower word boundary.
9421  */
9422 
9423 
9424 /*
9425  * Find the max size of data block.
9426  */
9427 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
9428 
9429 /*
9430  * Symbols such as htonl() are required to be exposed through this file,
9431  * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h>
9432  */
9433 
9434 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1
9435 /*
9436  * CDDL HEADER START
9437  *
9438  * The contents of this file are subject to the terms of the
9439  * Common Development and Distribution License (the "License").
9440  * You may not use this file except in compliance with the License.
9441  *
9442  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9443  * or http://www.opensolaris.org/os/licensing.
9444  * See the License for the specific language governing permissions
9445  * and limitations under the License.
9446  *
9447  * When distributing Covered Code, include this CDDL HEADER in each
9448  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9449  * If applicable, add the following below this CDDL HEADER, with the
9450  * fields enclosed by brackets "[]" replaced with your own identifying
9451  * information: Portions Copyright [yyyy] [name of copyright owner]
9452  *
9453  * CDDL HEADER END
9454  */
9455 
9456 /*
9457  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9458  * Use is subject to license terms.
9459  */
9460 
9461 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
9462 /*	  All Rights Reserved  	*/
9463 
9464 /*
9465  * University Copyright- Copyright (c) 1982, 1986, 1988
9466  * The Regents of the University of California
9467  * All Rights Reserved
9468  *
9469  * University Acknowledgment- Portions of this document are derived from
9470  * software developed by the University of California, Berkeley, and its
9471  * contributors.
9472  */
9473 
9474 
9475 
9476 
9477 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
9478 /*
9479  * CDDL HEADER START
9480  *
9481  * The contents of this file are subject to the terms of the
9482  * Common Development and Distribution License (the "License").
9483  * You may not use this file except in compliance with the License.
9484  *
9485  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9486  * or http://www.opensolaris.org/os/licensing.
9487  * See the License for the specific language governing permissions
9488  * and limitations under the License.
9489  *
9490  *
9491  * When distributing Covered Code, include this CDDL HEADER in each
9492  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9493  * If applicable, add the following below this CDDL HEADER, with the
9494  * fields enclosed by brackets "[]" replaced with your own identifying
9495  * information: Portions Copyright [yyyy] [name of copyright owner]
9496  *
9497  * CDDL HEADER END
9498  */
9499 
9500 /*
9501  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
9502  * Use is subject to license terms.
9503  * Copyright 2016 Joyent, Inc.
9504  */
9505 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
9506 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
9507 /*
9508  * CDDL HEADER START
9509  *
9510  * The contents of this file are subject to the terms of the
9511  * Common Development and Distribution License, Version 1.0 only
9512  * (the "License").  You may not use this file except in compliance
9513  * with the License.
9514  *
9515  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9516  * or http://www.opensolaris.org/os/licensing.
9517  * See the License for the specific language governing permissions
9518  * and limitations under the License.
9519  *
9520  * When distributing Covered Code, include this CDDL HEADER in each
9521  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9522  * If applicable, add the following below this CDDL HEADER, with the
9523  * fields enclosed by brackets "[]" replaced with your own identifying
9524  * information: Portions Copyright [yyyy] [name of copyright owner]
9525  *
9526  * CDDL HEADER END
9527  */
9528 /*
9529  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
9530  *
9531  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
9532  * Use is subject to license terms.
9533  */
9534 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
9535 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
9536 /*
9537  * macros for conversion between host and (internet) network byte order
9538  */
9539 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
9540 typedef uint16_t in_port_t;
9541 
9542 
9543 
9544 
9545 typedef uint32_t in_addr_t;
9546 
9547 
9548 
9549 extern uint32_t htonl(uint32_t);
9550 extern uint16_t htons(uint16_t);
9551 extern uint32_t ntohl(uint32_t);
9552 extern uint16_t ntohs(uint16_t);
9553 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
9554 extern uint64_t htonll(uint64_t);
9555 extern uint64_t ntohll(uint64_t);
9556 
9557 
9558 
9559 
9560 
9561 
9562 /*
9563  * Macros to reverse byte order
9564  */
9565 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
9566 /*
9567  * Macros to convert from a specific byte order to/from native byte order
9568  */
9569 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
9570 /*
9571  * Macros to read unaligned values from a specific byte order to
9572  * native byte order
9573  */
9574 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
9575 /*
9576  * Macros to write unaligned values from native byte order to a specific byte
9577  * order.
9578  */
9579 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
9580 
9581 
9582 
9583 
9584 
9585 
9586 
9587 /*
9588  * Note: IPv4 address data structures usage conventions.
9589  * The "in_addr_t" type below (required by Unix standards)
9590  * is NOT a typedef of "struct in_addr" and violates the usual
9591  * conventions where "struct <name>" and <name>_t are corresponding
9592  * typedefs.
9593  * To minimize confusion, kernel data structures/usage prefers use
9594  * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t"
9595  * The user level APIs continue to follow the historic popular
9596  * practice of using "struct in_addr".
9597  */
9598 
9599 
9600 
9601 
9602 
9603 
9604 
9605 typedef uint32_t ipaddr_t;
9606 
9607 
9608 
9609 
9610 struct in6_addr {
9611  union {
9612   /*
9613 		 * Note: Static initalizers of "union" type assume
9614 		 * the constant on the RHS is the type of the first member
9615 		 * of union.
9616 		 * To make static initializers (and efficient usage) work,
9617 		 * the order of members exposed to user and kernel view of
9618 		 * this data structure is different.
9619 		 * User environment sees specified uint8_t type as first
9620 		 * member whereas kernel sees most efficient type as
9621 		 * first member.
9622 		 */
9623 
9624 
9625 
9626 
9627   uint8_t _S6_u8[16]; /* IPv6 address */
9628   uint32_t _S6_u32[4]; /* IPv6 address */
9629 
9630   uint32_t __S6_align; /* Align on 32 bit boundary */
9631  } _S6_un;
9632 };
9633 
9634 
9635 
9636 
9637 
9638 
9639 
9640 typedef struct in6_addr in6_addr_t;
9641 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9642 /*
9643  * Protocols
9644  *
9645  * Some of these constant names are copied for the DTrace IP provider in
9646  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
9647  * in sync.
9648  */
9649 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9650       /* Transmission Protocol */
9651 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9652 /*
9653  * Port/socket numbers: network standard functions
9654  *
9655  * Entries should exist here for each port number compiled into an ON
9656  * component, such as snoop.
9657  */
9658 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9659 /*
9660  * Port/socket numbers: host specific functions
9661  */
9662 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9663 /*
9664  * Internet Key Exchange (IKE) ports
9665  */
9666 
9667 
9668 
9669 /*
9670  * UNIX TCP sockets
9671  */
9672 
9673 
9674 
9675 
9676 
9677 
9678 /*
9679  * UNIX UDP sockets
9680  */
9681 
9682 
9683 
9684 
9685 
9686 
9687 
9688 /*
9689  * DHCPv6 UDP ports
9690  */
9691 
9692 
9693 
9694 
9695 
9696 /*
9697  * Ports < IPPORT_RESERVED are reserved for
9698  * privileged processes (e.g. root).
9699  * Ports > IPPORT_USERRESERVED are reserved
9700  * for servers, not necessarily privileged.
9701  */
9702 
9703 
9704 
9705 /*
9706  * Link numbers
9707  */
9708 
9709 
9710 
9711 
9712 /*
9713  * IPv4 Internet address
9714  *	This definition contains obsolete fields for compatibility
9715  *	with SunOS 3.x and 4.2bsd.  The presence of subnets renders
9716  *	divisions into fixed fields misleading at best.  New code
9717  *	should use only the s_addr field.
9718  */
9719 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9720 struct in_addr {
9721  union {
9722   struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b;
9723   struct { uint16_t s_w1, s_w2; } S_un_w;
9724 
9725   uint32_t S_addr;
9726 
9727 
9728 
9729  } S_un;
9730 
9731 
9732 
9733 
9734 
9735 
9736 };
9737 
9738 /*
9739  * Definitions of bits in internet address integers.
9740  * On subnets, the decomposition of addresses to host and net parts
9741  * is done according to subnet mask, not the masks here.
9742  *
9743  * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB,
9744  * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto
9745  * obsolete". IN_MULTICAST macro should be used to test if a address
9746  * is a multicast address.
9747  */
9748 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9749 /*
9750  * We have removed CLASS E checks from the kernel
9751  * But we preserve these defines for userland in order
9752  * to avoid compile  breakage of some 3rd party piece of software
9753  */
9754 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9755 /* Scoped IPv4 prefixes (in host byte-order) */
9756 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9757 /* RFC 3927 IPv4 link local address (i in host byte-order) */
9758 
9759 
9760 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */
9761 
9762 
9763 
9764 
9765 
9766 
9767 /*
9768  * Define a macro to stuff the loopback address into an Internet address
9769  */
9770 
9771 
9772 
9773 
9774 
9775 
9776 /*
9777  * IPv4 Socket address.
9778  */
9779 struct sockaddr_in {
9780  sa_family_t sin_family;
9781  in_port_t sin_port;
9782  struct in_addr sin_addr;
9783 
9784  char sin_zero[8];
9785 
9786 
9787 
9788 };
9789 
9790 
9791 /*
9792  * IPv6 socket address.
9793  */
9794 struct sockaddr_in6 {
9795  sa_family_t sin6_family;
9796  in_port_t sin6_port;
9797  uint32_t sin6_flowinfo;
9798  struct in6_addr sin6_addr;
9799  uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */
9800  uint32_t __sin6_src_id; /* Impl. specific - UDP replies */
9801 };
9802 
9803 /*
9804  * Macros for accessing the traffic class and flow label fields from
9805  * sin6_flowinfo.
9806  * These are designed to be applied to a 32-bit value.
9807  */
9808 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9809 /* masks */
9810 
9811 
9812 
9813 
9814 
9815 /*
9816  * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for
9817  * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t)
9818  * only. They need to be different for User/Kernel versions because union
9819  * component data structure is defined differently (it is identical at
9820  * binary representation level).
9821  *
9822  * const struct in6_addr IN6ADDR_ANY_INIT;
9823  * const struct in6_addr IN6ADDR_LOOPBACK_INIT;
9824  */
9825 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9826 /*
9827  * RFC 2553 specifies the following macros. Their type is defined
9828  * as "int" in the RFC but they only have boolean significance
9829  * (zero or non-zero). For the purposes of our comment notation,
9830  * we assume a hypothetical type "bool" defined as follows to
9831  * write the prototypes assumed for macros in our comments better.
9832  *
9833  * typedef int bool;
9834  */
9835 
9836 /*
9837  * IN6 macros used to test for special IPv6 addresses
9838  * (Mostly from spec)
9839  *
9840  * bool  IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
9841  * bool  IN6_IS_ADDR_LOOPBACK    (const struct in6_addr *);
9842  * bool  IN6_IS_ADDR_MULTICAST   (const struct in6_addr *);
9843  * bool  IN6_IS_ADDR_LINKLOCAL   (const struct in6_addr *);
9844  * bool  IN6_IS_ADDR_SITELOCAL   (const struct in6_addr *);
9845  * bool  IN6_IS_ADDR_V4MAPPED    (const struct in6_addr *);
9846  * bool  IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553
9847  * bool  IN6_IS_ADDR_V4COMPAT    (const struct in6_addr *);
9848  * bool  IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553
9849  * bool  IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
9850  * bool  IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
9851  * bool  IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
9852  * bool  IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
9853  * bool  IN6_IS_ADDR_MC_GLOBAL   (const struct in6_addr *);
9854  * bool  IN6_IS_ADDR_6TO4	 (const struct in6_addr *); -- Not from RFC2553
9855  * bool  IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *,
9856  *	     const struct in6_addr *);			    -- Not from RFC2553
9857  * bool  IN6_IS_ADDR_LINKSCOPE	 (const struct in6addr  *); -- Not from RFC2553
9858  */
9859 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9860 /*
9861  * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY
9862  * Note: This macro is currently NOT defined in RFC2553 specification
9863  * and not a standard macro that portable applications should use.
9864  */
9865 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9866 /* Exclude loopback and unspecified address */
9867 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9868 /*
9869  * Note:
9870  * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553
9871  * specification and not a standard macro that portable applications
9872  * should use.
9873  */
9874 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9875 /*
9876  * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or
9877  * RFC, and shouldn't be used by portable applications.  It is used to see
9878  * if an address is a solicited-node multicast address, which is prefixed
9879  * with ff02:0:0:0:0:1:ff00::/104.
9880  */
9881 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9882 /*
9883  * Macros to a) test for 6to4 IPv6 address, and b) to test if two
9884  * 6to4 addresses have the same /48 prefix, and, hence, are from the
9885  * same 6to4 site.
9886  */
9887 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9888 /*
9889  * IN6_IS_ADDR_LINKSCOPE
9890  * Identifies an address as being either link-local, link-local multicast or
9891  * node-local multicast.  All types of addresses are considered to be unique
9892  * within the scope of a given link.
9893  */
9894 
9895 
9896 
9897 
9898 /*
9899  * Useful utility macros for operations with IPv6 addresses
9900  * Note: These macros are NOT defined in the RFC2553 or any other
9901  * standard specification and are not standard macros that portable
9902  * applications should use.
9903  */
9904 
9905 /*
9906  * IN6_V4MAPPED_TO_INADDR
9907  * IN6_V4MAPPED_TO_IPADDR
9908  *	Assign a IPv4-Mapped IPv6 address to an IPv4 address.
9909  *	Note: These macros are NOT defined in RFC2553 or any other standard
9910  *	specification and are not macros that portable applications should
9911  *	use.
9912  *
9913  * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4);
9914  * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4);
9915  *
9916  */
9917 
9918 
9919 
9920 
9921 
9922 /*
9923  * IN6_INADDR_TO_V4MAPPED
9924  * IN6_IPADDR_TO_V4MAPPED
9925  *	Assign a IPv4 address address to an IPv6 address as a IPv4-mapped
9926  *	address.
9927  *	Note: These macros are NOT defined in RFC2553 or any other standard
9928  *	specification and are not macros that portable applications should
9929  *	use.
9930  *
9931  * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6);
9932  * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6);
9933  *
9934  */
9935 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9936 /*
9937  * IN6_6TO4_TO_V4ADDR
9938  *	Extract the embedded IPv4 address from the prefix to a 6to4 IPv6
9939  *      address.
9940  *	Note: This macro is NOT defined in RFC2553 or any other standard
9941  *	specification and is not a macro that portable applications should
9942  *	use.
9943  *	Note: we don't use the IPADDR form of the macro because we need
9944  *	to do a bytewise copy; the V4ADDR in the 6to4 address is not
9945  *	32-bit aligned.
9946  *
9947  * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4);
9948  *
9949  */
9950 
9951 
9952 
9953 
9954 
9955 
9956 /*
9957  * IN6_V4ADDR_TO_6TO4
9958  *	Given an IPv4 address and an IPv6 address for output, a 6to4 address
9959  *	will be created from the IPv4 Address.
9960  *	Note:  This method for creating 6to4 addresses is not standardized
9961  *	outside of Solaris.  The newly created 6to4 address will be of the form
9962  *	2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and
9963  *	HOSTID will equal 1.
9964  *
9965  * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6)
9966  *
9967  */
9968 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9969 /*
9970  * IN6_ARE_ADDR_EQUAL (defined in RFC2292)
9971  *	 Compares if IPv6 addresses are equal.
9972  * Note: Compares in order of high likelyhood of a miss so we minimize
9973  * compares. (Current heuristic order, compare in reverse order of
9974  * uint32_t units)
9975  *
9976  * bool  IN6_ARE_ADDR_EQUAL(const struct in6_addr *,
9977  *			    const struct in6_addr *);
9978  */
9979 
9980 
9981 
9982 
9983 
9984 
9985 /*
9986  * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs)
9987  *	Compares if prefixed parts of IPv6 addresses are equal.
9988  *
9989  * uint32_t IN6_MASK_FROM_PREFIX(int, int);
9990  * bool     IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *,
9991  *				       const struct in6_addr *,
9992  *				       int);
9993  */
9994 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
9995 /*
9996  * Options for use with [gs]etsockopt at the IP level.
9997  *
9998  * Note: Some of the IP_ namespace has conflict with and
9999  * and is exposed through <xti.h>. (It also requires exposing
10000  * options not implemented). The options with potential
10001  * for conflicts use #ifndef guards.
10002  */
10003 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10004 /*
10005  * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in
10006  * is used to differentiate b/w the two.
10007  */
10008 
10009 
10010 
10011 
10012 
10013 /*
10014  * Different preferences that can be requested from IPSEC protocols.
10015  */
10016 
10017 
10018 
10019 
10020 /*
10021  * This can be used with the setsockopt() call to set per socket security
10022  * options. When the application uses per-socket API, we will reflect
10023  * the request on both outbound and inbound packets.
10024  */
10025 
10026 typedef struct ipsec_req {
10027  uint_t ipsr_ah_req; /* AH request */
10028  uint_t ipsr_esp_req; /* ESP request */
10029  uint_t ipsr_self_encap_req; /* Self-Encap request */
10030  uint8_t ipsr_auth_alg; /* Auth algs for AH */
10031  uint8_t ipsr_esp_alg; /* Encr algs for ESP */
10032  uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */
10033 } ipsec_req_t;
10034 
10035 /*
10036  * MCAST_* options are protocol-independent.  The actual definitions
10037  * are with the v6 options below; this comment is here to note the
10038  * namespace usage.
10039  *
10040  * #define	MCAST_JOIN_GROUP	0x29
10041  * #define	MCAST_LEAVE_GROUP	0x2a
10042  * #define	MCAST_BLOCK_SOURCE	0x2b
10043  * #define	MCAST_UNBLOCK_SOURCE	0x2c
10044  * #define	MCAST_JOIN_SOURCE_GROUP	0x2d
10045  * #define	MCAST_LEAVE_SOURCE_GROUP 0x2e
10046  */
10047 
10048 
10049 /*
10050  * SunOS private (potentially not portable) IP_ option names
10051  */
10052 
10053 
10054 
10055 /* can be reused		0x44 */
10056 
10057 
10058 /*
10059  * Option values and names (when !_XPG5) shared with <xti_inet.h>
10060  */
10061 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10062 /*
10063  * The following option values are reserved by <xti_inet.h>
10064  *
10065  * T_IP_OPTIONS	0x107	 -  IP per-packet options
10066  * T_IP_TOS	0x108	 -  IP per packet type of service
10067  */
10068 
10069 /*
10070  * Default value constants for multicast attributes controlled by
10071  * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options.
10072  */
10073 
10074 
10075 
10076 
10077 /*
10078  * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
10079  */
10080 struct ip_mreq {
10081  struct in_addr imr_multiaddr; /* IP multicast address of group */
10082  struct in_addr imr_interface; /* local IP address of interface */
10083 };
10084 
10085 /*
10086  * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE,
10087  * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP.
10088  */
10089 struct ip_mreq_source {
10090  struct in_addr imr_multiaddr; /* IP address of group */
10091  struct in_addr imr_sourceaddr; /* IP address of source */
10092  struct in_addr imr_interface; /* IP address of interface */
10093 };
10094 
10095 /*
10096  * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on
10097  * IPv6 addresses.
10098  */
10099 struct ipv6_mreq {
10100  struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */
10101  unsigned int ipv6mr_interface; /* interface index */
10102 };
10103 
10104 /*
10105  * Use #pragma pack() construct to force 32-bit alignment on amd64.
10106  * This is needed to keep the structure size and offsets consistent
10107  * between a 32-bit app and the 64-bit amd64 kernel in structures
10108  * where 64-bit alignment would create gaps (in this case, structures
10109  * which have a uint32_t followed by a struct sockaddr_storage).
10110  */
10111 
10112 
10113 # 1038 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10114 #pragma pack(4)
10115 # 1038 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10116 
10117 
10118 
10119 /*
10120  * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP.
10121  */
10122 struct group_req {
10123  uint32_t gr_interface; /* interface index */
10124  struct sockaddr_storage gr_group; /* group address */
10125 };
10126 
10127 /*
10128  * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE,
10129  * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP.
10130  */
10131 struct group_source_req {
10132  uint32_t gsr_interface; /* interface index */
10133  struct sockaddr_storage gsr_group; /* group address */
10134  struct sockaddr_storage gsr_source; /* source address */
10135 };
10136 
10137 /*
10138  * Argument for SIOC[GS]MSFILTER ioctls
10139  */
10140 struct group_filter {
10141  uint32_t gf_interface; /* interface index */
10142  struct sockaddr_storage gf_group; /* multicast address */
10143  uint32_t gf_fmode; /* filter mode */
10144  uint32_t gf_numsrc; /* number of sources */
10145  struct sockaddr_storage gf_slist[1]; /* source address */
10146 };
10147 
10148 
10149 
10150 # 1071 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10151 #pragma pack()
10152 # 1071 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10153 
10154 
10155 
10156 
10157 
10158 
10159 
10160 /*
10161  * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific)
10162  */
10163 struct ip_msfilter {
10164  struct in_addr imsf_multiaddr; /* IP multicast address of group */
10165  struct in_addr imsf_interface; /* local IP address of interface */
10166  uint32_t imsf_fmode; /* filter mode */
10167  uint32_t imsf_numsrc; /* number of sources in src_list */
10168  struct in_addr imsf_slist[1]; /* start of source list */
10169 };
10170 
10171 
10172 
10173 
10174 
10175 /*
10176  * Multicast source filter manipulation functions in libsocket;
10177  * defined in RFC 3678.
10178  */
10179 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t,
10180    uint_t, struct sockaddr_storage *);
10181 
10182 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *,
10183    uint_t *, struct sockaddr_storage *);
10184 
10185 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
10186    uint32_t, struct in_addr *);
10187 
10188 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
10189    uint32_t *, struct in_addr *);
10190 
10191 /*
10192  * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter()
10193  */
10194 
10195 
10196 
10197 /*
10198  * Argument struct for IP_PKTINFO option
10199  */
10200 typedef struct in_pktinfo {
10201  unsigned int ipi_ifindex; /* send/recv interface index */
10202  struct in_addr ipi_spec_dst; /* matched source address */
10203  struct in_addr ipi_addr; /* src/dst address in IP hdr */
10204 } in_pktinfo_t;
10205 
10206 /*
10207  * Argument struct for IPV6_PKTINFO option
10208  */
10209 struct in6_pktinfo {
10210  struct in6_addr ipi6_addr; /* src/dst IPv6 address */
10211  unsigned int ipi6_ifindex; /* send/recv interface index */
10212 };
10213 
10214 /*
10215  * Argument struct for IPV6_MTUINFO option
10216  */
10217 struct ip6_mtuinfo {
10218  struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
10219  uint32_t ip6m_mtu; /* path MTU in host byte order */
10220 };
10221 
10222 /*
10223  * IPv6 routing header types
10224  */
10225 
10226 
10227 extern socklen_t inet6_rth_space(int type, int segments);
10228 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments);
10229 extern int inet6_rth_add(void *bp, const struct in6_addr *addr);
10230 extern int inet6_rth_reverse(const void *in, void *out);
10231 extern int inet6_rth_segments(const void *bp);
10232 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index);
10233 
10234 extern int inet6_opt_init(void *extbuf, socklen_t extlen);
10235 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset,
10236  uint8_t type, socklen_t len, uint_t align, void **databufp);
10237 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset);
10238 extern int inet6_opt_set_val(void *databuf, int offset, void *val,
10239  socklen_t vallen);
10240 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset,
10241  uint8_t *typep, socklen_t *lenp, void **databufp);
10242 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset,
10243  uint8_t type, socklen_t *lenp, void **databufp);
10244 extern int inet6_opt_get_val(void *databuf, int offset, void *val,
10245  socklen_t vallen);
10246 
10247 
10248 /*
10249  * Argument structure for IP_ADD_PROXY_ADDR.
10250  * Note that this is an unstable, experimental interface. It may change
10251  * later. Don't use it unless you know what it is.
10252  */
10253 typedef struct {
10254  struct in_addr in_prefix_addr;
10255  unsigned int in_prefix_len;
10256 } in_prefix_t;
10257 
10258 
10259 
10260 /*
10261  * IPv6 options
10262  */
10263 
10264      /* packets. */
10265      /* argument type: uint_t */
10266 
10267      /* multicast packets. */
10268      /* argument type: struct in6_addr */
10269 
10270      /* multicast packets. */
10271      /* argument type: uint_t */
10272 
10273      /* multicast packets on same socket. */
10274      /* argument type: uint_t */
10275 
10276      /* argument type: struct ipv6_mreq */
10277 
10278      /* argument type: struct ipv6_mreq */
10279 
10280 /*
10281  * Other XPG6 constants.
10282  */
10283 
10284      /* decimal notation. */
10285 
10286      /* standard colon-hex notation. */
10287 
10288 
10289 
10290 
10291 
10292 /*
10293  * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept
10294  * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP
10295  * and IPV6_LEAVE_GROUP respectively.
10296  */
10297 
10298      /* argument type: struct ipv6_mreq */
10299 
10300      /* argument type: struct ipv6_mreq */
10301 
10302 
10303      /* arg type: "struct in6_pktingo" - */
10304 
10305 
10306 
10307 
10308      /* the routing header */
10309 
10310 
10311      /* the routing header */
10312 
10313 
10314 
10315 
10316 /*
10317  * This options exists for backwards compatability and should no longer be
10318  * used.  Use IPV6_RECVDSTOPTS instead.
10319  */
10320 
10321 
10322 
10323 
10324 /*
10325  * enable/disable IPV6_RTHDRDSTOPTS.  Now obsolete.  IPV6_RECVDSTOPTS enables
10326  * the receipt of both headers.
10327  */
10328 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10329 /*
10330  * enable/disable receipt of both both IPV6_DSTOPTS headers.
10331  */
10332 
10333 
10334 /*
10335  * protocol-independent multicast membership options.
10336  */
10337 
10338 
10339 
10340 
10341 
10342 
10343 
10344 /* 32Bit field for IPV6_SRC_PREFERENCES */
10345 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
10346 /*
10347  * SunOS private (potentially not portable) IPV6_ option names
10348  */
10349 
10350 
10351      /* unspecified (all zeros) */
10352 
10353 /*
10354  * Miscellaneous IPv6 constants.
10355  */
10356 
10357 
10358 
10359 
10360 /*
10361  * Extern declarations for pre-defined global const variables
10362  */
10363 
10364 
10365 
10366 extern const struct in6_addr in6addr_any;
10367 extern const struct in6_addr in6addr_loopback;
10368 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
10369 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1
10370 /*
10371  * CDDL HEADER START
10372  *
10373  * The contents of this file are subject to the terms of the
10374  * Common Development and Distribution License (the "License").
10375  * You may not use this file except in compliance with the License.
10376  *
10377  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10378  * or http://www.opensolaris.org/os/licensing.
10379  * See the License for the specific language governing permissions
10380  * and limitations under the License.
10381  *
10382  * When distributing Covered Code, include this CDDL HEADER in each
10383  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10384  * If applicable, add the following below this CDDL HEADER, with the
10385  * fields enclosed by brackets "[]" replaced with your own identifying
10386  * information: Portions Copyright [yyyy] [name of copyright owner]
10387  *
10388  * CDDL HEADER END
10389  */
10390 /*
10391  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10392  *
10393  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
10394  */
10395 
10396 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
10397 /*	  All Rights Reserved	*/
10398 
10399 /*
10400  * University Copyright- Copyright (c) 1982, 1986, 1988
10401  * The Regents of the University of California
10402  * All Rights Reserved
10403  *
10404  * University Acknowledgment- Portions of this document are derived from
10405  * software developed by the University of California, Berkeley, and its
10406  * contributors.
10407  */
10408 
10409 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
10410 
10411 
10412 
10413 
10414 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10415 /*
10416  * CDDL HEADER START
10417  *
10418  * The contents of this file are subject to the terms of the
10419  * Common Development and Distribution License (the "License").
10420  * You may not use this file except in compliance with the License.
10421  *
10422  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10423  * or http://www.opensolaris.org/os/licensing.
10424  * See the License for the specific language governing permissions
10425  * and limitations under the License.
10426  *
10427  * When distributing Covered Code, include this CDDL HEADER in each
10428  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10429  * If applicable, add the following below this CDDL HEADER, with the
10430  * fields enclosed by brackets "[]" replaced with your own identifying
10431  * information: Portions Copyright [yyyy] [name of copyright owner]
10432  *
10433  * CDDL HEADER END
10434  */
10435 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10436 /*	  All Rights Reserved  	*/
10437 
10438 
10439 /*
10440  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10441  * Use is subject to license terms.
10442  *
10443  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10444  * Copyright 2016 Joyent, Inc.
10445  */
10446 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
10447 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1
10448 /*
10449  * CDDL HEADER START
10450  *
10451  * The contents of this file are subject to the terms of the
10452  * Common Development and Distribution License (the "License").
10453  * You may not use this file except in compliance with the License.
10454  *
10455  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10456  * or http://www.opensolaris.org/os/licensing.
10457  * See the License for the specific language governing permissions
10458  * and limitations under the License.
10459  *
10460  * When distributing Covered Code, include this CDDL HEADER in each
10461  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10462  * If applicable, add the following below this CDDL HEADER, with the
10463  * fields enclosed by brackets "[]" replaced with your own identifying
10464  * information: Portions Copyright [yyyy] [name of copyright owner]
10465  *
10466  * CDDL HEADER END
10467  */
10468 /*
10469  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10470  *
10471  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
10472  * Use is subject to license terms.
10473  *
10474  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10475  * Copyright (c) 2015, Joyent, Inc.  All rights reserved.
10476  */
10477 
10478 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10479 /*	  All Rights Reserved  	*/
10480 
10481 /*
10482  * University Copyright- Copyright (c) 1982, 1986, 1988
10483  * The Regents of the University of California
10484  * All Rights Reserved
10485  *
10486  * University Acknowledgment- Portions of this document are derived from
10487  * software developed by the University of California, Berkeley, and its
10488  * contributors.
10489  */
10490 
10491 
10492 
10493 
10494 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
10495 /*
10496  * CDDL HEADER START
10497  *
10498  * The contents of this file are subject to the terms of the
10499  * Common Development and Distribution License (the "License").
10500  * You may not use this file except in compliance with the License.
10501  *
10502  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10503  * or http://www.opensolaris.org/os/licensing.
10504  * See the License for the specific language governing permissions
10505  * and limitations under the License.
10506  *
10507  * When distributing Covered Code, include this CDDL HEADER in each
10508  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10509  * If applicable, add the following below this CDDL HEADER, with the
10510  * fields enclosed by brackets "[]" replaced with your own identifying
10511  * information: Portions Copyright [yyyy] [name of copyright owner]
10512  *
10513  * CDDL HEADER END
10514  */
10515 
10516 /*
10517  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
10518  * Copyright 2016 Joyent, Inc.
10519  *
10520  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
10521  * Use is subject to license terms.
10522  */
10523 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
10524 
10525 
10526 
10527 
10528 
10529 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10530 /*
10531  * CDDL HEADER START
10532  *
10533  * The contents of this file are subject to the terms of the
10534  * Common Development and Distribution License (the "License").
10535  * You may not use this file except in compliance with the License.
10536  *
10537  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10538  * or http://www.opensolaris.org/os/licensing.
10539  * See the License for the specific language governing permissions
10540  * and limitations under the License.
10541  *
10542  * When distributing Covered Code, include this CDDL HEADER in each
10543  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10544  * If applicable, add the following below this CDDL HEADER, with the
10545  * fields enclosed by brackets "[]" replaced with your own identifying
10546  * information: Portions Copyright [yyyy] [name of copyright owner]
10547  *
10548  * CDDL HEADER END
10549  */
10550 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10551 /*	  All Rights Reserved  	*/
10552 
10553 
10554 /*
10555  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10556  * Use is subject to license terms.
10557  *
10558  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10559  * Copyright 2016 Joyent, Inc.
10560  */
10561 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
10562 
10563 /*
10564  * I/O parameter information.  A uio structure describes the I/O which
10565  * is to be performed by an operation.  Typically the data movement will
10566  * be performed by a routine such as uiomove(), which updates the uio
10567  * structure to reflect what was done.
10568  */
10569 
10570 
10571 
10572 
10573 
10574 
10575 
10576 typedef struct iovec {
10577  caddr_t iov_base;
10578 
10579  size_t iov_len;
10580 
10581 
10582 
10583 } iovec_t;
10584 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10585 /*
10586  * Segment flag values.
10587  */
10588 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t;
10589 
10590 typedef struct uio {
10591  iovec_t *uio_iov; /* pointer to array of iovecs */
10592  int uio_iovcnt; /* number of iovecs */
10593  lloff_t _uio_offset; /* file offset */
10594  uio_seg_t uio_segflg; /* address space (kernel or user) */
10595  uint16_t uio_fmode; /* file mode flags */
10596  uint16_t uio_extflg; /* extended flags */
10597  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
10598  ssize_t uio_resid; /* residual count */
10599 } uio_t;
10600 
10601 /*
10602  * Extended uio_t uioa_t used for asynchronous uio.
10603  *
10604  * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c"
10605  *	 as there isn't a formal definition of IOV_MAX for the kernel.
10606  */
10607 
10608 
10609 typedef struct uioa_page_s { /* locked uio_iov state */
10610  int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */
10611  void **uioa_ppp; /* page_t or pfn_t arrary */
10612  caddr_t uioa_base; /* address base */
10613  size_t uioa_len; /* span length */
10614 } uioa_page_t;
10615 
10616 typedef struct uioa_s {
10617  iovec_t *uio_iov; /* pointer to array of iovecs */
10618  int uio_iovcnt; /* number of iovecs */
10619  lloff_t _uio_offset; /* file offset */
10620  uio_seg_t uio_segflg; /* address space (kernel or user) */
10621  uint16_t uio_fmode; /* file mode flags */
10622  uint16_t uio_extflg; /* extended flags */
10623  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
10624  ssize_t uio_resid; /* residual count */
10625  /*
10626 	 * uioa extended members.
10627 	 */
10628  uint32_t uioa_state; /* state of asynch i/o */
10629  ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */
10630  uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */
10631  void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */
10632  void *uioa_hwst[4]; /* opaque hardware state */
10633  uioa_page_t uioa_locked[16]; /* Per iov locked pages */
10634 } uioa_t;
10635 
10636 /*
10637  * uio extensions
10638  *
10639  * PSARC 2009/478: Copy Reduction Interfaces
10640  */
10641 typedef enum xuio_type {
10642  UIOTYPE_ASYNCIO,
10643  UIOTYPE_ZEROCOPY
10644 } xuio_type_t;
10645 
10646 typedef struct xuio {
10647  uio_t xu_uio; /* Embedded UIO structure */
10648 
10649  /* Extended uio fields */
10650  enum xuio_type xu_type; /* What kind of uio structure? */
10651  union {
10652   /* Async I/O Support, intend to replace uioa_t. */
10653   struct {
10654    uint32_t xu_a_state; /* state of async i/o */
10655    /* bytes that have been uioamove()ed */
10656    ssize_t xu_a_mbytes;
10657    uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */
10658    /* pointer into lcur->uioa_ppp[] */
10659    void **xu_a_lppp;
10660    void *xu_a_hwst[4]; /* opaque hardware state */
10661    /* Per iov locked pages */
10662    uioa_page_t xu_a_locked[16];
10663   } xu_aio;
10664 
10665   /*
10666 		 * Copy Reduction Support -- facilate loaning / returning of
10667 		 * filesystem cache buffers.
10668 		 */
10669   struct {
10670    int xu_zc_rw; /* read or write buffer */
10671    void *xu_zc_priv; /* fs specific */
10672   } xu_zc;
10673  } xu_ext;
10674 } xuio_t;
10675 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10676 /*
10677  * I/O direction.
10678  */
10679 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t;
10680 
10681 /*
10682  * uio_extflg: extended flags
10683  *
10684  * NOTE: This flag will be used in uiomove to determine if non-temporal
10685  * access, ie, access bypassing caches, should be used.  Filesystems that
10686  * don't initialize this field could experience suboptimal performance due to
10687  * the random data the field contains.
10688  *
10689  * NOTE: This flag is also used by uioasync callers to pass an extended
10690  * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all
10691  * consumers of a uioa_t require the uio_extflg to be initialized.
10692  */
10693 
10694 
10695 
10696 
10697 
10698 
10699 /*
10700  * Global uioasync capability shadow state.
10701  */
10702 typedef struct uioasync_s {
10703  boolean_t enabled; /* Is uioasync enabled? */
10704  size_t mincnt; /* Minimum byte count for use of */
10705 } uioasync_t;
10706 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10707 extern ssize_t readv(int, const struct iovec *, int);
10708 extern ssize_t writev(int, const struct iovec *, int);
10709 
10710 /*
10711  * When in the large file compilation environment,
10712  * map preadv/pwritev to their 64 bit offset versions
10713  */
10714 # 274 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10715 /* In the LP64 compilation environment, the APIs are already large file */
10716 
10717 
10718 
10719 # 277 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10720 #pragma redefine_extname preadv64 preadv
10721 # 277 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10722 
10723 
10724 # 278 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10725 #pragma redefine_extname pwritev64 pwritev
10726 # 278 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
10727 
10728 
10729 
10730 
10731 
10732 
10733 
10734 extern ssize_t preadv(int, const struct iovec *, int, off_t);
10735 extern ssize_t pwritev(int, const struct iovec *, int, off_t);
10736 
10737 /*
10738  * preadv64 and pwritev64 should be defined when:
10739  * - Using the transitional compilation environment, and not
10740  *     the large file compilation environment.
10741  */
10742 
10743 
10744 extern ssize_t preadv64(int, const struct iovec *, int, off64_t);
10745 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t);
10746 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
10747 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
10748 /*
10749  * CDDL HEADER START
10750  *
10751  * The contents of this file are subject to the terms of the
10752  * Common Development and Distribution License (the "License").
10753  * You may not use this file except in compliance with the License.
10754  *
10755  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10756  * or http://www.opensolaris.org/os/licensing.
10757  * See the License for the specific language governing permissions
10758  * and limitations under the License.
10759  *
10760  * When distributing Covered Code, include this CDDL HEADER in each
10761  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10762  * If applicable, add the following below this CDDL HEADER, with the
10763  * fields enclosed by brackets "[]" replaced with your own identifying
10764  * information: Portions Copyright [yyyy] [name of copyright owner]
10765  *
10766  * CDDL HEADER END
10767  */
10768 
10769 /*
10770  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
10771  * Copyright 2016 Joyent, Inc.
10772  *
10773  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
10774  * Use is subject to license terms.
10775  */
10776 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
10777 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
10778 /*
10779  * CDDL HEADER START
10780  *
10781  * The contents of this file are subject to the terms of the
10782  * Common Development and Distribution License (the "License").
10783  * You may not use this file except in compliance with the License.
10784  *
10785  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10786  * or http://www.opensolaris.org/os/licensing.
10787  * See the License for the specific language governing permissions
10788  * and limitations under the License.
10789  *
10790  * When distributing Covered Code, include this CDDL HEADER in each
10791  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10792  * If applicable, add the following below this CDDL HEADER, with the
10793  * fields enclosed by brackets "[]" replaced with your own identifying
10794  * information: Portions Copyright [yyyy] [name of copyright owner]
10795  *
10796  * CDDL HEADER END
10797  */
10798 /*
10799  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10800  * Use is subject to license terms.
10801  */
10802 
10803 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
10804 /*	  All Rights Reserved	*/
10805 
10806 /*
10807  * Portions of this source code were derived from Berkeley 4.3 BSD
10808  * under license from the Regents of the University of California.
10809  */
10810 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
10811 
10812 
10813 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1
10814 /*
10815  * CDDL HEADER START
10816  *
10817  * The contents of this file are subject to the terms of the
10818  * Common Development and Distribution License, Version 1.0 only
10819  * (the "License").  You may not use this file except in compliance
10820  * with the License.
10821  *
10822  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10823  * or http://www.opensolaris.org/os/licensing.
10824  * See the License for the specific language governing permissions
10825  * and limitations under the License.
10826  *
10827  * When distributing Covered Code, include this CDDL HEADER in each
10828  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10829  * If applicable, add the following below this CDDL HEADER, with the
10830  * fields enclosed by brackets "[]" replaced with your own identifying
10831  * information: Portions Copyright [yyyy] [name of copyright owner]
10832  *
10833  * CDDL HEADER END
10834  */
10835 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10836 /*	  All Rights Reserved  	*/
10837 
10838 
10839 /*
10840  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10841  *
10842  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
10843  * Use is subject to license terms.
10844  */
10845 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
10846 struct netconfig {
10847  char *nc_netid; /* network identifier		*/
10848  unsigned int nc_semantics; /* defined below		*/
10849  unsigned int nc_flag; /* defined below		*/
10850  char *nc_protofmly; /* protocol family name		*/
10851  char *nc_proto; /* protocol name		*/
10852  char *nc_device; /* device name for network id	*/
10853  unsigned int nc_nlookups; /* # of entries in nc_lookups	*/
10854  char **nc_lookups; /* list of lookup directories	*/
10855  unsigned int nc_unused[8]; /* borrowed for lockd etc.	*/
10856 };
10857 
10858 typedef struct {
10859  struct netconfig **nc_head;
10860  struct netconfig **nc_curr;
10861 } NCONF_HANDLE;
10862 
10863 /*
10864  *	Values of nc_semantics
10865  */
10866 
10867 
10868 
10869 
10870 
10871 /*
10872  * NOT FOR PUBLIC USE, Solaris internal only.
10873  * This value of nc_semantics is strictly for use of Remote Direct
10874  * Memory Access provider interfaces in Solaris only and not for
10875  * general use. Do not use this value for general purpose user or
10876  * kernel programming. If used the behavior is undefined.
10877  * This is a PRIVATE interface to be used by Solaris kRPC only.
10878  */
10879 
10880 
10881 /*
10882  *	Values of nc_flag
10883  */
10884 
10885 
10886 
10887 
10888 
10889 /*
10890  *	Values of nc_protofmly
10891  */
10892 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
10893 /*
10894  * NOT FOR PUBLIC USE, Solaris internal only.
10895  * This value of nc_semantics is strictly for use of Remote Direct
10896  * Memory Access provider interfaces in Solaris only and not for
10897  * general use. Do not use this value for general purpose user or
10898  * kernel programming. If used the behavior is undefined.
10899  * This is a PRIVATE interface to be used by Solaris kRPC only.
10900  */
10901 
10902 
10903 /*
10904  *	Values for nc_proto
10905  */
10906 
10907 
10908 
10909 
10910 
10911 
10912 /*
10913  * 	Values for nc_proto for "rdma" protofmly
10914  */
10915 
10916 
10917 
10918 
10919 extern void *setnetconfig(void);
10920 extern int endnetconfig(void *);
10921 extern struct netconfig *getnetconfig(void *);
10922 extern struct netconfig *getnetconfigent(const char *);
10923 extern void freenetconfigent(struct netconfig *);
10924 extern void *setnetpath(void);
10925 extern int endnetpath(void *);
10926 extern struct netconfig *getnetpath(void *);
10927 extern void nc_perror(const char *);
10928 extern char *nc_sperror(void);
10929 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
10930 
10931 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
10932 /*
10933  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10934  * Use is subject to license terms.
10935  *
10936  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
10937  */
10938 /*
10939  * Copyright (c) 1982, 1986 Regents of the University of California.
10940  * All rights reserved.
10941  *
10942  * Redistribution and use in source and binary forms are permitted
10943  * provided that this notice is preserved and that due credit is given
10944  * to the University of California at Berkeley. The name of the University
10945  * may not be used to endorse or promote products derived from this
10946  * software without specific prior written permission. This software
10947  * is provided ``as is'' without express or implied warranty.
10948  */
10949 
10950 /*
10951  * Constants and structures defined by the internet system,
10952  * according to following documents
10953  *
10954  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
10955  *	http://www.iana.org/assignments/protocol-numbers
10956  *	http://www.iana.org/assignments/port-numbers
10957  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
10958  *
10959  */
10960 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
10961 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
10962 /*
10963  * Definitions related to sockets: types, address families, options.
10964  */
10965 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
10966 /*
10967  * Types
10968  */
10969 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
10970 /*
10971  * Flags for socket() and accept4()
10972  */
10973 
10974 
10975 
10976 
10977 /*
10978  * Option flags per-socket.
10979  */
10980 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
10981 /*
10982  * Socket options are passed using a signed integer, but it is also rare
10983  * for more than one to ever be passed at the same time with setsockopt
10984  * and only one at a time can be retrieved with getsockopt.
10985  *
10986  * Since the lower numbers cannot be renumbered for compatibility reasons,
10987  * it would seem that we need to start a new number space (0x40000000 -
10988  * 0x7fffffff) for those that don't need to be stored as a bit flag
10989  * somewhere. This limits the flag options to 30 but that seems to be
10990  * plenty, anyway. 0x40000000 is reserved for future use.
10991  */
10992 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
10993 /*
10994  * N.B.: The following definition is present only for compatibility
10995  * with release 3.0.  It will disappear in later releases.
10996  */
10997 
10998 
10999 /*
11000  * Additional options, not kept in so_options.
11001  */
11002 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11003 /* "Socket"-level control message types: */
11004 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11005 /*
11006  * Socket filter options
11007  */
11008 
11009 
11010 
11011 
11012 
11013 /*
11014  * Structure returned by FIL_LIST
11015  */
11016 struct fil_info {
11017  int fi_flags; /* see below (FILF_*) */
11018  int fi_pos; /* position (0 is bottom) */
11019  char fi_name[32]; /* filter name */
11020 };
11021 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11022 /*
11023  * Structure used for manipulating linger option.
11024  */
11025 struct linger {
11026  int l_onoff; /* option on/off */
11027  int l_linger; /* linger time */
11028 };
11029 
11030 /*
11031  * Levels for (get/set)sockopt() that don't apply to a specific protocol.
11032  */
11033 
11034 
11035 
11036 
11037 
11038 
11039 
11040 /*
11041  * Address families.
11042  *
11043  * Some of these constant names are copied for the DTrace IP provider in
11044  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
11045  * in sync.
11046  */
11047 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11048 /*
11049  * Protocol families, same as address families for now.
11050  */
11051 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11052 /*
11053  * Maximum queue length specifiable by listen.
11054  */
11055 
11056 
11057 /*
11058  * Message header for recvmsg and sendmsg calls.
11059  */
11060 struct msghdr {
11061  void *msg_name; /* optional address */
11062  socklen_t msg_namelen; /* size of address */
11063  struct iovec *msg_iov; /* scatter/gather array */
11064  int msg_iovlen; /* # elements in msg_iov */
11065 
11066 
11067 
11068 
11069 
11070 
11071  caddr_t msg_accrights; /* access rights sent/received */
11072  int msg_accrightslen;
11073 
11074 };
11075 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11076 /* Added for XPGv2 compliance */
11077 
11078 
11079 
11080 
11081 
11082      /* with left over data */
11083 /* End of XPGv2 compliance */
11084 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11085 /* Added for XPGv2 compliance */
11086 
11087 
11088 
11089 
11090 struct cmsghdr {
11091  socklen_t cmsg_len; /* data byte count, including hdr */
11092  int cmsg_level; /* originating protocol */
11093  int cmsg_type; /* protocol-specific type */
11094 };
11095 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
11096 extern int accept(int, struct sockaddr *, Psocklen_t);
11097 extern int accept4(int, struct sockaddr *, Psocklen_t, int);
11098 extern int bind(int, const struct sockaddr *, socklen_t);
11099 extern int connect(int, const struct sockaddr *, socklen_t);
11100 extern int getpeername(int, struct sockaddr *, Psocklen_t);
11101 extern int getsockname(int, struct sockaddr *, Psocklen_t);
11102 extern int getsockopt(int, int, int, void *, Psocklen_t);
11103 extern int listen(int, int); /* XXX - fixme???  where do I go */
11104 extern int socketpair(int, int, int, int *);
11105 extern ssize_t recv(int, void *, size_t, int);
11106 extern ssize_t recvfrom(int, void *, size_t, int,
11107  struct sockaddr *, Psocklen_t);
11108 extern ssize_t recvmsg(int, struct msghdr *, int);
11109 extern ssize_t send(int, const void *, size_t, int);
11110 extern ssize_t sendmsg(int, const struct msghdr *, int);
11111 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *,
11112  socklen_t);
11113 extern int setsockopt(int, int, int, const void *, socklen_t);
11114 extern int shutdown(int, int);
11115 extern int socket(int, int, int);
11116 
11117 
11118 extern int sockatmark(int);
11119 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
11120 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 1
11121 /*
11122  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
11123  */
11124 
11125 /*
11126  * Copyright (c) 1982, 1986 Regents of the University of California.
11127  * All rights reserved.  The Berkeley software License Agreement
11128  * specifies the terms and conditions for redistribution.
11129  */
11130 
11131 
11132 
11133 
11134 /* if.h 1.26 90/05/29 SMI; from UCB 7.1 6/4/86		*/
11135 
11136 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
11137 /*
11138  * CDDL HEADER START
11139  *
11140  * The contents of this file are subject to the terms of the
11141  * Common Development and Distribution License (the "License").
11142  * You may not use this file except in compliance with the License.
11143  *
11144  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11145  * or http://www.opensolaris.org/os/licensing.
11146  * See the License for the specific language governing permissions
11147  * and limitations under the License.
11148  *
11149  * When distributing Covered Code, include this CDDL HEADER in each
11150  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11151  * If applicable, add the following below this CDDL HEADER, with the
11152  * fields enclosed by brackets "[]" replaced with your own identifying
11153  * information: Portions Copyright [yyyy] [name of copyright owner]
11154  *
11155  * CDDL HEADER END
11156  */
11157 
11158 /*
11159  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
11160  * Copyright 2016 Joyent, Inc.
11161  *
11162  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
11163  * Use is subject to license terms.
11164  */
11165 # 17 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
11166 
11167 
11168 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1
11169 /*
11170  * CDDL HEADER START
11171  *
11172  * The contents of this file are subject to the terms of the
11173  * Common Development and Distribution License (the "License").
11174  * You may not use this file except in compliance with the License.
11175  *
11176  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11177  * or http://www.opensolaris.org/os/licensing.
11178  * See the License for the specific language governing permissions
11179  * and limitations under the License.
11180  *
11181  * When distributing Covered Code, include this CDDL HEADER in each
11182  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11183  * If applicable, add the following below this CDDL HEADER, with the
11184  * fields enclosed by brackets "[]" replaced with your own identifying
11185  * information: Portions Copyright [yyyy] [name of copyright owner]
11186  *
11187  * CDDL HEADER END
11188  */
11189 /*
11190  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11191  *
11192  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
11193  */
11194 
11195 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
11196 /*	  All Rights Reserved	*/
11197 
11198 /*
11199  * University Copyright- Copyright (c) 1982, 1986, 1988
11200  * The Regents of the University of California
11201  * All Rights Reserved
11202  *
11203  * University Acknowledgment- Portions of this document are derived from
11204  * software developed by the University of California, Berkeley, and its
11205  * contributors.
11206  */
11207 
11208 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
11209 # 20 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
11210 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
11211 /*
11212  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11213  * Use is subject to license terms.
11214  *
11215  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
11216  */
11217 /*
11218  * Copyright (c) 1982, 1986 Regents of the University of California.
11219  * All rights reserved.
11220  *
11221  * Redistribution and use in source and binary forms are permitted
11222  * provided that this notice is preserved and that due credit is given
11223  * to the University of California at Berkeley. The name of the University
11224  * may not be used to endorse or promote products derived from this
11225  * software without specific prior written permission. This software
11226  * is provided ``as is'' without express or implied warranty.
11227  */
11228 
11229 /*
11230  * Constants and structures defined by the internet system,
11231  * according to following documents
11232  *
11233  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
11234  *	http://www.iana.org/assignments/protocol-numbers
11235  *	http://www.iana.org/assignments/port-numbers
11236  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
11237  *
11238  */
11239 # 21 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
11240 
11241 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
11242 /*
11243  * CDDL HEADER START
11244  *
11245  * The contents of this file are subject to the terms of the
11246  * Common Development and Distribution License (the "License").
11247  * You may not use this file except in compliance with the License.
11248  *
11249  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11250  * or http://www.opensolaris.org/os/licensing.
11251  * See the License for the specific language governing permissions
11252  * and limitations under the License.
11253  *
11254  * When distributing Covered Code, include this CDDL HEADER in each
11255  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11256  * If applicable, add the following below this CDDL HEADER, with the
11257  * fields enclosed by brackets "[]" replaced with your own identifying
11258  * information: Portions Copyright [yyyy] [name of copyright owner]
11259  *
11260  * CDDL HEADER END
11261  */
11262 /*
11263  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
11264  * Use is subject to license terms.
11265  * Copyright 2015 Nexenta Systems, Inc.
11266  */
11267 
11268 
11269 
11270 
11271 #pragma ident "%Z%%M%	%I%	%E% SMI"
11272 
11273 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_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, Version 1.0 only
11279  * (the "License").  You may not use this file except in compliance
11280  * with the License.
11281  *
11282  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11283  * or http://www.opensolaris.org/os/licensing.
11284  * See the License for the specific language governing permissions
11285  * and limitations under the License.
11286  *
11287  * When distributing Covered Code, include this CDDL HEADER in each
11288  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11289  * If applicable, add the following below this CDDL HEADER, with the
11290  * fields enclosed by brackets "[]" replaced with your own identifying
11291  * information: Portions Copyright [yyyy] [name of copyright owner]
11292  *
11293  * CDDL HEADER END
11294  */
11295 /*
11296  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11297  *
11298  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
11299  * Use is subject to license terms.
11300  */
11301 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 2
11302 
11303 
11304 
11305 
11306 
11307 /*
11308  * Interoperability types for programs. Used for:
11309  *
11310  * Crossing between 32-bit and 64-bit domains.
11311  *
11312  * On disk data formats such as filesystem meta data
11313  * and disk label.
11314  *
11315  * Note: Applications should never include this
11316  *       header file.
11317  */
11318 typedef uint32_t caddr32_t;
11319 typedef int32_t daddr32_t;
11320 typedef int32_t off32_t;
11321 typedef uint32_t ino32_t;
11322 typedef int32_t blkcnt32_t;
11323 typedef uint32_t fsblkcnt32_t;
11324 typedef uint32_t fsfilcnt32_t;
11325 typedef int32_t id32_t;
11326 typedef uint32_t major32_t;
11327 typedef uint32_t minor32_t;
11328 typedef int32_t key32_t;
11329 typedef uint32_t mode32_t;
11330 typedef uint32_t uid32_t;
11331 typedef uint32_t gid32_t;
11332 typedef uint32_t nlink32_t;
11333 typedef uint32_t dev32_t;
11334 typedef int32_t pid32_t;
11335 typedef uint32_t size32_t;
11336 typedef int32_t ssize32_t;
11337 typedef int32_t time32_t;
11338 typedef int32_t clock32_t;
11339 typedef uint32_t uintptr32_t;
11340 typedef int32_t intptr32_t;
11341 
11342 struct timeval32 {
11343  time32_t tv_sec; /* seconds */
11344  int32_t tv_usec; /* and microseconds */
11345 };
11346 
11347 typedef struct timespec32 {
11348  time32_t tv_sec; /* seconds */
11349  int32_t tv_nsec; /* and nanoseconds */
11350 } timespec32_t;
11351 
11352 typedef struct timespec32 timestruc32_t;
11353 
11354 typedef struct itimerspec32 {
11355  struct timespec32 it_interval;
11356  struct timespec32 it_value;
11357 } itimerspec32_t;
11358 # 23 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
11359 
11360 
11361 
11362 
11363 
11364 
11365 
11366 /*
11367  * Structures defining a network interface, providing a packet
11368  * transport mechanism (ala level 0 of the PUP protocols).
11369  *
11370  * Each interface accepts output datagrams of a specified maximum
11371  * length, and provides higher level routines with input datagrams
11372  * received from its medium.
11373  *
11374  * Output occurs when the routine if_output is called, with three parameters:
11375  *	(*ifp->if_output)(ifp, m, dst)
11376  * Here m is the mbuf chain to be sent and dst is the destination address.
11377  * The output routine encapsulates the supplied datagram if necessary,
11378  * and then transmits it on its medium.
11379  *
11380  * On input, each interface unwraps the data received by it, and either
11381  * places it on the input queue of a internetwork datagram routine
11382  * and posts the associated software interrupt, or passes the datagram to a raw
11383  * packet input routine.
11384  *
11385  * Routines exist for locating interfaces by their addresses
11386  * or for locating a interface on a certain network, as well as more general
11387  * routing and gateway routines maintaining information used to locate
11388  * interfaces.  These routines live in the files if.c and route.c
11389  */
11390 
11391 
11392 
11393 /*
11394  * Structure defining a queue for a network interface.
11395  *
11396  * (Would like to call this struct ``if'', but C isn't PL/1.)
11397  */
11398 struct ifnet {
11399  char *if_name; /* name, e.g. ``en'' or ``lo'' */
11400  short if_unit; /* sub-unit for lower level driver */
11401  short if_mtu; /* maximum transmission unit */
11402  short if_flags; /* up/down, broadcast, etc. */
11403  short if_timer; /* time 'til if_watchdog called */
11404  ushort_t if_promisc; /* net # of requests for promisc mode */
11405  int if_metric; /* routing metric (external only) */
11406  struct ifaddr *if_addrlist; /* linked list of addresses per if */
11407  struct ifqueue {
11408   struct mbuf *ifq_head;
11409   struct mbuf *ifq_tail;
11410   int ifq_len;
11411   int ifq_maxlen;
11412   int ifq_drops;
11413  } if_snd; /* output queue */
11414 /* procedure handles */
11415  int (*if_init)(); /* init routine */
11416  int (*if_output)(); /* output routine */
11417  int (*if_ioctl)(); /* ioctl routine */
11418  int (*if_reset)(); /* bus reset routine */
11419  int (*if_watchdog)(); /* timer routine */
11420 /* generic interface statistics */
11421  int if_ipackets; /* packets received on interface */
11422  int if_ierrors; /* input errors on interface */
11423  int if_opackets; /* packets sent on interface */
11424  int if_oerrors; /* output errors on interface */
11425  int if_collisions; /* collisions on csma interfaces */
11426 /* end statistics */
11427  struct ifnet *if_next;
11428  struct ifnet *if_upper; /* next layer up */
11429  struct ifnet *if_lower; /* next layer down */
11430  int (*if_input)(); /* input routine */
11431  int (*if_ctlin)(); /* control input routine */
11432  int (*if_ctlout)(); /* control output routine */
11433  struct map *if_memmap; /* rmap for interface specific memory */
11434 };
11435 
11436 /*
11437  * NOTE : These flags are not directly used within IP.
11438  * ip_if.h has definitions derived from this which is used within IP.
11439  * If you define a flag here, you need to define one in ip_if.h before
11440  * using the new flag in IP. Don't use these flags directly in IP.
11441  */
11442 # 119 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11443 /*
11444  * The IFF_MULTICAST flag indicates that the network can support the
11445  * transmission and reception of higher-level (e.g., IP) multicast packets.
11446  * It is independent of hardware support for multicasting; for example,
11447  * point-to-point links or pure broadcast networks may well support
11448  * higher-level multicasts.
11449  */
11450 
11451 
11452 
11453 
11454 
11455 
11456 
11457 /*
11458  * The following flags can't be grabbed or altered by SIOC[GS]IFFLAGS.
11459  * Should use SIOC[GS]LIFFLAGS which has a larger flags field.
11460  */
11461 # 157 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11462 /*
11463  * The IFF_XRESOLV flag is an evolving interface and is subject
11464  * to change without notice.
11465  */
11466 # 175 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11467 /* flags that cannot be changed by userland on any interface */
11468 
11469 
11470 
11471 
11472 
11473 
11474 
11475 /* flags that cannot be changed by userland on an IPMP interface */
11476 
11477 
11478 /* flags that can never be set on an IPMP interface */
11479 
11480 
11481 
11482 /*
11483  * Output queues (ifp->if_snd) and internetwork datagram level (pup level 1)
11484  * input routines have queues of messages stored on ifqueue structures
11485  * (defined above).  Entries are added to and deleted from these structures
11486  * by these macros, which should be called with ipl raised to splimp().
11487  */
11488 # 215 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11489 /*
11490  * Packets destined for level-1 protocol input routines
11491  * have a pointer to the receiving interface prepended to the data.
11492  * IF_DEQUEUEIF extracts and returns this pointer when dequeuing the packet.
11493  * IF_ADJ should be used otherwise to adjust for its presence.
11494  */
11495 # 254 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11496 /*
11497  * The ifaddr structure contains information about one address
11498  * of an interface.  They are maintained by the different address families,
11499  * are allocated and attached when an address is set, and are linked
11500  * together so all addresses for an interface can be located.
11501  */
11502 struct ifaddr {
11503  struct sockaddr ifa_addr; /* address of interface */
11504  union {
11505   struct sockaddr ifu_broadaddr;
11506   struct sockaddr ifu_dstaddr;
11507  } ifa_ifu;
11508 
11509 
11510  struct ifnet *ifa_ifp; /* back-pointer to interface */
11511  struct ifaddr *ifa_next; /* next address for interface */
11512 };
11513 
11514 /*
11515  * For SIOCLIF*ND ioctls.
11516  *
11517  * The lnr_state_* fields use the ND_* neighbor reachability states.
11518  * The 3 different fields are for use with SIOCLIFSETND to cover the cases
11519  * when
11520  *	A new entry is created
11521  *	The entry already exists and the link-layer address is the same
11522  *	The entry already exists and the link-layer address differs
11523  *
11524  * Use ND_UNCHANGED to not change any state.
11525  */
11526 
11527 typedef struct lif_nd_req {
11528  struct sockaddr_storage lnr_addr;
11529  uint8_t lnr_state_create; /* When creating */
11530  uint8_t lnr_state_same_lla; /* Update same addr */
11531  uint8_t lnr_state_diff_lla; /* Update w/ diff. */
11532  int lnr_hdw_len;
11533  int lnr_flags; /* See below */
11534  /* padding because ia32 "long long"s are only 4-byte aligned. */
11535  int lnr_pad0;
11536  char lnr_hdw_addr[64];
11537 } lif_nd_req_t;
11538 
11539 /*
11540  * Neighbor reachability states
11541  * Used with SIOCLIF*ND ioctls.
11542  */
11543 # 313 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11544 /*
11545  * lnr_flags value of lif_nd_req.
11546  * Used with SIOCLIF*ND ioctls.
11547  */
11548 
11549 
11550 
11551 
11552 
11553 
11554 /*
11555  * the NDF_STATIC entry ensures that an NCE will not be deleted, and is
11556  * used by non-ON applications like IPv6 test suites.
11557  */
11558 
11559 
11560 /* For SIOC[GS]LIFLNKINFO */
11561 typedef struct lif_ifinfo_req {
11562  uint8_t lir_maxhops;
11563  uint32_t lir_reachtime; /* Reachable time in msec */
11564  uint32_t lir_reachretrans; /* Retransmission timer msec */
11565  uint32_t lir_maxmtu;
11566 } lif_ifinfo_req_t;
11567 
11568 
11569 
11570 /*
11571  * Maximum lengths of interface name and IPMP group name; these are the same
11572  * for historical reasons.  Note that the actual maximum length of a name is
11573  * one byte less than these constants since the kernel always sets the final
11574  * byte of lifr_name and lifr_groupname to NUL.
11575  */
11576 
11577 
11578 
11579 
11580 
11581 
11582 
11583 /*
11584  * Interface request structure used for socket
11585  * ioctl's.  All interface ioctl's must have parameter
11586  * definitions which begin with ifr_name.  The
11587  * remainder may be interface specific.
11588  * Note: This data structure uses 64bit type uint64_t which is not
11589  *	 a valid type for strict ANSI/ISO C compilation for ILP32.
11590  *	 Applications with ioctls using this structure that insist on
11591  *	 building with strict ANSI/ISO C (-Xc) will need to be LP64.
11592  */
11593 
11594 struct lifreq {
11595  char lifr_name[32]; /* if name, e.g. "en0" */
11596  union {
11597   int lifru_addrlen; /* for subnet/token etc */
11598   uint_t lifru_ppa; /* SIOCSLIFNAME */
11599  } lifr_lifru1;
11600 
11601 
11602  uint_t lifr_type; /* IFT_ETHER, ... */
11603  union {
11604   struct sockaddr_storage lifru_addr;
11605   struct sockaddr_storage lifru_dstaddr;
11606   struct sockaddr_storage lifru_broadaddr;
11607   struct sockaddr_storage lifru_token; /* With lifr_addrlen */
11608   struct sockaddr_storage lifru_subnet; /* With lifr_addrlen */
11609   int lifru_index; /* interface index */
11610   uint64_t lifru_flags; /* Flags for SIOC?LIFFLAGS */
11611   int lifru_metric;
11612   uint_t lifru_mtu;
11613   int lif_muxid[2]; /* mux id's for arp and ip */
11614   struct lif_nd_req lifru_nd_req; /* SIOCLIF*ND */
11615   struct lif_ifinfo_req lifru_ifinfo_req;
11616   char lifru_groupname[32]; /* SIOC[GS]LIFGROUPNAME */
11617   char lifru_binding[32]; /* SIOCGLIFBINDING */
11618   zoneid_t lifru_zoneid; /* SIOC[GS]LIFZONE */
11619   uint_t lifru_dadstate; /* SIOCGLIFDADSTATE */
11620  } lifr_lifru;
11621 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11622 };
11623 
11624 
11625 /*
11626  * Argument structure for SIOCT* address testing ioctls.
11627  */
11628 struct sioc_addrreq {
11629  struct sockaddr_storage sa_addr; /* Address to test */
11630  int sa_res; /* Result - 0/1 */
11631  int sa_pad;
11632 };
11633 
11634 /*
11635  * Argument structure used by mrouted to get src-grp pkt counts using
11636  * SIOCGETLSGCNT. See <netinet/ip_mroute.h>.
11637  */
11638 struct sioc_lsg_req {
11639  struct sockaddr_storage slr_src;
11640  struct sockaddr_storage slr_grp;
11641  uint_t slr_pktcnt;
11642  uint_t slr_bytecnt;
11643  uint_t slr_wrong_if;
11644  uint_t slr_pad;
11645 };
11646 
11647 /* Argument structure for SIOCGLIFDADSTATE ioctl */
11648 typedef enum {
11649  DAD_IN_PROGRESS = 0x1,
11650  DAD_DONE = 0x2
11651 } glif_dad_state_t;
11652 
11653 /*
11654  * OBSOLETE: Replaced by struct lifreq. Supported for compatibility.
11655  *
11656  * Interface request structure used for socket
11657  * ioctl's.  All interface ioctl's must have parameter
11658  * definitions which begin with ifr_name.  The
11659  * remainder may be interface specific.
11660  */
11661 struct ifreq {
11662 
11663  char ifr_name[16]; /* if name, e.g. "en0" */
11664  union {
11665   struct sockaddr ifru_addr;
11666   struct sockaddr ifru_dstaddr;
11667   char ifru_oname[16]; /* other if name */
11668   struct sockaddr ifru_broadaddr;
11669   int ifru_index; /* interface index */
11670   uint_t ifru_mtu;
11671   short ifru_flags;
11672   int ifru_metric;
11673   char ifru_data[1]; /* interface dependent data */
11674   char ifru_enaddr[6];
11675   int if_muxid[2]; /* mux id's for arp and ip */
11676 
11677   /* Struct for flags/ppa */
11678   struct ifr_ppaflags {
11679    short ifrup_flags; /* Space of ifru_flags. */
11680    short ifrup_filler;
11681    uint_t ifrup_ppa;
11682   } ifru_ppaflags;
11683 
11684   /* Struct for FDDI ioctl's */
11685   struct ifr_dnld_reqs {
11686    uint32_t v_addr;
11687    uint32_t m_addr;
11688    uint32_t ex_addr;
11689    uint32_t size;
11690   } ifru_dnld_req;
11691 
11692   /* Struct for FDDI stats */
11693   struct ifr_fddi_stats {
11694    uint32_t stat_size;
11695    uint32_t fddi_stats;
11696   } ifru_fddi_stat;
11697 
11698   struct ifr_netmapents {
11699    uint32_t map_ent_size, /* size of netmap structure */
11700     entry_number; /* index into netmap list */
11701    uint32_t fddi_map_ent; /* pointer to user structure */
11702   } ifru_netmapent;
11703 
11704   /* Field for generic ioctl for fddi */
11705 
11706   struct ifr_fddi_gen_struct {
11707    uint32_t ifru_fddi_gioctl; /* field for gen ioctl */
11708    uint32_t ifru_fddi_gaddr; /* Generic ptr to a field */
11709   } ifru_fddi_gstruct;
11710 
11711  } ifr_ifru;
11712 # 509 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11713 /* For setting ppa */
11714 
11715 
11716 /* FDDI specific */
11717 
11718 
11719 
11720 
11721 
11722 
11723 
11724 };
11725 
11726 /* Used by SIOCGLIFNUM. Uses same flags as in struct lifconf */
11727 struct lifnum {
11728  sa_family_t lifn_family;
11729  int lifn_flags; /* request specific interfaces */
11730  int lifn_count; /* Result */
11731 };
11732 
11733 /*
11734  * Structure used in SIOCGLIFCONF request.
11735  * Used to retrieve interface configuration
11736  * for machine (useful for programs which
11737  * must know all networks accessible) for a given address family.
11738  * Using AF_UNSPEC will retrieve all address families.
11739  */
11740 struct lifconf {
11741  sa_family_t lifc_family;
11742  int lifc_flags; /* request specific interfaces */
11743  int lifc_len; /* size of associated buffer */
11744  union {
11745   caddr_t lifcu_buf;
11746   struct lifreq *lifcu_req;
11747  } lifc_lifcu;
11748 
11749 
11750 };
11751 
11752 /*
11753  * Structure used in SIOCGLIFSRCOF to get the interface
11754  * configuration list for those interfaces that use an address
11755  * hosted on the interface (set in lifs_ifindex), as the source
11756  * address.
11757  */
11758 struct lifsrcof {
11759  uint_t lifs_ifindex; /* interface of interest */
11760  size_t lifs_maxlen; /* size of buffer: input */
11761  size_t lifs_len; /* size of buffer: output */
11762  union {
11763   caddr_t lifsu_buf;
11764   struct lifreq *lifsu_req;
11765  } lifs_lifsu;
11766 
11767 
11768 };
11769 
11770 /* Flags */
11771 
11772 
11773      /* be used to communicate outside the */
11774      /* node (exclude interfaces which are */
11775      /* IFF_NOXMIT, IFF_NOLOCAL, */
11776      /* IFF_LOOPBACK, IFF_DEPRECATED, or */
11777      /* not IFF_UP). Has priority over */
11778      /* LIFC_NOXMIT. */
11779 
11780 
11781      /* (must be issued from global zone) */
11782 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11783 /*
11784  * IPMP group information, for use with SIOCGLIFGROUPINFO.
11785  */
11786 typedef struct lifgroupinfo {
11787  char gi_grname[32]; /* group name (set by caller) */
11788  char gi_grifname[32]; /* IPMP meta-interface name */
11789  char gi_m4ifname[32]; /* v4 mcast interface name */
11790  char gi_m6ifname[32]; /* v6 mcast interface name */
11791  char gi_bcifname[32]; /* v4 bcast interface name */
11792  boolean_t gi_v4; /* group is plumbed for v4 */
11793  boolean_t gi_v6; /* group is plumbed for v6 */
11794  uint_t gi_nv4; /* # of underlying v4 if's */
11795  uint_t gi_nv6; /* # of underlying v6 if's */
11796  uint_t gi_mactype; /* DLPI mac type of group */
11797 } lifgroupinfo_t;
11798 
11799 /*
11800  * OBSOLETE: Structure used in SIOCGIFCONF request.
11801  * Used to retrieve interface configuration
11802  * for machine (useful for programs which
11803  * must know all networks accessible).
11804  */
11805 struct ifconf {
11806  int ifc_len; /* size of associated buffer */
11807  union {
11808   caddr_t ifcu_buf;
11809   struct ifreq *ifcu_req;
11810  } ifc_ifcu;
11811 
11812 
11813 };
11814 # 649 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
11815 typedef struct if_data {
11816     /* generic interface information */
11817  uchar_t ifi_type; /* ethernet, tokenring, etc */
11818  uchar_t ifi_addrlen; /* media address length */
11819  uchar_t ifi_hdrlen; /* media header length */
11820  uint_t ifi_mtu; /* maximum transmission unit */
11821  uint_t ifi_metric; /* routing metric (external only) */
11822  uint_t ifi_baudrate; /* linespeed */
11823     /* volatile statistics */
11824  uint_t ifi_ipackets; /* packets received on interface */
11825  uint_t ifi_ierrors; /* input errors on interface */
11826  uint_t ifi_opackets; /* packets sent on interface */
11827  uint_t ifi_oerrors; /* output errors on interface */
11828  uint_t ifi_collisions; /* collisions on csma interfaces */
11829  uint_t ifi_ibytes; /* total number of octets received */
11830  uint_t ifi_obytes; /* total number of octets sent */
11831  uint_t ifi_imcasts; /* packets received via multicast */
11832  uint_t ifi_omcasts; /* packets sent via multicast */
11833  uint_t ifi_iqdrops; /* dropped on input, this interface */
11834  uint_t ifi_noproto; /* destined for unsupported protocol */
11835 
11836  struct timeval32 ifi_lastchange; /* last updated */
11837 
11838 
11839 
11840 } if_data_t;
11841 
11842 /*
11843  * Message format for use in obtaining information about interfaces
11844  * from the routing socket
11845  */
11846 typedef struct if_msghdr {
11847  ushort_t ifm_msglen; /* to skip over non-understood messages */
11848  uchar_t ifm_version; /* future binary compatibility */
11849  uchar_t ifm_type; /* message type */
11850  int ifm_addrs; /* like rtm_addrs */
11851  int ifm_flags; /* value of if_flags */
11852  ushort_t ifm_index; /* index for associated ifp */
11853  struct if_data ifm_data; /* statistics and other data about if */
11854 } if_msghdr_t;
11855 
11856 /*
11857  * Message format for use in obtaining information about interface addresses
11858  * from the routing socket
11859  */
11860 typedef struct ifa_msghdr {
11861  ushort_t ifam_msglen; /* to skip over non-understood messages */
11862  uchar_t ifam_version; /* future binary compatibility */
11863  uchar_t ifam_type; /* message type */
11864  int ifam_addrs; /* like rtm_addrs */
11865  int ifam_flags; /* route flags */
11866  ushort_t ifam_index; /* index for associated ifp */
11867  int ifam_metric; /* value of ipif_metric */
11868 } ifa_msghdr_t;
11869 
11870 
11871 
11872 /*
11873  * The if_nameindex structure holds the interface index value about
11874  * a single interface. An array of this structure is used to return
11875  * all interfaces and indexes.
11876  */
11877 struct if_nameindex {
11878  unsigned if_index; /* positive interface index */
11879  char *if_name; /* if name, e.g. "en0" */
11880 };
11881 
11882 /* Interface index identification API definitions */
11883 extern unsigned if_nametoindex(const char *);
11884 extern char *if_indextoname(unsigned, char *);
11885 extern struct if_nameindex *if_nameindex(void);
11886 extern void if_freenameindex(struct if_nameindex *);
11887 
11888 
11889 /*
11890  * If changing IF_MAX_INDEX to a value greater than UINT16_MAX, check if
11891  * struct sockaddr_dl needs to be modified as the interface index is placed
11892  * in this structure by the kernel.
11893  */
11894 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
11895 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
11896 /*
11897  * CDDL HEADER START
11898  *
11899  * The contents of this file are subject to the terms of the
11900  * Common Development and Distribution License (the "License").
11901  * You may not use this file except in compliance with the License.
11902  *
11903  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11904  * or http://www.opensolaris.org/os/licensing.
11905  * See the License for the specific language governing permissions
11906  * and limitations under the License.
11907  *
11908  * When distributing Covered Code, include this CDDL HEADER in each
11909  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11910  * If applicable, add the following below this CDDL HEADER, with the
11911  * fields enclosed by brackets "[]" replaced with your own identifying
11912  * information: Portions Copyright [yyyy] [name of copyright owner]
11913  *
11914  * CDDL HEADER END
11915  */
11916 
11917 /*
11918  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11919  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
11920  */
11921 
11922 /*	Copyright (c) 1988 AT&T	*/
11923 /*	  All Rights Reserved  	*/
11924 
11925 /*
11926  * User-visible pieces of the ANSI C standard I/O package.
11927  */
11928 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
11929 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 1
11930 /*
11931  * CDDL HEADER START
11932  *
11933  * The contents of this file are subject to the terms of the
11934  * Common Development and Distribution License, Version 1.0 only
11935  * (the "License").  You may not use this file except in compliance
11936  * with the License.
11937  *
11938  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11939  * or http://www.opensolaris.org/os/licensing.
11940  * See the License for the specific language governing permissions
11941  * and limitations under the License.
11942  *
11943  * When distributing Covered Code, include this CDDL HEADER in each
11944  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11945  * If applicable, add the following below this CDDL HEADER, with the
11946  * fields enclosed by brackets "[]" replaced with your own identifying
11947  * information: Portions Copyright [yyyy] [name of copyright owner]
11948  *
11949  * CDDL HEADER END
11950  */
11951 /*
11952  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
11953  * Use is subject to license terms.
11954  */
11955 
11956 
11957 
11958 
11959 #pragma ident "%Z%%M%	%I%	%E% SMI"
11960 
11961 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
11962 /*
11963  * CDDL HEADER START
11964  *
11965  * The contents of this file are subject to the terms of the
11966  * Common Development and Distribution License (the "License").
11967  * You may not use this file except in compliance with the License.
11968  *
11969  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11970  * or http://www.opensolaris.org/os/licensing.
11971  * See the License for the specific language governing permissions
11972  * and limitations under the License.
11973  *
11974  * When distributing Covered Code, include this CDDL HEADER in each
11975  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11976  * If applicable, add the following below this CDDL HEADER, with the
11977  * fields enclosed by brackets "[]" replaced with your own identifying
11978  * information: Portions Copyright [yyyy] [name of copyright owner]
11979  *
11980  * CDDL HEADER END
11981  */
11982 /*
11983  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
11984  */
11985 
11986 
11987 
11988 
11989 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 1
11990 /*
11991  * CDDL HEADER START
11992  *
11993  * The contents of this file are subject to the terms of the
11994  * Common Development and Distribution License (the "License").
11995  * You may not use this file except in compliance with the License.
11996  *
11997  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11998  * or http://www.opensolaris.org/os/licensing.
11999  * See the License for the specific language governing permissions
12000  * and limitations under the License.
12001  *
12002  * When distributing Covered Code, include this CDDL HEADER in each
12003  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12004  * If applicable, add the following below this CDDL HEADER, with the
12005  * fields enclosed by brackets "[]" replaced with your own identifying
12006  * information: Portions Copyright [yyyy] [name of copyright owner]
12007  *
12008  * CDDL HEADER END
12009  */
12010 
12011 /*
12012  * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
12013  * Copyright (c) 2012 by Delphix. All rights reserved.
12014  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12015  */
12016 
12017 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
12018 /*	  All Rights Reserved	*/
12019 
12020 
12021 
12022 
12023 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12024 /*
12025  * CDDL HEADER START
12026  *
12027  * The contents of this file are subject to the terms of the
12028  * Common Development and Distribution License (the "License").
12029  * You may not use this file except in compliance with the License.
12030  *
12031  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12032  * or http://www.opensolaris.org/os/licensing.
12033  * See the License for the specific language governing permissions
12034  * and limitations under the License.
12035  *
12036  * When distributing Covered Code, include this CDDL HEADER in each
12037  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12038  * If applicable, add the following below this CDDL HEADER, with the
12039  * fields enclosed by brackets "[]" replaced with your own identifying
12040  * information: Portions Copyright [yyyy] [name of copyright owner]
12041  *
12042  * CDDL HEADER END
12043  */
12044 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12045 /*	  All Rights Reserved  	*/
12046 
12047 
12048 /*
12049  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12050  * Use is subject to license terms.
12051  *
12052  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12053  * Copyright 2016 Joyent, Inc.
12054  */
12055 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 2
12056 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h" 1
12057 /*
12058  * CDDL HEADER START
12059  *
12060  * The contents of this file are subject to the terms of the
12061  * Common Development and Distribution License (the "License").
12062  * You may not use this file except in compliance with the License.
12063  *
12064  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12065  * or http://www.opensolaris.org/os/licensing.
12066  * See the License for the specific language governing permissions
12067  * and limitations under the License.
12068  *
12069  * When distributing Covered Code, include this CDDL HEADER in each
12070  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12071  * If applicable, add the following below this CDDL HEADER, with the
12072  * fields enclosed by brackets "[]" replaced with your own identifying
12073  * information: Portions Copyright [yyyy] [name of copyright owner]
12074  *
12075  * CDDL HEADER END
12076  */
12077 /*
12078  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
12079  * Copyright (c) 2012 by Delphix. All rights reserved.
12080  */
12081 
12082 
12083 
12084 
12085 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12086 /*
12087  * CDDL HEADER START
12088  *
12089  * The contents of this file are subject to the terms of the
12090  * Common Development and Distribution License (the "License").
12091  * You may not use this file except in compliance with the License.
12092  *
12093  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12094  * or http://www.opensolaris.org/os/licensing.
12095  * See the License for the specific language governing permissions
12096  * and limitations under the License.
12097  *
12098  * When distributing Covered Code, include this CDDL HEADER in each
12099  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12100  * If applicable, add the following below this CDDL HEADER, with the
12101  * fields enclosed by brackets "[]" replaced with your own identifying
12102  * information: Portions Copyright [yyyy] [name of copyright owner]
12103  *
12104  * CDDL HEADER END
12105  */
12106 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12107 /*	  All Rights Reserved  	*/
12108 
12109 
12110 /*
12111  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12112  * Use is subject to license terms.
12113  *
12114  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12115  * Copyright 2016 Joyent, Inc.
12116  */
12117 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h" 2
12118 
12119 
12120 
12121 
12122 
12123 
12124 /*
12125  * Per-allocation flags
12126  */
12127 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h"
12128 /*
12129  * The following flags are restricted for use only within the kernel.
12130  * VM_MEMLOAD is for use by the HAT to avoid infinite recursion.
12131  * VM_NORELOC is used by the kernel when static VA->PA mappings are required.
12132  */
12133 
12134 
12135 /*
12136  * VM_ABORT requests that vmem_alloc() *ignore* the VM_SLEEP/VM_NOSLEEP flags
12137  * and forgo reaping if the allocation or attempted import, fails.  This
12138  * flag is a segkmem-specific flag, and should not be used by anyone else.
12139  */
12140 
12141 
12142 /*
12143  * VM_ENDALLOC requests that large addresses be preferred in allocations.
12144  * Has no effect if VM_NEXTFIT is active.
12145  */
12146 
12147 
12148 
12149 
12150 /*
12151  * Arena creation flags
12152  */
12153 
12154 
12155 
12156 
12157 /*
12158  * internal use only;	the import function uses the vmem_ximport_t interface
12159  *			and may increase the request size if it so desires.
12160  *			VMC_XALIGN, for use with vmem_xcreate, specifies that
12161  *			the address returned by the import function will be
12162  *			aligned according to the alignment argument.
12163  */
12164 
12165 
12166 
12167 
12168 /*
12169  * Public segment types
12170  */
12171 
12172 
12173 
12174 /*
12175  * Implementation-private segment types
12176  */
12177 
12178 
12179 
12180 
12181 /*
12182  * VMEM_REENTRANT indicates to vmem_walk() that the callback routine may
12183  * call back into the arena being walked, so vmem_walk() must drop the
12184  * arena lock before each callback.  The caveat is that since the arena
12185  * isn't locked, its state can change.  Therefore it is up to the callback
12186  * routine to handle cases where the segment isn't of the expected type.
12187  * For example, we use this to walk heap_arena when generating a crash dump;
12188  * see segkmem_dump() for sample usage.
12189  */
12190 
12191 
12192 typedef struct vmem vmem_t;
12193 typedef void *(vmem_alloc_t)(vmem_t *, size_t, int);
12194 typedef void (vmem_free_t)(vmem_t *, void *, size_t);
12195 
12196 /*
12197  * Alternate import style; the requested size is passed in a pointer,
12198  * which can be increased by the import function if desired.
12199  */
12200 typedef void *(vmem_ximport_t)(vmem_t *, size_t *, size_t, int);
12201 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h"
12202 extern vmem_t *vmem_create(const char *, void *, size_t, size_t,
12203     vmem_alloc_t *, vmem_free_t *, vmem_t *, size_t, int);
12204 extern vmem_t *vmem_xcreate(const char *, void *, size_t, size_t,
12205     vmem_ximport_t *, vmem_free_t *, vmem_t *, size_t, int);
12206 extern void vmem_destroy(vmem_t *);
12207 extern void *vmem_alloc(vmem_t *, size_t, int);
12208 extern void *vmem_xalloc(vmem_t *, size_t, size_t, size_t, size_t,
12209     void *, void *, int);
12210 extern void vmem_free(vmem_t *, void *, size_t);
12211 extern void vmem_xfree(vmem_t *, void *, size_t);
12212 extern void *vmem_add(vmem_t *, void *, size_t, int);
12213 extern int vmem_contains(vmem_t *, void *, size_t);
12214 extern void vmem_walk(vmem_t *, int, void (*)(void *, void *, size_t), void *);
12215 extern size_t vmem_size(vmem_t *, int);
12216 extern void vmem_qcache_reap(vmem_t *vmp);
12217 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 2
12218 
12219 
12220 
12221 
12222 
12223 /*
12224  * Kernel memory allocator: DDI interfaces.
12225  * See kmem_alloc(9F) for details.
12226  */
12227 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h"
12228 /*
12229  * Kernel memory allocator: private interfaces.
12230  * These interfaces are still evolving.
12231  * Do not use them in unbundled drivers.
12232  */
12233 
12234 /*
12235  * Flags for kmem_cache_create()
12236  */
12237 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h"
12238 struct kmem_cache; /* cache structure is opaque to kmem clients */
12239 
12240 typedef struct kmem_cache kmem_cache_t;
12241 
12242 /* Client response to kmem move callback */
12243 typedef enum kmem_cbrc {
12244  KMEM_CBRC_YES,
12245  KMEM_CBRC_NO,
12246  KMEM_CBRC_LATER,
12247  KMEM_CBRC_DONT_NEED,
12248  KMEM_CBRC_DONT_KNOW
12249 } kmem_cbrc_t;
12250 # 29 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
12251 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 1
12252 /*
12253  * CDDL HEADER START
12254  *
12255  * The contents of this file are subject to the terms of the
12256  * Common Development and Distribution License (the "License").
12257  * You may not use this file except in compliance with the License.
12258  *
12259  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12260  * or http://www.opensolaris.org/os/licensing.
12261  * See the License for the specific language governing permissions
12262  * and limitations under the License.
12263  *
12264  * When distributing Covered Code, include this CDDL HEADER in each
12265  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12266  * If applicable, add the following below this CDDL HEADER, with the
12267  * fields enclosed by brackets "[]" replaced with your own identifying
12268  * information: Portions Copyright [yyyy] [name of copyright owner]
12269  *
12270  * CDDL HEADER END
12271  */
12272 /*
12273  * Copyright 2014 Garrrett D'Amore <garrett@damore.org>
12274  *
12275  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12276  * Use is subject to license terms.
12277  */
12278 
12279 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12280 /*	  All Rights Reserved  	*/
12281 
12282 /*
12283  * University Copyright- Copyright (c) 1982, 1986, 1988
12284  * The Regents of the University of California
12285  * All Rights Reserved
12286  *
12287  * University Acknowledgment- Portions of this document are derived from
12288  * software developed by the University of California, Berkeley, and its
12289  * contributors.
12290  */
12291 
12292 
12293 
12294 
12295 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
12296 /*
12297  * CDDL HEADER START
12298  *
12299  * The contents of this file are subject to the terms of the
12300  * Common Development and Distribution License (the "License").
12301  * You may not use this file except in compliance with the License.
12302  *
12303  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12304  * or http://www.opensolaris.org/os/licensing.
12305  * See the License for the specific language governing permissions
12306  * and limitations under the License.
12307  *
12308  * When distributing Covered Code, include this CDDL HEADER in each
12309  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12310  * If applicable, add the following below this CDDL HEADER, with the
12311  * fields enclosed by brackets "[]" replaced with your own identifying
12312  * information: Portions Copyright [yyyy] [name of copyright owner]
12313  *
12314  * CDDL HEADER END
12315  */
12316 
12317 /*
12318  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
12319  * Copyright 2016 Joyent, Inc.
12320  *
12321  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12322  * Use is subject to license terms.
12323  */
12324 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
12325 
12326 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12327 /*
12328  * CDDL HEADER START
12329  *
12330  * The contents of this file are subject to the terms of the
12331  * Common Development and Distribution License (the "License").
12332  * You may not use this file except in compliance with the License.
12333  *
12334  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12335  * or http://www.opensolaris.org/os/licensing.
12336  * See the License for the specific language governing permissions
12337  * and limitations under the License.
12338  *
12339  * When distributing Covered Code, include this CDDL HEADER in each
12340  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12341  * If applicable, add the following below this CDDL HEADER, with the
12342  * fields enclosed by brackets "[]" replaced with your own identifying
12343  * information: Portions Copyright [yyyy] [name of copyright owner]
12344  *
12345  * CDDL HEADER END
12346  */
12347 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12348 /*	  All Rights Reserved  	*/
12349 
12350 
12351 /*
12352  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12353  * Use is subject to license terms.
12354  *
12355  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12356  * Copyright 2016 Joyent, Inc.
12357  */
12358 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
12359 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
12360 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12361 /*	  All Rights Reserved  	*/
12362 
12363 
12364 /*
12365  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
12366  * All rights reserved.  The Berkeley software License Agreement
12367  * specifies the terms and conditions for redistribution.
12368  */
12369 
12370 /*
12371  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12372  *
12373  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12374  * Use is subject to license terms.
12375  *
12376  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12377  */
12378 
12379 /*
12380  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
12381  */
12382 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
12383 
12384 
12385 
12386 
12387 
12388 /*
12389  * Process priority specifications
12390  */
12391 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12392 /*
12393  * Resource limits
12394  */
12395 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12396 typedef unsigned long rlim_t;
12397 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12398 struct rlimit {
12399  rlim_t rlim_cur; /* current limit */
12400  rlim_t rlim_max; /* maximum value for rlim_cur */
12401 };
12402 
12403 /* transitional large file interface versions */
12404 
12405 
12406 typedef u_longlong_t rlim64_t;
12407 
12408 
12409 
12410 
12411 
12412 struct rlimit64 {
12413  rlim64_t rlim_cur; /* current limit */
12414  rlim64_t rlim_max; /* maximum value for rlim_cur */
12415 };
12416 
12417 
12418 
12419 /*
12420  * Although the saved rlimits were initially introduced by the large file API,
12421  * they are now available for all resource limits on the 64-bit kernel and for
12422  * cpu time and file size limits on the 32-bit kernel.
12423  */
12424 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12425 struct rusage {
12426  struct timeval ru_utime; /* user time used */
12427  struct timeval ru_stime; /* system time used */
12428  long ru_maxrss; /* <unimp> */
12429  long ru_ixrss; /* <unimp> */
12430  long ru_idrss; /* <unimp> */
12431  long ru_isrss; /* <unimp> */
12432  long ru_minflt; /* any page faults not requiring I/O */
12433  long ru_majflt; /* any page faults requiring I/O */
12434  long ru_nswap; /* swaps */
12435  long ru_inblock; /* block input operations */
12436  long ru_oublock; /* block output operations */
12437  long ru_msgsnd; /* streams messsages sent */
12438  long ru_msgrcv; /* streams messages received */
12439  long ru_nsignals; /* signals received */
12440  long ru_nvcsw; /* voluntary context switches */
12441  long ru_nivcsw; /* involuntary " */
12442 };
12443 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12444 /*
12445  * In the LP64 compilation environment, map large file interfaces
12446  * back to native versions where possible.
12447  */
12448 
12449 
12450 # 252 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12451 #pragma redefine_extname setrlimit64 setrlimit
12452 # 252 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12453 
12454 
12455 # 253 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12456 #pragma redefine_extname getrlimit64 getrlimit
12457 # 253 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12458 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
12459 extern int setrlimit(int, const struct rlimit *);
12460 extern int getrlimit(int, struct rlimit *);
12461 
12462 /* transitional large file interfaces */
12463 
12464 
12465 extern int setrlimit64(int, const struct rlimit64 *);
12466 extern int getrlimit64(int, struct rlimit64 *);
12467 
12468 
12469 extern int getpriority(int, id_t);
12470 extern int setpriority(int, id_t, int);
12471 extern int getrusage(int, struct rusage *);
12472 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
12473 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.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 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12495 /*	  All Rights Reserved  	*/
12496 
12497 
12498 /*
12499  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12500  * Use is subject to license terms.
12501  *
12502  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12503  * Copyright 2016 Joyent, Inc.
12504  */
12505 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
12506 
12507 
12508 
12509 
12510 
12511 /*
12512  * Available local actions and flags.
12513  */
12514 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
12515 /*
12516  * Available global actions and flags.
12517  */
12518 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
12519 /*
12520  * getrctl(2) flag values
12521  */
12522 
12523 
12524 
12525 
12526 /*
12527  * setrctl(2) flag values
12528  */
12529 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
12530 /*
12531  * rctl_priv_t: rctl privilege defined values
12532  *   A large amount of space has been deliberately left between these privileges
12533  *   to permit future enrichment of the control privilege value.
12534  */
12535 
12536 
12537 
12538 
12539 typedef u_longlong_t rctl_qty_t; /* resource control numerical values   */
12540 typedef int rctl_priv_t;
12541 
12542 typedef struct rctlblk rctlblk_t;
12543 
12544 extern int setrctl(const char *, rctlblk_t *, rctlblk_t *, int);
12545 extern int getrctl(const char *, rctlblk_t *, rctlblk_t *, int);
12546 
12547 typedef enum {
12548  RCENTITY_PROCESS,
12549  RCENTITY_TASK,
12550  RCENTITY_PROJECT,
12551  RCENTITY_ZONE
12552 } rctl_entity_t;
12553 
12554 
12555 
12556 
12557 typedef struct rctl_set rctl_set_t;
12558 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 2
12559 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12560 /*
12561  * CDDL HEADER START
12562  *
12563  * The contents of this file are subject to the terms of the
12564  * Common Development and Distribution License (the "License").
12565  * You may not use this file except in compliance with the License.
12566  *
12567  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12568  * or http://www.opensolaris.org/os/licensing.
12569  * See the License for the specific language governing permissions
12570  * and limitations under the License.
12571  *
12572  * When distributing Covered Code, include this CDDL HEADER in each
12573  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12574  * If applicable, add the following below this CDDL HEADER, with the
12575  * fields enclosed by brackets "[]" replaced with your own identifying
12576  * information: Portions Copyright [yyyy] [name of copyright owner]
12577  *
12578  * CDDL HEADER END
12579  */
12580 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12581 /*	  All Rights Reserved  	*/
12582 
12583 
12584 /*
12585  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12586  * Use is subject to license terms.
12587  *
12588  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12589  * Copyright 2016 Joyent, Inc.
12590  */
12591 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 2
12592 
12593 
12594 
12595 
12596 
12597 int rctl_walk(int (*)(const char *, void *), void *);
12598 
12599 hrtime_t rctlblk_get_firing_time(rctlblk_t *);
12600 uint_t rctlblk_get_global_action(rctlblk_t *);
12601 uint_t rctlblk_get_global_flags(rctlblk_t *);
12602 uint_t rctlblk_get_local_action(rctlblk_t *, int *);
12603 uint_t rctlblk_get_local_flags(rctlblk_t *);
12604 id_t rctlblk_get_recipient_pid(rctlblk_t *);
12605 rctl_priv_t rctlblk_get_privilege(rctlblk_t *);
12606 rctl_qty_t rctlblk_get_value(rctlblk_t *);
12607 rctl_qty_t rctlblk_get_enforced_value(rctlblk_t *);
12608 
12609 void rctlblk_set_local_action(rctlblk_t *, uint_t, int);
12610 void rctlblk_set_local_flags(rctlblk_t *, uint_t);
12611 void rctlblk_set_recipient_pid(rctlblk_t *, id_t);
12612 void rctlblk_set_privilege(rctlblk_t *, rctl_priv_t);
12613 void rctlblk_set_value(rctlblk_t *, rctl_qty_t);
12614 
12615 size_t rctlblk_size(void);
12616 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
12617 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 1
12618 /*
12619  * CDDL HEADER START
12620  *
12621  * The contents of this file are subject to the terms of the
12622  * Common Development and Distribution License (the "License").
12623  * You may not use this file except in compliance with the License.
12624  *
12625  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12626  * or http://www.opensolaris.org/os/licensing.
12627  * See the License for the specific language governing permissions
12628  * and limitations under the License.
12629  *
12630  * When distributing Covered Code, include this CDDL HEADER in each
12631  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12632  * If applicable, add the following below this CDDL HEADER, with the
12633  * fields enclosed by brackets "[]" replaced with your own identifying
12634  * information: Portions Copyright [yyyy] [name of copyright owner]
12635  *
12636  * CDDL HEADER END
12637  */
12638 /*
12639  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12640  * Use is subject to license terms.
12641  */
12642 
12643 
12644 
12645 
12646 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12647 /*
12648  * CDDL HEADER START
12649  *
12650  * The contents of this file are subject to the terms of the
12651  * Common Development and Distribution License (the "License").
12652  * You may not use this file except in compliance with the License.
12653  *
12654  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12655  * or http://www.opensolaris.org/os/licensing.
12656  * See the License for the specific language governing permissions
12657  * and limitations under the License.
12658  *
12659  * When distributing Covered Code, include this CDDL HEADER in each
12660  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12661  * If applicable, add the following below this CDDL HEADER, with the
12662  * fields enclosed by brackets "[]" replaced with your own identifying
12663  * information: Portions Copyright [yyyy] [name of copyright owner]
12664  *
12665  * CDDL HEADER END
12666  */
12667 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12668 /*	  All Rights Reserved  	*/
12669 
12670 
12671 /*
12672  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12673  * Use is subject to license terms.
12674  *
12675  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12676  * Copyright 2016 Joyent, Inc.
12677  */
12678 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
12679 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 1
12680 /*
12681  * CDDL HEADER START
12682  *
12683  * The contents of this file are subject to the terms of the
12684  * Common Development and Distribution License (the "License").
12685  * You may not use this file except in compliance with the License.
12686  *
12687  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12688  * or http://www.opensolaris.org/os/licensing.
12689  * See the License for the specific language governing permissions
12690  * and limitations under the License.
12691  *
12692  * When distributing Covered Code, include this CDDL HEADER in each
12693  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12694  * If applicable, add the following below this CDDL HEADER, with the
12695  * fields enclosed by brackets "[]" replaced with your own identifying
12696  * information: Portions Copyright [yyyy] [name of copyright owner]
12697  *
12698  * CDDL HEADER END
12699  */
12700 /*
12701  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
12702  * Copyright 2013, Joyent, Inc. All rights reserved.
12703  * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
12704  * Copyright 2014 Igor Kozhukhov <ikozhukhov@gmail.com>.
12705  */
12706 
12707 
12708 
12709 
12710 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12711 /*
12712  * CDDL HEADER START
12713  *
12714  * The contents of this file are subject to the terms of the
12715  * Common Development and Distribution License (the "License").
12716  * You may not use this file except in compliance with the License.
12717  *
12718  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12719  * or http://www.opensolaris.org/os/licensing.
12720  * See the License for the specific language governing permissions
12721  * and limitations under the License.
12722  *
12723  * When distributing Covered Code, include this CDDL HEADER in each
12724  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12725  * If applicable, add the following below this CDDL HEADER, with the
12726  * fields enclosed by brackets "[]" replaced with your own identifying
12727  * information: Portions Copyright [yyyy] [name of copyright owner]
12728  *
12729  * CDDL HEADER END
12730  */
12731 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12732 /*	  All Rights Reserved  	*/
12733 
12734 
12735 /*
12736  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12737  * Use is subject to license terms.
12738  *
12739  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12740  * Copyright 2016 Joyent, Inc.
12741  */
12742 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
12743 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
12744 /*
12745  * CDDL HEADER START
12746  *
12747  * The contents of this file are subject to the terms of the
12748  * Common Development and Distribution License (the "License").
12749  * You may not use this file except in compliance with the License.
12750  *
12751  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12752  * or http://www.opensolaris.org/os/licensing.
12753  * See the License for the specific language governing permissions
12754  * and limitations under the License.
12755  *
12756  * When distributing Covered Code, include this CDDL HEADER in each
12757  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12758  * If applicable, add the following below this CDDL HEADER, with the
12759  * fields enclosed by brackets "[]" replaced with your own identifying
12760  * information: Portions Copyright [yyyy] [name of copyright owner]
12761  *
12762  * CDDL HEADER END
12763  */
12764 /*
12765  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
12766  */
12767 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
12768 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
12769 /*
12770  * CDDL HEADER START
12771  *
12772  * The contents of this file are subject to the terms of the
12773  * Common Development and Distribution License (the "License").
12774  * You may not use this file except in compliance with the License.
12775  *
12776  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12777  * or http://www.opensolaris.org/os/licensing.
12778  * See the License for the specific language governing permissions
12779  * and limitations under the License.
12780  *
12781  * When distributing Covered Code, include this CDDL HEADER in each
12782  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12783  * If applicable, add the following below this CDDL HEADER, with the
12784  * fields enclosed by brackets "[]" replaced with your own identifying
12785  * information: Portions Copyright [yyyy] [name of copyright owner]
12786  *
12787  * CDDL HEADER END
12788  */
12789 
12790 /*
12791  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
12792  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
12793  */
12794 
12795 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
12796 /*	  All Rights Reserved  	*/
12797 
12798 /*
12799  * University Copyright- Copyright (c) 1982, 1986, 1988
12800  * The Regents of the University of California
12801  * All Rights Reserved
12802  *
12803  * University Acknowledgment- Portions of this document are derived from
12804  * software developed by the University of California, Berkeley, and its
12805  * contributors.
12806  */
12807 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
12808 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
12809 /*
12810  * CDDL HEADER START
12811  *
12812  * The contents of this file are subject to the terms of the
12813  * Common Development and Distribution License (the "License").
12814  * You may not use this file except in compliance with the License.
12815  *
12816  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12817  * or http://www.opensolaris.org/os/licensing.
12818  * See the License for the specific language governing permissions
12819  * and limitations under the License.
12820  *
12821  * When distributing Covered Code, include this CDDL HEADER in each
12822  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12823  * If applicable, add the following below this CDDL HEADER, with the
12824  * fields enclosed by brackets "[]" replaced with your own identifying
12825  * information: Portions Copyright [yyyy] [name of copyright owner]
12826  *
12827  * CDDL HEADER END
12828  */
12829 /*
12830  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
12831  */
12832 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
12833 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ipc_rctl.h" 1
12834 /*
12835  * CDDL HEADER START
12836  *
12837  * The contents of this file are subject to the terms of the
12838  * Common Development and Distribution License (the "License").
12839  * You may not use this file except in compliance with the License.
12840  *
12841  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12842  * or http://www.opensolaris.org/os/licensing.
12843  * See the License for the specific language governing permissions
12844  * and limitations under the License.
12845  *
12846  * When distributing Covered Code, include this CDDL HEADER in each
12847  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12848  * If applicable, add the following below this CDDL HEADER, with the
12849  * fields enclosed by brackets "[]" replaced with your own identifying
12850  * information: Portions Copyright [yyyy] [name of copyright owner]
12851  *
12852  * CDDL HEADER END
12853  */
12854 /*
12855  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12856  * Use is subject to license terms.
12857  */
12858 
12859 
12860 
12861 
12862 #pragma ident "%Z%%M%	%I%	%E% SMI"
12863 
12864 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
12865 /*
12866  * CDDL HEADER START
12867  *
12868  * The contents of this file are subject to the terms of the
12869  * Common Development and Distribution License (the "License").
12870  * You may not use this file except in compliance with the License.
12871  *
12872  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12873  * or http://www.opensolaris.org/os/licensing.
12874  * See the License for the specific language governing permissions
12875  * and limitations under the License.
12876  *
12877  * When distributing Covered Code, include this CDDL HEADER in each
12878  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12879  * If applicable, add the following below this CDDL HEADER, with the
12880  * fields enclosed by brackets "[]" replaced with your own identifying
12881  * information: Portions Copyright [yyyy] [name of copyright owner]
12882  *
12883  * CDDL HEADER END
12884  */
12885 /*
12886  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
12887  */
12888 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ipc_rctl.h" 2
12889 
12890 
12891 
12892 
12893 
12894 typedef struct ipc_rqty { /* datum protected by:	*/
12895  rctl_qty_t ipcq_shmmni; /* shm's ipcs_lock	*/
12896  rctl_qty_t ipcq_semmni; /* sem's ipcs_lock	*/
12897  rctl_qty_t ipcq_msgmni; /* msg's ipcs_lock	*/
12898 } ipc_rqty_t;
12899 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
12900 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 1
12901 /*
12902  * CDDL HEADER START
12903  *
12904  * The contents of this file are subject to the terms of the
12905  * Common Development and Distribution License (the "License").
12906  * You may not use this file except in compliance with the License.
12907  *
12908  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12909  * or http://www.opensolaris.org/os/licensing.
12910  * See the License for the specific language governing permissions
12911  * and limitations under the License.
12912  *
12913  * When distributing Covered Code, include this CDDL HEADER in each
12914  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12915  * If applicable, add the following below this CDDL HEADER, with the
12916  * fields enclosed by brackets "[]" replaced with your own identifying
12917  * information: Portions Copyright [yyyy] [name of copyright owner]
12918  *
12919  * CDDL HEADER END
12920  */
12921 /*
12922  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12923  *
12924  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12925  * Use is subject to license terms.
12926  */
12927 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h"
12928 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12929 /*
12930  * CDDL HEADER START
12931  *
12932  * The contents of this file are subject to the terms of the
12933  * Common Development and Distribution License (the "License").
12934  * You may not use this file except in compliance with the License.
12935  *
12936  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12937  * or http://www.opensolaris.org/os/licensing.
12938  * See the License for the specific language governing permissions
12939  * and limitations under the License.
12940  *
12941  * When distributing Covered Code, include this CDDL HEADER in each
12942  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12943  * If applicable, add the following below this CDDL HEADER, with the
12944  * fields enclosed by brackets "[]" replaced with your own identifying
12945  * information: Portions Copyright [yyyy] [name of copyright owner]
12946  *
12947  * CDDL HEADER END
12948  */
12949 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12950 /*	  All Rights Reserved  	*/
12951 
12952 
12953 /*
12954  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12955  * Use is subject to license terms.
12956  *
12957  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12958  * Copyright 2016 Joyent, Inc.
12959  */
12960 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
12961 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 1
12962 /*
12963  * CDDL HEADER START
12964  *
12965  * The contents of this file are subject to the terms of the
12966  * Common Development and Distribution License (the "License").
12967  * You may not use this file except in compliance with the License.
12968  *
12969  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12970  * or http://www.opensolaris.org/os/licensing.
12971  * See the License for the specific language governing permissions
12972  * and limitations under the License.
12973  *
12974  * When distributing Covered Code, include this CDDL HEADER in each
12975  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12976  * If applicable, add the following below this CDDL HEADER, with the
12977  * fields enclosed by brackets "[]" replaced with your own identifying
12978  * information: Portions Copyright [yyyy] [name of copyright owner]
12979  *
12980  * CDDL HEADER END
12981  */
12982 /*
12983  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
12984  *	  All Rights Reserved
12985  *
12986  */
12987 
12988 /*
12989  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12990  *
12991  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
12992  * Use is subject to license terms.
12993  */
12994 
12995 
12996 
12997 
12998 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12999 /*
13000  * CDDL HEADER START
13001  *
13002  * The contents of this file are subject to the terms of the
13003  * Common Development and Distribution License (the "License").
13004  * You may not use this file except in compliance with the License.
13005  *
13006  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13007  * or http://www.opensolaris.org/os/licensing.
13008  * See the License for the specific language governing permissions
13009  * and limitations under the License.
13010  *
13011  * When distributing Covered Code, include this CDDL HEADER in each
13012  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13013  * If applicable, add the following below this CDDL HEADER, with the
13014  * fields enclosed by brackets "[]" replaced with your own identifying
13015  * information: Portions Copyright [yyyy] [name of copyright owner]
13016  *
13017  * CDDL HEADER END
13018  */
13019 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13020 /*	  All Rights Reserved  	*/
13021 
13022 
13023 /*
13024  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13025  * Use is subject to license terms.
13026  *
13027  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
13028  * Copyright 2016 Joyent, Inc.
13029  */
13030 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 2
13031 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
13032 /*
13033  * CDDL HEADER START
13034  *
13035  * The contents of this file are subject to the terms of the
13036  * Common Development and Distribution License, Version 1.0 only
13037  * (the "License").  You may not use this file except in compliance
13038  * with the License.
13039  *
13040  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13041  * or http://www.opensolaris.org/os/licensing.
13042  * See the License for the specific language governing permissions
13043  * and limitations under the License.
13044  *
13045  * When distributing Covered Code, include this CDDL HEADER in each
13046  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13047  * If applicable, add the following below this CDDL HEADER, with the
13048  * fields enclosed by brackets "[]" replaced with your own identifying
13049  * information: Portions Copyright [yyyy] [name of copyright owner]
13050  *
13051  * CDDL HEADER END
13052  */
13053 /*
13054  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
13055  * Use is subject to license terms.
13056  */
13057 
13058 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13059 /*	  All Rights Reserved  	*/
13060 
13061 
13062 
13063 
13064 
13065 #pragma ident "%Z%%M%	%I%	%E% SMI"
13066 
13067 
13068 
13069 
13070 
13071 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
13072 /*
13073  * CDDL HEADER START
13074  *
13075  * The contents of this file are subject to the terms of the
13076  * Common Development and Distribution License (the "License").
13077  * You may not use this file except in compliance with the License.
13078  *
13079  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13080  * or http://www.opensolaris.org/os/licensing.
13081  * See the License for the specific language governing permissions
13082  * and limitations under the License.
13083  *
13084  * When distributing Covered Code, include this CDDL HEADER in each
13085  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13086  * If applicable, add the following below this CDDL HEADER, with the
13087  * fields enclosed by brackets "[]" replaced with your own identifying
13088  * information: Portions Copyright [yyyy] [name of copyright owner]
13089  *
13090  * CDDL HEADER END
13091  */
13092 
13093 /*
13094  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
13095  * Copyright 2016 Joyent, Inc.
13096  *
13097  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
13098  * Use is subject to license terms.
13099  */
13100 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
13101 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.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  * When distributing Covered Code, include this CDDL HEADER in each
13115  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13116  * If applicable, add the following below this CDDL HEADER, with the
13117  * fields enclosed by brackets "[]" replaced with your own identifying
13118  * information: Portions Copyright [yyyy] [name of copyright owner]
13119  *
13120  * CDDL HEADER END
13121  */
13122 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13123 /*	  All Rights Reserved  	*/
13124 
13125 
13126 /*
13127  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13128  * Use is subject to license terms.
13129  *
13130  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
13131  * Copyright 2016 Joyent, Inc.
13132  */
13133 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
13134 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
13135 /*
13136  * CDDL HEADER START
13137  *
13138  * The contents of this file are subject to the terms of the
13139  * Common Development and Distribution License (the "License").
13140  * You may not use this file except in compliance with the License.
13141  *
13142  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13143  * or http://www.opensolaris.org/os/licensing.
13144  * See the License for the specific language governing permissions
13145  * and limitations under the License.
13146  *
13147  * When distributing Covered Code, include this CDDL HEADER in each
13148  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13149  * If applicable, add the following below this CDDL HEADER, with the
13150  * fields enclosed by brackets "[]" replaced with your own identifying
13151  * information: Portions Copyright [yyyy] [name of copyright owner]
13152  *
13153  * CDDL HEADER END
13154  */
13155 
13156 /*
13157  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
13158  * Use is subject to license terms.
13159  */
13160 
13161 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13162 /*	  All Rights Reserved  	*/
13163 
13164 /*
13165  * University Copyright- Copyright (c) 1982, 1986, 1988
13166  * The Regents of the University of California
13167  * All Rights Reserved
13168  *
13169  * University Acknowledgment- Portions of this document are derived from
13170  * software developed by the University of California, Berkeley, and its
13171  * contributors.
13172  */
13173 
13174 
13175 
13176 
13177 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
13178 /*
13179  * CDDL HEADER START
13180  *
13181  * The contents of this file are subject to the terms of the
13182  * Common Development and Distribution License (the "License").
13183  * You may not use this file except in compliance with the License.
13184  *
13185  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13186  * or http://www.opensolaris.org/os/licensing.
13187  * See the License for the specific language governing permissions
13188  * and limitations under the License.
13189  *
13190  * When distributing Covered Code, include this CDDL HEADER in each
13191  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13192  * If applicable, add the following below this CDDL HEADER, with the
13193  * fields enclosed by brackets "[]" replaced with your own identifying
13194  * information: Portions Copyright [yyyy] [name of copyright owner]
13195  *
13196  * CDDL HEADER END
13197  */
13198 
13199 /*
13200  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
13201  * Copyright 2016 Joyent, Inc.
13202  *
13203  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
13204  * Use is subject to license terms.
13205  */
13206 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
13207 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 1
13208 /*
13209  * CDDL HEADER START
13210  *
13211  * The contents of this file are subject to the terms of the
13212  * Common Development and Distribution License (the "License").
13213  * You may not use this file except in compliance with the License.
13214  *
13215  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13216  * or http://www.opensolaris.org/os/licensing.
13217  * See the License for the specific language governing permissions
13218  * and limitations under the License.
13219  *
13220  * When distributing Covered Code, include this CDDL HEADER in each
13221  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13222  * If applicable, add the following below this CDDL HEADER, with the
13223  * fields enclosed by brackets "[]" replaced with your own identifying
13224  * information: Portions Copyright [yyyy] [name of copyright owner]
13225  *
13226  * CDDL HEADER END
13227  */
13228 
13229 /*
13230  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
13231  * Use is subject to license terms.
13232  */
13233 
13234 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13235 /*	  All Rights Reserved  	*/
13236 
13237 /*
13238  * An application should not include this header directly.  Instead it
13239  * should be included only through the inclusion of other Sun headers.
13240  *
13241  * The contents of this header is limited to identifiers specified in the
13242  * C Standard.  Any new identifiers specified in future amendments to the
13243  * C Standard must be placed in this header.  If these new identifiers
13244  * are required to also be in the C++ Standard "std" namespace, then for
13245  * anything other than macro definitions, corresponding "using" directives
13246  * must also be added to <sys/signal.h.h>.
13247  */
13248 
13249 
13250 
13251 
13252 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
13253 /*
13254  * CDDL HEADER START
13255  *
13256  * The contents of this file are subject to the terms of the
13257  * Common Development and Distribution License (the "License").
13258  * You may not use this file except in compliance with the License.
13259  *
13260  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13261  * or http://www.opensolaris.org/os/licensing.
13262  * See the License for the specific language governing permissions
13263  * and limitations under the License.
13264  *
13265  * When distributing Covered Code, include this CDDL HEADER in each
13266  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13267  * If applicable, add the following below this CDDL HEADER, with the
13268  * fields enclosed by brackets "[]" replaced with your own identifying
13269  * information: Portions Copyright [yyyy] [name of copyright owner]
13270  *
13271  * CDDL HEADER END
13272  */
13273 
13274 /*
13275  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
13276  *	  All Rights Reserved
13277  *
13278  */
13279 
13280 /*
13281  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13282  * Use is subject to license terms.
13283  */
13284 
13285 /*
13286  * WARNING: This is an implementation-specific header,
13287  * its contents are not guaranteed. Applications
13288  * should include <unistd.h> and not this header.
13289  */
13290 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 2
13291 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h"
13292 /* insert new signals here, and move _SIGRTM* appropriately */
13293 
13294 
13295 extern long _sysconf(int); /* System Private interface to sysconf() */
13296 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
13297 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
13298 /*
13299  * We need <sys/siginfo.h> for the declaration of siginfo_t.
13300  */
13301 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 1
13302 /*
13303  * CDDL HEADER START
13304  *
13305  * The contents of this file are subject to the terms of the
13306  * Common Development and Distribution License, Version 1.0 only
13307  * (the "License").  You may not use this file except in compliance
13308  * with the License.
13309  *
13310  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13311  * or http://www.opensolaris.org/os/licensing.
13312  * See the License for the specific language governing permissions
13313  * and limitations under the License.
13314  *
13315  * When distributing Covered Code, include this CDDL HEADER in each
13316  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13317  * If applicable, add the following below this CDDL HEADER, with the
13318  * fields enclosed by brackets "[]" replaced with your own identifying
13319  * information: Portions Copyright [yyyy] [name of copyright owner]
13320  *
13321  * CDDL HEADER END
13322  */
13323 /*
13324  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
13325  * Use is subject to license terms.
13326  */
13327 
13328 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13329 /*	  All Rights Reserved  	*/
13330 
13331 
13332 
13333 
13334 #pragma ident "%Z%%M%	%I%	%E% SMI"
13335 
13336 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
13337 /*
13338  * CDDL HEADER START
13339  *
13340  * The contents of this file are subject to the terms of the
13341  * Common Development and Distribution License (the "License").
13342  * You may not use this file except in compliance with the License.
13343  *
13344  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13345  * or http://www.opensolaris.org/os/licensing.
13346  * See the License for the specific language governing permissions
13347  * and limitations under the License.
13348  *
13349  * When distributing Covered Code, include this CDDL HEADER in each
13350  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13351  * If applicable, add the following below this CDDL HEADER, with the
13352  * fields enclosed by brackets "[]" replaced with your own identifying
13353  * information: Portions Copyright [yyyy] [name of copyright owner]
13354  *
13355  * CDDL HEADER END
13356  */
13357 
13358 /*
13359  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
13360  * Copyright 2016 Joyent, Inc.
13361  *
13362  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
13363  * Use is subject to license terms.
13364  */
13365 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
13366 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
13367 /*
13368  * CDDL HEADER START
13369  *
13370  * The contents of this file are subject to the terms of the
13371  * Common Development and Distribution License (the "License").
13372  * You may not use this file except in compliance with the License.
13373  *
13374  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13375  * or http://www.opensolaris.org/os/licensing.
13376  * See the License for the specific language governing permissions
13377  * and limitations under the License.
13378  *
13379  * When distributing Covered Code, include this CDDL HEADER in each
13380  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13381  * If applicable, add the following below this CDDL HEADER, with the
13382  * fields enclosed by brackets "[]" replaced with your own identifying
13383  * information: Portions Copyright [yyyy] [name of copyright owner]
13384  *
13385  * CDDL HEADER END
13386  */
13387 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13388 /*	  All Rights Reserved  	*/
13389 
13390 
13391 /*
13392  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13393  * Use is subject to license terms.
13394  *
13395  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
13396  * Copyright 2016 Joyent, Inc.
13397  */
13398 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
13399 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13400 /*
13401  * The union sigval is also defined in <time.h> as per X/Open and
13402  * POSIX requirements.
13403  */
13404 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13405 /*
13406  * The sigevent structure is also defined in <time.h> as per X/Open and
13407  * POSIX requirements.
13408  */
13409 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13410 /* values of sigev_notify */
13411 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13412 /*
13413  * negative signal codes are reserved for future use for user generated
13414  * signals
13415  */
13416 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13417 /*
13418  * Get the machine dependent signal codes (SIGILL, SIGFPE, SIGSEGV, and
13419  * SIGBUS) from <sys/machsig.h>
13420  */
13421 
13422 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 1
13423 /*
13424  * CDDL HEADER START
13425  *
13426  * The contents of this file are subject to the terms of the
13427  * Common Development and Distribution License, Version 1.0 only
13428  * (the "License").  You may not use this file except in compliance
13429  * with the License.
13430  *
13431  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13432  * or http://www.opensolaris.org/os/licensing.
13433  * See the License for the specific language governing permissions
13434  * and limitations under the License.
13435  *
13436  * When distributing Covered Code, include this CDDL HEADER in each
13437  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13438  * If applicable, add the following below this CDDL HEADER, with the
13439  * fields enclosed by brackets "[]" replaced with your own identifying
13440  * information: Portions Copyright [yyyy] [name of copyright owner]
13441  *
13442  * CDDL HEADER END
13443  */
13444 /*
13445  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
13446  * Use is subject to license terms.
13447  */
13448 
13449 /*	Copyright (c) 1988 AT&T	*/
13450 /*	  All Rights Reserved  	*/
13451 
13452 
13453 
13454 
13455 
13456 #pragma ident "%Z%%M%	%I%	%E% SMI"
13457 
13458 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
13459 /*
13460  * CDDL HEADER START
13461  *
13462  * The contents of this file are subject to the terms of the
13463  * Common Development and Distribution License (the "License").
13464  * You may not use this file except in compliance with the License.
13465  *
13466  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13467  * or http://www.opensolaris.org/os/licensing.
13468  * See the License for the specific language governing permissions
13469  * and limitations under the License.
13470  *
13471  * When distributing Covered Code, include this CDDL HEADER in each
13472  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13473  * If applicable, add the following below this CDDL HEADER, with the
13474  * fields enclosed by brackets "[]" replaced with your own identifying
13475  * information: Portions Copyright [yyyy] [name of copyright owner]
13476  *
13477  * CDDL HEADER END
13478  */
13479 
13480 /*
13481  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
13482  * Copyright 2016 Joyent, Inc.
13483  *
13484  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
13485  * Use is subject to license terms.
13486  */
13487 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 2
13488 
13489 
13490 
13491 
13492 
13493 /*
13494  * machsig.h is the machine dependent portion of siginfo.h (and is
13495  * included by siginfo.h). A version of machsig.h should exist for
13496  * each architecture. The codes for SIGILL, SIGFPU, SIGSEGV and SIGBUS
13497  * are in this file. The codes for SIGTRAP, SIGCLD(SIGCHLD), and
13498  * SIGPOLL are architecture independent and may be found in siginfo.h.
13499  */
13500 
13501 
13502 
13503 
13504 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/vm/faultcode.h" 1
13505 /*
13506  * CDDL HEADER START
13507  *
13508  * The contents of this file are subject to the terms of the
13509  * Common Development and Distribution License (the "License").
13510  * You may not use this file except in compliance with the License.
13511  *
13512  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13513  * or http://www.opensolaris.org/os/licensing.
13514  * See the License for the specific language governing permissions
13515  * and limitations under the License.
13516  *
13517  * When distributing Covered Code, include this CDDL HEADER in each
13518  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13519  * If applicable, add the following below this CDDL HEADER, with the
13520  * fields enclosed by brackets "[]" replaced with your own identifying
13521  * information: Portions Copyright [yyyy] [name of copyright owner]
13522  *
13523  * CDDL HEADER END
13524  */
13525 /*
13526  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
13527  * Use is subject to license terms.
13528  */
13529 
13530 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13531 /*	  All Rights Reserved  	*/
13532 
13533 /*
13534  * University Copyright- Copyright (c) 1982, 1986, 1988
13535  * The Regents of the University of California
13536  * All Rights Reserved
13537  *
13538  * University Acknowledgment- Portions of this document are derived from
13539  * software developed by the University of California, Berkeley, and its
13540  * contributors.
13541  */
13542 
13543 
13544 
13545 
13546 #pragma ident "%Z%%M%	%I%	%E% SMI"
13547 
13548 
13549 
13550 
13551 
13552 /*
13553  * This file describes the data type returned by vm routines
13554  * which handle faults.
13555  *
13556  * If FC_CODE(fc) == FC_OBJERR, then FC_ERRNO(fc) contains the errno value
13557  * returned by the underlying object mapped at the fault address.
13558  */
13559 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/vm/faultcode.h"
13560 typedef int faultcode_t; /* type returned by vm fault routines */
13561 
13562 extern int fc_decode(faultcode_t);
13563 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 2
13564 
13565 
13566 /*
13567  * SIGILL signal codes
13568  */
13569 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h"
13570 /*
13571  * SIGEMT signal codes
13572  */
13573 
13574 
13575 
13576 
13577 
13578 
13579 /*
13580  * SIGFPE signal codes
13581  */
13582 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h"
13583 /*
13584  * SIGSEGV signal codes
13585  */
13586 
13587 
13588 
13589 
13590 
13591 
13592 
13593 /*
13594  * SIGBUS signal codes
13595  */
13596 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
13597 
13598 /*
13599  * SIGTRAP signal codes
13600  */
13601 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13602 /*
13603  * SIGCLD signal codes
13604  */
13605 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13606 /*
13607  * SIGPOLL signal codes
13608  */
13609 # 195 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13610 /*
13611  * SIGPROF signal codes
13612  */
13613 # 215 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13614 /*
13615  * Inclusion of <sys/time_impl.h> is needed for the declaration of
13616  * timestruc_t.  However, since inclusion of <sys/time_impl.h> results
13617  * in X/Open and POSIX namespace pollution, the definition for
13618  * timestruct_t has been duplicated in a standards namespace safe header
13619  * <sys/time_std_impl.h>.  In <sys/time_std_impl.h>, the structure
13620  * name, tag, and member names, as well as the type itself, all have
13621  * leading underscores to protect namespace.
13622  */
13623 
13624 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
13625 /*
13626  * CDDL HEADER START
13627  *
13628  * The contents of this file are subject to the terms of the
13629  * Common Development and Distribution License, Version 1.0 only
13630  * (the "License").  You may not use this file except in compliance
13631  * with the License.
13632  *
13633  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13634  * or http://www.opensolaris.org/os/licensing.
13635  * See the License for the specific language governing permissions
13636  * and limitations under the License.
13637  *
13638  * When distributing Covered Code, include this CDDL HEADER in each
13639  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13640  * If applicable, add the following below this CDDL HEADER, with the
13641  * fields enclosed by brackets "[]" replaced with your own identifying
13642  * information: Portions Copyright [yyyy] [name of copyright owner]
13643  *
13644  * CDDL HEADER END
13645  */
13646 /*
13647  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
13648  * Use is subject to license terms.
13649  */
13650 
13651 /*
13652  * Implementation-private.  This header should not be included
13653  * directly by an application.  The application should instead
13654  * include <time.h> which includes this header conditionally
13655  * depending on which feature test macros are defined. By default,
13656  * this header is included by <time.h>.  X/Open and POSIX
13657  * standards requirements result in this header being included
13658  * by <time.h> only under a restricted set of conditions.
13659  */
13660 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
13661 
13662 
13663 
13664 
13665 /*
13666  * The inclusion of <sys/types.h> is needed for definitions of pid_t, etc.
13667  * Placement here is due to a dependency in <sys/select.h> which is included
13668  * by <sys/types.h> for the sigevent structure.  Hence this inclusion must
13669  * follow that definition.
13670  */
13671 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
13672 /*
13673  * CDDL HEADER START
13674  *
13675  * The contents of this file are subject to the terms of the
13676  * Common Development and Distribution License (the "License").
13677  * You may not use this file except in compliance with the License.
13678  *
13679  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13680  * or http://www.opensolaris.org/os/licensing.
13681  * See the License for the specific language governing permissions
13682  * and limitations under the License.
13683  *
13684  * When distributing Covered Code, include this CDDL HEADER in each
13685  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13686  * If applicable, add the following below this CDDL HEADER, with the
13687  * fields enclosed by brackets "[]" replaced with your own identifying
13688  * information: Portions Copyright [yyyy] [name of copyright owner]
13689  *
13690  * CDDL HEADER END
13691  */
13692 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
13693 /*	  All Rights Reserved  	*/
13694 
13695 
13696 /*
13697  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13698  * Use is subject to license terms.
13699  *
13700  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
13701  * Copyright 2016 Joyent, Inc.
13702  */
13703 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
13704 
13705 
13706 typedef struct siginfo { /* pollutes POSIX/XOPEN namespace */
13707 
13708 
13709 
13710  int si_signo; /* signal from signal.h	*/
13711  int si_code; /* code from above	*/
13712  int si_errno; /* error from errno.h	*/
13713 
13714  int si_pad; /* _LP64 union starts on an 8-byte boundary */
13715 
13716  union {
13717 
13718   int __pad[((256 / sizeof (int)) - 4)]; /* for future growth	*/
13719 
13720   struct { /* kill(), SIGCLD, siqqueue() */
13721    pid_t __pid; /* process ID		*/
13722    union {
13723     struct {
13724      uid_t __uid;
13725 
13726 
13727      union sigval __value;
13728 
13729 
13730 
13731     } __kill;
13732     struct {
13733      clock_t __utime;
13734      int __status;
13735      clock_t __stime;
13736     } __cld;
13737    } __pdata;
13738    ctid_t __ctid; /* contract ID		*/
13739    zoneid_t __zoneid; /* zone ID		*/
13740   } __proc;
13741 
13742   struct { /* SIGSEGV, SIGBUS, SIGILL, SIGTRAP, SIGFPE */
13743    void *__addr; /* faulting address	*/
13744    int __trapno; /* illegal trap number	*/
13745    caddr_t __pc; /* instruction address	*/
13746   } __fault;
13747 
13748   struct { /* SIGPOLL, SIGXFSZ	*/
13749   /* fd not currently available for SIGPOLL */
13750    int __fd; /* file descriptor	*/
13751    long __band;
13752   } __file;
13753 
13754   struct { /* SIGPROF */
13755    caddr_t __faddr; /* last fault address	*/
13756 
13757    timestruc_t __tstamp; /* real time stamp	*/
13758 
13759 
13760 
13761    short __syscall; /* current syscall	*/
13762    char __nsysarg; /* number of arguments	*/
13763    char __fault; /* last fault type	*/
13764    long __sysarg[8]; /* syscall arguments	*/
13765    int __mstate[10]; /* see <sys/msacct.h>	*/
13766   } __prof;
13767 
13768   struct { /* SI_RCTL */
13769    int32_t __entity; /* type of entity exceeding */
13770   } __rctl;
13771  } __data;
13772 
13773 } siginfo_t;
13774 # 374 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
13775 /*
13776  * XXX -- internal version is identical to siginfo_t but without the padding.
13777  * This must be maintained in sync with it.
13778  */
13779 
13780 
13781 
13782 typedef struct k_siginfo {
13783  int si_signo; /* signal from signal.h	*/
13784  int si_code; /* code from above	*/
13785  int si_errno; /* error from errno.h	*/
13786 
13787  int si_pad; /* _LP64 union starts on an 8-byte boundary */
13788 
13789  union {
13790   struct { /* kill(), SIGCLD, siqqueue() */
13791    pid_t __pid; /* process ID		*/
13792    union {
13793     struct {
13794      uid_t __uid;
13795      union sigval __value;
13796     } __kill;
13797     struct {
13798      clock_t __utime;
13799      int __status;
13800      clock_t __stime;
13801     } __cld;
13802    } __pdata;
13803    ctid_t __ctid; /* contract ID		*/
13804    zoneid_t __zoneid; /* zone ID		*/
13805   } __proc;
13806 
13807   struct { /* SIGSEGV, SIGBUS, SIGILL, SIGTRAP, SIGFPE */
13808    void *__addr; /* faulting address	*/
13809    int __trapno; /* illegal trap number	*/
13810    caddr_t __pc; /* instruction address	*/
13811   } __fault;
13812 
13813   struct { /* SIGPOLL, SIGXFSZ	*/
13814   /* fd not currently available for SIGPOLL */
13815    int __fd; /* file descriptor	*/
13816    long __band;
13817   } __file;
13818 
13819   struct { /* SIGPROF */
13820    caddr_t __faddr; /* last fault address	*/
13821 
13822 
13823    timestruc_t __tstamp; /* real time stamp	*/
13824 
13825 
13826 
13827    short __syscall; /* current syscall	*/
13828    char __nsysarg; /* number of arguments	*/
13829    char __fault; /* last fault type	*/
13830    /* these are omitted to keep k_siginfo_t small	*/
13831    /* long	__sysarg[8]; */
13832    /* int	__mstate[10]; */
13833   } __prof;
13834 
13835   struct { /* SI_RCTL */
13836    int32_t __entity; /* type of entity exceeding */
13837   } __rctl;
13838 
13839  } __data;
13840 
13841 } k_siginfo_t;
13842 
13843 typedef struct sigqueue {
13844  struct sigqueue *sq_next;
13845  k_siginfo_t sq_info;
13846  void (*sq_func)(struct sigqueue *); /* destructor function */
13847  void *sq_backptr; /* pointer to the data structure */
13848      /* associated by sq_func()	*/
13849  int sq_external; /* comes from outside the contract */
13850 } sigqueue_t;
13851 
13852 /*  indication whether to queue the signal or not */
13853 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
13854 
13855 
13856 /* Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements */
13857 
13858 
13859 
13860 
13861 
13862 
13863 
13864 typedef struct {
13865  unsigned int __sigbits[3];
13866 } k_sigset_t;
13867 
13868 /*
13869  * The signal handler routine can have either one or three arguments.
13870  * Existing C code has used either form so not specifing the arguments
13871  * neatly finesses the problem.  C++ doesn't accept this.  To C++
13872  * "(*sa_handler)()" indicates a routine with no arguments (ANSI C would
13873  * specify this as "(*sa_handler)(void)").  One or the other form must be
13874  * used for C++ and the only logical choice is "(*sa_handler)(int)" to allow
13875  * the SIG_* defines to work.  "(*sa_sigaction)(int, siginfo_t *, void *)"
13876  * can be used for the three argument form.
13877  */
13878 
13879 /*
13880  * Note: storage overlap by sa_handler and sa_sigaction
13881  */
13882 struct sigaction {
13883  int sa_flags;
13884  union {
13885 
13886 
13887 
13888   void (*_handler)();
13889 
13890 
13891 
13892 
13893   void (*_sigaction)(int, siginfo_t *, void *);
13894 
13895  } _funcptr;
13896  sigset_t sa_mask;
13897 
13898 
13899 
13900 };
13901 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
13902 /* this is only valid for SIGCLD */
13903 
13904 
13905 
13906 
13907 
13908 
13909 
13910    /* non-conformant ANSI compilation	*/
13911 
13912 /* definitions for the sa_flags field */
13913 # 153 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
13914 /* this is only valid for SIGCLD */
13915 
13916 
13917 
13918 /*
13919  * use of these symbols by applications is injurious
13920  *	to binary compatibility
13921  */
13922 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
13923 /* Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements. */
13924 
13925 
13926 
13927 typedef struct sigaltstack {
13928 
13929 
13930 
13931  void *ss_sp;
13932  size_t ss_size;
13933  int ss_flags;
13934 } stack_t;
13935 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
13936 /* signotify id used only by libc for mq_notify()/aio_notify() */
13937 typedef struct signotify_id { /* signotify id struct		*/
13938  pid_t sn_pid; /* pid of proc to be notified	*/
13939  int sn_index; /* index in preallocated pool	*/
13940  int sn_pad; /* reserved			*/
13941 } signotify_id_t;
13942 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
13943 /* Command codes for sig_notify call */
13944 
13945 
13946 
13947 
13948 
13949 
13950 
13951 /* Added as per XPG4v2 */
13952 
13953 
13954 
13955 struct sigstack {
13956  void *ss_sp;
13957  int ss_onstack;
13958 };
13959 
13960 
13961 /*
13962  * For definition of ucontext_t; must follow struct definition
13963  * for  sigset_t
13964  */
13965 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
13966 
13967 /*
13968  *	This file defines the data needed to specify a set of
13969  *	processes.  These types are used by the sigsend, sigsendset,
13970  *	priocntl, priocntlset, waitid, evexit, and evexitset system
13971  *	calls.
13972  */
13973 
13974 
13975 
13976 
13977 
13978 /*
13979  *	The following defines the values for an identifier type.  It
13980  *	specifies the interpretation of an id value.  An idtype and
13981  *	id together define a simple set of processes.
13982  */
13983 typedef enum
13984 
13985  idtype /* pollutes XPG4.2 namespace */
13986 
13987   {
13988  P_PID, /* A process identifier.		*/
13989  P_PPID, /* A parent process identifier.		*/
13990  P_PGID, /* A process group (job control group)	*/
13991    /* identifier.				*/
13992  P_SID, /* A session identifier.		*/
13993  P_CID, /* A scheduling class identifier.	*/
13994  P_UID, /* A user identifier.			*/
13995  P_GID, /* A group identifier.			*/
13996  P_ALL, /* All processes.			*/
13997  P_LWPID, /* An LWP identifier.			*/
13998  P_TASKID, /* A task identifier.			*/
13999  P_PROJID, /* A project identifier.		*/
14000  P_POOLID, /* A pool identifier.			*/
14001  P_ZONEID, /* A zone identifier.			*/
14002  P_CTID, /* A (process) contract identifier.	*/
14003  P_CPUID, /* CPU identifier.			*/
14004  P_PSETID /* Processor set identifier		*/
14005 } idtype_t;
14006 
14007 
14008 /*
14009  *	The following defines the operations which can be performed to
14010  *	combine two simple sets of processes to form another set of
14011  *	processes.
14012  */
14013 
14014 typedef enum idop {
14015  POP_DIFF, /* Set difference.  The processes which	*/
14016    /* are in the left operand set and not	*/
14017    /* in the right operand set.		*/
14018  POP_AND, /* Set disjunction.  The processes	*/
14019    /* which are in both the left and right	*/
14020    /* operand sets.			*/
14021  POP_OR, /* Set conjunction.  The processes	*/
14022    /* which are in either the left or the	*/
14023    /* right operand sets (or both).	*/
14024  POP_XOR /* Set exclusive or.  The processes 	*/
14025    /* which are in either the left or	*/
14026    /* right operand sets but not in both.	*/
14027 } idop_t;
14028 
14029 
14030 /*
14031  *	The following structure is used to define a set of processes.
14032  *	The set is defined in terms of two simple sets of processes
14033  *	and an operator which operates on these two operand sets.
14034  */
14035 typedef struct procset {
14036  idop_t p_op; /* The operator connection the	*/
14037     /* following two operands each	*/
14038     /* of which is a simple set of	*/
14039     /* processes.			*/
14040 
14041  idtype_t p_lidtype;
14042     /* The type of the left operand	*/
14043     /* simple set.			*/
14044  id_t p_lid; /* The id of the left operand.	*/
14045 
14046  idtype_t p_ridtype;
14047     /* The type of the right	*/
14048     /* operand simple set.		*/
14049  id_t p_rid; /* The id of the right operand.	*/
14050 } procset_t;
14051 
14052 /*
14053  *	The following macro can be used to initialize a procset_t
14054  *	structure.
14055  */
14056 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 2
14057 
14058 
14059 
14060 
14061 
14062 /*
14063  * Definitions for p_online, processor_info & lgrp system calls.
14064  */
14065 
14066 /*
14067  * Type for an lgrpid
14068  */
14069 typedef uint16_t lgrpid_t;
14070 
14071 /*
14072  * Type for processor name (CPU number).
14073  */
14074 typedef int processorid_t;
14075 typedef int chipid_t;
14076 
14077 /*
14078  * Flags and return values for p_online(2), and pi_state for processor_info(2).
14079  * These flags are *not* for in-kernel examination of CPU states.
14080  * See <sys/cpuvar.h> for appropriate informational functions.
14081  */
14082 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h"
14083 /*
14084  * String names for processor states defined above.
14085  */
14086 
14087 
14088 
14089 
14090 
14091 
14092 
14093 /*
14094  * Structure filled in by processor_info(2). This structure
14095  * SHOULD NOT BE MODIFIED. Changes to the structure would
14096  * negate ABI compatibility.
14097  *
14098  * The string fields are guaranteed to contain a NULL.
14099  *
14100  * The pi_fputypes field contains a (possibly empty) comma-separated
14101  * list of floating point identifier strings.
14102  */
14103 
14104 
14105 
14106 typedef struct {
14107  int pi_state; /* processor state, see above */
14108  char pi_processor_type[16]; /* ASCII CPU type */
14109  char pi_fputypes[32]; /* ASCII FPU types */
14110  int pi_clock; /* CPU clock freq in MHz */
14111 } processor_info_t;
14112 
14113 /*
14114  * Binding values for processor_bind(2)
14115  */
14116 
14117 
14118 
14119 
14120 
14121 
14122 /*
14123  * User-level system call interface prototypes
14124  */
14125 
14126 
14127 extern int p_online(processorid_t processorid, int flag);
14128 extern int processor_info(processorid_t processorid,
14129       processor_info_t *infop);
14130 extern int processor_bind(idtype_t idtype, id_t id,
14131       processorid_t processorid, processorid_t *obind);
14132 extern processorid_t getcpuid(void);
14133 extern lgrpid_t gethomelgroup(void);
14134 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
14135 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
14136 /*
14137  * CDDL HEADER START
14138  *
14139  * The contents of this file are subject to the terms of the
14140  * Common Development and Distribution License, Version 1.0 only
14141  * (the "License").  You may not use this file except in compliance
14142  * with the License.
14143  *
14144  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14145  * or http://www.opensolaris.org/os/licensing.
14146  * See the License for the specific language governing permissions
14147  * and limitations under the License.
14148  *
14149  * When distributing Covered Code, include this CDDL HEADER in each
14150  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14151  * If applicable, add the following below this CDDL HEADER, with the
14152  * fields enclosed by brackets "[]" replaced with your own identifying
14153  * information: Portions Copyright [yyyy] [name of copyright owner]
14154  *
14155  * CDDL HEADER END
14156  */
14157 /*
14158  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
14159  * Use is subject to license terms.
14160  */
14161 
14162 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
14163 /*	  All Rights Reserved  	*/
14164 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
14165 
14166 typedef int psetid_t;
14167 
14168 /* special processor set id's */
14169 
14170 
14171 
14172 
14173 
14174 
14175 
14176 /* types of processor sets */
14177 
14178 
14179 
14180 
14181 
14182 extern int pset_create(psetid_t *);
14183 extern int pset_destroy(psetid_t);
14184 extern int pset_assign(psetid_t, processorid_t, psetid_t *);
14185 extern int pset_info(psetid_t, int *, uint_t *, processorid_t *);
14186 extern int pset_bind(psetid_t, idtype_t, id_t, psetid_t *);
14187 extern int pset_bind_lwp(psetid_t, id_t, pid_t, psetid_t *);
14188 extern int pset_getloadavg(psetid_t, double [], int);
14189 extern int pset_list(psetid_t *, uint_t *);
14190 extern int pset_setattr(psetid_t, uint_t);
14191 extern int pset_getattr(psetid_t, uint_t *);
14192 
14193 
14194 
14195 
14196 
14197 /* system call subcodes */
14198 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h"
14199 /* attribute bits */
14200 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
14201 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 1
14202 /*
14203  * CDDL HEADER START
14204  *
14205  * The contents of this file are subject to the terms of the
14206  * Common Development and Distribution License (the "License").
14207  * You may not use this file except in compliance with the License.
14208  *
14209  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14210  * or http://www.opensolaris.org/os/licensing.
14211  * See the License for the specific language governing permissions
14212  * and limitations under the License.
14213  *
14214  * When distributing Covered Code, include this CDDL HEADER in each
14215  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14216  * If applicable, add the following below this CDDL HEADER, with the
14217  * fields enclosed by brackets "[]" replaced with your own identifying
14218  * information: Portions Copyright [yyyy] [name of copyright owner]
14219  *
14220  * CDDL HEADER END
14221  */
14222 /*
14223  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14224  * Use is subject to license terms.
14225  */
14226 
14227 
14228 
14229 
14230 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
14231 /*
14232  * CDDL HEADER START
14233  *
14234  * The contents of this file are subject to the terms of the
14235  * Common Development and Distribution License (the "License").
14236  * You may not use this file except in compliance with the License.
14237  *
14238  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14239  * or http://www.opensolaris.org/os/licensing.
14240  * See the License for the specific language governing permissions
14241  * and limitations under the License.
14242  *
14243  * When distributing Covered Code, include this CDDL HEADER in each
14244  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14245  * If applicable, add the following below this CDDL HEADER, with the
14246  * fields enclosed by brackets "[]" replaced with your own identifying
14247  * information: Portions Copyright [yyyy] [name of copyright owner]
14248  *
14249  * CDDL HEADER END
14250  */
14251 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
14252 /*	  All Rights Reserved  	*/
14253 
14254 
14255 /*
14256  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14257  * Use is subject to license terms.
14258  *
14259  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
14260  * Copyright 2016 Joyent, Inc.
14261  */
14262 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 2
14263 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h"
14264 /*
14265  * types of label comparison
14266  */
14267 
14268 
14269 
14270 /* Manifest human readable label names */
14271 
14272 
14273 
14274 /* Binary Label Structure Definitions */
14275 
14276 typedef struct _mac_label_impl m_label_t;
14277 
14278 typedef m_label_t blevel_t, /* compatibility */
14279    bslabel_t, /* Sensitivity Label */
14280    bclear_t; /* Clearance */
14281 
14282 typedef struct _tsol_binary_level_lrange { /* Level Range */
14283  m_label_t *lower_bound;
14284  m_label_t *upper_bound;
14285 } m_range_t;
14286 
14287 typedef m_range_t blrange_t;
14288 
14289 typedef struct tsol_mlp_s {
14290  uchar_t mlp_ipp;
14291  uint16_t mlp_port;
14292  uint16_t mlp_port_upper;
14293 } tsol_mlp_t;
14294 
14295 /* Procedure Interface Definitions available to user and kernel */
14296 
14297 extern int bltype(const void *, uint8_t);
14298 extern int blequal(const m_label_t *, const m_label_t *);
14299 extern int bldominates(const m_label_t *, const m_label_t *);
14300 extern int blstrictdom(const m_label_t *, const m_label_t *);
14301 extern int blinrange(const m_label_t *, const m_range_t *);
14302 extern void blmaximum(m_label_t *, const m_label_t *);
14303 extern void blminimum(m_label_t *, const m_label_t *);
14304 extern void bsllow(m_label_t *);
14305 extern void bslhigh(m_label_t *);
14306 extern void bclearlow(m_label_t *);
14307 extern void bclearhigh(m_label_t *);
14308 extern void bslundef(m_label_t *);
14309 extern void bclearundef(m_label_t *);
14310 extern void setbltype(void *, uint8_t);
14311 extern boolean_t bisinvalid(const void *);
14312 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
14313 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
14314 /*
14315  * CDDL HEADER START
14316  *
14317  * The contents of this file are subject to the terms of the
14318  * Common Development and Distribution License (the "License").
14319  * You may not use this file except in compliance with the License.
14320  *
14321  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14322  * or http://www.opensolaris.org/os/licensing.
14323  * See the License for the specific language governing permissions
14324  * and limitations under the License.
14325  *
14326  * When distributing Covered Code, include this CDDL HEADER in each
14327  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14328  * If applicable, add the following below this CDDL HEADER, with the
14329  * fields enclosed by brackets "[]" replaced with your own identifying
14330  * information: Portions Copyright [yyyy] [name of copyright owner]
14331  *
14332  * CDDL HEADER END
14333  */
14334 /*
14335  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14336  * Use is subject to license terms.
14337  */
14338 
14339 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
14340 /*	  All Rights Reserved  	*/
14341 
14342 /*
14343  * Portions of this source code were derived from Berkeley 4.3 BSD
14344  * under license from the Regents of the University of California.
14345  */
14346 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
14347 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h" 1
14348 /*
14349  * CDDL HEADER START
14350  *
14351  * The contents of this file are subject to the terms of the
14352  * Common Development and Distribution License (the "License").
14353  * You may not use this file except in compliance with the License.
14354  *
14355  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14356  * or http://www.opensolaris.org/os/licensing.
14357  * See the License for the specific language governing permissions
14358  * and limitations under the License.
14359  *
14360  * When distributing Covered Code, include this CDDL HEADER in each
14361  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14362  * If applicable, add the following below this CDDL HEADER, with the
14363  * fields enclosed by brackets "[]" replaced with your own identifying
14364  * information: Portions Copyright [yyyy] [name of copyright owner]
14365  *
14366  * CDDL HEADER END
14367  */
14368 
14369 /*
14370  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14371  * Use is subject to license terms.
14372  */
14373 
14374 
14375 
14376 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 1
14377 /*
14378  * CDDL HEADER START
14379  *
14380  * The contents of this file are subject to the terms of the
14381  * Common Development and Distribution License (the "License").
14382  * You may not use this file except in compliance with the License.
14383  *
14384  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14385  * or http://www.opensolaris.org/os/licensing.
14386  * See the License for the specific language governing permissions
14387  * and limitations under the License.
14388  *
14389  * When distributing Covered Code, include this CDDL HEADER in each
14390  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14391  * If applicable, add the following below this CDDL HEADER, with the
14392  * fields enclosed by brackets "[]" replaced with your own identifying
14393  * information: Portions Copyright [yyyy] [name of copyright owner]
14394  *
14395  * CDDL HEADER END
14396  */
14397 /*
14398  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
14399  * Use is subject to license terms.
14400  *
14401  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
14402  */
14403 
14404 
14405 
14406 
14407 /*
14408  * Definition of general kernel statistics structures and /dev/kstat ioctls
14409  */
14410 
14411 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
14412 /*
14413  * CDDL HEADER START
14414  *
14415  * The contents of this file are subject to the terms of the
14416  * Common Development and Distribution License (the "License").
14417  * You may not use this file except in compliance with the License.
14418  *
14419  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14420  * or http://www.opensolaris.org/os/licensing.
14421  * See the License for the specific language governing permissions
14422  * and limitations under the License.
14423  *
14424  * When distributing Covered Code, include this CDDL HEADER in each
14425  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14426  * If applicable, add the following below this CDDL HEADER, with the
14427  * fields enclosed by brackets "[]" replaced with your own identifying
14428  * information: Portions Copyright [yyyy] [name of copyright owner]
14429  *
14430  * CDDL HEADER END
14431  */
14432 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
14433 /*	  All Rights Reserved  	*/
14434 
14435 
14436 /*
14437  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14438  * Use is subject to license terms.
14439  *
14440  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
14441  * Copyright 2016 Joyent, Inc.
14442  */
14443 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 2
14444 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
14445 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
14446 /*	  All Rights Reserved  	*/
14447 
14448 
14449 /*
14450  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
14451  * All rights reserved.  The Berkeley software License Agreement
14452  * specifies the terms and conditions for redistribution.
14453  */
14454 
14455 /*
14456  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
14457  *
14458  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14459  * Use is subject to license terms.
14460  *
14461  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
14462  */
14463 
14464 /*
14465  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
14466  */
14467 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 2
14468 
14469 
14470 
14471 
14472 
14473 typedef int kid_t; /* unique kstat id */
14474 
14475 /*
14476  * Kernel statistics driver (/dev/kstat) ioctls
14477  */
14478 
14479 
14480 
14481 
14482 
14483 
14484 
14485 /*
14486  * /dev/kstat ioctl usage (kd denotes /dev/kstat descriptor):
14487  *
14488  *	kcid = ioctl(kd, KSTAT_IOC_CHAIN_ID, NULL);
14489  *	kcid = ioctl(kd, KSTAT_IOC_READ, kstat_t *);
14490  *	kcid = ioctl(kd, KSTAT_IOC_WRITE, kstat_t *);
14491  */
14492 
14493 
14494 
14495 /*
14496  * The generic kstat header
14497  */
14498 
14499 typedef struct kstat {
14500  /*
14501 	 * Fields relevant to both kernel and user
14502 	 */
14503  hrtime_t ks_crtime; /* creation time (from gethrtime()) */
14504  struct kstat *ks_next; /* kstat chain linkage */
14505  kid_t ks_kid; /* unique kstat ID */
14506  char ks_module[31]; /* provider module name */
14507  uchar_t ks_resv; /* reserved, currently just padding */
14508  int ks_instance; /* provider module's instance */
14509  char ks_name[31]; /* kstat name */
14510  uchar_t ks_type; /* kstat data type */
14511  char ks_class[31]; /* kstat class */
14512  uchar_t ks_flags; /* kstat flags */
14513  void *ks_data; /* kstat type-specific data */
14514  uint_t ks_ndata; /* # of type-specific data records */
14515  size_t ks_data_size; /* total size of kstat data section */
14516  hrtime_t ks_snaptime; /* time of last data shapshot */
14517  /*
14518 	 * Fields relevant to kernel only
14519 	 */
14520  int (*ks_update)(struct kstat *, int); /* dynamic update */
14521  void *ks_private; /* arbitrary provider-private data */
14522  int (*ks_snapshot)(struct kstat *, void *, int);
14523  void *ks_lock; /* protects this kstat's data */
14524 } kstat_t;
14525 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
14526 /*
14527  * kstat structure and locking strategy
14528  *
14529  * Each kstat consists of a header section (a kstat_t) and a data section.
14530  * The system maintains a set of kstats, protected by kstat_chain_lock.
14531  * kstat_chain_lock protects all additions to/deletions from this set,
14532  * as well as all changes to kstat headers.  kstat data sections are
14533  * *optionally* protected by the per-kstat ks_lock.  If ks_lock is non-NULL,
14534  * kstat clients (e.g. /dev/kstat) will acquire this lock for all of their
14535  * operations on that kstat.  It is up to the kstat provider to decide whether
14536  * guaranteeing consistent data to kstat clients is sufficiently important
14537  * to justify the locking cost.  Note, however, that most statistic updates
14538  * already occur under one of the provider's mutexes, so if the provider sets
14539  * ks_lock to point to that mutex, then kstat data locking is free.
14540  *
14541  * NOTE: variable-size kstats MUST employ kstat data locking, to prevent
14542  * data-size races with kstat clients.
14543  *
14544  * NOTE: ks_lock is really of type (kmutex_t *); it is declared as (void *)
14545  * in the kstat header so that users don't have to be exposed to all of the
14546  * kernel's lock-related data structures.
14547  */
14548 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
14549 /*
14550  * kstat time
14551  *
14552  * All times associated with kstats (e.g. creation time, snapshot time,
14553  * kstat_timer_t and kstat_io_t timestamps, etc.) are 64-bit nanosecond values,
14554  * as returned by gethrtime().  The accuracy of these timestamps is machine
14555  * dependent, but the precision (units) is the same across all platforms.
14556  */
14557 
14558 /*
14559  * kstat identity (KID)
14560  *
14561  * Each kstat is assigned a unique KID (kstat ID) when it is added to the
14562  * global kstat chain.  The KID is used as a cookie by /dev/kstat to
14563  * request information about the corresponding kstat.  There is also
14564  * an identity associated with the entire kstat chain, kstat_chain_id,
14565  * which is bumped each time a kstat is added or deleted.  /dev/kstat uses
14566  * the chain ID to detect changes in the kstat chain (e.g., a new disk
14567  * coming online) between ioctl()s.
14568  */
14569 
14570 /*
14571  * kstat module, kstat instance
14572  *
14573  * ks_module and ks_instance contain the name and instance of the module
14574  * that created the kstat.  In cases where there can only be one instance,
14575  * ks_instance is 0.  The kernel proper (/kernel/unix) uses "unix" as its
14576  * module name.
14577  */
14578 
14579 /*
14580  * kstat name
14581  *
14582  * ks_name gives a meaningful name to a kstat.  The full kstat namespace
14583  * is module.instance.name, so the name only need be unique within a
14584  * module.  kstat_create() will fail if you try to create a kstat with
14585  * an already-used (ks_module, ks_instance, ks_name) triplet.  Spaces are
14586  * allowed in kstat names, but strongly discouraged, since they hinder
14587  * awk-style processing at user level.
14588  */
14589 
14590 /*
14591  * kstat type
14592  *
14593  * The kstat mechanism provides several flavors of kstat data, defined
14594  * below.  The "raw" kstat type is just treated as an array of bytes; you
14595  * can use this to export any kind of data you want.
14596  *
14597  * Some kstat types allow multiple data structures per kstat, e.g.
14598  * KSTAT_TYPE_NAMED; others do not.  This is part of the spec for each
14599  * kstat data type.
14600  *
14601  * User-level tools should *not* rely on the #define KSTAT_NUM_TYPES.  To
14602  * get this information, read out the standard system kstat "kstat_types".
14603  */
14604 
14605 
14606      /* ks_ndata >= 1 */
14607 
14608      /* ks_ndata >= 1 */
14609 
14610      /* ks_ndata == 1 */
14611 
14612      /* ks_ndata == 1 */
14613 
14614      /* ks_ndata >= 1 */
14615 
14616 
14617 
14618 /*
14619  * kstat class
14620  *
14621  * Each kstat can be characterized as belonging to some broad class
14622  * of statistics, e.g. disk, tape, net, vm, streams, etc.  This field
14623  * can be used as a filter to extract related kstats.  The following
14624  * values are currently in use: disk, tape, net, controller, vm, kvm,
14625  * hat, streams, kstat, and misc.  (The kstat class encompasses things
14626  * like kstat_types.)
14627  */
14628 
14629 /*
14630  * kstat flags
14631  *
14632  * Any of the following flags may be passed to kstat_create().  They are
14633  * all zero by default.
14634  *
14635  *	KSTAT_FLAG_VIRTUAL:
14636  *
14637  *		Tells kstat_create() not to allocate memory for the
14638  *		kstat data section; instead, you will set the ks_data
14639  *		field to point to the data you wish to export.  This
14640  *		provides a convenient way to export existing data
14641  *		structures.
14642  *
14643  *	KSTAT_FLAG_VAR_SIZE:
14644  *
14645  *		The size of the kstat you are creating will vary over time.
14646  *		For example, you may want to use the kstat mechanism to
14647  *		export a linked list.  NOTE: The kstat framework does not
14648  *		manage the data section, so all variable-size kstats must be
14649  *		virtual kstats.  Moreover, variable-size kstats MUST employ
14650  *		kstat data locking to prevent data-size races with kstat
14651  *		clients.  See the section on "kstat snapshot" for details.
14652  *
14653  *	KSTAT_FLAG_WRITABLE:
14654  *
14655  *		Makes the kstat's data section writable by root.
14656  *		The ks_snapshot routine (see below) does not need to check for
14657  *		this; permission checking is handled in the kstat driver.
14658  *
14659  *	KSTAT_FLAG_PERSISTENT:
14660  *
14661  *		Indicates that this kstat is to be persistent over time.
14662  *		For persistent kstats, kstat_delete() simply marks the
14663  *		kstat as dormant; a subsequent kstat_create() reactivates
14664  *		the kstat.  This feature is provided so that statistics
14665  *		are not lost across driver close/open (e.g., raw disk I/O
14666  *		on a disk with no mounted partitions.)
14667  *		NOTE: Persistent kstats cannot be virtual, since ks_data
14668  *		points to garbage as soon as the driver goes away.
14669  *
14670  * The following flags are maintained by the kstat framework:
14671  *
14672  *	KSTAT_FLAG_DORMANT:
14673  *
14674  *		For persistent kstats, indicates that the kstat is in the
14675  *		dormant state (e.g., the corresponding device is closed).
14676  *
14677  *	KSTAT_FLAG_INVALID:
14678  *
14679  *		This flag is set when a kstat is in a transitional state,
14680  *		e.g. between kstat_create() and kstat_install().
14681  *		kstat clients must not attempt to access the kstat's data
14682  *		if this flag is set.
14683  *
14684  *	KSTAT_FLAG_LONGSTRINGS:
14685  *
14686  *		Indicates that this kstat contains long strings (which
14687  *		are stored outside of the kstat data section). When copied
14688  *		out to user space the string data will be held in the data
14689  *		section provided by the user.
14690  */
14691 # 316 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
14692 /*
14693  * Dynamic update support
14694  *
14695  * The kstat mechanism allows for an optional ks_update function to update
14696  * kstat data.  This is useful for drivers where the underlying device
14697  * keeps cheap hardware stats, but extraction is expensive.  Instead of
14698  * constantly keeping the kstat data section up to date, you can supply a
14699  * ks_update function which updates the kstat's data section on demand.
14700  * To take advantage of this feature, simply set the ks_update field before
14701  * calling kstat_install().
14702  *
14703  * The ks_update function, if supplied, must have the following structure:
14704  *
14705  *	int
14706  *	foo_kstat_update(kstat_t *ksp, int rw)
14707  *	{
14708  *		if (rw == KSTAT_WRITE) {
14709  *			... update the native stats from ksp->ks_data;
14710  *				return EACCES if you don't support this
14711  *		} else {
14712  *			... update ksp->ks_data from the native stats
14713  *		}
14714  *	}
14715  *
14716  * The ks_update return codes are: 0 for success, EACCES if you don't allow
14717  * KSTAT_WRITE, and EIO for any other type of error.
14718  *
14719  * In general, the ks_update function may need to refer to provider-private
14720  * data; for example, it may need a pointer to the provider's raw statistics.
14721  * The ks_private field is available for this purpose.  Its use is entirely
14722  * at the provider's discretion.
14723  *
14724  * All variable-size kstats MUST supply a ks_update routine, which computes
14725  * and sets ks_data_size (and ks_ndata if that is meaningful), since these
14726  * are needed to perform kstat snapshots (see below).
14727  *
14728  * No kstat locking should be done inside the ks_update routine.  The caller
14729  * will already be holding the kstat's ks_lock (to ensure consistent data).
14730  */
14731 
14732 
14733 
14734 
14735 /*
14736  * Kstat snapshot
14737  *
14738  * In order to get a consistent view of a kstat's data, clients must obey
14739  * the kstat's locking strategy.  However, these clients may need to perform
14740  * operations on the data which could cause a fault (e.g. copyout()), or
14741  * operations which are simply expensive.  Doing so could cause deadlock
14742  * (e.g. if you're holding a disk's kstat lock which is ultimately required
14743  * to resolve a copyout() fault), performance degradation (since the providers'
14744  * activity is serialized at the kstat lock), device timing problems, etc.
14745  *
14746  * To avoid these problems, kstat data is provided via snapshots.  Taking
14747  * a snapshot is a simple process: allocate a wired-down kernel buffer,
14748  * acquire the kstat's data lock, copy the data into the buffer ("take the
14749  * snapshot"), and release the lock.  This ensures that the kstat's data lock
14750  * will be held as briefly as possible, and that no faults will occur while
14751  * the lock is held.
14752  *
14753  * Normally, the snapshot is taken by default_kstat_snapshot(), which
14754  * timestamps the data (sets ks_snaptime), copies it, and does a little
14755  * massaging to deal with incomplete transactions on i/o kstats.  However,
14756  * this routine only works for kstats with contiguous data (the typical case).
14757  * If you create a kstat whose data is, say, a linked list, you must provide
14758  * your own ks_snapshot routine.  The routine you supply must have the
14759  * following prototype (replace "foo" with something appropriate):
14760  *
14761  *	int foo_kstat_snapshot(kstat_t *ksp, void *buf, int rw);
14762  *
14763  * The minimal snapshot routine -- one which copies contiguous data that
14764  * doesn't need any massaging -- would be this:
14765  *
14766  *	ksp->ks_snaptime = gethrtime();
14767  *	if (rw == KSTAT_WRITE)
14768  *		bcopy(buf, ksp->ks_data, ksp->ks_data_size);
14769  *	else
14770  *		bcopy(ksp->ks_data, buf, ksp->ks_data_size);
14771  *	return (0);
14772  *
14773  * A more illuminating example is taking a snapshot of a linked list:
14774  *
14775  *	ksp->ks_snaptime = gethrtime();
14776  *	if (rw == KSTAT_WRITE)
14777  *		return (EACCES);		... See below ...
14778  *	for (foo = first_foo; foo; foo = foo->next) {
14779  *		bcopy((char *) foo, (char *) buf, sizeof (struct foo));
14780  *		buf = ((struct foo *) buf) + 1;
14781  *	}
14782  *	return (0);
14783  *
14784  * In the example above, we have decided that we don't want to allow
14785  * KSTAT_WRITE access, so we return EACCES if this is attempted.
14786  *
14787  * The key points are:
14788  *
14789  *	(1) ks_snaptime must be set (via gethrtime()) to timestamp the data.
14790  *	(2) Data gets copied from the kstat to the buffer on KSTAT_READ,
14791  *		and from the buffer to the kstat on KSTAT_WRITE.
14792  *	(3) ks_snapshot return values are: 0 for success, EACCES if you
14793  *		don't allow KSTAT_WRITE, and EIO for any other type of error.
14794  *
14795  * Named kstats (see section on "Named statistics" below) containing long
14796  * strings (KSTAT_DATA_STRING) need special handling.  The kstat driver
14797  * assumes that all strings are copied into the buffer after the array of
14798  * named kstats, and the pointers (KSTAT_NAMED_STR_PTR()) are updated to point
14799  * into the copy within the buffer. The default snapshot routine does this,
14800  * but overriding routines should contain at least the following:
14801  *
14802  * if (rw == KSTAT_READ) {
14803  * 	kstat_named_t *knp = buf;
14804  * 	char *end = knp + ksp->ks_ndata;
14805  * 	uint_t i;
14806  *
14807  * 	... Do the regular copy ...
14808  * 	bcopy(ksp->ks_data, buf, sizeof (kstat_named_t) * ksp->ks_ndata);
14809  *
14810  * 	for (i = 0; i < ksp->ks_ndata; i++, knp++) {
14811  *		if (knp[i].data_type == KSTAT_DATA_STRING &&
14812  *		    KSTAT_NAMED_STR_PTR(knp) != NULL) {
14813  *			bcopy(KSTAT_NAMED_STR_PTR(knp), end,
14814  *			    KSTAT_NAMED_STR_BUFLEN(knp));
14815  *			KSTAT_NAMED_STR_PTR(knp) = end;
14816  *			end += KSTAT_NAMED_STR_BUFLEN(knp);
14817  *		}
14818  *	}
14819  */
14820 
14821 /*
14822  * Named statistics.
14823  *
14824  * List of arbitrary name=value statistics.
14825  */
14826 
14827 typedef struct kstat_named {
14828  char name[31]; /* name of counter */
14829  uchar_t data_type; /* data type */
14830  union {
14831   char c[16]; /* enough for 128-bit ints */
14832   int32_t i32;
14833   uint32_t ui32;
14834   struct {
14835    union {
14836     char *ptr; /* NULL-term string */
14837 
14838 
14839 
14840     char __pad[8]; /* 64-bit padding */
14841    } addr;
14842    uint32_t len; /* # bytes for strlen + '\0' */
14843   } str;
14844 /*
14845  * The int64_t and uint64_t types are not valid for a maximally conformant
14846  * 32-bit compilation environment (cc -Xc) using compilers prior to the
14847  * introduction of C99 conforming compiler (reference ISO/IEC 9899:1990).
14848  * In these cases, the visibility of i64 and ui64 is only permitted for
14849  * 64-bit compilation environments or 32-bit non-maximally conformant
14850  * C89 or C90 ANSI C compilation environments (cc -Xt and cc -Xa). In the
14851  * C99 ANSI C compilation environment, the long long type is supported.
14852  * The _INT64_TYPE is defined by the implementation (see sys/int_types.h).
14853  */
14854 
14855   int64_t i64;
14856   uint64_t ui64;
14857 
14858   long l;
14859   ulong_t ul;
14860 
14861   /* These structure members are obsolete */
14862 
14863   longlong_t ll;
14864   u_longlong_t ull;
14865   float f;
14866   double d;
14867  } value; /* value of counter */
14868 } kstat_named_t;
14869 # 513 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
14870 /*
14871  * Statistics exporting named kstats with long strings (KSTAT_DATA_STRING)
14872  * may not make the assumption that ks_data_size is equal to (ks_ndata * sizeof
14873  * (kstat_named_t)).  ks_data_size in these cases is equal to the sum of the
14874  * amount of space required to store the strings (ie, the sum of
14875  * KSTAT_NAMED_STR_BUFLEN() for all KSTAT_DATA_STRING statistics) plus the
14876  * space required to store the kstat_named_t's.
14877  *
14878  * The default update routine will update ks_data_size automatically for
14879  * variable-length kstats containing long strings (using the default update
14880  * routine only makes sense if the string is the only thing that is changing
14881  * in size, and ks_ndata is constant).  Fixed-length kstats containing long
14882  * strings must explicitly change ks_data_size (after creation but before
14883  * initialization) to reflect the correct amount of space required for the
14884  * long strings and the kstat_named_t's.
14885  */
14886 
14887 
14888 /* These types are obsolete */
14889 # 540 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
14890 /*
14891  * Retrieve the pointer of the string contained in the given named kstat.
14892  */
14893 
14894 
14895 /*
14896  * Retrieve the length of the buffer required to store the string in the given
14897  * named kstat.
14898  */
14899 
14900 
14901 /*
14902  * Interrupt statistics.
14903  *
14904  * An interrupt is a hard interrupt (sourced from the hardware device
14905  * itself), a soft interrupt (induced by the system via the use of
14906  * some system interrupt source), a watchdog interrupt (induced by
14907  * a periodic timer call), spurious (an interrupt entry point was
14908  * entered but there was no interrupt condition to service),
14909  * or multiple service (an interrupt condition was detected and
14910  * serviced just prior to returning from any of the other types).
14911  *
14912  * Measurement of the spurious class of interrupts is useful for
14913  * autovectored devices in order to pinpoint any interrupt latency
14914  * problems in a particular system configuration.
14915  *
14916  * Devices that have more than one interrupt of the same
14917  * type should use multiple structures.
14918  */
14919 # 578 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
14920 typedef struct kstat_intr {
14921  uint_t intrs[5]; /* interrupt counters */
14922 } kstat_intr_t;
14923 
14924 
14925 
14926 /*
14927  * I/O statistics.
14928  */
14929 
14930 typedef struct kstat_io {
14931 
14932  /*
14933 	 * Basic counters.
14934 	 *
14935 	 * The counters should be updated at the end of service
14936 	 * (e.g., just prior to calling biodone()).
14937 	 */
14938 
14939  u_longlong_t nread; /* number of bytes read */
14940  u_longlong_t nwritten; /* number of bytes written */
14941  uint_t reads; /* number of read operations */
14942  uint_t writes; /* number of write operations */
14943 
14944  /*
14945 	 * Accumulated time and queue length statistics.
14946 	 *
14947 	 * Accumulated time statistics are kept as a running sum
14948 	 * of "active" time.  Queue length statistics are kept as a
14949 	 * running sum of the product of queue length and elapsed time
14950 	 * at that length -- i.e., a Riemann sum for queue length
14951 	 * integrated against time.  (You can also think of the active time
14952 	 * as a Riemann sum, for the boolean function (queue_length > 0)
14953 	 * integrated against time, or you can think of it as the
14954 	 * Lebesgue measure of the set on which queue_length > 0.)
14955 	 *
14956 	 *		^
14957 	 *		|			_________
14958 	 *		8			| i4	|
14959 	 *		|			|	|
14960 	 *	Queue	6			|	|
14961 	 *	Length	|	_________	|	|
14962 	 *		4	| i2	|_______|	|
14963 	 *		|	|	    i3		|
14964 	 *		2_______|			|
14965 	 *		|    i1				|
14966 	 *		|_______________________________|
14967 	 *		Time->	t1	t2	t3	t4
14968 	 *
14969 	 * At each change of state (entry or exit from the queue),
14970 	 * we add the elapsed time (since the previous state change)
14971 	 * to the active time if the queue length was non-zero during
14972 	 * that interval; and we add the product of the elapsed time
14973 	 * times the queue length to the running length*time sum.
14974 	 *
14975 	 * This method is generalizable to measuring residency
14976 	 * in any defined system: instead of queue lengths, think
14977 	 * of "outstanding RPC calls to server X".
14978 	 *
14979 	 * A large number of I/O subsystems have at least two basic
14980 	 * "lists" of transactions they manage: one for transactions
14981 	 * that have been accepted for processing but for which processing
14982 	 * has yet to begin, and one for transactions which are actively
14983 	 * being processed (but not done). For this reason, two cumulative
14984 	 * time statistics are defined here: wait (pre-service) time,
14985 	 * and run (service) time.
14986 	 *
14987 	 * All times are 64-bit nanoseconds (hrtime_t), as returned by
14988 	 * gethrtime().
14989 	 *
14990 	 * The units of cumulative busy time are accumulated nanoseconds.
14991 	 * The units of cumulative length*time products are elapsed time
14992 	 * times queue length.
14993 	 *
14994 	 * Updates to the fields below are performed implicitly by calls to
14995 	 * these five functions:
14996 	 *
14997 	 *	kstat_waitq_enter()
14998 	 *	kstat_waitq_exit()
14999 	 *	kstat_runq_enter()
15000 	 *	kstat_runq_exit()
15001 	 *
15002 	 *	kstat_waitq_to_runq()		(see below)
15003 	 *	kstat_runq_back_to_waitq()	(see below)
15004 	 *
15005 	 * Since kstat_waitq_exit() is typically followed immediately
15006 	 * by kstat_runq_enter(), there is a single kstat_waitq_to_runq()
15007 	 * function which performs both operations.  This is a performance
15008 	 * win since only one timestamp is required.
15009 	 *
15010 	 * In some instances, it may be necessary to move a request from
15011 	 * the run queue back to the wait queue, e.g. for write throttling.
15012 	 * For these situations, call kstat_runq_back_to_waitq().
15013 	 *
15014 	 * These fields should never be updated by any other means.
15015 	 */
15016 
15017  hrtime_t wtime; /* cumulative wait (pre-service) time */
15018  hrtime_t wlentime; /* cumulative wait length*time product */
15019  hrtime_t wlastupdate; /* last time wait queue changed */
15020  hrtime_t rtime; /* cumulative run (service) time */
15021  hrtime_t rlentime; /* cumulative run length*time product */
15022  hrtime_t rlastupdate; /* last time run queue changed */
15023 
15024  uint_t wcnt; /* count of elements in wait state */
15025  uint_t rcnt; /* count of elements in run state */
15026 
15027 } kstat_io_t;
15028 
15029 
15030 
15031 /*
15032  * Event timer statistics - cumulative elapsed time and number of events.
15033  *
15034  * Updates to these fields are performed implicitly by calls to
15035  * kstat_timer_start() and kstat_timer_stop().
15036  */
15037 
15038 typedef struct kstat_timer {
15039  char name[31]; /* event name */
15040  uchar_t resv; /* reserved */
15041  u_longlong_t num_events; /* number of events */
15042  hrtime_t elapsed_time; /* cumulative elapsed time */
15043  hrtime_t min_time; /* shortest event duration */
15044  hrtime_t max_time; /* longest event duration */
15045  hrtime_t start_time; /* previous event start time */
15046  hrtime_t stop_time; /* previous event stop time */
15047 } kstat_timer_t;
15048 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h" 2
15049 
15050 
15051 
15052 
15053 
15054 /*
15055  * This allows various pieces in and around IP to have a separate instance
15056  * for each instance of IP. This is used to support zones that have an
15057  * exclusive stack.
15058  * Pieces of software far removed from IP (e.g., kernel software
15059  * sitting on top of TCP or UDP) probably should not use the netstack
15060  * support; if such software wants to support separate zones it
15061  * can do that using the zones framework (zone_key_create() etc)
15062  * whether there is a shared IP stack or and exclusive IP stack underneath.
15063  */
15064 
15065 /*
15066  * Each netstack has an identifier. We reuse the zoneid allocation for
15067  * this but have a separate typedef. Thus the shared stack (used by
15068  * the global zone and other shared stack zones) have a zero ID, and
15069  * the exclusive stacks have a netstackid that is the same as their zoneid.
15070  */
15071 typedef id_t netstackid_t;
15072 
15073 
15074 
15075 /*
15076  * One for each module which uses netstack support.
15077  * Used in netstack_register().
15078  *
15079  * The order of these is important for some modules both for
15080  * the creation (which done in ascending order) and destruction (which is
15081  * done in in decending order).
15082  */
15083 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
15084 /*
15085  * State maintained for each module which tracks the state of
15086  * the create, shutdown and destroy callbacks.
15087  *
15088  * Keeps track of pending actions to avoid holding locks when
15089  * calling into the create/shutdown/destroy functions in the module.
15090  */
15091 # 122 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
15092 /* User-level compile like IP Filter needs a netstack_t. Dummy */
15093 typedef uint_t nm_state_t;
15094 
15095 
15096 /*
15097  * One for every netstack in the system.
15098  * We use a union so that the compilar and lint can provide type checking -
15099  * in principle we could have
15100  * #define	netstack_arp		netstack_modules[NS_ARP]
15101  * etc, but that would imply void * types hence no type checking by the
15102  * compiler.
15103  *
15104  * All the fields in netstack_t except netstack_next are protected by
15105  * netstack_lock. netstack_next is protected by netstack_g_lock.
15106  */
15107 struct netstack {
15108  union {
15109   void *nu_modules[(18 +1)];
15110   struct {
15111    struct dls_stack *nu_dls;
15112    struct iptun_stack *nu_iptun;
15113    struct str_stack *nu_str;
15114    struct hook_stack *nu_hook;
15115    struct neti_stack *nu_neti;
15116    struct arp_stack *nu_arp;
15117    struct ip_stack *nu_ip;
15118    struct icmp_stack *nu_icmp;
15119    struct udp_stack *nu_udp;
15120    struct tcp_stack *nu_tcp;
15121    struct sctp_stack *nu_sctp;
15122    struct rts_stack *nu_rts;
15123    struct ipsec_stack *nu_ipsec;
15124    struct keysock_stack *nu_keysock;
15125    struct spd_stack *nu_spdsock;
15126    struct ipsecah_stack *nu_ipsecah;
15127    struct ipsecesp_stack *nu_ipsecesp;
15128    struct ipnet_stack *nu_ipnet;
15129    struct ilb_stack *nu_ilb;
15130   } nu_s;
15131  } netstack_u;
15132 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
15133  nm_state_t netstack_m_state[(18 +1)]; /* module state */
15134 
15135  kmutex_t netstack_lock;
15136  struct netstack *netstack_next;
15137  netstackid_t netstack_stackid;
15138  int netstack_numzones; /* Number of zones using this */
15139  int netstack_refcnt; /* Number of hold-rele */
15140  int netstack_flags; /* See below */
15141 
15142 
15143 
15144 
15145 
15146 };
15147 typedef struct netstack netstack_t;
15148 
15149 /* netstack_flags values */
15150 # 209 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
15151 /*
15152  * One for each of the NS_* values.
15153  */
15154 struct netstack_registry {
15155  int nr_flags; /* 0 if nothing registered */
15156  void *(*nr_create)(netstackid_t, netstack_t *);
15157  void (*nr_shutdown)(netstackid_t, void *);
15158  void (*nr_destroy)(netstackid_t, void *);
15159 };
15160 
15161 /* nr_flags values */
15162 
15163 
15164 
15165 /*
15166  * To support kstat_create_netstack() using kstat_add_zone we need
15167  * to track both
15168  *  - all zoneids that use the global/shared stack
15169  *  - all kstats that have been added for the shared stack
15170  */
15171 
15172 extern void netstack_init(void);
15173 extern void netstack_hold(netstack_t *);
15174 extern void netstack_rele(netstack_t *);
15175 extern netstack_t *netstack_find_by_cred(const cred_t *);
15176 extern netstack_t *netstack_find_by_stackid(netstackid_t);
15177 extern netstack_t *netstack_find_by_zoneid(zoneid_t);
15178 
15179 extern zoneid_t netstackid_to_zoneid(netstackid_t);
15180 extern zoneid_t netstack_get_zoneid(netstack_t *);
15181 extern netstackid_t zoneid_to_netstackid(zoneid_t);
15182 
15183 extern netstack_t *netstack_get_current(void);
15184 
15185 /*
15186  * Register interest in changes to the set of netstacks.
15187  * The createfn and destroyfn are required, but the shutdownfn can be
15188  * NULL.
15189  * Note that due to the current zsd implementation, when the create
15190  * function is called the zone isn't fully present, thus functions
15191  * like zone_find_by_* will fail, hence the create function can not
15192  * use many zones kernel functions including zcmn_err().
15193  */
15194 extern void netstack_register(int,
15195     void *(*)(netstackid_t, netstack_t *),
15196     void (*)(netstackid_t, void *),
15197     void (*)(netstackid_t, void *));
15198 extern void netstack_unregister(int);
15199 extern kstat_t *kstat_create_netstack(char *, int, char *, char *, uchar_t,
15200     uint_t, uchar_t, netstackid_t);
15201 extern void kstat_delete_netstack(kstat_t *, netstackid_t);
15202 
15203 /*
15204  * Simple support for walking all the netstacks.
15205  * The caller of netstack_next() needs to call netstack_rele() when
15206  * done with a netstack.
15207  */
15208 typedef int netstack_handle_t;
15209 
15210 extern void netstack_next_init(netstack_handle_t *);
15211 extern void netstack_next_fini(netstack_handle_t *);
15212 extern netstack_t *netstack_next(netstack_handle_t *);
15213 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
15214 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 1
15215 /*
15216  * CDDL HEADER START
15217  *
15218  * The contents of this file are subject to the terms of the
15219  * Common Development and Distribution License (the "License").
15220  * You may not use this file except in compliance with the License.
15221  *
15222  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15223  * or http://www.opensolaris.org/os/licensing.
15224  * See the License for the specific language governing permissions
15225  * and limitations under the License.
15226  *
15227  * When distributing Covered Code, include this CDDL HEADER in each
15228  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15229  * If applicable, add the following below this CDDL HEADER, with the
15230  * fields enclosed by brackets "[]" replaced with your own identifying
15231  * information: Portions Copyright [yyyy] [name of copyright owner]
15232  *
15233  * CDDL HEADER END
15234  */
15235 /*
15236  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15237  *
15238  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15239  * Use is subject to license terms.
15240  */
15241 
15242 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15243 /*	  All Rights Reserved  	*/
15244 
15245 
15246 
15247 
15248 
15249 
15250 
15251 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
15252 /*
15253  * CDDL HEADER START
15254  *
15255  * The contents of this file are subject to the terms of the
15256  * Common Development and Distribution License (the "License").
15257  * You may not use this file except in compliance with the License.
15258  *
15259  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15260  * or http://www.opensolaris.org/os/licensing.
15261  * See the License for the specific language governing permissions
15262  * and limitations under the License.
15263  *
15264  * When distributing Covered Code, include this CDDL HEADER in each
15265  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15266  * If applicable, add the following below this CDDL HEADER, with the
15267  * fields enclosed by brackets "[]" replaced with your own identifying
15268  * information: Portions Copyright [yyyy] [name of copyright owner]
15269  *
15270  * CDDL HEADER END
15271  */
15272 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15273 /*	  All Rights Reserved  	*/
15274 
15275 
15276 /*
15277  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15278  * Use is subject to license terms.
15279  *
15280  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
15281  * Copyright 2016 Joyent, Inc.
15282  */
15283 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 2
15284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
15285 /*
15286  * CDDL HEADER START
15287  *
15288  * The contents of this file are subject to the terms of the
15289  * Common Development and Distribution License (the "License").
15290  * You may not use this file except in compliance with the License.
15291  *
15292  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15293  * or http://www.opensolaris.org/os/licensing.
15294  * See the License for the specific language governing permissions
15295  * and limitations under the License.
15296  *
15297  * When distributing Covered Code, include this CDDL HEADER in each
15298  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15299  * If applicable, add the following below this CDDL HEADER, with the
15300  * fields enclosed by brackets "[]" replaced with your own identifying
15301  * information: Portions Copyright [yyyy] [name of copyright owner]
15302  *
15303  * CDDL HEADER END
15304  */
15305 /*
15306  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15307  * Use is subject to license terms.
15308  */
15309 
15310 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
15311 /*	  All Rights Reserved  	*/
15312 
15313 /*
15314  * Portions of this source code were derived from Berkeley 4.3 BSD
15315  * under license from the Regents of the University of California.
15316  */
15317 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 2
15318 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
15319 /*			17-21	   reserved for obsolete interface */
15320 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
15321 /*
15322  * Functions reserved for A_FREEZE (may not be available on all platforms)
15323  * Note:  AD_COMPRESS, AD_CHECK and AD_FORCE are now obsolete
15324  *	The first two are succeeded by AD_SUSPEND_TO_DISK and
15325  *		AD_CHECK_SUSPEND_TO_DISK respectively.
15326  *	AD_FORCE should not be used by any new application
15327  *
15328  *	We maintain compatibility with the earlier interfaces:
15329  *	AD_COMPRESS and AD_CHECK, by preserving those values
15330  *	in the corresponding new interfaces
15331  */
15332 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
15333 /*
15334  * NOTE: the following defines comprise an Unstable interface.  Their semantics
15335  * may change or they may be removed completely in a later release
15336  */
15337 
15338 
15339 
15340 
15341 
15342 
15343 
15344 /*
15345  * Functions of A_CONFIG.  Unstable interface.
15346  */
15347 
15348 
15349 /*
15350  * When 'mdep' (the second argument to uadmin(2)) is initialized for A_REBOOT,
15351  * A_SHUTDOWN or A_DUMP, it represents the boot arguments string of at most
15352  * 256 characters.
15353  */
15354 
15355 
15356 
15357 /*
15358  * FMRI for boot-config service.
15359  */
15360 
15361 
15362 
15363 /*
15364  * Property group that contains all Fast Reboot configuration properties.
15365  */
15366 
15367 
15368 /*
15369  * Property group that contains all Fast Reboot blacklisting information.
15370  */
15371 
15372 
15373 /*
15374  * Non-persistent property group which contains all the properties that
15375  * will override settings in the BOOT_CONFIG_PG_PARAMS property group.
15376  */
15377 
15378 
15379 
15380 
15381 /*
15382  * Flag representations of fastboot configuration.
15383  */
15384 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
15385 extern int uadmin(int, int, uintptr_t);
15386 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
15387 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ksynch.h" 1
15388 /*
15389  * CDDL HEADER START
15390  *
15391  * The contents of this file are subject to the terms of the
15392  * Common Development and Distribution License, Version 1.0 only
15393  * (the "License").  You may not use this file except in compliance
15394  * with the License.
15395  *
15396  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15397  * or http://www.opensolaris.org/os/licensing.
15398  * See the License for the specific language governing permissions
15399  * and limitations under the License.
15400  *
15401  * When distributing Covered Code, include this CDDL HEADER in each
15402  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15403  * If applicable, add the following below this CDDL HEADER, with the
15404  * fields enclosed by brackets "[]" replaced with your own identifying
15405  * information: Portions Copyright [yyyy] [name of copyright owner]
15406  *
15407  * CDDL HEADER END
15408  */
15409 /*
15410  *	Copyright (c) 1991, Sun Microsystems, Inc.
15411  */
15412 
15413 /*
15414  * DKI/DDI MT synchronization primitives.
15415  */
15416 
15417 
15418 
15419 
15420 #pragma ident "%Z%%M%	%I%	%E% SMI"
15421 
15422 /*
15423  * The presence of this file is specified by the DKI/DDI.
15424  */
15425 
15426 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
15427 /*
15428  * CDDL HEADER START
15429  *
15430  * The contents of this file are subject to the terms of the
15431  * Common Development and Distribution License, Version 1.0 only
15432  * (the "License").  You may not use this file except in compliance
15433  * with the License.
15434  *
15435  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15436  * or http://www.opensolaris.org/os/licensing.
15437  * See the License for the specific language governing permissions
15438  * and limitations under the License.
15439  *
15440  * When distributing Covered Code, include this CDDL HEADER in each
15441  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15442  * If applicable, add the following below this CDDL HEADER, with the
15443  * fields enclosed by brackets "[]" replaced with your own identifying
15444  * information: Portions Copyright [yyyy] [name of copyright owner]
15445  *
15446  * CDDL HEADER END
15447  */
15448 /*
15449  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
15450  * All rights reserved.
15451  */
15452 
15453 /*
15454  * t_lock.h:	Prototypes for disp_locks, plus include files
15455  *		that describe the interfaces to kernel synch.
15456  *		objects.
15457  */
15458 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ksynch.h" 2
15459 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
15460 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
15461 /*
15462  * CDDL HEADER START
15463  *
15464  * The contents of this file are subject to the terms of the
15465  * Common Development and Distribution License (the "License").
15466  * You may not use this file except in compliance with the License.
15467  *
15468  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15469  * or http://www.opensolaris.org/os/licensing.
15470  * See the License for the specific language governing permissions
15471  * and limitations under the License.
15472  *
15473  * When distributing Covered Code, include this CDDL HEADER in each
15474  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15475  * If applicable, add the following below this CDDL HEADER, with the
15476  * fields enclosed by brackets "[]" replaced with your own identifying
15477  * information: Portions Copyright [yyyy] [name of copyright owner]
15478  *
15479  * CDDL HEADER END
15480  */
15481 /*
15482  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15483  * Use is subject to license terms.
15484  */
15485 
15486 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
15487 /*	  All Rights Reserved	*/
15488 
15489 /*
15490  * Portions of this source code were derived from Berkeley 4.3 BSD
15491  * under license from the Regents of the University of California.
15492  */
15493 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
15494 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
15495 /*
15496  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15497  * Use is subject to license terms.
15498  *
15499  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
15500  */
15501 /*
15502  * Copyright (c) 1982, 1986 Regents of the University of California.
15503  * All rights reserved.
15504  *
15505  * Redistribution and use in source and binary forms are permitted
15506  * provided that this notice is preserved and that due credit is given
15507  * to the University of California at Berkeley. The name of the University
15508  * may not be used to endorse or promote products derived from this
15509  * software without specific prior written permission. This software
15510  * is provided ``as is'' without express or implied warranty.
15511  */
15512 
15513 /*
15514  * Constants and structures defined by the internet system,
15515  * according to following documents
15516  *
15517  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
15518  *	http://www.iana.org/assignments/protocol-numbers
15519  *	http://www.iana.org/assignments/port-numbers
15520  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
15521  *
15522  */
15523 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
15524 
15525 
15526 
15527 
15528 
15529 /*
15530  * NOTE
15531  *
15532  * The contents of this file are private to the implementation of
15533  * Solaris and are subject to change at any time without notice.
15534  * Applications and drivers using these interfaces may fail to
15535  * run on future releases.
15536  */
15537 
15538 /* Available both in kernel and for user space */
15539 
15540 /* zone id restrictions and special ids */
15541 
15542 
15543 
15544 
15545 
15546 
15547 /*
15548  * Special zoneid_t token to refer to all zones.
15549  */
15550 
15551 
15552 /* system call subcodes */
15553 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
15554 /* zone attributes */
15555 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
15556 /* Start of the brand-specific attribute namespace */
15557 # 129 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
15558 /*
15559  * Exit values that may be returned by scripts or programs invoked by various
15560  * zone commands.
15561  *
15562  * These are defined as:
15563  *
15564  *	ZONE_SUBPROC_OK
15565  *	===============
15566  *	The subprocess completed successfully.
15567  *
15568  *	ZONE_SUBPROC_USAGE
15569  *	==================
15570  *	The subprocess failed with a usage message, or a usage message should
15571  *	be output in its behalf.
15572  *
15573  *	ZONE_SUBPROC_NOTCOMPLETE
15574  *	========================
15575  *	The subprocess did not complete, but the actions performed by the
15576  *	subprocess require no recovery actions by the user.
15577  *
15578  *	For example, if the subprocess were called by "zoneadm install," the
15579  *	installation of the zone did not succeed but the user need not perform
15580  *	a "zoneadm uninstall" before attempting another install.
15581  *
15582  *	ZONE_SUBPROC_FATAL
15583  *	==================
15584  *	The subprocess failed in a fatal manner, usually one that will require
15585  *	some type of recovery action by the user.
15586  *
15587  *	For example, if the subprocess were called by "zoneadm install," the
15588  *	installation of the zone did not succeed and the user will need to
15589  *	perform a "zoneadm uninstall" before another install attempt is
15590  *	possible.
15591  *
15592  *	The non-success exit values are large to avoid accidental collision
15593  *	with values used internally by some commands (e.g. "Z_ERR" and
15594  *	"Z_USAGE" as used by zoneadm.)
15595  */
15596 # 189 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
15597 typedef struct {
15598  const char *zone_name;
15599  const char *zone_root;
15600  const struct priv_set *zone_privs;
15601  size_t zone_privssz;
15602  const char *rctlbuf;
15603  size_t rctlbufsz;
15604  int *extended_error;
15605  const char *zfsbuf;
15606  size_t zfsbufsz;
15607  int match; /* match level */
15608  uint32_t doi; /* DOI for label */
15609  const bslabel_t *label; /* label associated with zone */
15610  int flags;
15611 } zone_def;
15612 
15613 /* extended error information */
15614 
15615 
15616 
15617 
15618 
15619 /*
15620  * zone_status values
15621  *
15622  * You must modify zone_status_names in mdb(1M)'s genunix module
15623  * (genunix/zone.c) when you modify this enum.
15624  */
15625 typedef enum {
15626  ZONE_IS_UNINITIALIZED = 0,
15627  ZONE_IS_INITIALIZED,
15628  ZONE_IS_READY,
15629  ZONE_IS_BOOTING,
15630  ZONE_IS_RUNNING,
15631  ZONE_IS_SHUTTING_DOWN,
15632  ZONE_IS_EMPTY,
15633  ZONE_IS_DOWN,
15634  ZONE_IS_DYING,
15635  ZONE_IS_DEAD
15636 } zone_status_t;
15637 
15638 
15639 
15640 /*
15641  * Valid commands which may be issued by zoneadm to zoneadmd.  The kernel also
15642  * communicates with zoneadmd, but only uses Z_REBOOT and Z_HALT.
15643  */
15644 typedef enum zone_cmd {
15645  Z_READY, Z_BOOT, Z_FORCEBOOT, Z_REBOOT, Z_HALT, Z_NOTE_UNINSTALLING,
15646  Z_MOUNT, Z_FORCEMOUNT, Z_UNMOUNT, Z_SHUTDOWN
15647 } zone_cmd_t;
15648 
15649 /*
15650  * The structure of a request to zoneadmd.
15651  */
15652 typedef struct zone_cmd_arg {
15653  uint64_t uniqid; /* unique "generation number" */
15654  zone_cmd_t cmd; /* requested action */
15655  uint32_t _pad; /* need consistent 32/64 bit alignmt */
15656  char locale[1024]; /* locale in which to render messages */
15657  char bootbuf[256]; /* arguments passed to zone_boot() */
15658 } zone_cmd_arg_t;
15659 
15660 /*
15661  * Structure of zoneadmd's response to a request.  A NULL return value means
15662  * the caller should attempt to restart zoneadmd and retry.
15663  */
15664 typedef struct zone_cmd_rval {
15665  int rval; /* return value of request */
15666  char errbuf[1]; /* variable-sized buffer containing error messages */
15667 } zone_cmd_rval_t;
15668 
15669 /*
15670  * The zone support infrastructure uses the zone name as a component
15671  * of unix domain (AF_UNIX) sockets, which are limited to 108 characters
15672  * in length, so ZONENAME_MAX is limited by that.
15673  */
15674 
15675 
15676 
15677 
15678 /*
15679  * Extended Regular expression (see regex(5)) which matches all valid zone
15680  * names.
15681  */
15682 
15683 
15684 /*
15685  * Where the zones support infrastructure places temporary files.
15686  */
15687 
15688 
15689 /*
15690  * The path to the door used by clients to communicate with zoneadmd.
15691  */
15692 
15693 
15694 
15695 /* zone_flags */
15696 /*
15697  * Threads that read or write the following flag must hold zone_lock.
15698  */
15699 
15700 
15701 /*
15702  * The following threads are set when the zone is created and never changed.
15703  * Threads that test for these flags don't have to hold zone_lock.
15704  */
15705 
15706 
15707 
15708 
15709 
15710 /* zone_create flags */
15711 
15712 
15713 /* zone network properties */
15714 
15715 
15716 
15717 
15718 
15719 
15720 typedef struct zone_net_data {
15721  int zn_type;
15722  int zn_len;
15723  datalink_id_t zn_linkid;
15724  uint8_t zn_val[1];
15725 } zone_net_data_t;
15726 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
15727 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 1
15728 /*
15729  * CDDL HEADER START
15730  *
15731  * The contents of this file are subject to the terms of the
15732  * Common Development and Distribution License (the "License").
15733  * You may not use this file except in compliance with the License.
15734  *
15735  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15736  * or http://www.opensolaris.org/os/licensing.
15737  * See the License for the specific language governing permissions
15738  * and limitations under the License.
15739  *
15740  * When distributing Covered Code, include this CDDL HEADER in each
15741  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15742  * If applicable, add the following below this CDDL HEADER, with the
15743  * fields enclosed by brackets "[]" replaced with your own identifying
15744  * information: Portions Copyright [yyyy] [name of copyright owner]
15745  *
15746  * CDDL HEADER END
15747  */
15748 /*
15749  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15750  *
15751  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
15752  */
15753 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
15754 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 1
15755 /*
15756  * CDDL HEADER START
15757  *
15758  * The contents of this file are subject to the terms of the
15759  * Common Development and Distribution License (the "License").
15760  * You may not use this file except in compliance with the License.
15761  *
15762  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15763  * or http://www.opensolaris.org/os/licensing.
15764  * See the License for the specific language governing permissions
15765  * and limitations under the License.
15766  *
15767  * When distributing Covered Code, include this CDDL HEADER in each
15768  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15769  * If applicable, add the following below this CDDL HEADER, with the
15770  * fields enclosed by brackets "[]" replaced with your own identifying
15771  * information: Portions Copyright [yyyy] [name of copyright owner]
15772  *
15773  * CDDL HEADER END
15774  */
15775 /*
15776  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15777  * Use is subject to license terms.
15778  */
15779 
15780 
15781 
15782 
15783 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
15784 /*
15785  * CDDL HEADER START
15786  *
15787  * The contents of this file are subject to the terms of the
15788  * Common Development and Distribution License (the "License").
15789  * You may not use this file except in compliance with the License.
15790  *
15791  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15792  * or http://www.opensolaris.org/os/licensing.
15793  * See the License for the specific language governing permissions
15794  * and limitations under the License.
15795  *
15796  * When distributing Covered Code, include this CDDL HEADER in each
15797  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15798  * If applicable, add the following below this CDDL HEADER, with the
15799  * fields enclosed by brackets "[]" replaced with your own identifying
15800  * information: Portions Copyright [yyyy] [name of copyright owner]
15801  *
15802  * CDDL HEADER END
15803  */
15804 /*
15805  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
15806  * Use is subject to license terms.
15807  * Copyright 2015 Nexenta Systems, Inc.
15808  */
15809 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 2
15810 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 1
15811 /*
15812  * CDDL HEADER START
15813  *
15814  * The contents of this file are subject to the terms of the
15815  * Common Development and Distribution License (the "License").
15816  * You may not use this file except in compliance with the License.
15817  *
15818  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15819  * or http://www.opensolaris.org/os/licensing.
15820  * See the License for the specific language governing permissions
15821  * and limitations under the License.
15822  *
15823  * When distributing Covered Code, include this CDDL HEADER in each
15824  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15825  * If applicable, add the following below this CDDL HEADER, with the
15826  * fields enclosed by brackets "[]" replaced with your own identifying
15827  * information: Portions Copyright [yyyy] [name of copyright owner]
15828  *
15829  * CDDL HEADER END
15830  */
15831 /*
15832  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15833  * Use is subject to license terms.
15834  */
15835 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 2
15836 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h" 1
15837 /*
15838  * CDDL HEADER START
15839  *
15840  * The contents of this file are subject to the terms of the
15841  * Common Development and Distribution License (the "License").
15842  * You may not use this file except in compliance with the License.
15843  *
15844  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15845  * or http://www.opensolaris.org/os/licensing.
15846  * See the License for the specific language governing permissions
15847  * and limitations under the License.
15848  *
15849  * When distributing Covered Code, include this CDDL HEADER in each
15850  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15851  * If applicable, add the following below this CDDL HEADER, with the
15852  * fields enclosed by brackets "[]" replaced with your own identifying
15853  * information: Portions Copyright [yyyy] [name of copyright owner]
15854  *
15855  * CDDL HEADER END
15856  */
15857 /*
15858  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15859  *
15860  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
15861  * Use is subject to license terms.
15862  */
15863 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 2
15864 
15865 
15866 
15867 
15868 
15869 /* Procedural Interface Structure Definitions */
15870 
15871 struct label_info { /* structure returned by label_info */
15872  short ilabel_len; /* max Information Label length */
15873  short slabel_len; /* max Sensitivity Label length */
15874  short clabel_len; /* max CMW Label length */
15875  short clear_len; /* max Clearance Label length */
15876  short vers_len; /* version string length */
15877  short header_len; /* max len of banner page header */
15878  short protect_as_len; /* max len of banner page protect as */
15879  short caveats_len; /* max len of banner page caveats */
15880  short channels_len; /* max len of banner page channels */
15881 };
15882 
15883 typedef struct label_set_identifier { /* valid label set identifier */
15884  int type; /* type of the set */
15885  char *name; /* name of the set if needed */
15886 } set_id;
15887 
15888 struct name_fields { /* names for label builder fields */
15889  char *class_name; /* Classifications field name */
15890  char *comps_name; /* Compartments field name */
15891  char *marks_name; /* Markings field name */
15892 };
15893 
15894 /* Label Set Identifier Types */
15895 
15896 /*
15897  * The accreditation ranges as specified in the label encodings file.
15898  * The name parameter is ignored.
15899  *
15900  * System Accreditation Range is all valid labels plus Admin High and Low.
15901  *
15902  * User Accreditation Range is valid user labels as defined in the
15903  *	ACCREDITATION RANGE: section of the label encodings file.
15904  */
15905 
15906 
15907 
15908 
15909 
15910 /* System Call Interface Definitions */
15911 
15912 extern int getlabel(const char *, m_label_t *);
15913 extern int fgetlabel(int, m_label_t *);
15914 
15915 extern int getplabel(m_label_t *);
15916 extern int setflabel(const char *, m_label_t *);
15917 extern char *getpathbylabel(const char *, char *, size_t,
15918     const m_label_t *sl);
15919 extern m_label_t *getzonelabelbyid(zoneid_t);
15920 extern m_label_t *getzonelabelbyname(const char *);
15921 extern zoneid_t getzoneidbylabel(const m_label_t *);
15922 extern char *getzonenamebylabel(const m_label_t *);
15923 extern char *getzonerootbyid(zoneid_t);
15924 extern char *getzonerootbyname(const char *);
15925 extern char *getzonerootbylabel(const m_label_t *);
15926 extern m_label_t *getlabelbypath(const char *);
15927 
15928 
15929 /* Flag word values */
15930 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h"
15931       /* implies NEW_LABEL */
15932 
15933 
15934 
15935 
15936 /* Procedure Interface Definitions available to user */
15937 
15938 /* APIs shared with the kernel are in <sys/tsol/label.h */
15939 
15940 extern m_label_t *blabel_alloc(void);
15941 extern void blabel_free(m_label_t *);
15942 extern size32_t blabel_size(void);
15943 extern char *bsltoh(const m_label_t *);
15944 extern char *bcleartoh(const m_label_t *);
15945 
15946 extern char *bsltoh_r(const m_label_t *, char *);
15947 extern char *bcleartoh_r(const m_label_t *, char *);
15948 extern char *h_alloc(uint8_t);
15949 extern void h_free(char *);
15950 
15951 extern int htobsl(const char *, m_label_t *);
15952 extern int htobclear(const char *, m_label_t *);
15953 
15954 extern m_range_t *getuserrange(const char *);
15955 extern m_range_t *getdevicerange(const char *);
15956 
15957 extern int set_effective_priv(priv_op_t, int, ...);
15958 extern int set_inheritable_priv(priv_op_t, int, ...);
15959 extern int set_permitted_priv(priv_op_t, int, ...);
15960 extern int is_system_labeled(void);
15961 
15962 /* Procedures needed for multi-level printing */
15963 
15964 extern int tsol_check_admin_auth(uid_t uid);
15965 
15966 /* APIs implemented via labeld */
15967 
15968 extern int blinset(const m_label_t *, const set_id *);
15969 extern int labelinfo(struct label_info *);
15970 extern ssize_t labelvers(char **, size_t);
15971 extern char *bltocolor(const m_label_t *);
15972 extern char *bltocolor_r(const m_label_t *, size_t, char *);
15973 
15974 extern ssize_t bsltos(const m_label_t *, char **, size_t, int);
15975 extern ssize_t bcleartos(const m_label_t *, char **, size_t, int);
15976 
15977 
15978 extern char *sbsltos(const m_label_t *, size_t);
15979 extern char *sbcleartos(const m_label_t *, size_t);
15980 
15981 
15982 extern int stobsl(const char *, m_label_t *, int, int *);
15983 extern int stobclear(const char *, m_label_t *, int, int *);
15984 extern int bslvalid(const m_label_t *);
15985 extern int bclearvalid(const m_label_t *);
15986 
15987 /* DIA label conversion and parsing */
15988 
15989 /* Conversion types */
15990 
15991 typedef enum _m_label_str {
15992  M_LABEL = 1, /* process or user clearance */
15993  M_INTERNAL = 2, /* internal form for use in public databases */
15994  M_COLOR = 3, /* process label color */
15995  PRINTER_TOP_BOTTOM = 4, /* DIA banner page top/bottom */
15996  PRINTER_LABEL = 5, /* DIA banner page label */
15997  PRINTER_CAVEATS = 6, /* DIA banner page caveats */
15998  PRINTER_CHANNELS = 7 /* DIA banner page handling channels */
15999 } m_label_str_t;
16000 
16001 /* Flags for conversion, not all flags apply to all types */
16002 
16003 
16004 
16005 
16006 extern int label_to_str(const m_label_t *, char **, const m_label_str_t,
16007     uint_t);
16008 extern int l_to_str_internal(const m_label_t *, char **);
16009 
16010 /* Parsing types */
16011 typedef enum _m_label_type {
16012  MAC_LABEL = 1, /* process or object label */
16013  USER_CLEAR = 2 /* user's clearance (LUB) */
16014 } m_label_type_t;
16015 
16016 /* Flags for parsing */
16017 
16018 
16019 
16020 
16021 
16022 
16023 /* EINVAL sub codes */
16024 
16025 
16026 
16027  /* bad requested label type, bad previous label type */
16028 
16029 
16030 extern int str_to_label(const char *, m_label_t **, const m_label_type_t,
16031     uint_t, int *);
16032 extern int hexstr_to_label(const char *, m_label_t *);
16033 
16034 extern m_label_t *m_label_alloc(const m_label_type_t);
16035 
16036 extern int m_label_dup(m_label_t **, const m_label_t *);
16037 
16038 extern void m_label_free(m_label_t *);
16039 
16040 /* Contract Private interfaces with the label builder GUIs */
16041 
16042 extern int bslcvtfull(const m_label_t *, const m_range_t *, int,
16043     char **, char **[], char **[], char *[], int *, int *);
16044 extern int bslcvt(const m_label_t *, int, char **, char *[]);
16045 extern int bclearcvtfull(const m_label_t *, const m_range_t *, int,
16046     char **, char **[], char **[], char *[], int *, int *);
16047 extern int bclearcvt(const m_label_t *, int, char **, char *[]);
16048 
16049 extern int labelfields(struct name_fields *);
16050 extern int userdefs(m_label_t *, m_label_t *);
16051 extern int zonecopy(m_label_t *, char *, char *, char *, int);
16052 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
16053 
16054 
16055 
16056 
16057 
16058 /*
16059  * Functions for mapping between id and name for active zones.
16060  */
16061 extern zoneid_t getzoneid(void);
16062 extern zoneid_t getzoneidbyname(const char *);
16063 extern ssize_t getzonenamebyid(zoneid_t, char *, size_t);
16064 
16065 /*
16066  * NOTE
16067  *
16068  * The remaining contents of this file are private to the implementation
16069  * of Solaris and are subject to change at any time without notice,
16070  * Applications using these interfaces may fail to run on future releases.
16071  */
16072 
16073 extern int zonept(int, zoneid_t);
16074 extern int zone_get_id(const char *, zoneid_t *);
16075 
16076 /* System call API */
16077 extern zoneid_t zone_create(const char *, const char *,
16078     const struct priv_set *, const char *, size_t, const char *, size_t, int *,
16079     int, int, const bslabel_t *, int);
16080 extern int zone_boot(zoneid_t);
16081 extern int zone_destroy(zoneid_t);
16082 extern ssize_t zone_getattr(zoneid_t, int, void *, size_t);
16083 extern int zone_setattr(zoneid_t, int, void *, size_t);
16084 extern int zone_enter(zoneid_t);
16085 extern int zone_list(zoneid_t *, uint_t *);
16086 extern int zone_shutdown(zoneid_t);
16087 extern int zone_version(int *);
16088 extern int zone_add_datalink(zoneid_t, datalink_id_t);
16089 extern int zone_remove_datalink(zoneid_t, datalink_id_t);
16090 extern int zone_check_datalink(zoneid_t *, datalink_id_t);
16091 extern int zone_list_datalink(zoneid_t, int *, datalink_id_t *);
16092 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16093 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libbrand.h" 1
16094 /*
16095  * CDDL HEADER START
16096  *
16097  * The contents of this file are subject to the terms of the
16098  * Common Development and Distribution License (the "License").
16099  * You may not use this file except in compliance with the License.
16100  *
16101  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16102  * or http://www.opensolaris.org/os/licensing.
16103  * See the License for the specific language governing permissions
16104  * and limitations under the License.
16105  *
16106  * When distributing Covered Code, include this CDDL HEADER in each
16107  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16108  * If applicable, add the following below this CDDL HEADER, with the
16109  * fields enclosed by brackets "[]" replaced with your own identifying
16110  * information: Portions Copyright [yyyy] [name of copyright owner]
16111  *
16112  * CDDL HEADER END
16113  */
16114 
16115 /*
16116  * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
16117  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
16118  * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
16119  */
16120 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libbrand.h"
16121 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16122 /*
16123  * CDDL HEADER START
16124  *
16125  * The contents of this file are subject to the terms of the
16126  * Common Development and Distribution License (the "License").
16127  * You may not use this file except in compliance with the License.
16128  *
16129  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16130  * or http://www.opensolaris.org/os/licensing.
16131  * See the License for the specific language governing permissions
16132  * and limitations under the License.
16133  *
16134  * When distributing Covered Code, include this CDDL HEADER in each
16135  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16136  * If applicable, add the following below this CDDL HEADER, with the
16137  * fields enclosed by brackets "[]" replaced with your own identifying
16138  * information: Portions Copyright [yyyy] [name of copyright owner]
16139  *
16140  * CDDL HEADER END
16141  */
16142 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16143 /*	  All Rights Reserved  	*/
16144 
16145 
16146 /*
16147  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16148  * Use is subject to license terms.
16149  *
16150  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16151  * Copyright 2016 Joyent, Inc.
16152  */
16153 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libbrand.h" 2
16154 
16155 typedef struct __brand_handle *brand_handle_t;
16156 
16157 typedef struct priv_iter_s {
16158  char *pi_name;
16159  char *pi_set;
16160  char *pi_iptype;
16161 } priv_iter_t;
16162 
16163 extern brand_handle_t brand_open(const char *);
16164 extern void brand_close(brand_handle_t);
16165 
16166 extern boolean_t brand_allow_exclusive_ip(brand_handle_t);
16167 
16168 extern int brand_get_attach(brand_handle_t, const char *, const char *,
16169     char *, size_t);
16170 extern int brand_get_boot(brand_handle_t, const char *, const char *,
16171     char *, size_t);
16172 extern int brand_get_brandname(brand_handle_t, char *, size_t);
16173 extern int brand_get_clone(brand_handle_t, const char *, const char *,
16174     char *, size_t);
16175 extern int brand_get_detach(brand_handle_t, const char *, const char *,
16176     char *, size_t);
16177 extern int brand_get_shutdown(brand_handle_t, const char *, const char *,
16178     char *, size_t);
16179 extern int brand_get_halt(brand_handle_t, const char *, const char *,
16180     char *, size_t);
16181 extern int brand_get_initname(brand_handle_t, char *, size_t);
16182 extern boolean_t brand_restartinit(brand_handle_t);
16183 extern int brand_get_install(brand_handle_t, const char *, const char *,
16184     char *, size_t);
16185 extern int brand_get_installopts(brand_handle_t, char *, size_t);
16186 extern int brand_get_login_cmd(brand_handle_t, const char *, char *, size_t);
16187 extern int brand_get_forcedlogin_cmd(brand_handle_t, const char *,
16188     char *, size_t);
16189 extern int brand_get_modname(brand_handle_t, char *, size_t);
16190 extern int brand_get_postattach(brand_handle_t, const char *, const char *,
16191     char *, size_t);
16192 extern int brand_get_postclone(brand_handle_t, const char *, const char *,
16193     char *, size_t);
16194 extern int brand_get_postinstall(brand_handle_t, const char *, const char *,
16195     char *, size_t);
16196 extern int brand_get_postsnap(brand_handle_t, const char *, const char *,
16197     char *, size_t);
16198 extern int brand_get_poststatechange(brand_handle_t, const char *, const char *,
16199     char *, size_t);
16200 extern int brand_get_predetach(brand_handle_t, const char *, const char *,
16201     char *, size_t);
16202 extern int brand_get_presnap(brand_handle_t, const char *, const char *,
16203     char *, size_t);
16204 extern int brand_get_prestatechange(brand_handle_t, const char *, const char *,
16205     char *, size_t);
16206 extern int brand_get_preuninstall(brand_handle_t, const char *, const char *,
16207     char *, size_t);
16208 extern int brand_get_query(brand_handle_t, const char *, const char *,
16209     char *, size_t);
16210 extern int brand_get_uninstall(brand_handle_t, const char *, const char *,
16211     char *, size_t);
16212 extern int brand_get_validatesnap(brand_handle_t, const char *, const char *,
16213     char *, size_t);
16214 extern int brand_get_user_cmd(brand_handle_t, const char *, char *, size_t);
16215 extern int brand_get_verify_cfg(brand_handle_t, char *, size_t);
16216 extern int brand_get_verify_adm(brand_handle_t, const char *, const char *,
16217     char *, size_t);
16218 extern int brand_get_sysboot(brand_handle_t, const char *, const char *, char *,
16219     size_t);
16220 
16221 extern int brand_config_iter_privilege(brand_handle_t,
16222     int (*func)(void *, priv_iter_t *), void *);
16223 
16224 extern int brand_platform_iter_devices(brand_handle_t, const char *,
16225     int (*)(void *, const char *, const char *), void *, const char *);
16226 extern int brand_platform_iter_gmounts(brand_handle_t, const char *,
16227     int (*)(void *, const char *, const char *, const char *, const char *),
16228     void *);
16229 extern int brand_platform_iter_link(brand_handle_t, int (*)(void *,
16230     const char *, const char *), void *);
16231 extern int brand_platform_iter_mounts(brand_handle_t, int (*)(void *,
16232     const char *, const char *, const char *, const char *), void *);
16233 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16234 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uuid.h" 1
16235 /*
16236  * CDDL HEADER START
16237  *
16238  * The contents of this file are subject to the terms of the
16239  * Common Development and Distribution License, Version 1.0 only
16240  * (the "License").  You may not use this file except in compliance
16241  * with the License.
16242  *
16243  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16244  * or http://www.opensolaris.org/os/licensing.
16245  * See the License for the specific language governing permissions
16246  * and limitations under the License.
16247  *
16248  * When distributing Covered Code, include this CDDL HEADER in each
16249  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16250  * If applicable, add the following below this CDDL HEADER, with the
16251  * fields enclosed by brackets "[]" replaced with your own identifying
16252  * information: Portions Copyright [yyyy] [name of copyright owner]
16253  *
16254  * CDDL HEADER END
16255  */
16256 /*
16257  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
16258  * Use is subject to license terms.
16259  */
16260 
16261 
16262 
16263 
16264 #pragma ident "%Z%%M%	%I%	%E% SMI"
16265 
16266 
16267 
16268 
16269 
16270 /*
16271  * The copyright in this file is taken from the original Leach
16272  * & Salz UUID specification, from which this implementation
16273  * is derived.
16274  */
16275 
16276 /*
16277  * Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
16278  * Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
16279  * Digital Equipment Corporation, Maynard, Mass.  Copyright (c) 1998
16280  * Microsoft.  To anyone who acknowledges that this file is provided
16281  * "AS IS" without any express or implied warranty: permission to use,
16282  * copy, modify, and distribute this file for any purpose is hereby
16283  * granted without fee, provided that the above copyright notices and
16284  * this notice appears in all source code copies, and that none of the
16285  * names of Open Software Foundation, Inc., Hewlett-Packard Company,
16286  * or Digital Equipment Corporation be used in advertising or
16287  * publicity pertaining to distribution of the software without
16288  * specific, written prior permission.  Neither Open Software
16289  * Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
16290  * Equipment Corporation makes any representations about the
16291  * suitability of this software for any purpose.
16292  */
16293 
16294 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16295 /*
16296  * CDDL HEADER START
16297  *
16298  * The contents of this file are subject to the terms of the
16299  * Common Development and Distribution License (the "License").
16300  * You may not use this file except in compliance with the License.
16301  *
16302  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16303  * or http://www.opensolaris.org/os/licensing.
16304  * See the License for the specific language governing permissions
16305  * and limitations under the License.
16306  *
16307  * When distributing Covered Code, include this CDDL HEADER in each
16308  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16309  * If applicable, add the following below this CDDL HEADER, with the
16310  * fields enclosed by brackets "[]" replaced with your own identifying
16311  * information: Portions Copyright [yyyy] [name of copyright owner]
16312  *
16313  * CDDL HEADER END
16314  */
16315 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16316 /*	  All Rights Reserved  	*/
16317 
16318 
16319 /*
16320  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16321  * Use is subject to license terms.
16322  *
16323  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16324  * Copyright 2016 Joyent, Inc.
16325  */
16326 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uuid.h" 2
16327 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1
16328 /*
16329  * CDDL HEADER START
16330  *
16331  * The contents of this file are subject to the terms of the
16332  * Common Development and Distribution License (the "License").
16333  * You may not use this file except in compliance with the License.
16334  *
16335  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16336  * or http://www.opensolaris.org/os/licensing.
16337  * See the License for the specific language governing permissions
16338  * and limitations under the License.
16339  *
16340  * When distributing Covered Code, include this CDDL HEADER in each
16341  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16342  * If applicable, add the following below this CDDL HEADER, with the
16343  * fields enclosed by brackets "[]" replaced with your own identifying
16344  * information: Portions Copyright [yyyy] [name of copyright owner]
16345  *
16346  * CDDL HEADER END
16347  */
16348 
16349 /*
16350  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16351  * Use is subject to license terms.
16352  */
16353 
16354 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
16355 /*	  All Rights Reserved  	*/
16356 
16357 /*
16358  * University Copyright- Copyright (c) 1982, 1986, 1988
16359  * The Regents of the University of California
16360  * All Rights Reserved
16361  *
16362  * University Acknowledgment- Portions of this document are derived from
16363  * software developed by the University of California, Berkeley, and its
16364  * contributors.
16365  */
16366 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uuid.h" 2
16367 
16368 typedef struct {
16369  uint8_t nodeID[6];
16370 } uuid_node_t;
16371 
16372 /*
16373  * The uuid type used throughout when referencing uuids themselves
16374  */
16375 struct uuid {
16376  uint32_t time_low;
16377  uint16_t time_mid;
16378  uint16_t time_hi_and_version;
16379  uint8_t clock_seq_hi_and_reserved;
16380  uint8_t clock_seq_low;
16381  uint8_t node_addr[6];
16382 };
16383 
16384 
16385 
16386 
16387 
16388 typedef uchar_t uuid_t[16];
16389 
16390 /*
16391  * Convert a uuid to/from little-endian format
16392  */
16393 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16394 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 1
16395 /*
16396  * CDDL HEADER START
16397  *
16398  * The contents of this file are subject to the terms of the
16399  * Common Development and Distribution License (the "License").
16400  * You may not use this file except in compliance with the License.
16401  *
16402  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16403  * or http://www.opensolaris.org/os/licensing.
16404  * See the License for the specific language governing permissions
16405  * and limitations under the License.
16406  *
16407  * When distributing Covered Code, include this CDDL HEADER in each
16408  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16409  * If applicable, add the following below this CDDL HEADER, with the
16410  * fields enclosed by brackets "[]" replaced with your own identifying
16411  * information: Portions Copyright [yyyy] [name of copyright owner]
16412  *
16413  * CDDL HEADER END
16414  */
16415 /*
16416  * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
16417  */
16418 
16419 
16420 
16421 
16422 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16423 /*
16424  * CDDL HEADER START
16425  *
16426  * The contents of this file are subject to the terms of the
16427  * Common Development and Distribution License (the "License").
16428  * You may not use this file except in compliance with the License.
16429  *
16430  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16431  * or http://www.opensolaris.org/os/licensing.
16432  * See the License for the specific language governing permissions
16433  * and limitations under the License.
16434  *
16435  * When distributing Covered Code, include this CDDL HEADER in each
16436  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16437  * If applicable, add the following below this CDDL HEADER, with the
16438  * fields enclosed by brackets "[]" replaced with your own identifying
16439  * information: Portions Copyright [yyyy] [name of copyright owner]
16440  *
16441  * CDDL HEADER END
16442  */
16443 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16444 /*	  All Rights Reserved  	*/
16445 
16446 
16447 /*
16448  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16449  * Use is subject to license terms.
16450  *
16451  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16452  * Copyright 2016 Joyent, Inc.
16453  */
16454 # 29 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 2
16455 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1
16456 /*
16457  * CDDL HEADER START
16458  *
16459  * The contents of this file are subject to the terms of the
16460  * Common Development and Distribution License, Version 1.0 only
16461  * (the "License").  You may not use this file except in compliance
16462  * with the License.
16463  *
16464  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16465  * or http://www.opensolaris.org/os/licensing.
16466  * See the License for the specific language governing permissions
16467  * and limitations under the License.
16468  *
16469  * When distributing Covered Code, include this CDDL HEADER in each
16470  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16471  * If applicable, add the following below this CDDL HEADER, with the
16472  * fields enclosed by brackets "[]" replaced with your own identifying
16473  * information: Portions Copyright [yyyy] [name of copyright owner]
16474  *
16475  * CDDL HEADER END
16476  */
16477 /*	Copyright (c) 1988 AT&T	*/
16478 /*	  All Rights Reserved	*/
16479 
16480 /*
16481  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16482  *
16483  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
16484  * Use is subject to license terms.
16485  */
16486 
16487 
16488 
16489 
16490 /*
16491  * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999
16492  * variable argument definitions.  For legacy support, it also defines
16493  * the pre-standard variable argument definitions.
16494  *
16495  * The varargs definitions within this header are defined in terms of
16496  * implementation definitions.  These implementation definitions reside
16497  * in <sys/va_list.h>.  This organization enables protected use of
16498  * the implementation by other standard headers without introducing
16499  * names into the users' namespace.
16500  */
16501 
16502 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1
16503 /*
16504  * CDDL HEADER START
16505  *
16506  * The contents of this file are subject to the terms of the
16507  * Common Development and Distribution License, Version 1.0 only
16508  * (the "License").  You may not use this file except in compliance
16509  * with the License.
16510  *
16511  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16512  * or http://www.opensolaris.org/os/licensing.
16513  * See the License for the specific language governing permissions
16514  * and limitations under the License.
16515  *
16516  * When distributing Covered Code, include this CDDL HEADER in each
16517  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16518  * If applicable, add the following below this CDDL HEADER, with the
16519  * fields enclosed by brackets "[]" replaced with your own identifying
16520  * information: Portions Copyright [yyyy] [name of copyright owner]
16521  *
16522  * CDDL HEADER END
16523  */
16524 /*	Copyright (c) 1988 AT&T	*/
16525 /*	  All Rights Reserved  	*/
16526 
16527 
16528 /*
16529  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
16530  * Use is subject to license terms.
16531  */
16532 
16533 /*
16534  * An application should not include this header directly.  Instead it
16535  * should be included only through the inclusion of other Sun headers.
16536  *
16537  * The contents of this header is limited to identifiers specified in the
16538  * C Standard.  Any new identifiers specified in future amendments to the
16539  * C Standard must be placed in this header.  If these new identifiers
16540  * are required to also be in the C++ Standard "std" namespace, then for
16541  * anything other than macro definitions, corresponding "using" directives
16542  * must also be added to <stdarg.h>.
16543  */
16544 
16545 
16546 
16547 
16548 #pragma ident "%Z%%M%	%I%	%E% SMI"
16549 
16550 /*
16551  * This header defines the ISO C 1989 and ISO C++ 1998 variable
16552  * argument definitions.
16553  *
16554  * The varargs definitions within this header are defined in terms of
16555  * implementation definitions.  These implementation definitions reside
16556  * in <sys/va_impl.h>.  This organization enables protected use of
16557  * the implementation by other standard headers without introducing
16558  * names into the users' namespace.
16559  */
16560 
16561 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1
16562 /*
16563  * CDDL HEADER START
16564  *
16565  * The contents of this file are subject to the terms of the
16566  * Common Development and Distribution License, Version 1.0 only
16567  * (the "License").  You may not use this file except in compliance
16568  * with the License.
16569  *
16570  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16571  * or http://www.opensolaris.org/os/licensing.
16572  * See the License for the specific language governing permissions
16573  * and limitations under the License.
16574  *
16575  * When distributing Covered Code, include this CDDL HEADER in each
16576  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16577  * If applicable, add the following below this CDDL HEADER, with the
16578  * fields enclosed by brackets "[]" replaced with your own identifying
16579  * information: Portions Copyright [yyyy] [name of copyright owner]
16580  *
16581  * CDDL HEADER END
16582  */
16583 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16584 /*	  All Rights Reserved	*/
16585 
16586 
16587 /*
16588  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16589  *
16590  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
16591  * Use is subject to license terms.
16592  */
16593 
16594 
16595 
16596 
16597 /*
16598  * An application should not include this header directly.  Instead it
16599  * should be included only through the inclusion of other Sun headers,
16600  * specifically <stdarg.h> and <varargs.h>.
16601  *
16602  * This header serves two purposes.
16603  *
16604  * First, it provides a common set of definitions that implementations
16605  * of the various standards for variable argument lists may use.  These
16606  * various standards are implemented in <varargs.h>, <stdarg.h>,
16607  * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>.
16608  *
16609  * Second, it provides varying implementations of the common definitions,
16610  * depending upon the compiler.
16611  */
16612 
16613 /*
16614  * The common definitions exported by this header or compilers using
16615  * this header are:
16616  *
16617  * the macro __va_start(list, name) starting the list iteration
16618  * the macro __va_arg(list, type) getting the current arg and iterating
16619  * the macro __va_copy(to, from) to bookmark the list iteration
16620  * the macro __va_end(list) to end the iteration
16621  *
16622  * In addition, the following are exported via inclusion of <sys/va_list.h>:
16623  *
16624  * the identifier __builtin_va_alist for the variable list pseudo parameter
16625  * the type __va_alist_type for the variable list pseudo parameter
16626  * the type __va_list defining the type of the variable list iterator
16627  */
16628 
16629 /*
16630  * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and
16631  * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor
16632  * macros (e.g. __sparc) to determine the protocol appropriate to the
16633  * current compilation.  It is intended that the compilation system
16634  * define the feature, processor, and compiler macros, not the user of
16635  * the system.
16636  */
16637 
16638 /*
16639  * Many compilation systems depend upon the use of special functions
16640  * built into the the compilation system to handle variable argument
16641  * lists.  These built-in symbols may include one or more of the
16642  * following:
16643  *
16644  *      __builtin_va_alist
16645  *      __builtin_va_start
16646  *      __builtin_va_arg_incr
16647  *      __builtin_stdarg_start
16648  *      __builtin_va_end
16649  *      __builtin_va_arg
16650  *      __builtin_va_copy
16651  */
16652 
16653 /*
16654  * The following are defined in <sys/va_list.h>:
16655  *
16656  *      __va_alist_type
16657  *      __va_void()
16658  *      __va_ptr_base
16659  *      ISA definitions via inclusion of <sys/isa_defs.h>
16660  *
16661  * Inclusion of this header also makes visible the symbols in <sys/va_list.h>.
16662  * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h>
16663  * via inclusion of <iso/stdarg_iso.h>.
16664  */
16665 
16666 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
16667 /*
16668  * CDDL HEADER START
16669  *
16670  * The contents of this file are subject to the terms of the
16671  * Common Development and Distribution License, Version 1.0 only
16672  * (the "License").  You may not use this file except in compliance
16673  * with the License.
16674  *
16675  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16676  * or http://www.opensolaris.org/os/licensing.
16677  * See the License for the specific language governing permissions
16678  * and limitations under the License.
16679  *
16680  * When distributing Covered Code, include this CDDL HEADER in each
16681  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16682  * If applicable, add the following below this CDDL HEADER, with the
16683  * fields enclosed by brackets "[]" replaced with your own identifying
16684  * information: Portions Copyright [yyyy] [name of copyright owner]
16685  *
16686  * CDDL HEADER END
16687  */
16688 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16689 /*	  All Rights Reserved	*/
16690 
16691 
16692 /*
16693  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16694  *
16695  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
16696  * Use is subject to license terms.
16697  */
16698 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2
16699 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2
16700 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h"
16701 typedef __va_list va_list;
16702 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2
16703 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1
16704 /*
16705  * CDDL HEADER START
16706  *
16707  * The contents of this file are subject to the terms of the
16708  * Common Development and Distribution License, Version 1.0 only
16709  * (the "License").  You may not use this file except in compliance
16710  * with the License.
16711  *
16712  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16713  * or http://www.opensolaris.org/os/licensing.
16714  * See the License for the specific language governing permissions
16715  * and limitations under the License.
16716  *
16717  * When distributing Covered Code, include this CDDL HEADER in each
16718  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16719  * If applicable, add the following below this CDDL HEADER, with the
16720  * fields enclosed by brackets "[]" replaced with your own identifying
16721  * information: Portions Copyright [yyyy] [name of copyright owner]
16722  *
16723  * CDDL HEADER END
16724  */
16725 /*	Copyright (c) 1988 AT&T	*/
16726 /*	  All Rights Reserved	*/
16727 
16728 
16729 /*
16730  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
16731  * Use is subject to license terms.
16732  */
16733 
16734 
16735 
16736 
16737 #pragma ident "%Z%%M%	%I%	%E% SMI"
16738 
16739 /*
16740  * An application should not include this header directly.  Instead it
16741  * should be included only through the inclusion of other Sun headers.
16742  *
16743  * This header defines the va_copy variable argument macro, which is
16744  * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++
16745  * 1998.  Because this macro is a long-standing Solaris extension, it
16746  * is also permitted in other contexts.
16747  *
16748  * The varargs definitions within this header are defined in terms of
16749  * implementation definitions.  These implementation definitions reside
16750  * in <sys/va_list.h>.  This organization enables protected use of
16751  * the implementation by other standard headers without introducing
16752  * names into the users' namespace.
16753  */
16754 
16755 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
16756 /*
16757  * CDDL HEADER START
16758  *
16759  * The contents of this file are subject to the terms of the
16760  * Common Development and Distribution License (the "License").
16761  * You may not use this file except in compliance with the License.
16762  *
16763  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16764  * or http://www.opensolaris.org/os/licensing.
16765  * See the License for the specific language governing permissions
16766  * and limitations under the License.
16767  *
16768  * When distributing Covered Code, include this CDDL HEADER in each
16769  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16770  * If applicable, add the following below this CDDL HEADER, with the
16771  * fields enclosed by brackets "[]" replaced with your own identifying
16772  * information: Portions Copyright [yyyy] [name of copyright owner]
16773  *
16774  * CDDL HEADER END
16775  */
16776 
16777 /*
16778  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
16779  * Copyright 2016 Joyent, Inc.
16780  *
16781  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
16782  * Use is subject to license terms.
16783  */
16784 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2
16785 
16786 
16787 
16788 
16789 
16790 /*
16791  * va_copy was initially a Solaris extension to provide a portable
16792  * way to perform a variable argument list ``bookmarking'' function.
16793  * It is now specified in the ISO/IEC 9899:1999 standard.
16794  */
16795 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2
16796 
16797 /*
16798  * Allow global visibility for symbols defined in
16799  * C++ "std" namespace in <iso/stdarg_iso.h>.
16800  */
16801 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 2
16802 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
16803 /*
16804  * CDDL HEADER START
16805  *
16806  * The contents of this file are subject to the terms of the
16807  * Common Development and Distribution License (the "License").
16808  * You may not use this file except in compliance with the License.
16809  *
16810  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16811  * or http://www.opensolaris.org/os/licensing.
16812  * See the License for the specific language governing permissions
16813  * and limitations under the License.
16814  *
16815  * When distributing Covered Code, include this CDDL HEADER in each
16816  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16817  * If applicable, add the following below this CDDL HEADER, with the
16818  * fields enclosed by brackets "[]" replaced with your own identifying
16819  * information: Portions Copyright [yyyy] [name of copyright owner]
16820  *
16821  * CDDL HEADER END
16822  */
16823 
16824 /*
16825  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16826  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
16827  */
16828 
16829 /*	Copyright (c) 1988 AT&T	*/
16830 /*	  All Rights Reserved  	*/
16831 
16832 /*
16833  * User-visible pieces of the ANSI C standard I/O package.
16834  */
16835 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 2
16836 
16837 
16838 
16839 
16840 
16841 /*
16842  * Standard flags codes.
16843  */
16844 
16845 
16846 /*
16847  * Standard error codes.
16848  */
16849 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h"
16850 /*
16851  * Standard program exit codes.
16852  */
16853 
16854 
16855 
16856 
16857 /*
16858  * Exit status profiles.
16859  */
16860 
16861 
16862 
16863 /*
16864  * Error reporting functions.
16865  */
16866 uint32_t uu_error(void);
16867 const char *uu_strerror(uint32_t);
16868 
16869 /*
16870  * Program notification functions.
16871  */
16872 extern void uu_alt_exit(int);
16873 extern const char *uu_setpname(char *);
16874 extern const char *uu_getpname(void);
16875 /*PRINTFLIKE1*/
16876 extern void uu_warn(const char *, ...);
16877 extern void uu_vwarn(const char *, va_list);
16878 /*PRINTFLIKE1*/
16879 extern void uu_die(const char *, ...) __attribute__((__noreturn__));
16880 extern void uu_vdie(const char *, va_list) __attribute__((__noreturn__));
16881 /*PRINTFLIKE2*/
16882 extern void uu_xdie(int, const char *, ...) __attribute__((__noreturn__));
16883 extern void uu_vxdie(int, const char *, va_list) __attribute__((__noreturn__));
16884 
16885 /*
16886  * Exit status functions (not to be used directly)
16887  */
16888 extern int *uu_exit_ok(void);
16889 extern int *uu_exit_fatal(void);
16890 extern int *uu_exit_usage(void);
16891 
16892 /*
16893  * string->number conversions
16894  */
16895 extern int uu_strtoint(const char *, void *, size_t, int, int64_t, int64_t);
16896 extern int uu_strtouint(const char *, void *, size_t, int, uint64_t, uint64_t);
16897 
16898 /*
16899  * Debug print facility functions.
16900  */
16901 typedef struct uu_dprintf uu_dprintf_t;
16902 
16903 typedef enum {
16904  UU_DPRINTF_SILENT,
16905  UU_DPRINTF_FATAL,
16906  UU_DPRINTF_WARNING,
16907  UU_DPRINTF_NOTICE,
16908  UU_DPRINTF_INFO,
16909  UU_DPRINTF_DEBUG
16910 } uu_dprintf_severity_t;
16911 
16912 extern uu_dprintf_t *uu_dprintf_create(const char *, uu_dprintf_severity_t,
16913     uint_t);
16914 /*PRINTFLIKE3*/
16915 extern void uu_dprintf(uu_dprintf_t *, uu_dprintf_severity_t,
16916     const char *, ...);
16917 extern void uu_dprintf_destroy(uu_dprintf_t *);
16918 extern const char *uu_dprintf_getname(uu_dprintf_t *);
16919 
16920 /*
16921  * Identifier test flags and function.
16922  */
16923 
16924 
16925 
16926 int uu_check_name(const char *, uint_t);
16927 
16928 /*
16929  * File creation functions.
16930  */
16931 extern int uu_open_tmp(const char *dir, uint_t uflags);
16932 
16933 /*
16934  * Convenience functions.
16935  */
16936 
16937 
16938 /*PRINTFLIKE1*/
16939 extern char *uu_msprintf(const char *format, ...);
16940 extern void *uu_zalloc(size_t);
16941 extern char *uu_strdup(const char *);
16942 extern void uu_free(void *);
16943 
16944 extern boolean_t uu_strcaseeq(const char *a, const char *b);
16945 extern boolean_t uu_streq(const char *a, const char *b);
16946 extern char *uu_strndup(const char *s, size_t n);
16947 extern boolean_t uu_strbw(const char *a, const char *b);
16948 extern void *uu_memdup(const void *buf, size_t sz);
16949 extern void uu_dump(FILE *out, const char *prefix, const void *buf, size_t len);
16950 
16951 /*
16952  * Comparison function type definition.
16953  *   Developers should be careful in their use of the _private argument. If you
16954  *   break interface guarantees, you get undefined behavior.
16955  */
16956 typedef int uu_compare_fn_t(const void *__left, const void *__right,
16957     void *__private);
16958 
16959 /*
16960  * Walk variant flags.
16961  *   A data structure need not provide support for all variants and
16962  *   combinations.  Refer to the appropriate documentation.
16963  */
16964 
16965 
16966 
16967 
16968 
16969 
16970 /*
16971  * Walk callback function return codes.
16972  */
16973 
16974 
16975 
16976 
16977 /*
16978  * Walk callback function type definition.
16979  */
16980 typedef int uu_walk_fn_t(void *_elem, void *_private);
16981 
16982 /*
16983  * lists: opaque structures
16984  */
16985 typedef struct uu_list_pool uu_list_pool_t;
16986 typedef struct uu_list uu_list_t;
16987 
16988 typedef struct uu_list_node {
16989  uintptr_t uln_opaque[2];
16990 } uu_list_node_t;
16991 
16992 typedef struct uu_list_walk uu_list_walk_t;
16993 
16994 typedef uintptr_t uu_list_index_t;
16995 
16996 /*
16997  * lists: interface
16998  *
16999  * basic usage:
17000  *	typedef struct foo {
17001  *		...
17002  *		uu_list_node_t foo_node;
17003  *		...
17004  *	} foo_t;
17005  *
17006  *	static int
17007  *	foo_compare(void *l_arg, void *r_arg, void *private)
17008  *	{
17009  *		foo_t *l = l_arg;
17010  *		foo_t *r = r_arg;
17011  *
17012  *		if (... l greater than r ...)
17013  *			return (1);
17014  *		if (... l less than r ...)
17015  *			return (-1);
17016  *		return (0);
17017  *	}
17018  *
17019  *	...
17020  *		// at initialization time
17021  *		foo_pool = uu_list_pool_create("foo_pool",
17022  *		    sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
17023  *		    debugging? 0 : UU_AVL_POOL_DEBUG);
17024  *	...
17025  */
17026 uu_list_pool_t *uu_list_pool_create(const char *, size_t, size_t,
17027     uu_compare_fn_t *, uint32_t);
17028 
17029 
17030 void uu_list_pool_destroy(uu_list_pool_t *);
17031 
17032 /*
17033  * usage:
17034  *
17035  *	foo_t *a;
17036  *	a = malloc(sizeof(*a));
17037  *	uu_list_node_init(a, &a->foo_list, pool);
17038  *	...
17039  *	uu_list_node_fini(a, &a->foo_list, pool);
17040  *	free(a);
17041  */
17042 void uu_list_node_init(void *, uu_list_node_t *, uu_list_pool_t *);
17043 void uu_list_node_fini(void *, uu_list_node_t *, uu_list_pool_t *);
17044 
17045 uu_list_t *uu_list_create(uu_list_pool_t *, void *_parent, uint32_t);
17046 
17047 
17048 
17049 void uu_list_destroy(uu_list_t *); /* list must be empty */
17050 
17051 size_t uu_list_numnodes(uu_list_t *);
17052 
17053 void *uu_list_first(uu_list_t *);
17054 void *uu_list_last(uu_list_t *);
17055 
17056 void *uu_list_next(uu_list_t *, void *);
17057 void *uu_list_prev(uu_list_t *, void *);
17058 
17059 int uu_list_walk(uu_list_t *, uu_walk_fn_t *, void *, uint32_t);
17060 
17061 uu_list_walk_t *uu_list_walk_start(uu_list_t *, uint32_t);
17062 void *uu_list_walk_next(uu_list_walk_t *);
17063 void uu_list_walk_end(uu_list_walk_t *);
17064 
17065 void *uu_list_find(uu_list_t *, void *, void *, uu_list_index_t *);
17066 void uu_list_insert(uu_list_t *, void *, uu_list_index_t);
17067 
17068 void *uu_list_nearest_next(uu_list_t *, uu_list_index_t);
17069 void *uu_list_nearest_prev(uu_list_t *, uu_list_index_t);
17070 
17071 void *uu_list_teardown(uu_list_t *, void **);
17072 
17073 void uu_list_remove(uu_list_t *, void *);
17074 
17075 /*
17076  * lists: interfaces for non-sorted lists only
17077  */
17078 int uu_list_insert_before(uu_list_t *, void *_target, void *_elem);
17079 int uu_list_insert_after(uu_list_t *, void *_target, void *_elem);
17080 
17081 /*
17082  * avl trees: opaque structures
17083  */
17084 typedef struct uu_avl_pool uu_avl_pool_t;
17085 typedef struct uu_avl uu_avl_t;
17086 
17087 typedef struct uu_avl_node {
17088 
17089  uintptr_t uan_opaque[3];
17090 
17091 
17092 
17093 } uu_avl_node_t;
17094 
17095 typedef struct uu_avl_walk uu_avl_walk_t;
17096 
17097 typedef uintptr_t uu_avl_index_t;
17098 
17099 /*
17100  * avl trees: interface
17101  *
17102  * basic usage:
17103  *	typedef struct foo {
17104  *		...
17105  *		uu_avl_node_t foo_node;
17106  *		...
17107  *	} foo_t;
17108  *
17109  *	static int
17110  *	foo_compare(void *l_arg, void *r_arg, void *private)
17111  *	{
17112  *		foo_t *l = l_arg;
17113  *		foo_t *r = r_arg;
17114  *
17115  *		if (... l greater than r ...)
17116  *			return (1);
17117  *		if (... l less than r ...)
17118  *			return (-1);
17119  *		return (0);
17120  *	}
17121  *
17122  *	...
17123  *		// at initialization time
17124  *		foo_pool = uu_avl_pool_create("foo_pool",
17125  *		    sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
17126  *		    debugging? 0 : UU_AVL_POOL_DEBUG);
17127  *	...
17128  */
17129 uu_avl_pool_t *uu_avl_pool_create(const char *, size_t, size_t,
17130     uu_compare_fn_t *, uint32_t);
17131 
17132 
17133 void uu_avl_pool_destroy(uu_avl_pool_t *);
17134 
17135 /*
17136  * usage:
17137  *
17138  *	foo_t *a;
17139  *	a = malloc(sizeof(*a));
17140  *	uu_avl_node_init(a, &a->foo_avl, pool);
17141  *	...
17142  *	uu_avl_node_fini(a, &a->foo_avl, pool);
17143  *	free(a);
17144  */
17145 void uu_avl_node_init(void *, uu_avl_node_t *, uu_avl_pool_t *);
17146 void uu_avl_node_fini(void *, uu_avl_node_t *, uu_avl_pool_t *);
17147 
17148 uu_avl_t *uu_avl_create(uu_avl_pool_t *, void *_parent, uint32_t);
17149 
17150 
17151 void uu_avl_destroy(uu_avl_t *); /* list must be empty */
17152 
17153 size_t uu_avl_numnodes(uu_avl_t *);
17154 
17155 void *uu_avl_first(uu_avl_t *);
17156 void *uu_avl_last(uu_avl_t *);
17157 
17158 void *uu_avl_next(uu_avl_t *, void *);
17159 void *uu_avl_prev(uu_avl_t *, void *);
17160 
17161 int uu_avl_walk(uu_avl_t *, uu_walk_fn_t *, void *, uint32_t);
17162 
17163 uu_avl_walk_t *uu_avl_walk_start(uu_avl_t *, uint32_t);
17164 void *uu_avl_walk_next(uu_avl_walk_t *);
17165 void uu_avl_walk_end(uu_avl_walk_t *);
17166 
17167 void *uu_avl_find(uu_avl_t *, void *, void *, uu_avl_index_t *);
17168 void uu_avl_insert(uu_avl_t *, void *, uu_avl_index_t);
17169 
17170 void *uu_avl_nearest_next(uu_avl_t *, uu_avl_index_t);
17171 void *uu_avl_nearest_prev(uu_avl_t *, uu_avl_index_t);
17172 
17173 void *uu_avl_teardown(uu_avl_t *, void **);
17174 
17175 void uu_avl_remove(uu_avl_t *, void *);
17176 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17177 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h" 1
17178 /*
17179  * CDDL HEADER START
17180  *
17181  * The contents of this file are subject to the terms of the
17182  * Common Development and Distribution License (the "License").
17183  * You may not use this file except in compliance with the License.
17184  *
17185  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17186  * or http://www.opensolaris.org/os/licensing.
17187  * See the License for the specific language governing permissions
17188  * and limitations under the License.
17189  *
17190  * When distributing Covered Code, include this CDDL HEADER in each
17191  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17192  * If applicable, add the following below this CDDL HEADER, with the
17193  * fields enclosed by brackets "[]" replaced with your own identifying
17194  * information: Portions Copyright [yyyy] [name of copyright owner]
17195  *
17196  * CDDL HEADER END
17197  */
17198 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17199 /*	  All Rights Reserved  	*/
17200 
17201 
17202 /*
17203  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17204  *
17205  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17206  * Use is subject to license terms.
17207  */
17208 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17209 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
17210 /*
17211  * CDDL HEADER START
17212  *
17213  * The contents of this file are subject to the terms of the
17214  * Common Development and Distribution License (the "License").
17215  * You may not use this file except in compliance with the License.
17216  *
17217  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17218  * or http://www.opensolaris.org/os/licensing.
17219  * See the License for the specific language governing permissions
17220  * and limitations under the License.
17221  *
17222  * When distributing Covered Code, include this CDDL HEADER in each
17223  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17224  * If applicable, add the following below this CDDL HEADER, with the
17225  * fields enclosed by brackets "[]" replaced with your own identifying
17226  * information: Portions Copyright [yyyy] [name of copyright owner]
17227  *
17228  * CDDL HEADER END
17229  */
17230 
17231 /*
17232  * Copyright (c) 2013 Gary Mills
17233  *
17234  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
17235  * Use is subject to license terms.
17236  */
17237 
17238 /*	Copyright (c) 1988 AT&T	*/
17239 /*	  All Rights Reserved  	*/
17240 
17241 
17242 
17243 
17244 
17245 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
17246 /*
17247  * CDDL HEADER START
17248  *
17249  * The contents of this file are subject to the terms of the
17250  * Common Development and Distribution License (the "License").
17251  * You may not use this file except in compliance with the License.
17252  *
17253  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17254  * or http://www.opensolaris.org/os/licensing.
17255  * See the License for the specific language governing permissions
17256  * and limitations under the License.
17257  *
17258  * When distributing Covered Code, include this CDDL HEADER in each
17259  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17260  * If applicable, add the following below this CDDL HEADER, with the
17261  * fields enclosed by brackets "[]" replaced with your own identifying
17262  * information: Portions Copyright [yyyy] [name of copyright owner]
17263  *
17264  * CDDL HEADER END
17265  */
17266 
17267 /*
17268  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
17269  * Copyright 2016 Joyent, Inc.
17270  *
17271  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
17272  * Use is subject to license terms.
17273  */
17274 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
17275 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
17276 /*
17277  * CDDL HEADER START
17278  *
17279  * The contents of this file are subject to the terms of the
17280  * Common Development and Distribution License (the "License").
17281  * You may not use this file except in compliance with the License.
17282  *
17283  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17284  * or http://www.opensolaris.org/os/licensing.
17285  * See the License for the specific language governing permissions
17286  * and limitations under the License.
17287  *
17288  *
17289  * When distributing Covered Code, include this CDDL HEADER in each
17290  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17291  * If applicable, add the following below this CDDL HEADER, with the
17292  * fields enclosed by brackets "[]" replaced with your own identifying
17293  * information: Portions Copyright [yyyy] [name of copyright owner]
17294  *
17295  * CDDL HEADER END
17296  */
17297 
17298 /*
17299  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
17300  * Use is subject to license terms.
17301  * Copyright 2016 Joyent, Inc.
17302  */
17303 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
17304 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1
17305 /*
17306  * CDDL HEADER START
17307  *
17308  * The contents of this file are subject to the terms of the
17309  * Common Development and Distribution License, Version 1.0 only
17310  * (the "License").  You may not use this file except in compliance
17311  * with the License.
17312  *
17313  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17314  * or http://www.opensolaris.org/os/licensing.
17315  * See the License for the specific language governing permissions
17316  * and limitations under the License.
17317  *
17318  * When distributing Covered Code, include this CDDL HEADER in each
17319  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17320  * If applicable, add the following below this CDDL HEADER, with the
17321  * fields enclosed by brackets "[]" replaced with your own identifying
17322  * information: Portions Copyright [yyyy] [name of copyright owner]
17323  *
17324  * CDDL HEADER END
17325  */
17326 /*
17327  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
17328  * Use is subject to license terms.
17329  */
17330 
17331 /*	Copyright (c) 1988 AT&T	*/
17332 /*	  All Rights Reserved  	*/
17333 
17334 
17335 /*
17336  * An application should not include this header directly.  Instead it
17337  * should be included only through the inclusion of other Sun headers.
17338  *
17339  * The contents of this header is limited to identifiers specified in the
17340  * C Standard.  Any new identifiers specified in future amendments to the
17341  * C Standard must be placed in this header.  If these new identifiers
17342  * are required to also be in the C++ Standard "std" namespace, then for
17343  * anything other than macro definitions, corresponding "using" directives
17344  * must also be added to <limits.h>.
17345  */
17346 
17347 
17348 
17349 
17350 #pragma ident "%Z%%M%	%I%	%E% SMI"
17351 
17352 
17353 
17354 
17355 
17356 /*
17357  * Sizes of integral types
17358  */
17359 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h"
17360      /* min value of a "long int" */
17361 
17362      /* max value of a "long int" */
17363 
17364      /* max value of "unsigned long int" */
17365 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h"
17366      /* min value of a long long */
17367 
17368      /* max value of a long long */
17369 
17370      /* max value of "unsigned long long */
17371 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
17372 
17373 /*
17374  * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C
17375  * committee's working draft for the revision of the current ISO C standard,
17376  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
17377  * required by any standard but constitute a useful, general purpose set
17378  * of type definitions and limits which is namespace clean with respect to
17379  * all standards.
17380  */
17381 
17382 
17383 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
17384 /*
17385  * CDDL HEADER START
17386  *
17387  * The contents of this file are subject to the terms of the
17388  * Common Development and Distribution License, Version 1.0 only
17389  * (the "License").  You may not use this file except in compliance
17390  * with the License.
17391  *
17392  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17393  * or http://www.opensolaris.org/os/licensing.
17394  * See the License for the specific language governing permissions
17395  * and limitations under the License.
17396  *
17397  * When distributing Covered Code, include this CDDL HEADER in each
17398  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17399  * If applicable, add the following below this CDDL HEADER, with the
17400  * fields enclosed by brackets "[]" replaced with your own identifying
17401  * information: Portions Copyright [yyyy] [name of copyright owner]
17402  *
17403  * CDDL HEADER END
17404  */
17405 /*
17406  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17407  *
17408  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
17409  * Use is subject to license terms.
17410  */
17411 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
17412 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17413 /*
17414  * ARG_MAX is calculated as follows:
17415  * NCARGS - space for other stuff on initial stack
17416  * like aux vectors, saved registers, etc..
17417  */
17418 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17419 /*
17420  * POSIX conformant definitions - An implementation may define
17421  * other symbols which reflect the actual implementation. Alternate
17422  * definitions may not be as restrictive as the POSIX definitions.
17423  */
17424 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17425 /* POSIX.1c conformant */
17426 
17427 
17428 
17429 
17430 
17431 /* UNIX 03 conformant */
17432 
17433 
17434 
17435 
17436 
17437 /*
17438  * POSIX.2 and XPG4-XSH4 conformant definitions
17439  */
17440 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17441 /* UNIX 03 conformant */
17442 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17443 /*
17444  * For dual definitions for PASS_MAX and sysconf.c
17445  */
17446 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17447     /* NLS printf() and scanf() */
17448 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17449 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */
17450 
17451 
17452 
17453        /* of a double */
17454 
17455 
17456        /* of a "float" */
17457 
17458 
17459 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */
17460 
17461 
17462        /* of a double */
17463 
17464        /* of a float */
17465 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17466 /*
17467  * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the
17468  * related text states:
17469  *
17470  * A definition of one of the values from Table 2-5 shall be omitted from the
17471  * <limits.h> on specific implementations where the corresponding value is
17472  * equal to or greater than the stated minimum, but where the value can vary
17473  * depending on the file to which it is applied. The actual value supported for
17474  * a specific pathname shall be provided by the pathconf() (5.7.1) function.
17475  *
17476  * This is clear that any machine supporting multiple file system types
17477  * and/or a network can not include this define, regardless of protection
17478  * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags.
17479  *
17480  * #define	NAME_MAX	14
17481  */
17482 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
17483     /* Increased for illumos */
17484 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17485 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 1
17486 /*
17487  * CDDL HEADER START
17488  *
17489  * The contents of this file are subject to the terms of the
17490  * Common Development and Distribution License, Version 1.0 only
17491  * (the "License").  You may not use this file except in compliance
17492  * with the License.
17493  *
17494  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17495  * or http://www.opensolaris.org/os/licensing.
17496  * See the License for the specific language governing permissions
17497  * and limitations under the License.
17498  *
17499  * When distributing Covered Code, include this CDDL HEADER in each
17500  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17501  * If applicable, add the following below this CDDL HEADER, with the
17502  * fields enclosed by brackets "[]" replaced with your own identifying
17503  * information: Portions Copyright [yyyy] [name of copyright owner]
17504  *
17505  * CDDL HEADER END
17506  */
17507 /*
17508  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17509  *
17510  * Copyright 1997 Sun Microsystems, Inc.  All rights reserved.
17511  * Use is subject to license terms.
17512  */
17513 
17514 /*	Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T	*/
17515 /*	  All Rights Reserved  	*/
17516 
17517 /*
17518  * Portions of this source code were derived from Berkeley 4.3 BSD
17519  * under license from the Regents of the University of California.
17520  */
17521 
17522 
17523 
17524 
17525 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
17526 /*
17527  * CDDL HEADER START
17528  *
17529  * The contents of this file are subject to the terms of the
17530  * Common Development and Distribution License (the "License").
17531  * You may not use this file except in compliance with the License.
17532  *
17533  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17534  * or http://www.opensolaris.org/os/licensing.
17535  * See the License for the specific language governing permissions
17536  * and limitations under the License.
17537  *
17538  * When distributing Covered Code, include this CDDL HEADER in each
17539  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17540  * If applicable, add the following below this CDDL HEADER, with the
17541  * fields enclosed by brackets "[]" replaced with your own identifying
17542  * information: Portions Copyright [yyyy] [name of copyright owner]
17543  *
17544  * CDDL HEADER END
17545  */
17546 
17547 /*
17548  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
17549  * Copyright 2016 Joyent, Inc.
17550  *
17551  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
17552  * Use is subject to license terms.
17553  */
17554 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
17555 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17556 /*
17557  * CDDL HEADER START
17558  *
17559  * The contents of this file are subject to the terms of the
17560  * Common Development and Distribution License (the "License").
17561  * You may not use this file except in compliance with the License.
17562  *
17563  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17564  * or http://www.opensolaris.org/os/licensing.
17565  * See the License for the specific language governing permissions
17566  * and limitations under the License.
17567  *
17568  * When distributing Covered Code, include this CDDL HEADER in each
17569  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17570  * If applicable, add the following below this CDDL HEADER, with the
17571  * fields enclosed by brackets "[]" replaced with your own identifying
17572  * information: Portions Copyright [yyyy] [name of copyright owner]
17573  *
17574  * CDDL HEADER END
17575  */
17576 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17577 /*	  All Rights Reserved  	*/
17578 
17579 
17580 /*
17581  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17582  * Use is subject to license terms.
17583  *
17584  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17585  * Copyright 2016 Joyent, Inc.
17586  */
17587 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
17588 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
17589 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17590 /*	  All Rights Reserved  	*/
17591 
17592 
17593 /*
17594  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
17595  * All rights reserved.  The Berkeley software License Agreement
17596  * specifies the terms and conditions for redistribution.
17597  */
17598 
17599 /*
17600  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17601  *
17602  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17603  * Use is subject to license terms.
17604  *
17605  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17606  */
17607 
17608 /*
17609  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
17610  */
17611 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
17612 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 1
17613 /*
17614  * CDDL HEADER START
17615  *
17616  * The contents of this file are subject to the terms of the
17617  * Common Development and Distribution License, Version 1.0 only
17618  * (the "License").  You may not use this file except in compliance
17619  * with the License.
17620  *
17621  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17622  * or http://www.opensolaris.org/os/licensing.
17623  * See the License for the specific language governing permissions
17624  * and limitations under the License.
17625  *
17626  * When distributing Covered Code, include this CDDL HEADER in each
17627  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17628  * If applicable, add the following below this CDDL HEADER, with the
17629  * fields enclosed by brackets "[]" replaced with your own identifying
17630  * information: Portions Copyright [yyyy] [name of copyright owner]
17631  *
17632  * CDDL HEADER END
17633  */
17634 /*	Copyright (c) 1988 AT&T	*/
17635 /*	  All Rights Reserved  	*/
17636 
17637 
17638 /*
17639  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17640  *
17641  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
17642  * Use is subject to license terms.
17643  */
17644 
17645 
17646 
17647 
17648 
17649 /*
17650  * Note:  The getutent(3c) family of interfaces are obsolete.
17651  * The getutxent(3c) family provide a superset of this functionality
17652  * and should be used in place of getutent(3c).
17653  */
17654 
17655 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17656 /*
17657  * CDDL HEADER START
17658  *
17659  * The contents of this file are subject to the terms of the
17660  * Common Development and Distribution License (the "License").
17661  * You may not use this file except in compliance with the License.
17662  *
17663  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17664  * or http://www.opensolaris.org/os/licensing.
17665  * See the License for the specific language governing permissions
17666  * and limitations under the License.
17667  *
17668  * When distributing Covered Code, include this CDDL HEADER in each
17669  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17670  * If applicable, add the following below this CDDL HEADER, with the
17671  * fields enclosed by brackets "[]" replaced with your own identifying
17672  * information: Portions Copyright [yyyy] [name of copyright owner]
17673  *
17674  * CDDL HEADER END
17675  */
17676 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17677 /*	  All Rights Reserved  	*/
17678 
17679 
17680 /*
17681  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17682  * Use is subject to license terms.
17683  *
17684  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17685  * Copyright 2016 Joyent, Inc.
17686  */
17687 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 2
17688 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
17689 struct exit_status {
17690  short e_termination; /* Process termination status */
17691  short e_exit; /* Process exit status */
17692 };
17693 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
17694 /*
17695  * This data structure describes the utmp entries returned by
17696  * the getutent(3c) family of APIs.  It does not (necessarily)
17697  * correspond to the contents of the utmp or wtmp files.
17698  *
17699  * Applications should only interact with this subsystem via
17700  * the getutxent(3c) family of APIs, as the getutent(3c) family
17701  * are obsolete.
17702  */
17703 struct utmp {
17704  char ut_user[8]; /* User login name */
17705  char ut_id[4]; /* /etc/inittab id(usually line #) */
17706  char ut_line[12]; /* device name (console, lnxx) */
17707  short ut_pid; /* short for compat. - process id */
17708  short ut_type; /* type of entry */
17709  struct exit_status ut_exit; /* The exit status of a process */
17710      /* marked as DEAD_PROCESS. */
17711  time_t ut_time; /* time entry was made */
17712 };
17713 
17714 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
17715 /*
17716  * CDDL HEADER START
17717  *
17718  * The contents of this file are subject to the terms of the
17719  * Common Development and Distribution License (the "License").
17720  * You may not use this file except in compliance with the License.
17721  *
17722  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17723  * or http://www.opensolaris.org/os/licensing.
17724  * See the License for the specific language governing permissions
17725  * and limitations under the License.
17726  *
17727  * When distributing Covered Code, include this CDDL HEADER in each
17728  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17729  * If applicable, add the following below this CDDL HEADER, with the
17730  * fields enclosed by brackets "[]" replaced with your own identifying
17731  * information: Portions Copyright [yyyy] [name of copyright owner]
17732  *
17733  * CDDL HEADER END
17734  */
17735 /*
17736  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
17737  * Use is subject to license terms.
17738  * Copyright 2015 Nexenta Systems, Inc.
17739  */
17740 # 91 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 2
17741 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
17742 /*
17743  * CDDL HEADER START
17744  *
17745  * The contents of this file are subject to the terms of the
17746  * Common Development and Distribution License, Version 1.0 only
17747  * (the "License").  You may not use this file except in compliance
17748  * with the License.
17749  *
17750  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17751  * or http://www.opensolaris.org/os/licensing.
17752  * See the License for the specific language governing permissions
17753  * and limitations under the License.
17754  *
17755  * When distributing Covered Code, include this CDDL HEADER in each
17756  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17757  * If applicable, add the following below this CDDL HEADER, with the
17758  * fields enclosed by brackets "[]" replaced with your own identifying
17759  * information: Portions Copyright [yyyy] [name of copyright owner]
17760  *
17761  * CDDL HEADER END
17762  */
17763 /*
17764  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17765  *
17766  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
17767  * Use is subject to license terms.
17768  */
17769 # 92 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 2
17770 
17771 /*
17772  * This data structure describes the utmp *file* contents using
17773  * fixed-width data types.  It should only be used by the implementation.
17774  *
17775  * Applications should use the getutxent(3c) family of routines to interact
17776  * with this database.
17777  */
17778 
17779 struct futmp {
17780  char ut_user[8]; /* User login name */
17781  char ut_id[4]; /* /etc/inittab id */
17782  char ut_line[12]; /* device name (console, lnxx) */
17783  int16_t ut_pid; /* process id */
17784  int16_t ut_type; /* type of entry */
17785  struct {
17786   int16_t e_termination; /* Process termination status */
17787   int16_t e_exit; /* Process exit status */
17788  } ut_exit; /* The exit status of a process */
17789  time32_t ut_time; /* time entry was made */
17790 };
17791 
17792 
17793 
17794 /*	Definitions for ut_type						*/
17795 # 135 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
17796 /*	Special strings or formats used in the "ut_line" field when	*/
17797 /*	accounting for something other than a process.			*/
17798 /*	No string for the ut_line field can be more than 11 chars +	*/
17799 /*	a NULL in length.						*/
17800 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
17801 /*	Define and macro for determing if a normal user wrote the entry */
17802 /*	 and marking the utmpx entry as a normal user */
17803 
17804 
17805 
17806 
17807 
17808 extern void endutent(void);
17809 extern struct utmp *getutent(void);
17810 extern struct utmp *getutid(const struct utmp *);
17811 extern struct utmp *getutline(const struct utmp *);
17812 extern struct utmp *pututline(const struct utmp *);
17813 extern void setutent(void);
17814 extern int utmpname(const char *);
17815 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
17816 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h"
17817 /*
17818  * This data structure describes the utmpx entries returned by
17819  * the getutxent(3c) family of APIs.  It does not (necessarily)
17820  * correspond to the contents of the utmpx or wtmpx files.
17821  *
17822  * Applications should only interact with this subsystem via
17823  * the getutxent(3c) family of APIs.
17824  */
17825 struct utmpx {
17826  char ut_user[32]; /* user login name */
17827  char ut_id[4]; /* inittab id */
17828  char ut_line[32]; /* device name (console, lnxx) */
17829  pid_t ut_pid; /* process id */
17830  short ut_type; /* type of entry */
17831 
17832  struct exit_status ut_exit; /* process termination/exit status */
17833 
17834 
17835 
17836  struct timeval ut_tv; /* time entry was made */
17837  int ut_session; /* session ID, used for windowing */
17838 
17839  int pad[5]; /* reserved for future use */
17840 
17841 
17842 
17843  short ut_syslen; /* significant length of ut_host */
17844      /*   including terminating null */
17845  char ut_host[257]; /* remote host name */
17846 };
17847 
17848 
17849 
17850 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
17851 /*
17852  * CDDL HEADER START
17853  *
17854  * The contents of this file are subject to the terms of the
17855  * Common Development and Distribution License (the "License").
17856  * You may not use this file except in compliance with the License.
17857  *
17858  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17859  * or http://www.opensolaris.org/os/licensing.
17860  * See the License for the specific language governing permissions
17861  * and limitations under the License.
17862  *
17863  * When distributing Covered Code, include this CDDL HEADER in each
17864  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17865  * If applicable, add the following below this CDDL HEADER, with the
17866  * fields enclosed by brackets "[]" replaced with your own identifying
17867  * information: Portions Copyright [yyyy] [name of copyright owner]
17868  *
17869  * CDDL HEADER END
17870  */
17871 /*
17872  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
17873  * Use is subject to license terms.
17874  * Copyright 2015 Nexenta Systems, Inc.
17875  */
17876 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
17877 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
17878 /*
17879  * CDDL HEADER START
17880  *
17881  * The contents of this file are subject to the terms of the
17882  * Common Development and Distribution License, Version 1.0 only
17883  * (the "License").  You may not use this file except in compliance
17884  * with the License.
17885  *
17886  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17887  * or http://www.opensolaris.org/os/licensing.
17888  * See the License for the specific language governing permissions
17889  * and limitations under the License.
17890  *
17891  * When distributing Covered Code, include this CDDL HEADER in each
17892  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17893  * If applicable, add the following below this CDDL HEADER, with the
17894  * fields enclosed by brackets "[]" replaced with your own identifying
17895  * information: Portions Copyright [yyyy] [name of copyright owner]
17896  *
17897  * CDDL HEADER END
17898  */
17899 /*
17900  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17901  *
17902  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
17903  * Use is subject to license terms.
17904  */
17905 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
17906 
17907 /*
17908  * This data structure describes the utmp *file* contents using
17909  * fixed-width data types.  It should only be used by the implementation.
17910  *
17911  * Applications should use the getutxent(3c) family of routines to interact
17912  * with this database.
17913  */
17914 
17915 struct futmpx {
17916  char ut_user[32]; /* user login name */
17917  char ut_id[4]; /* inittab id */
17918  char ut_line[32]; /* device name (console, lnxx) */
17919  pid32_t ut_pid; /* process id */
17920  int16_t ut_type; /* type of entry */
17921  struct {
17922   int16_t e_termination; /* process termination status */
17923   int16_t e_exit; /* process exit status */
17924  } ut_exit; /* exit status of a process */
17925  struct timeval32 ut_tv; /* time entry was made */
17926  int32_t ut_session; /* session ID, user for windowing */
17927  int32_t pad[5]; /* reserved for future use */
17928  int16_t ut_syslen; /* significant length of ut_host */
17929  char ut_host[257]; /* remote host name */
17930 };
17931 
17932 
17933 
17934 /*	Define and macro for determing if a normal user wrote the entry */
17935 /*	and marking the utmpx entry as a normal user */
17936 
17937 
17938 
17939 
17940 
17941 
17942 extern void endutxent(void);
17943 extern struct utmpx *getutxent(void);
17944 extern struct utmpx *getutxid(const struct utmpx *);
17945 extern struct utmpx *getutxline(const struct utmpx *);
17946 extern struct utmpx *pututxline(const struct utmpx *);
17947 extern void setutxent(void);
17948 
17949 
17950 extern int utmpxname(const char *);
17951 extern struct utmpx *makeutx(const struct utmpx *);
17952 extern struct utmpx *modutx(const struct utmpx *);
17953 extern void getutmp(const struct utmpx *, struct utmp *);
17954 extern void getutmpx(const struct utmp *, struct utmpx *);
17955 extern void updwtmp(const char *, struct utmp *);
17956 extern void updwtmpx(const char *, struct utmpx *);
17957 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17958 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h"
17959 /*
17960  * Warning: these are shared with the admin/install consolidation.
17961  * Do not insert states between any of the currently defined states,
17962  * and any new states must be evaluated for impact on range comparisons.
17963  */
17964 # 130 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h"
17965 /* Owner, group, and mode (defined by packaging) for the config directory */
17966 
17967 
17968 
17969 
17970 /* Owner, group, and mode (defined by packaging) for the index file */
17971 
17972 
17973 
17974 
17975 /* The maximum length of the VERSION string in the pkginfo(4) file. */
17976 
17977 
17978 /*
17979  * Shortened alias names for the zones rctls.
17980  */
17981 # 157 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h"
17982 /* Default name for zone detached manifest */
17983 
17984 
17985 /*
17986  * Bit flag definitions for passing into libzonecfg functions.
17987  */
17988 
17989 
17990 /*
17991  * The integer field expresses the current values on a get.
17992  * On a put, it represents the new values if >= 0 or "don't change" if < 0.
17993  */
17994 struct zoneent {
17995  char zone_name[64]; /* name of the zone */
17996  int zone_state; /* configured | incomplete | installed */
17997  char zone_path[1024]; /* path to zone storage */
17998  uuid_t zone_uuid; /* unique ID for zone */
17999  char zone_newname[64]; /* for doing renames */
18000 };
18001 
18002 typedef struct zone_dochandle *zone_dochandle_t; /* opaque handle */
18003 
18004 typedef uint_t zone_state_t;
18005 
18006 typedef struct zone_fsopt {
18007  struct zone_fsopt *zone_fsopt_next;
18008  char zone_fsopt_opt[1024];
18009 } zone_fsopt_t;
18010 
18011 struct zone_fstab {
18012  char zone_fs_special[1024]; /* special file */
18013  char zone_fs_dir[1024]; /* mount point */
18014  char zone_fs_type[16]; /* e.g. ufs */
18015  zone_fsopt_t *zone_fs_options; /* mount options */
18016  char zone_fs_raw[1024]; /* device to fsck */
18017 };
18018 
18019 struct zone_nwiftab {
18020  char zone_nwif_address[46]; /* shared-ip only */
18021  char zone_nwif_allowed_address[46]; /* excl-ip only */
18022  char zone_nwif_physical[32];
18023  char zone_nwif_defrouter[46];
18024 };
18025 
18026 struct zone_devtab {
18027  char zone_dev_match[1024];
18028 };
18029 
18030 struct zone_rctlvaltab {
18031  char zone_rctlval_priv[256];
18032  char zone_rctlval_limit[256];
18033  char zone_rctlval_action[256];
18034  struct zone_rctlvaltab *zone_rctlval_next;
18035 };
18036 
18037 struct zone_rctltab {
18038  char zone_rctl_name[256];
18039  struct zone_rctlvaltab *zone_rctl_valptr;
18040 };
18041 
18042 struct zone_attrtab {
18043  char zone_attr_name[256];
18044  char zone_attr_type[256];
18045  char zone_attr_value[2 * 1024];
18046 };
18047 
18048 struct zone_dstab {
18049  char zone_dataset_name[256];
18050 };
18051 
18052 struct zone_psettab {
18053  char zone_ncpu_min[256];
18054  char zone_ncpu_max[256];
18055  char zone_importance[256];
18056 };
18057 
18058 struct zone_mcaptab {
18059  char zone_physmem_cap[256];
18060 };
18061 
18062 struct zone_pkgtab {
18063  char zone_pkg_name[256];
18064  char zone_pkg_version[256];
18065 };
18066 
18067 struct zone_devpermtab {
18068  char zone_devperm_name[1024];
18069  uid_t zone_devperm_uid;
18070  gid_t zone_devperm_gid;
18071  mode_t zone_devperm_mode;
18072  char *zone_devperm_acl;
18073 };
18074 
18075 struct zone_admintab {
18076  char zone_admin_user[(sizeof (((struct utmpx *)0)->ut_user))];
18077  char zone_admin_auths[4096];
18078 };
18079 
18080 typedef struct zone_userauths {
18081  char user[(sizeof (((struct utmpx *)0)->ut_user))];
18082  char zonename[64];
18083  struct zone_userauths *next;
18084 } zone_userauths_t;
18085 
18086 typedef struct {
18087  uu_avl_node_t zpe_entry;
18088  char *zpe_name;
18089  char *zpe_vers;
18090 } zone_pkg_entry_t;
18091 
18092 typedef enum zone_iptype {
18093  ZS_SHARED,
18094  ZS_EXCLUSIVE
18095 } zone_iptype_t;
18096 
18097 /*
18098  * Basic configuration management routines.
18099  */
18100 extern zone_dochandle_t zonecfg_init_handle(void);
18101 extern int zonecfg_get_handle(const char *, zone_dochandle_t);
18102 extern int zonecfg_get_snapshot_handle(const char *, zone_dochandle_t);
18103 extern int zonecfg_get_template_handle(const char *, const char *,
18104     zone_dochandle_t);
18105 extern int zonecfg_get_xml_handle(const char *, zone_dochandle_t);
18106 extern int zonecfg_check_handle(zone_dochandle_t);
18107 extern void zonecfg_fini_handle(zone_dochandle_t);
18108 extern int zonecfg_destroy(const char *, boolean_t);
18109 extern int zonecfg_destroy_snapshot(const char *);
18110 extern int zonecfg_save(zone_dochandle_t);
18111 extern int zonecfg_create_snapshot(const char *);
18112 extern char *zonecfg_strerror(int);
18113 extern int zonecfg_access(const char *, int);
18114 extern void zonecfg_set_root(const char *);
18115 extern const char *zonecfg_get_root(void);
18116 extern boolean_t zonecfg_in_alt_root(void);
18117 extern int zonecfg_num_resources(zone_dochandle_t, char *);
18118 extern int zonecfg_del_all_resources(zone_dochandle_t, char *);
18119 extern boolean_t zonecfg_valid_ncpus(char *, char *);
18120 extern boolean_t zonecfg_valid_importance(char *);
18121 extern int zonecfg_str_to_bytes(char *, uint64_t *);
18122 extern boolean_t zonecfg_valid_memlimit(char *, uint64_t *);
18123 extern boolean_t zonecfg_valid_alias_limit(char *, char *, uint64_t *);
18124 
18125 /*
18126  * Zone name, path to zone directory, autoboot setting, pool, boot
18127  * arguments, and scheduling-class.
18128  */
18129 extern int zonecfg_validate_zonename(const char *);
18130 extern int zonecfg_get_name(zone_dochandle_t, char *, size_t);
18131 extern int zonecfg_set_name(zone_dochandle_t, char *);
18132 extern int zonecfg_get_zonepath(zone_dochandle_t, char *, size_t);
18133 extern int zonecfg_set_zonepath(zone_dochandle_t, char *);
18134 extern int zonecfg_get_autoboot(zone_dochandle_t, boolean_t *);
18135 extern int zonecfg_set_autoboot(zone_dochandle_t, boolean_t);
18136 extern int zonecfg_get_iptype(zone_dochandle_t, zone_iptype_t *);
18137 extern int zonecfg_set_iptype(zone_dochandle_t, zone_iptype_t);
18138 extern int zonecfg_get_pool(zone_dochandle_t, char *, size_t);
18139 extern int zonecfg_set_pool(zone_dochandle_t, char *);
18140 extern int zonecfg_get_bootargs(zone_dochandle_t, char *, size_t);
18141 extern int zonecfg_set_bootargs(zone_dochandle_t, char *);
18142 extern int zonecfg_get_sched_class(zone_dochandle_t, char *, size_t);
18143 extern int zonecfg_set_sched(zone_dochandle_t, char *);
18144 extern int zonecfg_get_dflt_sched_class(zone_dochandle_t, char *, int);
18145 
18146 /*
18147  * Set/retrieve the brand for the zone
18148  */
18149 extern int zonecfg_get_brand(zone_dochandle_t, char *, size_t);
18150 extern int zonecfg_set_brand(zone_dochandle_t, char *);
18151 
18152 /*
18153  * Filesystem configuration.
18154  */
18155 extern int zonecfg_add_filesystem(zone_dochandle_t, struct zone_fstab *);
18156 extern int zonecfg_delete_filesystem(zone_dochandle_t,
18157     struct zone_fstab *);
18158 extern int zonecfg_modify_filesystem(zone_dochandle_t,
18159     struct zone_fstab *, struct zone_fstab *);
18160 extern int zonecfg_lookup_filesystem(zone_dochandle_t,
18161     struct zone_fstab *);
18162 extern int zonecfg_add_fs_option(struct zone_fstab *, char *);
18163 extern int zonecfg_remove_fs_option(struct zone_fstab *, char *);
18164 extern void zonecfg_free_fs_option_list(zone_fsopt_t *);
18165 extern int zonecfg_find_mounts(char *, int(*)(const struct mnttab *,
18166     void *), void *);
18167 
18168 /*
18169  * Network interface configuration.
18170  */
18171 extern int zonecfg_add_nwif(zone_dochandle_t, struct zone_nwiftab *);
18172 extern int zonecfg_delete_nwif(zone_dochandle_t, struct zone_nwiftab *);
18173 extern int zonecfg_modify_nwif(zone_dochandle_t, struct zone_nwiftab *,
18174     struct zone_nwiftab *);
18175 extern int zonecfg_lookup_nwif(zone_dochandle_t, struct zone_nwiftab *);
18176 
18177 /*
18178  * Hostid emulation configuration.
18179  */
18180 extern int zonecfg_get_hostid(zone_dochandle_t, char *, size_t);
18181 extern int zonecfg_set_hostid(zone_dochandle_t, const char *);
18182 
18183 /*
18184  * Allowed FS mounts configuration.
18185  */
18186 extern int zonecfg_get_fs_allowed(zone_dochandle_t, char *, size_t);
18187 extern int zonecfg_set_fs_allowed(zone_dochandle_t, const char *);
18188 
18189 /*
18190  * Device configuration and rule matching.
18191  */
18192 extern int zonecfg_add_dev(zone_dochandle_t, struct zone_devtab *);
18193 extern int zonecfg_delete_dev(zone_dochandle_t, struct zone_devtab *);
18194 extern int zonecfg_modify_dev(zone_dochandle_t, struct zone_devtab *,
18195     struct zone_devtab *);
18196 extern int zonecfg_lookup_dev(zone_dochandle_t, struct zone_devtab *);
18197 
18198 /*
18199  * Resource control configuration.
18200  */
18201 extern int zonecfg_add_rctl(zone_dochandle_t, struct zone_rctltab *);
18202 extern int zonecfg_delete_rctl(zone_dochandle_t, struct zone_rctltab *);
18203 extern int zonecfg_modify_rctl(zone_dochandle_t, struct zone_rctltab *,
18204     struct zone_rctltab *);
18205 extern int zonecfg_lookup_rctl(zone_dochandle_t, struct zone_rctltab *);
18206 extern int zonecfg_add_rctl_value(struct zone_rctltab *,
18207     struct zone_rctlvaltab *);
18208 extern int zonecfg_remove_rctl_value(struct zone_rctltab *,
18209     struct zone_rctlvaltab *);
18210 extern void zonecfg_free_rctl_value_list(struct zone_rctlvaltab *);
18211 extern boolean_t zonecfg_aliased_rctl_ok(zone_dochandle_t, char *);
18212 extern int zonecfg_set_aliased_rctl(zone_dochandle_t, char *, uint64_t);
18213 extern int zonecfg_get_aliased_rctl(zone_dochandle_t, char *, uint64_t *);
18214 extern int zonecfg_rm_aliased_rctl(zone_dochandle_t, char *);
18215 extern int zonecfg_apply_rctls(char *, zone_dochandle_t);
18216 
18217 /*
18218  * Generic attribute configuration and type/value extraction.
18219  */
18220 extern int zonecfg_add_attr(zone_dochandle_t, struct zone_attrtab *);
18221 extern int zonecfg_delete_attr(zone_dochandle_t, struct zone_attrtab *);
18222 extern int zonecfg_modify_attr(zone_dochandle_t, struct zone_attrtab *,
18223     struct zone_attrtab *);
18224 extern int zonecfg_lookup_attr(zone_dochandle_t, struct zone_attrtab *);
18225 extern int zonecfg_get_attr_boolean(const struct zone_attrtab *,
18226     boolean_t *);
18227 extern int zonecfg_get_attr_int(const struct zone_attrtab *, int64_t *);
18228 extern int zonecfg_get_attr_string(const struct zone_attrtab *, char *,
18229     size_t);
18230 extern int zonecfg_get_attr_uint(const struct zone_attrtab *, uint64_t *);
18231 
18232 /*
18233  * ZFS configuration.
18234  */
18235 extern int zonecfg_add_ds(zone_dochandle_t, struct zone_dstab *);
18236 extern int zonecfg_delete_ds(zone_dochandle_t, struct zone_dstab *);
18237 extern int zonecfg_modify_ds(zone_dochandle_t, struct zone_dstab *,
18238     struct zone_dstab *);
18239 extern int zonecfg_lookup_ds(zone_dochandle_t, struct zone_dstab *);
18240 
18241 /*
18242  * cpu-set configuration.
18243  */
18244 extern int zonecfg_add_pset(zone_dochandle_t, struct zone_psettab *);
18245 extern int zonecfg_delete_pset(zone_dochandle_t);
18246 extern int zonecfg_modify_pset(zone_dochandle_t, struct zone_psettab *);
18247 extern int zonecfg_lookup_pset(zone_dochandle_t, struct zone_psettab *);
18248 
18249 /*
18250  * mem-cap configuration.
18251  */
18252 extern int zonecfg_delete_mcap(zone_dochandle_t);
18253 extern int zonecfg_modify_mcap(zone_dochandle_t, struct zone_mcaptab *);
18254 extern int zonecfg_lookup_mcap(zone_dochandle_t, struct zone_mcaptab *);
18255 
18256 /*
18257  * Temporary pool support functions.
18258  */
18259 extern int zonecfg_destroy_tmp_pool(char *, char *, int);
18260 extern int zonecfg_bind_tmp_pool(zone_dochandle_t, zoneid_t, char *, int);
18261 extern int zonecfg_bind_pool(zone_dochandle_t, zoneid_t, char *, int);
18262 extern boolean_t zonecfg_warn_poold(zone_dochandle_t);
18263 extern int zonecfg_get_poolname(zone_dochandle_t, char *, char *, size_t);
18264 
18265 /*
18266  * Miscellaneous utility functions.
18267  */
18268 extern int zonecfg_enable_rcapd(char *, int);
18269 
18270 /*
18271  * attach/detach support.
18272  */
18273 extern int zonecfg_get_attach_handle(const char *, const char *,
18274     const char *, boolean_t, zone_dochandle_t);
18275 extern int zonecfg_attach_manifest(int, zone_dochandle_t,
18276     zone_dochandle_t);
18277 extern int zonecfg_detach_save(zone_dochandle_t, uint_t);
18278 extern boolean_t zonecfg_detached(const char *);
18279 extern void zonecfg_rm_detached(zone_dochandle_t, boolean_t forced);
18280 extern int zonecfg_dev_manifest(zone_dochandle_t);
18281 extern int zonecfg_devperms_apply(zone_dochandle_t, const char *,
18282     uid_t, gid_t, mode_t, const char *);
18283 extern void zonecfg_set_swinv(zone_dochandle_t);
18284 extern int zonecfg_add_pkg(zone_dochandle_t, char *, char *);
18285 
18286 /*
18287  * External zone verification support.
18288  */
18289 extern int zonecfg_verify_save(zone_dochandle_t, char *);
18290 
18291 /*
18292  * '*ent' iterator routines.
18293  */
18294 extern int zonecfg_setfsent(zone_dochandle_t);
18295 extern int zonecfg_getfsent(zone_dochandle_t, struct zone_fstab *);
18296 extern int zonecfg_endfsent(zone_dochandle_t);
18297 extern int zonecfg_setnwifent(zone_dochandle_t);
18298 extern int zonecfg_getnwifent(zone_dochandle_t, struct zone_nwiftab *);
18299 extern int zonecfg_endnwifent(zone_dochandle_t);
18300 extern int zonecfg_setdevent(zone_dochandle_t);
18301 extern int zonecfg_getdevent(zone_dochandle_t, struct zone_devtab *);
18302 extern int zonecfg_enddevent(zone_dochandle_t);
18303 extern int zonecfg_setattrent(zone_dochandle_t);
18304 extern int zonecfg_getattrent(zone_dochandle_t, struct zone_attrtab *);
18305 extern int zonecfg_endattrent(zone_dochandle_t);
18306 extern int zonecfg_setrctlent(zone_dochandle_t);
18307 extern int zonecfg_getrctlent(zone_dochandle_t, struct zone_rctltab *);
18308 extern int zonecfg_endrctlent(zone_dochandle_t);
18309 extern int zonecfg_setdsent(zone_dochandle_t);
18310 extern int zonecfg_getdsent(zone_dochandle_t, struct zone_dstab *);
18311 extern int zonecfg_enddsent(zone_dochandle_t);
18312 extern int zonecfg_getpsetent(zone_dochandle_t, struct zone_psettab *);
18313 extern int zonecfg_getmcapent(zone_dochandle_t, struct zone_mcaptab *);
18314 extern int zonecfg_getpkgdata(zone_dochandle_t, uu_avl_pool_t *,
18315     uu_avl_t *);
18316 extern int zonecfg_setdevperment(zone_dochandle_t);
18317 extern int zonecfg_getdevperment(zone_dochandle_t,
18318     struct zone_devpermtab *);
18319 extern int zonecfg_enddevperment(zone_dochandle_t);
18320 extern int zonecfg_setadminent(zone_dochandle_t);
18321 extern int zonecfg_getadminent(zone_dochandle_t, struct zone_admintab *);
18322 extern int zonecfg_endadminent(zone_dochandle_t);
18323 
18324 /*
18325  * Privilege-related functions.
18326  */
18327 extern int zonecfg_default_privset(priv_set_t *, const char *);
18328 extern int zonecfg_get_privset(zone_dochandle_t, priv_set_t *,
18329     char **);
18330 extern int zonecfg_get_limitpriv(zone_dochandle_t, char **);
18331 extern int zonecfg_set_limitpriv(zone_dochandle_t, char *);
18332 
18333 /*
18334  * Higher-level routines.
18335  */
18336 extern int zone_get_brand(char *, char *, size_t);
18337 extern int zone_get_rootpath(char *, char *, size_t);
18338 extern int zone_get_devroot(char *, char *, size_t);
18339 extern int zone_get_zonepath(char *, char *, size_t);
18340 extern int zone_get_state(char *, zone_state_t *);
18341 extern int zone_set_state(char *, zone_state_t);
18342 extern char *zone_state_str(zone_state_t);
18343 extern int zonecfg_get_name_by_uuid(const uuid_t, char *, size_t);
18344 extern int zonecfg_get_uuid(const char *, uuid_t);
18345 extern int zonecfg_default_brand(char *, size_t);
18346 
18347 /*
18348  * Iterator for configured zones.
18349  */
18350 extern FILE *setzoneent(void);
18351 extern char *getzoneent(FILE *);
18352 extern struct zoneent *getzoneent_private(FILE *);
18353 extern void endzoneent(FILE *);
18354 
18355 /*
18356  * File-system-related convenience functions.
18357  */
18358 extern boolean_t zonecfg_valid_fs_type(const char *);
18359 
18360 /*
18361  * Network-related convenience functions.
18362  */
18363 extern boolean_t zonecfg_same_net_address(char *, char *);
18364 extern int zonecfg_valid_net_address(char *, struct lifreq *);
18365 extern boolean_t zonecfg_ifname_exists(sa_family_t, char *);
18366 
18367 /*
18368  * Rctl-related common functions.
18369  */
18370 extern boolean_t zonecfg_is_rctl(const char *);
18371 extern boolean_t zonecfg_valid_rctlname(const char *);
18372 extern boolean_t zonecfg_valid_rctlblk(const rctlblk_t *);
18373 extern boolean_t zonecfg_valid_rctl(const char *, const rctlblk_t *);
18374 extern int zonecfg_construct_rctlblk(const struct zone_rctlvaltab *,
18375     rctlblk_t *);
18376 
18377 /*
18378  * Live Upgrade support functions.  Shared between ON and install gate.
18379  */
18380 extern FILE *zonecfg_open_scratch(const char *, boolean_t);
18381 extern int zonecfg_lock_scratch(FILE *);
18382 extern void zonecfg_close_scratch(FILE *);
18383 extern int zonecfg_get_scratch(FILE *, char *, size_t, char *, size_t, char *,
18384     size_t);
18385 extern int zonecfg_find_scratch(FILE *, const char *, const char *, char *,
18386     size_t);
18387 extern int zonecfg_reverse_scratch(FILE *, const char *, char *, size_t,
18388     char *, size_t);
18389 extern int zonecfg_add_scratch(FILE *, const char *, const char *,
18390     const char *);
18391 extern int zonecfg_delete_scratch(FILE *, const char *);
18392 extern boolean_t zonecfg_is_scratch(const char *);
18393 
18394 /*
18395  * zoneadmd support functions.  Shared between zoneadm and brand hook code.
18396  */
18397 extern void zonecfg_init_lock_file(const char *, char **);
18398 extern void zonecfg_release_lock_file(const char *, int);
18399 extern int zonecfg_grab_lock_file(const char *, int *);
18400 extern boolean_t zonecfg_lock_file_held(int *);
18401 extern int zonecfg_ping_zoneadmd(const char *);
18402 extern int zonecfg_call_zoneadmd(const char *, zone_cmd_arg_t *, char *,
18403     boolean_t);
18404 extern int zonecfg_insert_userauths(zone_dochandle_t, char *, char *);
18405 extern int zonecfg_remove_userauths(zone_dochandle_t, char *, char *,
18406     boolean_t);
18407 extern int zonecfg_add_admin(zone_dochandle_t, struct zone_admintab *,
18408     char *);
18409 extern int zonecfg_delete_admin(zone_dochandle_t,
18410     struct zone_admintab *, char *);
18411 extern int zonecfg_modify_admin(zone_dochandle_t, struct zone_admintab *,
18412     struct zone_admintab *, char *);
18413 extern int zonecfg_delete_admins(zone_dochandle_t, char *);
18414 extern int zonecfg_lookup_admin(zone_dochandle_t, struct zone_admintab *);
18415 extern int zonecfg_authorize_users(zone_dochandle_t, char *);
18416 extern int zonecfg_update_userauths(zone_dochandle_t, char *);
18417 extern int zonecfg_deauthorize_user(zone_dochandle_t, char *, char *);
18418 extern int zonecfg_deauthorize_users(zone_dochandle_t, char *);
18419 extern boolean_t zonecfg_valid_auths(const char *, const char *);
18420 # 40 "../common/zones_lofs.c" 2
18421 # 1 "../common/zones_strings.h" 1
18422 /*
18423  * CDDL HEADER START
18424  *
18425  * The contents of this file are subject to the terms of the
18426  * Common Development and Distribution License (the "License").
18427  * You may not use this file except in compliance with the License.
18428  *
18429  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18430  * or http://www.opensolaris.org/os/licensing.
18431  * See the License for the specific language governing permissions
18432  * and limitations under the License.
18433  *
18434  * When distributing Covered Code, include this CDDL HEADER in each
18435  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18436  * If applicable, add the following below this CDDL HEADER, with the
18437  * fields enclosed by brackets "[]" replaced with your own identifying
18438  * information: Portions Copyright [yyyy] [name of copyright owner]
18439  *
18440  * CDDL HEADER END
18441  */
18442 /*
18443  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
18444  */
18445 
18446 
18447 
18448 
18449 
18450 
18451 
18452 /*
18453  * Module:	zones_strings.h
18454  * Group:	libinstzones
18455  * Description:	This header contains strings used in libinstzones
18456  *		library modules.
18457  */
18458 
18459 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
18460 /*
18461  * CDDL HEADER START
18462  *
18463  * The contents of this file are subject to the terms of the
18464  * Common Development and Distribution License (the "License").
18465  * You may not use this file except in compliance with the License.
18466  *
18467  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18468  * or http://www.opensolaris.org/os/licensing.
18469  * See the License for the specific language governing permissions
18470  * and limitations under the License.
18471  *
18472  * When distributing Covered Code, include this CDDL HEADER in each
18473  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18474  * If applicable, add the following below this CDDL HEADER, with the
18475  * fields enclosed by brackets "[]" replaced with your own identifying
18476  * information: Portions Copyright [yyyy] [name of copyright owner]
18477  *
18478  * CDDL HEADER END
18479  */
18480 /*
18481  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18482  *
18483  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18484  * Use is subject to license terms.
18485  */
18486 # 39 "../common/zones_strings.h" 2
18487 
18488 /*
18489  * C++ prefix
18490  */
18491 
18492 
18493 
18494 
18495 
18496 /* constants */
18497 # 58 "../common/zones_strings.h"
18498 /*
18499  * message strings
18500  */
18501 
18502 /* BEGIN CSTYLED */
18503 
18504 /*
18505  * I18N: these messages are debugging message and are only displayed
18506  * when special debugging output has been enabled - these messages
18507  * will never be displayed during normal product usage
18508  */
18509 # 121 "../common/zones_strings.h"
18510 /*
18511  * I18N: these messages are error messages that can be displayed
18512  * during the normal usage of the products
18513  */
18514 # 189 "../common/zones_strings.h"
18515 /*
18516  * I18N: these are messages that can be displayed during the normal
18517  * usage of the products
18518  */
18519 
18520 
18521 
18522 
18523 
18524 
18525 
18526 /*
18527  * I18N: these messages are warning messages that can be displayed
18528  * during the normal usage of the products
18529  */
18530 
18531 
18532 
18533 
18534 /* END CSTYLED */
18535 
18536 /*
18537  * C++ postfix
18538  */
18539 # 41 "../common/zones_lofs.c" 2
18540 # 1 "../common/instzones_lib.h" 1
18541 /*
18542  * CDDL HEADER START
18543  *
18544  * The contents of this file are subject to the terms of the
18545  * Common Development and Distribution License (the "License").
18546  * You may not use this file except in compliance with the License.
18547  *
18548  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18549  * or http://www.opensolaris.org/os/licensing.
18550  * See the License for the specific language governing permissions
18551  * and limitations under the License.
18552  *
18553  * When distributing Covered Code, include this CDDL HEADER in each
18554  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18555  * If applicable, add the following below this CDDL HEADER, with the
18556  * fields enclosed by brackets "[]" replaced with your own identifying
18557  * information: Portions Copyright [yyyy] [name of copyright owner]
18558  *
18559  * CDDL HEADER END
18560  */
18561 /*
18562  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
18563  */
18564 
18565 
18566 
18567 
18568 
18569 
18570 
18571 /*
18572  * Module:	instzones_lib.h
18573  * Group:	libinstzones
18574  * Description:	This module contains the libinstzones internal data structures,
18575  *		constants, and function prototypes. This include should not be
18576  *		needed by any external code (consumers of this library).
18577  */
18578 
18579 /*
18580  * required includes
18581  */
18582 
18583 /* System includes */
18584 
18585 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 1
18586 /*
18587  * CDDL HEADER START
18588  *
18589  * The contents of this file are subject to the terms of the
18590  * Common Development and Distribution License (the "License").
18591  * You may not use this file except in compliance with the License.
18592  *
18593  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18594  * or http://www.opensolaris.org/os/licensing.
18595  * See the License for the specific language governing permissions
18596  * and limitations under the License.
18597  *
18598  * When distributing Covered Code, include this CDDL HEADER in each
18599  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18600  * If applicable, add the following below this CDDL HEADER, with the
18601  * fields enclosed by brackets "[]" replaced with your own identifying
18602  * information: Portions Copyright [yyyy] [name of copyright owner]
18603  *
18604  * CDDL HEADER END
18605  */
18606 /*
18607  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18608  * Use is subject to license terms.
18609  */
18610 # 46 "../common/instzones_lib.h" 2
18611 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 1
18612 /*
18613  * CDDL HEADER START
18614  *
18615  * The contents of this file are subject to the terms of the
18616  * Common Development and Distribution License (the "License").
18617  * You may not use this file except in compliance with the License.
18618  *
18619  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18620  * or http://www.opensolaris.org/os/licensing.
18621  * See the License for the specific language governing permissions
18622  * and limitations under the License.
18623  *
18624  * When distributing Covered Code, include this CDDL HEADER in each
18625  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18626  * If applicable, add the following below this CDDL HEADER, with the
18627  * fields enclosed by brackets "[]" replaced with your own identifying
18628  * information: Portions Copyright [yyyy] [name of copyright owner]
18629  *
18630  * CDDL HEADER END
18631  */
18632 
18633 /*
18634  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
18635  */
18636 # 47 "../common/instzones_lib.h" 2
18637 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libcontract.h" 1
18638 /*
18639  * CDDL HEADER START
18640  *
18641  * The contents of this file are subject to the terms of the
18642  * Common Development and Distribution License (the "License").
18643  * You may not use this file except in compliance with the License.
18644  *
18645  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18646  * or http://www.opensolaris.org/os/licensing.
18647  * See the License for the specific language governing permissions
18648  * and limitations under the License.
18649  *
18650  * When distributing Covered Code, include this CDDL HEADER in each
18651  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18652  * If applicable, add the following below this CDDL HEADER, with the
18653  * fields enclosed by brackets "[]" replaced with your own identifying
18654  * information: Portions Copyright [yyyy] [name of copyright owner]
18655  *
18656  * CDDL HEADER END
18657  */
18658 /*
18659  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18660  * Use is subject to license terms.
18661  */
18662 
18663 
18664 
18665 
18666 #pragma ident "%Z%%M%	%I%	%E% SMI"
18667 
18668 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18669 /*
18670  * CDDL HEADER START
18671  *
18672  * The contents of this file are subject to the terms of the
18673  * Common Development and Distribution License (the "License").
18674  * You may not use this file except in compliance with the License.
18675  *
18676  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18677  * or http://www.opensolaris.org/os/licensing.
18678  * See the License for the specific language governing permissions
18679  * and limitations under the License.
18680  *
18681  * When distributing Covered Code, include this CDDL HEADER in each
18682  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18683  * If applicable, add the following below this CDDL HEADER, with the
18684  * fields enclosed by brackets "[]" replaced with your own identifying
18685  * information: Portions Copyright [yyyy] [name of copyright owner]
18686  *
18687  * CDDL HEADER END
18688  */
18689 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18690 /*	  All Rights Reserved  	*/
18691 
18692 
18693 /*
18694  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18695  * Use is subject to license terms.
18696  *
18697  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18698  * Copyright 2016 Joyent, Inc.
18699  */
18700 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libcontract.h" 2
18701 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/contract.h" 1
18702 /*
18703  * CDDL HEADER START
18704  *
18705  * The contents of this file are subject to the terms of the
18706  * Common Development and Distribution License (the "License").
18707  * You may not use this file except in compliance with the License.
18708  *
18709  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18710  * or http://www.opensolaris.org/os/licensing.
18711  * See the License for the specific language governing permissions
18712  * and limitations under the License.
18713  *
18714  * When distributing Covered Code, include this CDDL HEADER in each
18715  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18716  * If applicable, add the following below this CDDL HEADER, with the
18717  * fields enclosed by brackets "[]" replaced with your own identifying
18718  * information: Portions Copyright [yyyy] [name of copyright owner]
18719  *
18720  * CDDL HEADER END
18721  */
18722 /*
18723  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18724  * Use is subject to license terms.
18725  */
18726 
18727 
18728 
18729 
18730 #pragma ident "%Z%%M%	%I%	%E% SMI"
18731 
18732 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18733 /*
18734  * CDDL HEADER START
18735  *
18736  * The contents of this file are subject to the terms of the
18737  * Common Development and Distribution License (the "License").
18738  * You may not use this file except in compliance with the License.
18739  *
18740  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18741  * or http://www.opensolaris.org/os/licensing.
18742  * See the License for the specific language governing permissions
18743  * and limitations under the License.
18744  *
18745  * When distributing Covered Code, include this CDDL HEADER in each
18746  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18747  * If applicable, add the following below this CDDL HEADER, with the
18748  * fields enclosed by brackets "[]" replaced with your own identifying
18749  * information: Portions Copyright [yyyy] [name of copyright owner]
18750  *
18751  * CDDL HEADER END
18752  */
18753 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18754 /*	  All Rights Reserved  	*/
18755 
18756 
18757 /*
18758  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18759  * Use is subject to license terms.
18760  *
18761  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18762  * Copyright 2016 Joyent, Inc.
18763  */
18764 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/contract.h" 2
18765 
18766 
18767 
18768 
18769 
18770 typedef uint64_t ctevid_t;
18771 
18772 /*
18773  * Contract parameter maximum size, in bytes
18774  */
18775 
18776 
18777 /*
18778  * Common event types
18779  */
18780 
18781 
18782 /*
18783  * Level of status detail requested
18784  */
18785 
18786 
18787 
18788 
18789 /*
18790  * Values for ctev_flags.
18791  */
18792 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/contract.h"
18793 typedef enum ctstate {
18794  CTS_OWNED, /* contract is owned by a process */
18795  CTS_INHERITED, /* contract has been inherited by its parent */
18796  CTS_ORPHAN, /* contract has no parent */
18797  CTS_DEAD /* contract has been destroyed */
18798 } ctstate_t;
18799 
18800 typedef enum ct_typeid {
18801  CTT_PROCESS, /* process contract */
18802  CTT_DEVICE, /* device contract */
18803  CTT_MAXTYPE
18804 } ct_typeid_t;
18805 
18806 typedef struct ct_event {
18807  ctid_t ctev_id;
18808  uint32_t ctev_pad1;
18809  ctevid_t ctev_evid;
18810  ct_typeid_t ctev_cttype;
18811  uint32_t ctev_flags;
18812  uint32_t ctev_type;
18813  uint32_t ctev_nbytes;
18814  uint32_t ctev_goffset;
18815  uint32_t ctev_pad2;
18816  char *ctev_buffer;
18817 } ct_event_t;
18818 
18819 typedef struct ct_status {
18820  ctid_t ctst_id;
18821  zoneid_t ctst_zoneid;
18822  ct_typeid_t ctst_type;
18823  pid_t ctst_holder;
18824  ctstate_t ctst_state;
18825  int ctst_nevents;
18826  int ctst_ntime;
18827  int ctst_qtime;
18828  uint64_t ctst_nevid;
18829  uint_t ctst_detail;
18830  size_t ctst_nbytes;
18831  uint_t ctst_critical;
18832  uint_t ctst_informative;
18833  uint64_t ctst_cookie;
18834  char *ctst_buffer;
18835 } ct_status_t;
18836 
18837 typedef struct ct_param {
18838  uint32_t ctpm_id;
18839  uint32_t ctpm_size;
18840  void *ctpm_value;
18841 } ct_param_t;
18842 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libcontract.h" 2
18843 
18844 
18845 
18846 
18847 
18848 typedef void *ct_stathdl_t;
18849 typedef void *ct_evthdl_t;
18850 
18851 /*
18852  * Common routines
18853  */
18854 extern int ct_tmpl_activate(int);
18855 extern int ct_tmpl_clear(int);
18856 extern int ct_tmpl_create(int, ctid_t *);
18857 extern int ct_tmpl_set_cookie(int, uint64_t);
18858 extern int ct_tmpl_get_cookie(int, uint64_t *);
18859 extern int ct_tmpl_set_critical(int, uint_t);
18860 extern int ct_tmpl_get_critical(int, uint_t *);
18861 extern int ct_tmpl_set_informative(int, uint_t);
18862 extern int ct_tmpl_get_informative(int, uint_t *);
18863 
18864 extern int ct_ctl_adopt(int);
18865 extern int ct_ctl_abandon(int);
18866 extern int ct_ctl_ack(int, ctevid_t);
18867 extern int ct_ctl_nack(int, ctevid_t);
18868 extern int ct_ctl_qack(int, ctevid_t);
18869 extern int ct_ctl_newct(int, ctevid_t, int);
18870 
18871 extern int ct_status_read(int, int, ct_stathdl_t *);
18872 extern void ct_status_free(ct_stathdl_t);
18873 
18874 extern ctid_t ct_status_get_id(ct_stathdl_t);
18875 extern zoneid_t ct_status_get_zoneid(ct_stathdl_t);
18876 extern const char *ct_status_get_type(ct_stathdl_t);
18877 extern id_t ct_status_get_holder(ct_stathdl_t);
18878 extern ctstate_t ct_status_get_state(ct_stathdl_t);
18879 extern int ct_status_get_nevents(ct_stathdl_t);
18880 extern int ct_status_get_ntime(ct_stathdl_t);
18881 extern int ct_status_get_qtime(ct_stathdl_t);
18882 extern ctevid_t ct_status_get_nevid(ct_stathdl_t);
18883 extern uint_t ct_status_get_informative(ct_stathdl_t);
18884 extern uint_t ct_status_get_critical(ct_stathdl_t);
18885 extern uint64_t ct_status_get_cookie(ct_stathdl_t);
18886 
18887 extern int ct_event_read(int, ct_evthdl_t *);
18888 extern int ct_event_read_critical(int, ct_evthdl_t *);
18889 extern int ct_event_reset(int);
18890 extern int ct_event_reliable(int);
18891 extern void ct_event_free(ct_evthdl_t);
18892 
18893 extern uint_t ct_event_get_flags(ct_evthdl_t);
18894 extern ctid_t ct_event_get_ctid(ct_evthdl_t);
18895 extern ctevid_t ct_event_get_evid(ct_evthdl_t);
18896 extern uint_t ct_event_get_type(ct_evthdl_t);
18897 extern int ct_event_get_nevid(ct_evthdl_t, ctevid_t *);
18898 extern int ct_event_get_newct(ct_evthdl_t, ctid_t *);
18899 
18900 /*
18901  * Process contract routines
18902  */
18903 extern int ct_pr_tmpl_set_transfer(int, ctid_t);
18904 extern int ct_pr_tmpl_set_fatal(int, uint_t);
18905 extern int ct_pr_tmpl_set_param(int, uint_t);
18906 extern int ct_pr_tmpl_set_svc_fmri(int, const char *);
18907 extern int ct_pr_tmpl_set_svc_aux(int, const char *);
18908 
18909 extern int ct_pr_tmpl_get_transfer(int, ctid_t *);
18910 extern int ct_pr_tmpl_get_fatal(int, uint_t *);
18911 extern int ct_pr_tmpl_get_param(int, uint_t *);
18912 extern int ct_pr_tmpl_get_svc_fmri(int, char *, size_t);
18913 extern int ct_pr_tmpl_get_svc_aux(int, char *, size_t);
18914 
18915 extern int ct_pr_event_get_pid(ct_evthdl_t, pid_t *);
18916 extern int ct_pr_event_get_ppid(ct_evthdl_t, pid_t *);
18917 extern int ct_pr_event_get_signal(ct_evthdl_t, int *);
18918 extern int ct_pr_event_get_sender(ct_evthdl_t, pid_t *);
18919 extern int ct_pr_event_get_senderct(ct_evthdl_t, ctid_t *);
18920 extern int ct_pr_event_get_exitstatus(ct_evthdl_t, int *);
18921 extern int ct_pr_event_get_pcorefile(ct_evthdl_t, const char **);
18922 extern int ct_pr_event_get_gcorefile(ct_evthdl_t, const char **);
18923 extern int ct_pr_event_get_zcorefile(ct_evthdl_t, const char **);
18924 
18925 extern int ct_pr_status_get_param(ct_stathdl_t, uint_t *);
18926 extern int ct_pr_status_get_fatal(ct_stathdl_t, uint_t *);
18927 extern int ct_pr_status_get_members(ct_stathdl_t, pid_t **, uint_t *);
18928 extern int ct_pr_status_get_contracts(ct_stathdl_t, ctid_t **, uint_t *);
18929 extern int ct_pr_status_get_svc_fmri(ct_stathdl_t, char **);
18930 extern int ct_pr_status_get_svc_aux(ct_stathdl_t, char **);
18931 extern int ct_pr_status_get_svc_ctid(ct_stathdl_t, ctid_t *);
18932 extern int ct_pr_status_get_svc_creator(ct_stathdl_t, char **);
18933 
18934 /*
18935  * Device contract routines
18936  */
18937 int ct_dev_tmpl_set_minor(int, char *);
18938 int ct_dev_tmpl_set_aset(int, uint_t);
18939 int ct_dev_tmpl_set_noneg(int);
18940 int ct_dev_tmpl_clear_noneg(int);
18941 int ct_dev_tmpl_get_minor(int, char *, size_t *);
18942 int ct_dev_tmpl_get_aset(int, uint_t *);
18943 int ct_dev_tmpl_get_noneg(int, uint_t *);
18944 int ct_dev_status_get_aset(ct_stathdl_t, uint_t *);
18945 int ct_dev_status_get_noneg(ct_stathdl_t, uint_t *);
18946 int ct_dev_status_get_dev_state(ct_stathdl_t, uint_t *);
18947 int ct_dev_status_get_minor(ct_stathdl_t, char **);
18948 # 48 "../common/instzones_lib.h" 2
18949 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 1
18950 /*
18951  * CDDL HEADER START
18952  *
18953  * The contents of this file are subject to the terms of the
18954  * Common Development and Distribution License (the "License").
18955  * You may not use this file except in compliance with the License.
18956  *
18957  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18958  * or http://www.opensolaris.org/os/licensing.
18959  * See the License for the specific language governing permissions
18960  * and limitations under the License.
18961  *
18962  * When distributing Covered Code, include this CDDL HEADER in each
18963  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18964  * If applicable, add the following below this CDDL HEADER, with the
18965  * fields enclosed by brackets "[]" replaced with your own identifying
18966  * information: Portions Copyright [yyyy] [name of copyright owner]
18967  *
18968  * CDDL HEADER END
18969  */
18970 
18971 /*
18972  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
18973  */
18974 
18975 
18976 
18977 
18978 
18979 /*
18980  * Module:	instzones_api.h
18981  * Group:	libinstzones
18982  * Description:	This module contains the libinstzones API data structures,
18983  *		constants, and function prototypes.
18984  */
18985 
18986 /*
18987  * required includes
18988  */
18989 
18990 /* System includes */
18991 
18992 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1
18993 /*
18994  * CDDL HEADER START
18995  *
18996  * The contents of this file are subject to the terms of the
18997  * Common Development and Distribution License, Version 1.0 only
18998  * (the "License").  You may not use this file except in compliance
18999  * with the License.
19000  *
19001  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19002  * or http://www.opensolaris.org/os/licensing.
19003  * See the License for the specific language governing permissions
19004  * and limitations under the License.
19005  *
19006  * When distributing Covered Code, include this CDDL HEADER in each
19007  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19008  * If applicable, add the following below this CDDL HEADER, with the
19009  * fields enclosed by brackets "[]" replaced with your own identifying
19010  * information: Portions Copyright [yyyy] [name of copyright owner]
19011  *
19012  * CDDL HEADER END
19013  */
19014 /*	Copyright (c) 1988 AT&T	*/
19015 /*	  All Rights Reserved	*/
19016 
19017 /*
19018  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19019  *
19020  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
19021  * Use is subject to license terms.
19022  */
19023 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19024 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
19025 /*
19026  * CDDL HEADER START
19027  *
19028  * The contents of this file are subject to the terms of the
19029  * Common Development and Distribution License (the "License").
19030  * You may not use this file except in compliance with the License.
19031  *
19032  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19033  * or http://www.opensolaris.org/os/licensing.
19034  * See the License for the specific language governing permissions
19035  * and limitations under the License.
19036  *
19037  * When distributing Covered Code, include this CDDL HEADER in each
19038  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19039  * If applicable, add the following below this CDDL HEADER, with the
19040  * fields enclosed by brackets "[]" replaced with your own identifying
19041  * information: Portions Copyright [yyyy] [name of copyright owner]
19042  *
19043  * CDDL HEADER END
19044  */
19045 
19046 /*
19047  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19048  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
19049  */
19050 
19051 /*	Copyright (c) 1988 AT&T	*/
19052 /*	  All Rights Reserved  	*/
19053 
19054 /*
19055  * User-visible pieces of the ANSI C standard I/O package.
19056  */
19057 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19058 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
19059 /*
19060  * CDDL HEADER START
19061  *
19062  * The contents of this file are subject to the terms of the
19063  * Common Development and Distribution License (the "License").
19064  * You may not use this file except in compliance with the License.
19065  *
19066  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19067  * or http://www.opensolaris.org/os/licensing.
19068  * See the License for the specific language governing permissions
19069  * and limitations under the License.
19070  *
19071  * When distributing Covered Code, include this CDDL HEADER in each
19072  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19073  * If applicable, add the following below this CDDL HEADER, with the
19074  * fields enclosed by brackets "[]" replaced with your own identifying
19075  * information: Portions Copyright [yyyy] [name of copyright owner]
19076  *
19077  * CDDL HEADER END
19078  */
19079 
19080 /*
19081  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19082  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
19083  */
19084 
19085 /*	Copyright (c) 1988 AT&T	*/
19086 /*	  All Rights Reserved  	*/
19087 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19088 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/termios.h" 1
19089 /*
19090  * CDDL HEADER START
19091  *
19092  * The contents of this file are subject to the terms of the
19093  * Common Development and Distribution License, Version 1.0 only
19094  * (the "License").  You may not use this file except in compliance
19095  * with the License.
19096  *
19097  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19098  * or http://www.opensolaris.org/os/licensing.
19099  * See the License for the specific language governing permissions
19100  * and limitations under the License.
19101  *
19102  * When distributing Covered Code, include this CDDL HEADER in each
19103  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19104  * If applicable, add the following below this CDDL HEADER, with the
19105  * fields enclosed by brackets "[]" replaced with your own identifying
19106  * information: Portions Copyright [yyyy] [name of copyright owner]
19107  *
19108  * CDDL HEADER END
19109  */
19110 /*	Copyright (c) 1988 AT&T	*/
19111 /*	  All Rights Reserved  	*/
19112 
19113 
19114 
19115 
19116 
19117 #pragma ident "%Z%%M%	%I%	%E% SMI"
19118 
19119 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 1
19120 /*
19121  * CDDL HEADER START
19122  *
19123  * The contents of this file are subject to the terms of the
19124  * Common Development and Distribution License (the "License").
19125  * You may not use this file except in compliance with the License.
19126  *
19127  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19128  * or http://www.opensolaris.org/os/licensing.
19129  * See the License for the specific language governing permissions
19130  * and limitations under the License.
19131  *
19132  * When distributing Covered Code, include this CDDL HEADER in each
19133  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19134  * If applicable, add the following below this CDDL HEADER, with the
19135  * fields enclosed by brackets "[]" replaced with your own identifying
19136  * information: Portions Copyright [yyyy] [name of copyright owner]
19137  *
19138  * CDDL HEADER END
19139  */
19140 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19141 /*	  All Rights Reserved  	*/
19142 
19143 
19144 /*
19145  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19146  *
19147  * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
19148  */
19149 
19150 
19151 
19152 
19153 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
19154 /*
19155  * CDDL HEADER START
19156  *
19157  * The contents of this file are subject to the terms of the
19158  * Common Development and Distribution License (the "License").
19159  * You may not use this file except in compliance with the License.
19160  *
19161  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19162  * or http://www.opensolaris.org/os/licensing.
19163  * See the License for the specific language governing permissions
19164  * and limitations under the License.
19165  *
19166  * When distributing Covered Code, include this CDDL HEADER in each
19167  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19168  * If applicable, add the following below this CDDL HEADER, with the
19169  * fields enclosed by brackets "[]" replaced with your own identifying
19170  * information: Portions Copyright [yyyy] [name of copyright owner]
19171  *
19172  * CDDL HEADER END
19173  */
19174 
19175 /*
19176  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
19177  * Copyright 2016 Joyent, Inc.
19178  *
19179  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
19180  * Use is subject to license terms.
19181  */
19182 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
19183 
19184 
19185 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ttydev.h" 1
19186 /*
19187  * CDDL HEADER START
19188  *
19189  * The contents of this file are subject to the terms of the
19190  * Common Development and Distribution License, Version 1.0 only
19191  * (the "License").  You may not use this file except in compliance
19192  * with the License.
19193  *
19194  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19195  * or http://www.opensolaris.org/os/licensing.
19196  * See the License for the specific language governing permissions
19197  * and limitations under the License.
19198  *
19199  * When distributing Covered Code, include this CDDL HEADER in each
19200  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19201  * If applicable, add the following below this CDDL HEADER, with the
19202  * fields enclosed by brackets "[]" replaced with your own identifying
19203  * information: Portions Copyright [yyyy] [name of copyright owner]
19204  *
19205  * CDDL HEADER END
19206  */
19207 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19208 /*	  All Rights Reserved  	*/
19209 
19210 
19211 
19212 
19213 
19214 #pragma ident "%Z%%M%	%I%	%E% SMI"
19215 
19216 
19217 
19218 
19219 
19220 /*
19221  * Terminal definitions related to underlying hardware.
19222  */
19223 
19224 /*
19225  * Speeds
19226  */
19227 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
19228 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
19229 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19230 /*	  All Rights Reserved  	*/
19231 
19232 
19233 /*
19234  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
19235  * All rights reserved.  The Berkeley software License Agreement
19236  * specifies the terms and conditions for redistribution.
19237  */
19238 
19239 /*
19240  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19241  *
19242  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19243  * Use is subject to license terms.
19244  *
19245  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19246  */
19247 
19248 /*
19249  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
19250  */
19251 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
19252 
19253 
19254 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19255 /*
19256  * CDDL HEADER START
19257  *
19258  * The contents of this file are subject to the terms of the
19259  * Common Development and Distribution License (the "License").
19260  * You may not use this file except in compliance with the License.
19261  *
19262  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19263  * or http://www.opensolaris.org/os/licensing.
19264  * See the License for the specific language governing permissions
19265  * and limitations under the License.
19266  *
19267  * When distributing Covered Code, include this CDDL HEADER in each
19268  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19269  * If applicable, add the following below this CDDL HEADER, with the
19270  * fields enclosed by brackets "[]" replaced with your own identifying
19271  * information: Portions Copyright [yyyy] [name of copyright owner]
19272  *
19273  * CDDL HEADER END
19274  */
19275 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19276 /*	  All Rights Reserved  	*/
19277 
19278 
19279 /*
19280  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19281  * Use is subject to license terms.
19282  *
19283  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19284  * Copyright 2016 Joyent, Inc.
19285  */
19286 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
19287 
19288 
19289 
19290 
19291 
19292 /*
19293  * _POSIX_VDISABLE has been defined in <sys/termios.h> since the
19294  * introduction of the header. The POSIX standard, IEEE Std.
19295  * 1003.1-1988 also required  the existence of _POSIX_VDISABLE in
19296  * this header. Subsequent versions of the IEEE Standard as well
19297  * as the X/Open specifications required that _POSIX_VDISABLE be
19298  * defined in <unistd.h> while still allowing for it's existence
19299  * here. With the introduction of XPG6, _POSIX_VDISABLE can only
19300  * be defined in <unistd.h>.
19301  */
19302 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19303 /* required by termio.h and VCEOF/VCEOL */
19304 
19305 
19306 
19307 
19308 
19309 /* some defines required by POSIX */
19310 
19311 
19312 /*
19313  * types defined by POSIX. These are better off in types.h, but
19314  * the standard says that they have to be in termios.h.
19315  */
19316 typedef unsigned int tcflag_t;
19317 typedef unsigned char cc_t;
19318 typedef unsigned int speed_t;
19319 
19320 /*
19321  * Ioctl control packet
19322  */
19323 struct termios {
19324  tcflag_t c_iflag; /* input modes */
19325  tcflag_t c_oflag; /* output modes */
19326  tcflag_t c_cflag; /* control modes */
19327  tcflag_t c_lflag; /* line discipline modes */
19328  cc_t c_cc[19]; /* control chars */
19329 };
19330 
19331 /*
19332  * POSIX termios functions
19333  * These functions get mapped into ioctls.
19334  */
19335 
19336 
19337 
19338 extern speed_t cfgetospeed(const struct termios *);
19339 extern int cfsetospeed(struct termios *, speed_t);
19340 extern speed_t cfgetispeed(const struct termios *);
19341 extern int cfsetispeed(struct termios *, speed_t);
19342 extern int tcgetattr(int, struct termios *);
19343 extern int tcsetattr(int, int, const struct termios *);
19344 extern int tcsendbreak(int, int);
19345 extern int tcdrain(int);
19346 extern int tcflush(int, int);
19347 extern int tcflow(int, int);
19348 
19349 
19350 
19351 extern pid_t tcgetsid(int);
19352 
19353 
19354 
19355 
19356 
19357 /* control characters */
19358 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19359 /* 17 through 19 reserved for future use */
19360 
19361 /*
19362  * control characters form Xenix termio.h
19363  */
19364 
19365 
19366 
19367 
19368 
19369 
19370 /* S5 default control chars */
19371 /* CINTR, CERASE and CKILL modified to SunOS traditional values */
19372 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19373 /* input modes */
19374 # 209 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19375 /* output modes */
19376 # 255 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19377 /* control modes */
19378 # 281 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19379 /*
19380  * 4.4BSD hardware flow control flags
19381  */
19382 
19383 
19384 
19385 
19386 
19387 /* line discipline 0 modes */
19388 # 327 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19389 /* Slots reserved for 386/XENIX compatibility - keyboard control */
19390 # 343 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19391 /*
19392  * Softcarrier ioctls
19393  */
19394 
19395 
19396 
19397 
19398 /* termios ioctls */
19399 # 363 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19400 /*
19401  * NTP PPS ioctls
19402  */
19403 
19404 
19405 
19406 
19407 /* Argument filled in by TIOCGPPSEV */
19408 struct ppsclockev {
19409  struct timeval tv;
19410  uint_t serial;
19411 };
19412 # 387 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19413 /* termios option flags */
19414 # 398 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19415 /* TIOC ioctls for BSD, ptys, job control and modem control */
19416 
19417 
19418 
19419 
19420 
19421 /* Slots for 386/XENIX compatibility */
19422 /* BSD includes these ioctls in ttold.h */
19423 # 421 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19424 /*
19425  * BSD ioctls that are not the same as XENIX are included here.
19426  * There are also some relevant ioctls from SUN/BSD sys/ttycom.h
19427  * BSD pty ioctls like TIOCPKT are not supported in SVR4.
19428  */
19429 # 449 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19430 /* POSIX job control ioctls */
19431 
19432 
19433 
19434 
19435 
19436 
19437 /* Miscellaneous */
19438 
19439 
19440 /* Modem control */
19441 # 476 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19442 /* pseudo-tty */
19443 
19444 
19445 
19446 
19447 
19448 /* Some more 386 xenix stuff */
19449 # 492 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19450 /* Slots for 386 compatibility */
19451 
19452 
19453 
19454 
19455 
19456 
19457 
19458 /*
19459  * These are retained for 386/XENIX compatibility.
19460  */
19461 
19462 
19463 
19464 
19465 
19466 /*
19467  * Returns a non-zero value if there
19468  * are characters in the input queue.
19469  *
19470  * XXX - somebody is confused here.  V7 had no such "ioctl", although XENIX may
19471  * have added it; 4BSD had FIONREAD, which returned the number of characters
19472  * waiting, and was supposed to work on all descriptors (i.e., every driver
19473  * should make a stab at implementing it).
19474  */
19475 
19476 
19477 
19478 /*
19479  * Speeds
19480  */
19481 # 551 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
19482 /* Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ */
19483 struct winsize {
19484  unsigned short ws_row; /* rows, in characters */
19485  unsigned short ws_col; /* columns, in character */
19486  unsigned short ws_xpixel; /* horizontal size, pixels */
19487  unsigned short ws_ypixel; /* vertical size, pixels */
19488 };
19489 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/termios.h" 2
19490 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19491 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 1
19492 /*
19493  * CDDL HEADER START
19494  *
19495  * The contents of this file are subject to the terms of the
19496  * Common Development and Distribution License (the "License").
19497  * You may not use this file except in compliance with the License.
19498  *
19499  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19500  * or http://www.opensolaris.org/os/licensing.
19501  * See the License for the specific language governing permissions
19502  * and limitations under the License.
19503  *
19504  * When distributing Covered Code, include this CDDL HEADER in each
19505  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19506  * If applicable, add the following below this CDDL HEADER, with the
19507  * fields enclosed by brackets "[]" replaced with your own identifying
19508  * information: Portions Copyright [yyyy] [name of copyright owner]
19509  *
19510  * CDDL HEADER END
19511  */
19512 
19513 /* Copyright 2013 OmniTI Computer Consulting, Inc. All rights reserved. */
19514 /*
19515  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19516  *
19517  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
19518  * Use is subject to license terms.
19519  * Copyright 2015 Joyent, Inc.  All rights reserved.
19520  */
19521 
19522 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
19523 /*	  All Rights Reserved	*/
19524 
19525 /*
19526  * University Copyright- Copyright (c) 1982, 1986, 1988
19527  * The Regents of the University of California
19528  * All Rights Reserved
19529  *
19530  * University Acknowledgment- Portions of this document are derived from
19531  * software developed by the University of California, Berkeley, and its
19532  * contributors.
19533  */
19534 
19535 
19536 
19537 
19538 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
19539 /*
19540  * CDDL HEADER START
19541  *
19542  * The contents of this file are subject to the terms of the
19543  * Common Development and Distribution License (the "License").
19544  * You may not use this file except in compliance with the License.
19545  *
19546  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19547  * or http://www.opensolaris.org/os/licensing.
19548  * See the License for the specific language governing permissions
19549  * and limitations under the License.
19550  *
19551  * When distributing Covered Code, include this CDDL HEADER in each
19552  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19553  * If applicable, add the following below this CDDL HEADER, with the
19554  * fields enclosed by brackets "[]" replaced with your own identifying
19555  * information: Portions Copyright [yyyy] [name of copyright owner]
19556  *
19557  * CDDL HEADER END
19558  */
19559 
19560 /*
19561  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
19562  * Copyright 2016 Joyent, Inc.
19563  *
19564  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
19565  * Use is subject to license terms.
19566  */
19567 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 2
19568 
19569 
19570 
19571 
19572 
19573 
19574 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19575 /*
19576  * CDDL HEADER START
19577  *
19578  * The contents of this file are subject to the terms of the
19579  * Common Development and Distribution License (the "License").
19580  * You may not use this file except in compliance with the License.
19581  *
19582  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19583  * or http://www.opensolaris.org/os/licensing.
19584  * See the License for the specific language governing permissions
19585  * and limitations under the License.
19586  *
19587  * When distributing Covered Code, include this CDDL HEADER in each
19588  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19589  * If applicable, add the following below this CDDL HEADER, with the
19590  * fields enclosed by brackets "[]" replaced with your own identifying
19591  * information: Portions Copyright [yyyy] [name of copyright owner]
19592  *
19593  * CDDL HEADER END
19594  */
19595 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19596 /*	  All Rights Reserved  	*/
19597 
19598 
19599 /*
19600  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19601  * Use is subject to license terms.
19602  *
19603  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19604  * Copyright 2016 Joyent, Inc.
19605  */
19606 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 2
19607 
19608 
19609 /*
19610  * Protections are chosen from these bits, or-ed together.
19611  * Note - not all implementations literally provide all possible
19612  * combinations.  PROT_WRITE is often implemented as (PROT_READ |
19613  * PROT_WRITE) and (PROT_EXECUTE as PROT_READ | PROT_EXECUTE).
19614  * However, no implementation will permit a write to succeed
19615  * where PROT_WRITE has not been set.  Also, no implementation will
19616  * allow any access to succeed where prot is specified as PROT_NONE.
19617  */
19618 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19619 /* sharing types:  must choose either SHARED or PRIVATE */
19620 
19621 
19622 
19623 
19624 /* other flags to mmap (or-ed in to MAP_SHARED or MAP_PRIVATE) */
19625 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19626 /* these flags not yet implemented */
19627 
19628 
19629 
19630 /* these flags are used by memcntl */
19631 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19632 /*
19633  * For the sake of backward object compatibility, we use the _MAP_NEW flag.
19634  * This flag will be automatically or'ed in by the C library for all
19635  * new mmap calls.  Previous binaries with old mmap calls will continue
19636  * to get 0 or -1 for return values.  New mmap calls will get the mapped
19637  * address as the return value if successful and -1 on errors.  By default,
19638  * new mmap calls automatically have the kernel assign the map address
19639  * unless the MAP_FIXED flag is given.
19640  */
19641 
19642 
19643 
19644 
19645 
19646 /* External flags for mmapobj syscall (Exclusive of MAP_* flags above) */
19647 
19648 
19649 
19650 
19651 
19652 /*
19653  * Values for mr_flags field of mmapobj_result_t below.
19654  * The bottom 16 bits are mutually exclusive and thus only one
19655  * of them can be set at a time.  Use MR_GET_TYPE below to check this value.
19656  * The top 16 bits are used for flags which are not mutually exclusive and
19657  * thus more than one of these flags can be set for a given mmapobj_result_t.
19658  *
19659  * MR_PADDING being set indicates that this memory range represents the user
19660  * requested padding.
19661  *
19662  * MR_HDR_ELF being set indicates that the ELF header of the mapped object
19663  * is mapped at mr_addr + mr_offset.
19664  *
19665  * MR_HDR_AOUT being set indicates that the AOUT (4.x) header of the mapped
19666  * object is mapped at mr_addr + mr_offset.
19667  */
19668 
19669 /*
19670  * External flags for mr_flags field below.
19671  */
19672 
19673 
19674 
19675 
19676 /*
19677  * Internal flags for mr_flags field below.
19678  */
19679 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19680 typedef struct mmapobj_result {
19681  caddr_t mr_addr; /* mapping address */
19682  size_t mr_msize; /* mapping size */
19683  size_t mr_fsize; /* file size */
19684  size_t mr_offset; /* offset into file */
19685  uint_t mr_prot; /* the protections provided */
19686  uint_t mr_flags; /* info on the mapping */
19687 } mmapobj_result_t;
19688 # 194 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19689 /*
19690  * large file compilation environment setup
19691  *
19692  * In the LP64 compilation environment, map large file interfaces
19693  * back to native versions where possible.
19694  */
19695 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19696 
19697 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19698 #pragma redefine_extname mmap64 mmap
19699 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19700 
19701 
19702 
19703 
19704 
19705 
19706 
19707 
19708 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19709 #pragma redefine_extname getpagesizes getpagesizes2
19710 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19711 
19712 
19713 
19714 
19715 
19716 /*
19717  * Except for old binaries mmap() will return the resultant
19718  * address of mapping on success and (caddr_t)-1 on error.
19719  */
19720 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19721 extern caddr_t mmap(caddr_t, size_t, int, int, int, off_t);
19722 extern int munmap(caddr_t, size_t);
19723 extern int mprotect(caddr_t, size_t, int);
19724 extern int msync(caddr_t, size_t, int);
19725 extern int mlock(caddr_t, size_t);
19726 extern int munlock(caddr_t, size_t);
19727 extern int mincore(caddr_t, size_t, char *);
19728 extern int memcntl(caddr_t, size_t, int, caddr_t, int, int);
19729 extern int madvise(caddr_t, size_t, int);
19730 
19731 extern int getpagesizes(size_t *, int);
19732 extern int getpagesizes2(size_t *, int);
19733 extern int mmapobj(int, uint_t, mmapobj_result_t *, uint_t *, void *);
19734 /* guard visibility of uint64_t */
19735 
19736 extern int meminfo(const uint64_t *, int, const uint_t *, int, uint64_t *,
19737  uint_t *);
19738 
19739 
19740 /* transitional large file interface version */
19741 
19742 extern caddr_t mmap64(caddr_t, size_t, int, int, int, off64_t);
19743 
19744 
19745 
19746 
19747 extern int mlockall(int);
19748 extern int munlockall(void);
19749 extern int shm_open(const char *, int, mode_t);
19750 extern int shm_unlink(const char *);
19751 
19752 
19753 
19754 extern int posix_madvise(void *, size_t, int);
19755 
19756 
19757 /* mmap failure value */
19758 
19759 
19760 
19761 
19762 
19763 
19764 
19765 /*
19766  * structure for memcntl hat advise operations.
19767  */
19768 struct memcntl_mha {
19769  uint_t mha_cmd; /* command(s) */
19770  uint_t mha_flags;
19771  size_t mha_pagesize;
19772 };
19773 # 306 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19774 /*
19775  * advice to madvise
19776  *
19777  * Note, if more than 4 bits worth of advice (eg. 16) are specified then
19778  * changes will be necessary to the struct vpage.
19779  */
19780 # 326 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19781 /* advice to posix_madvise */
19782 /* these values must be kept in sync with the MADV_* values, above */
19783 
19784 
19785 
19786 
19787 
19788 
19789 
19790 /* flags to msync */
19791 
19792      /* modified for UNIX98 compliance */
19793 
19794 
19795 
19796 
19797 
19798 /* functions to mctl */
19799 # 353 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19800 /* sub-commands for MC_HAT_ADVISE */
19801 
19802 
19803      /* for last bss adjacent to */
19804      /* brk area and brk area itself */
19805 
19806      /* processes main stack */
19807 
19808 
19809 
19810 
19811 /* flags to mlockall */
19812 
19813 
19814 
19815 
19816 
19817 
19818 /* definitions for meminfosys syscall */
19819 
19820 
19821 
19822 
19823 
19824 /* private structure for meminfo */
19825 typedef struct meminfo {
19826  const uint64_t *mi_inaddr; /* array of input addresses */
19827  const uint_t *mi_info_req; /* array of types of info requested */
19828  uint64_t *mi_outdata; /* array of results are placed */
19829  uint_t *mi_validity; /* array of bitwise result codes */
19830  int mi_info_count; /* number of pieces of info requested */
19831 } meminfo_t;
19832 # 399 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19833 /*
19834  * info_req request type definitions for meminfo
19835  * request types starting with MEMINFO_V are used for Virtual addresses
19836  * and should not be mixed with MEMINFO_PLGRP which is targeted for Physical
19837  * addresses
19838  */
19839 # 415 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
19840 /* maximum number of addresses meminfo() can process at a time */
19841 
19842 
19843 /* maximum number of request types */
19844 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19845 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
19846 /*
19847  * CDDL HEADER START
19848  *
19849  * The contents of this file are subject to the terms of the
19850  * Common Development and Distribution License (the "License").
19851  * You may not use this file except in compliance with the License.
19852  *
19853  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19854  * or http://www.opensolaris.org/os/licensing.
19855  * See the License for the specific language governing permissions
19856  * and limitations under the License.
19857  *
19858  * When distributing Covered Code, include this CDDL HEADER in each
19859  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19860  * If applicable, add the following below this CDDL HEADER, with the
19861  * fields enclosed by brackets "[]" replaced with your own identifying
19862  * information: Portions Copyright [yyyy] [name of copyright owner]
19863  *
19864  * CDDL HEADER END
19865  */
19866 
19867 /*
19868  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
19869  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
19870  */
19871 
19872 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
19873 /*	  All Rights Reserved  	*/
19874 
19875 /*
19876  * University Copyright- Copyright (c) 1982, 1986, 1988
19877  * The Regents of the University of California
19878  * All Rights Reserved
19879  *
19880  * University Acknowledgment- Portions of this document are derived from
19881  * software developed by the University of California, Berkeley, and its
19882  * contributors.
19883  */
19884 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19885 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19886 /*
19887  * CDDL HEADER START
19888  *
19889  * The contents of this file are subject to the terms of the
19890  * Common Development and Distribution License (the "License").
19891  * You may not use this file except in compliance with the License.
19892  *
19893  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19894  * or http://www.opensolaris.org/os/licensing.
19895  * See the License for the specific language governing permissions
19896  * and limitations under the License.
19897  *
19898  * When distributing Covered Code, include this CDDL HEADER in each
19899  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19900  * If applicable, add the following below this CDDL HEADER, with the
19901  * fields enclosed by brackets "[]" replaced with your own identifying
19902  * information: Portions Copyright [yyyy] [name of copyright owner]
19903  *
19904  * CDDL HEADER END
19905  */
19906 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19907 /*	  All Rights Reserved  	*/
19908 
19909 
19910 /*
19911  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19912  * Use is subject to license terms.
19913  *
19914  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19915  * Copyright 2016 Joyent, Inc.
19916  */
19917 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19918 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ioctl.h" 1
19919 /*
19920  * CDDL HEADER START
19921  *
19922  * The contents of this file are subject to the terms of the
19923  * Common Development and Distribution License, Version 1.0 only
19924  * (the "License").  You may not use this file except in compliance
19925  * with the License.
19926  *
19927  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19928  * or http://www.opensolaris.org/os/licensing.
19929  * See the License for the specific language governing permissions
19930  * and limitations under the License.
19931  *
19932  * When distributing Covered Code, include this CDDL HEADER in each
19933  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19934  * If applicable, add the following below this CDDL HEADER, with the
19935  * fields enclosed by brackets "[]" replaced with your own identifying
19936  * information: Portions Copyright [yyyy] [name of copyright owner]
19937  *
19938  * CDDL HEADER END
19939  */
19940 /*
19941  * Copyright 1991 Sun Microsystems, Inc.  All rights reserved.
19942  * Use is subject to license terms.
19943  */
19944 
19945 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19946 /*	  All Rights Reserved  	*/
19947 
19948 
19949 
19950 
19951 #pragma ident "%Z%%M%	%I%	%E% SMI"
19952 
19953 
19954 
19955 
19956 
19957 /*
19958  *	There are some inherent problems in having a single file
19959  *	ioctl.h, with both System V and BSD flags. Introducing
19960  *	BSD flags into this file creates compilation problems
19961  *	with flags such as ECHO, NL1 etc., if termio.h and ioctl.h
19962  *	are included by the same file. Since these two files can
19963  *	be only included by System V applications, /usr/inclule/sys/ioctl.h
19964  *	will be System V mode and all the BSD flags will be turned off
19965  *	using #ifdef BSD_COMP. This file will also exist in
19966  *	/usr/ucbinclude/sys/ioctl.h for BSD applications but without the
19967  *	BSD flags turned off. System V appliactions can use ioctl.h without
19968  *	any changes, System V applications requiring BSD flags should
19969  *	-D BSD_COMP when compiling (and be warned about the common
19970  *	flags between System V and BSD) and BSD applications should
19971  *	use /usr/ucbinclude/sys/ioctl.h.
19972  *
19973  */
19974 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ioctl.h"
19975 /* BSD related defines */
19976 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19977 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 1
19978 /*
19979  * CDDL HEADER START
19980  *
19981  * The contents of this file are subject to the terms of the
19982  * Common Development and Distribution License (the "License").
19983  * You may not use this file except in compliance with the License.
19984  *
19985  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19986  * or http://www.opensolaris.org/os/licensing.
19987  * See the License for the specific language governing permissions
19988  * and limitations under the License.
19989  *
19990  * When distributing Covered Code, include this CDDL HEADER in each
19991  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19992  * If applicable, add the following below this CDDL HEADER, with the
19993  * fields enclosed by brackets "[]" replaced with your own identifying
19994  * information: Portions Copyright [yyyy] [name of copyright owner]
19995  *
19996  * CDDL HEADER END
19997  */
19998 
19999 /*
20000  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
20001  */
20002 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20003 
20004 /*
20005  * C++ prefix
20006  */
20007 
20008 
20009 
20010 
20011 
20012 
20013 /* function prototypes */
20014 
20015 /* PRINTFLIKE1 */
20016 typedef void (*_z_printf_fcn_t)(char *a_format, ...);
20017 
20018 /* zone list structure */
20019 
20020 typedef struct _zoneListElement_t *zoneList_t;
20021 
20022 /* zone brand list structure */
20023 
20024 typedef struct _zoneBrandList zoneBrandList_t;
20025 
20026 /* flag for zone locking functions */
20027 
20028 typedef unsigned long ZLOCKS_T;
20029 
20030 /* flags for zone locking */
20031 
20032 
20033 
20034 
20035 
20036 
20037 /*
20038  * external function definitions
20039  */
20040 
20041 /* zones.c */
20042 
20043 extern boolean_t z_zones_are_implemented(void);
20044 extern void z_set_zone_root(const char *zroot);
20045 extern boolean_t z_zlist_is_zone_runnable(zoneList_t a_zoneList,
20046     int a_zoneIndex);
20047 extern boolean_t z_zlist_restore_zone_state(zoneList_t a_zoneList,
20048     int a_zoneIndex);
20049 extern boolean_t z_zlist_change_zone_state(zoneList_t a_zoneList,
20050     int a_zoneIndex, zone_state_t a_newState);
20051 extern char *z_get_zonename(void);
20052 extern zone_state_t z_zlist_get_current_state(zoneList_t a_zoneList,
20053     int a_zoneIndex);
20054 extern zone_state_t z_zlist_get_original_state(zoneList_t a_zoneList,
20055     int a_zoneIndex);
20056 extern int z_zoneExecCmdArray(int *r_status, char **r_results,
20057     char *a_inputFile, char *a_path, char *a_argv[],
20058     const char *a_zoneName, int *a_fds);
20059 extern int z_zone_exec(const char *zonename, const char *path,
20060     char *argv[], char *a_stdoutPath,
20061     char *a_stderrPath, int *a_fds);
20062 extern boolean_t z_create_zone_admin_file(char *a_zoneAdminFilename,
20063     char *a_userAdminFilename);
20064 extern void z_free_zone_list(zoneList_t a_zoneList);
20065 extern zoneList_t z_get_nonglobal_zone_list(void);
20066 extern zoneList_t z_get_nonglobal_zone_list_by_brand(zoneBrandList_t *);
20067 extern void z_free_brand_list(zoneBrandList_t *a_brandList);
20068 extern zoneBrandList_t *z_make_brand_list(const char *brandList,
20069     const char *delim);
20070 extern boolean_t z_lock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
20071 extern boolean_t z_non_global_zones_exist(void);
20072 extern boolean_t z_running_in_global_zone(void);
20073 extern void z_set_output_functions(_z_printf_fcn_t a_echo_fcn,
20074     _z_printf_fcn_t a_echo_debug_fcn,
20075     _z_printf_fcn_t a_progerr_fcn);
20076 extern int z_set_zone_spec(const char *zlist);
20077 extern int z_verify_zone_spec(void);
20078 extern boolean_t z_on_zone_spec(const char *zonename);
20079 extern boolean_t z_global_only(void);
20080 extern boolean_t z_unlock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
20081 extern boolean_t z_lock_this_zone(ZLOCKS_T a_lflags);
20082 extern boolean_t z_unlock_this_zone(ZLOCKS_T a_lflags);
20083 extern char *z_zlist_get_zonename(zoneList_t a_zoneList,
20084     int a_zoneId);
20085 extern char *z_zlist_get_zonepath(zoneList_t a_zoneList,
20086     int a_zoneId);
20087 extern char *z_zlist_get_scratch(zoneList_t a_zoneList,
20088     int a_zoneId);
20089 extern boolean_t z_umount_lz_mount(char *a_lzMountPoint);
20090 extern boolean_t z_mount_in_lz(char **r_lzMountPoint,
20091     char **r_lzRootPath,
20092     char *a_zoneName, char *a_gzPath,
20093     char *a_mountPointPrefix);
20094 extern boolean_t z_is_zone_branded(char *zoneName);
20095 extern boolean_t z_is_zone_brand_in_list(char *zoneName,
20096        zoneBrandList_t *brands);
20097 extern boolean_t z_zones_are_implemented(void);
20098 
20099 /* zones_exec.c */
20100 extern int z_ExecCmdArray(int *r_status, char **r_results,
20101     char *a_inputFile, char *a_cmd, char **a_args);
20102 /*VARARGS*/
20103 extern int z_ExecCmdList(int *r_status, char **r_results,
20104     char *a_inputFile, char *a_cmd, ...);
20105 
20106 /* zones_paths.c */
20107 extern char *z_make_zone_root(char *);
20108 extern void z_path_canonize(char *file);
20109 extern void z_canoninplace(char *file);
20110 
20111 /* zones_lofs.c */
20112 extern void z_destroyMountTable(void);
20113 extern int z_createMountTable(void);
20114 extern int z_isPathWritable(const char *);
20115 extern void z_resolve_lofs(char *path, size_t);
20116 
20117 /* zones_states.c */
20118 extern int UmountAllZones(char *mntpnt);
20119 
20120 /*
20121  * C++ postfix
20122  */
20123 # 49 "../common/instzones_lib.h" 2
20124 
20125 
20126 
20127 /*
20128  * C++ prefix
20129  */
20130 
20131 
20132 
20133 
20134 
20135 /* constants */
20136 
20137 
20138 /* macros */
20139 
20140 /*
20141  * argument array processing type
20142  */
20143 
20144 /*
20145  * This is the "argument array" definition that is returned by _z_new_args
20146  * and is used by _z_add_args, _z_free_args, etc.
20147  */
20148 
20149 struct _argArray_t {
20150  long _aaNumArgs; /* number of arguments set */
20151  long _aaMaxArgs; /* number of arguments allocated */
20152  char **_aaArgs; /* actual arguments */
20153 };
20154 
20155 typedef struct _argArray_t argArray_t;
20156 
20157 /*
20158  * lock objects
20159  */
20160 
20161 /*
20162  * this allows a root path to be prepended to a lock object; e.g.
20163  *   rootpath.%s/zone.%s/...
20164  */
20165 
20166 
20167 /* this locks a single zone (zone.name) */
20168 
20169 
20170 /* this locks all zones */
20171 
20172 
20173 /* this locks all packages, in all zones */
20174 
20175 
20176 
20177 
20178 
20179 /* paths to commands executed by this module */
20180 
20181 
20182 
20183 
20184 /* max message size for program output functions (echo, echo debug, progerr) */
20185 
20186 
20187 
20188 /* maximum number of retries when waiting for lock */
20189 
20190 
20191 
20192 /* delay (in seconds) between retries when waiting for lock */
20193 
20194 
20195 
20196 /* Size of buffer increments when reading from pipe */
20197 
20198 
20199 
20200 /* Maximum number of arguments to pkg_ExecCmdList */
20201 
20202 
20203 
20204 /*
20205  * These dynamic libraries are required in order to use the zones
20206  * functionality - if these libraries are not available at runtime,
20207  * then zones are assumed to NOT be available, and it is assumed that
20208  * the program is running in the global zone with no non-global zones.
20209  */
20210 # 147 "../common/instzones_lib.h"
20211 /*
20212  * Environment values used when running commands within a non-global zone
20213  */
20214 
20215 /* SHELL= */
20216 
20217 
20218 
20219 /* PATH= */
20220 
20221 
20222 
20223 /* error codes */
20224 
20225 
20226 /*
20227  * zone brand list structure
20228  */
20229 
20230 struct _zoneBrandList {
20231  char *string_ptr;
20232  struct _zoneBrandList *next;
20233 };
20234 
20235 /*
20236  * zone status structure - used to retrieve and hold status of zones
20237  */
20238 
20239 typedef unsigned long _zone_status_t;
20240 
20241 struct _zoneListElement_t {
20242  char *_zlName;
20243  char *_zlPath;
20244  char *_zlScratchName;
20245  char *_zlLockObjects;
20246  /*
20247 	 * the install "state" refers to the zone states listed in
20248 	 * /usr/include/libzonecfg.h that is stored in the zone_state_t
20249 	 * structure and returned from getzoneent_private() - such as:
20250 	 * ZONE_STATE_CONFIGURED, ZONE_STATE_INCOMPLETE,
20251 	 * ZONE_STATE_INSTALLED, ZONE_STATE_READY, ZONE_STATE_MOUNTED,
20252 	 * ZONE_STATE_SHUTTING_DOWN, ZONE_STATE_DOWN.
20253 	 */
20254  zone_state_t _zlOrigInstallState;
20255  zone_state_t _zlCurrInstallState;
20256  /*
20257 	 * the kernel "status" refers to the zone status listed in
20258 	 * /usr/include/sys/zone.h, returned by zone_get_state(),
20259 	 * and defined in the zone_status_t enum - such as:
20260 	 * ZONE_IS_UNINITIALIZED, ZONE_IS_READY, ZONE_IS_BOOTING,
20261 	 * ZONE_IS_RUNNING, ZONE_IS_SHUTTING_DOWN, ZONE_IS_EMPTY,
20262 	 * ZONE_IS_DOWN, ZONE_IS_DYING, ZONE_IS_DEAD.
20263 	 */
20264  zone_status_t _zlOrigKernelStatus;
20265  zone_status_t _zlCurrKernelStatus;
20266  /*
20267 	 * this is an internal state recorded about the zone (ZSF_xxx).
20268 	 */
20269  _zone_status_t _zlStatus;
20270 };
20271 
20272 typedef struct _zoneListElement_t zoneListElement_t;
20273 
20274 /* bits used in the _zoneListElement _zlStatus variable */
20275 
20276 
20277 
20278 
20279 /*
20280  * User-specified list of zones.
20281  */
20282 
20283 typedef struct zone_spec_s {
20284  struct zone_spec_s *zl_next;
20285  boolean_t zl_used;
20286  char zl_name[64];
20287 } zone_spec_t;
20288 
20289 /*
20290  * The global data structure used to hold all of the global (extern) data
20291  * used by this library.
20292  *
20293  * --> THESE DEFINITIONS ARE ORDER DEPENDENT BASED <--
20294  * --> ON THE ORDER OF THE STRUCTURE INITIALIZERS! <--
20295  */
20296 
20297 struct _z_global_data_t {
20298  char *_z_ObjectLocks; /* object locks held */
20299  char *_z_root_dir; /* root for zone lib fctns */
20300  int _z_SigReceived; /* received signal count */
20301  pid_t _z_ChildProcessId; /* child to propagate sigs to */
20302  zone_spec_t *_zone_spec; /* zones to operate on */
20303  _z_printf_fcn_t _z_echo; /* operational message fcn */
20304  _z_printf_fcn_t _z_echo_debug; /* debug message fcn */
20305  _z_printf_fcn_t _z_progerr; /* program error fcn */
20306 };
20307 
20308 typedef struct _z_global_data_t z_global_data_t;
20309 
20310 /*
20311  * When _INSTZONES_LIB_Z_DEFINE_GLOBAL_DATA is defined,
20312  * instzones_lib.h will define the z_global_data structure.
20313  * Otherwise an extern to the structure is inserted.
20314  *
20315  * --> THESE DEFINITIONS ARE ORDER DEPENDENT BASED ON <--
20316  * --> THE ORDER OF THE _z_global_data_t STRUCTURE!!! <--
20317  */
20318 # 272 "../common/instzones_lib.h"
20319 /* define structure extern */
20320 
20321 extern z_global_data_t _z_global_data;
20322 
20323 
20324 
20325 /* function prototypes */
20326 
20327 /*
20328  *  The following functions can be used by other libs, but not
20329  *  by applications.
20330  */
20331 
20332 /* ---> zones_states.c */
20333 
20334 boolean_t _z_make_zone_ready(zoneListElement_t *a_zlem);
20335 boolean_t _z_make_zone_down(zoneListElement_t *a_zlem);
20336 boolean_t _z_make_zone_running(zoneListElement_t *a_zlem);
20337 int UmountAllZones(char *mntpnt);
20338 void *_z_calloc(size_t size);
20339 void *_z_malloc(size_t size);
20340 void *_z_realloc(void *ptr, size_t size);
20341 void *_z_strdup(char *str);
20342 
20343 /* ---> zones_utils.c */
20344 
20345 /*PRINTFLIKE1*/
20346 void _z_program_error(char *fmt, ...);
20347 /*PRINTFLIKE1*/
20348 void _z_echo(char *fmt, ...);
20349 /*PRINTFLIKE1*/
20350 void _z_echoDebug(char *a_fmt, ...);
20351 int _z_is_directory(char *path);
20352 boolean_t _z_running_in_global_zone(void);
20353 boolean_t _z_zones_are_implemented(void);
20354 void _z_sig_trap(int a_signo);
20355 int _z_close_file_descriptors(void *a_fds, int a_fd);
20356 boolean_t _z_brands_are_implemented(void);
20357 
20358 
20359 /* ---> zones_locks.c */
20360 
20361 boolean_t _z_adjust_lock_object_for_rootpath(char **r_result,
20362    char *a_lockObject);
20363 boolean_t _z_acquire_lock(char **r_lockKey, char *a_zoneName,
20364    char *a_lock, pid_t a_pid, boolean_t a_wait);
20365 boolean_t _z_lock_zone(zoneListElement_t *a_zlst,
20366    ZLOCKS_T a_lflags);
20367 boolean_t _z_lock_zone_object(char **r_objectLocks,
20368    char *a_zoneName, char *a_lockObject,
20369    pid_t a_pid, char *a_waitingMsg,
20370    char *a_busyMsg);
20371 boolean_t _z_release_lock(char *a_zoneName, char *a_lock,
20372    char *a_key, boolean_t a_wait);
20373 boolean_t _z_unlock_zone(zoneListElement_t *a_zlst,
20374    ZLOCKS_T a_lflags);
20375 boolean_t _z_unlock_zone_object(char **r_objectLocks,
20376    char *a_zoneName, char *a_lockObject,
20377    char *a_errMsg);
20378 
20379 /* ---> zones_args.c */
20380 
20381 void _z_free_args(argArray_t *a_args);
20382 argArray_t *_z_new_args(int initialCount);
20383 /*PRINTFLIKE2*/
20384 boolean_t _z_add_arg(argArray_t *a_args, char *a_format, ...);
20385 int _z_get_argc(argArray_t *a_args);
20386 char **_z_get_argv(argArray_t *a_args);
20387 
20388 /* ---> zones_str.c */
20389 
20390 boolean_t _z_strContainsToken(char *a_string, char *a_token,
20391    char *a_separators);
20392 char *_z_strGetToken(char *r_sep, char *a_string,
20393    int a_index, char *a_separators);
20394 void _z_strRemoveLeadingWhitespace(char **a_str);
20395 void _z_strGetToken_r(char *r_sep, char *a_string,
20396    int a_index, char *a_separators, char *a_buf,
20397    int a_bufLen);
20398 void _z_strAddToken(char **a_old, char *a_new,
20399    char a_separator);
20400 void _z_strRemoveToken(char **r_string, char *a_token,
20401    char *a_separators, int a_index);
20402 /*PRINTFLIKE3*/
20403 void _z_strPrintf_r(char *a_buf, int a_bufLen,
20404    char *a_format, ...);
20405 /*PRINTFLIKE1*/
20406 char *_z_strPrintf(char *a_format, ...);
20407 
20408 /* ---> zones_exec.c */
20409 
20410 int _z_zone_exec(int *r_status, char **r_results, char *a_inputFile,
20411    char *a_path, char *a_argv[], const char *a_zoneName,
20412    int *a_fds);
20413 int _zexec(const char *a_zoneName,
20414    const char *path, char *argv[]);
20415 char *_zexec_add_env(char *name, char *value);
20416 int _zexec_init_template(void);
20417 char **_zexec_prep_env();
20418 
20419 /*
20420  * C++ postfix
20421  */
20422 # 42 "../common/zones_lofs.c" 2
20423 
20424 
20425 
20426 
20427 
20428 static struct mnttab *mountTable;
20429 static size_t mountTableSize = 0;
20430 static boolean_t createdFlag = B_FALSE;
20431 
20432 /*
20433  * Name		: z_createMountTable
20434  * Description	: Populate the mountTable Array with mnttab entries
20435  * Arguments	: void
20436  * Returns	: int
20437  *		  0: The Mount Table was succesfully initialized
20438  *		 -1: There was an error during initialisation
20439  */
20440 int
20441 z_createMountTable(void)
20442 {
20443  FILE *fp;
20444  struct mnttab ent;
20445  struct mnttab *entp;
20446 
20447  if (createdFlag) {
20448   return (0);
20449  }
20450 
20451  fp = fopen("/etc/mnttab", "r");
20452  if (fp == 0L) {
20453   _z_program_error(dgettext(TEXT_DOMAIN, "unable to open <%s> for reading: (%d) %s"), "/etc/mnttab", (*(___errno())),
20454       strerror((*(___errno()))));
20455   return (-1);
20456  }
20457 
20458  /* Put the entries into the table */
20459  mountTable = 0L;
20460  mountTableSize = 0;
20461  createdFlag = B_TRUE;
20462  while (getmntent(fp, &ent) == 0) {
20463   if (mountTableSize % 32 == 0) {
20464    mountTable = _z_realloc(mountTable,
20465        (mountTableSize + 32) * sizeof (ent));
20466   }
20467   entp = &mountTable[mountTableSize++];
20468 
20469   /*
20470 		 * Zero out any fields we're not using.
20471 		 */
20472   (void) memset(entp, 0, sizeof (*entp));
20473 
20474   if (ent.mnt_special != 0L)
20475    entp->mnt_special = _z_strdup(ent.mnt_special);
20476   if (ent.mnt_mntopts != 0L)
20477    entp->mnt_mntopts = _z_strdup(ent.mnt_mntopts);
20478   entp->mnt_mountp = _z_strdup(ent.mnt_mountp);
20479   entp->mnt_fstype = _z_strdup(ent.mnt_fstype);
20480  }
20481 
20482  (void) fclose(fp);
20483  return (0);
20484 }
20485 
20486 /*
20487  * Name		: findPathRWStatus
20488  * Description	: Check whether the given path is an mnttab entry
20489  * Arguments	: char * - The Path to be verified
20490  * Returns	: int
20491  *		  -1: The Path is NOT present in the table (mnttab)
20492  *		   0: The Path is present in the table and is mounted read-only
20493  *		   1: The Path is present in the table and is mounted read-write
20494  */
20495 static int
20496 findPathRWStatus(const char *a_path)
20497 {
20498  int i;
20499 
20500  for (i = 0; i < mountTableSize; i++) {
20501   if (strcmp(a_path, mountTable[i].mnt_mountp) == 0) {
20502    if (hasmntopt(&mountTable[i], "ro") != 0L) {
20503     return (0);
20504    } else {
20505     return (1);
20506    }
20507   }
20508  }
20509 
20510  return (-1);
20511 }
20512 
20513 
20514 /*
20515  * Name		: z_isPathWritable
20516  * Description	: Check if the given path is in a writable area
20517  * Arguments	: char * - The Path to be verified
20518  * Returns	: int
20519  *		   0: The Path is under a read-only mount
20520  *		   1: The Path is under a read-write mount
20521  * NOTE		: This funcion automatically initialises
20522  *		  the mountPoint table if needed.
20523  */
20524 int
20525 z_isPathWritable(const char *a_str)
20526 {
20527  int i, result, slen;
20528  char a_path[1024];
20529 
20530  if (!createdFlag) {
20531   if (z_createMountTable() != 0) {
20532    return (1);
20533   }
20534  }
20535 
20536  (void) strlcpy(a_path, a_str, sizeof (a_path));
20537  slen = strlen(a_path);
20538 
20539  /*
20540 	 * This for loop traverses Path backwards, incrementally removing the
20541 	 * basename of Path and looking for the resultant directory in the
20542 	 * mnttab.  Once found, it returns the rw status of that file system.
20543 	 */
20544  for (i = slen; i > 0; i--) {
20545   if ((a_path[i] == '/') || (a_path[i] == '\0')) {
20546    a_path[i] = '\0';
20547    result = findPathRWStatus(a_path);
20548    if (result != -1) {
20549     return (result);
20550    }
20551   }
20552  }
20553 
20554  return (1);
20555 }
20556 
20557 /*
20558  * Name		: z_destroyMountTable
20559  * Description	: Clear the entries in the mount table
20560  * Arguments	: void
20561  * Returns	: void
20562  */
20563 void
20564 z_destroyMountTable(void)
20565 {
20566  int i;
20567 
20568  if (!createdFlag) {
20569   return;
20570  }
20571 
20572  if (mountTable == 0L) {
20573   return;
20574  }
20575 
20576  for (i = 0; i < mountTableSize; i++) {
20577   free(mountTable[i].mnt_mountp);
20578   free(mountTable[i].mnt_fstype);
20579   free(mountTable[i].mnt_special);
20580   free(mountTable[i].mnt_mntopts);
20581   (void)((mountTable[i].mnt_time == 0L) || (__assert("mountTable[i].mnt_time == NULL", "../common/zones_lofs.c", 200), 0));
20582  }
20583 
20584  free(mountTable);
20585  mountTable = 0L;
20586  mountTableSize = 0;
20587  createdFlag = B_FALSE;
20588 }
20589 
20590 /*
20591  * Name		: z_resolve_lofs
20592  * Description	: Loop over potential loopback mounts and symlinks in a
20593  *		  given path and resolve them all down to an absolute path.
20594  * Arguments	: char * - path to resolve.  path is in writable storage.
20595  *		  size_t - length of path storage.
20596  * Returns	: void
20597  */
20598 void
20599 z_resolve_lofs(char *path, size_t pathlen)
20600 {
20601  int len, arlen, i;
20602  const char *altroot;
20603  char tmppath[1024];
20604  boolean_t outside_altroot;
20605 
20606  if ((len = resolvepath(path, tmppath, sizeof (tmppath))) == -1)
20607   return;
20608 
20609  tmppath[len] = '\0';
20610  (void) strlcpy(path, tmppath, pathlen);
20611 
20612  if (z_createMountTable() == -1)
20613   return;
20614 
20615  altroot = zonecfg_get_root();
20616  arlen = strlen(altroot);
20617  outside_altroot = B_FALSE;
20618  for (;;) {
20619   struct mnttab *mnp;
20620 
20621   /* Search in reverse order to find longest match */
20622   for (i = mountTableSize; i > 0; i--) {
20623    mnp = &mountTable[i - 1];
20624    if (mnp->mnt_fstype == 0L ||
20625        mnp->mnt_mountp == 0L ||
20626        mnp->mnt_special == 0L)
20627     continue;
20628    len = strlen(mnp->mnt_mountp);
20629    if (strncmp(mnp->mnt_mountp, path, len) == 0 &&
20630        (path[len] == '/' || path[len] == '\0'))
20631     break;
20632   }
20633   if (i <= 0)
20634    break;
20635 
20636   /* If it's not a lofs then we're done */
20637   if (strcmp(mnp->mnt_fstype, "lofs") != 0)
20638    break;
20639 
20640   if (outside_altroot) {
20641    char *cp;
20642    int olen = sizeof ("ro") - 1;
20643 
20644    /*
20645 			 * If we run into a read-only mount outside of the
20646 			 * alternate root environment, then the user doesn't
20647 			 * want this path to be made read-write.
20648 			 */
20649    if (mnp->mnt_mntopts != 0L &&
20650        (cp = strstr(mnp->mnt_mntopts, "ro")) !=
20651        0L &&
20652        (cp == mnp->mnt_mntopts || cp[-1] == ',') &&
20653        (cp[olen] == '\0' || cp[olen] == ',')) {
20654     break;
20655    }
20656   } else if (arlen > 0 &&
20657       (strncmp(mnp->mnt_special, altroot, arlen) != 0 ||
20658       (mnp->mnt_special[arlen] != '\0' &&
20659       mnp->mnt_special[arlen] != '/'))) {
20660    outside_altroot = B_TRUE;
20661   }
20662   /* use temporary buffer because new path might be longer */
20663   (void) snprintf(tmppath, sizeof (tmppath), "%s%s",
20664       mnp->mnt_special, path + len);
20665   if ((len = resolvepath(tmppath, path, pathlen)) == -1)
20666    break;
20667   path[len] = '\0';
20668  }
20669 }
20670