1 # 1 "../common/zones_str.c"
2 # 1 "<built-in>"
3 # 1 "<command-line>"
4 # 1 "../common/zones_str.c"
5 /*
6  * CDDL HEADER START
7  *
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License (the "License").
10  * You may not use this file except in compliance with the License.
11  *
12  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13  * or http://www.opensolaris.org/os/licensing.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19  * If applicable, add the following below this CDDL HEADER, with the
20  * fields enclosed by brackets "[]" replaced with your own identifying
21  * information: Portions Copyright [yyyy] [name of copyright owner]
22  *
23  * CDDL HEADER END
24  */
25 /*
26  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
27  * Use is subject to license terms.
28  */
29 
30 
31 
32 /*
33  * Module:	zones_str.c
34  * Group:	libinstzones
35  * Description:	Private functions used by zones library functions to manipulate
36  *		strings
37  *
38  * Public Methods:
39  *
40  * _z_strAddToken - Add a token to a string
41  * _z_strContainsToken - Does a given string contain a specified substring
42  * _z_strGetToken - Get a separator delimited token from a string
43  * _z_strGetToken_r - Get separator delimited token from string to fixed buffer
44  * _z_strPrintf - Create string from printf style format and arguments
45  * _z_strPrintf_r - Create string from printf style format and arguments
46  * _z_strRemoveLeadingWhitespace - Remove leading whitespace from string
47  * _z_strRemoveToken - Remove a token from a string
48  */
49 
50 /*
51  * System includes
52  */
53 
54 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
55 /*
56  * CDDL HEADER START
57  *
58  * The contents of this file are subject to the terms of the
59  * Common Development and Distribution License (the "License").
60  * You may not use this file except in compliance with the License.
61  *
62  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
63  * or http://www.opensolaris.org/os/licensing.
64  * See the License for the specific language governing permissions
65  * and limitations under the License.
66  *
67  * When distributing Covered Code, include this CDDL HEADER in each
68  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
69  * If applicable, add the following below this CDDL HEADER, with the
70  * fields enclosed by brackets "[]" replaced with your own identifying
71  * information: Portions Copyright [yyyy] [name of copyright owner]
72  *
73  * CDDL HEADER END
74  */
75 
76 /*
77  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
78  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
79  */
80 
81 /*	Copyright (c) 1988 AT&T	*/
82 /*	  All Rights Reserved  	*/
83 
84 /*
85  * User-visible pieces of the ANSI C standard I/O package.
86  */
87 
88 
89 
90 
91 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
92 /*
93  * CDDL HEADER START
94  *
95  * The contents of this file are subject to the terms of the
96  * Common Development and Distribution License (the "License").
97  * You may not use this file except in compliance with the License.
98  *
99  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
100  * or http://www.opensolaris.org/os/licensing.
101  * See the License for the specific language governing permissions
102  * and limitations under the License.
103  *
104  * When distributing Covered Code, include this CDDL HEADER in each
105  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
106  * If applicable, add the following below this CDDL HEADER, with the
107  * fields enclosed by brackets "[]" replaced with your own identifying
108  * information: Portions Copyright [yyyy] [name of copyright owner]
109  *
110  * CDDL HEADER END
111  */
112 
113 /*
114  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
115  * Copyright 2016 Joyent, Inc.
116  *
117  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
118  * Use is subject to license terms.
119  */
120 
121 
122 
123 
124 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1
125 /*
126  * CDDL HEADER START
127  *
128  * The contents of this file are subject to the terms of the
129  * Common Development and Distribution License, Version 1.0 only
130  * (the "License").  You may not use this file except in compliance
131  * with the License.
132  *
133  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
134  * or http://www.opensolaris.org/os/licensing.
135  * See the License for the specific language governing permissions
136  * and limitations under the License.
137  *
138  * When distributing Covered Code, include this CDDL HEADER in each
139  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
140  * If applicable, add the following below this CDDL HEADER, with the
141  * fields enclosed by brackets "[]" replaced with your own identifying
142  * information: Portions Copyright [yyyy] [name of copyright owner]
143  *
144  * CDDL HEADER END
145  */
146 /*
147  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
148  * Use is subject to license terms.
149  */
150 /*
151  * Copyright 2015 EveryCity Ltd. All rights reserved.
152  */
153 
154 
155 
156 
157 /*
158  * This file contains definitions designed to enable different compilers
159  * to be used harmoniously on Solaris systems.
160  */
161 
162 
163 
164 
165 
166 /*
167  * Allow for version tests for compiler bugs and features.
168  */
169 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
170 /*
171  * analogous to lint's PRINTFLIKEn
172  */
173 
174 
175 
176 
177 
178 /*
179  * Handle the kernel printf routines that can take '%b' too
180  */
181 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
182 /*
183  * This one's pretty obvious -- the function never returns
184  */
185 
186 
187 /*
188  * The function is 'extern inline' and expects GNU C89 behaviour, not C99
189  * behaviour.
190  *
191  * Should only be used on 'extern inline' definitions for GCC.
192  */
193 
194 
195 
196 
197 
198 
199 /*
200  * The function has control flow such that it may return multiple times (in
201  * the manner of setjmp or vfork)
202  */
203 
204 
205 
206 
207 
208 
209 /*
210  * This is an appropriate label for functions that do not
211  * modify their arguments, e.g. strlen()
212  */
213 
214 
215 /*
216  * This is a stronger form of __pure__. Can be used for functions
217  * that do not modify their arguments and don't depend on global
218  * memory.
219  */
220 
221 
222 
223 
224 /*
225  * This attribute, attached to a variable, means that the variable is meant to
226  * be possibly unused. GCC will not produce a warning for this variable.
227  */
228 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
229 /*
230  * Shorthand versions for readability
231  */
232 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
233 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
234 /*
235  * CDDL HEADER START
236  *
237  * The contents of this file are subject to the terms of the
238  * Common Development and Distribution License (the "License").
239  * You may not use this file except in compliance with the License.
240  *
241  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
242  * or http://www.opensolaris.org/os/licensing.
243  * See the License for the specific language governing permissions
244  * and limitations under the License.
245  *
246  *
247  * When distributing Covered Code, include this CDDL HEADER in each
248  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
249  * If applicable, add the following below this CDDL HEADER, with the
250  * fields enclosed by brackets "[]" replaced with your own identifying
251  * information: Portions Copyright [yyyy] [name of copyright owner]
252  *
253  * CDDL HEADER END
254  */
255 
256 /*
257  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
258  * Use is subject to license terms.
259  * Copyright 2016 Joyent, Inc.
260  */
261 
262 
263 
264 
265 /*
266  * This header file serves to group a set of well known defines and to
267  * set these for each instruction set architecture.  These defines may
268  * be divided into two groups;  characteristics of the processor and
269  * implementation choices for Solaris on a processor.
270  *
271  * Processor Characteristics:
272  *
273  * _LITTLE_ENDIAN / _BIG_ENDIAN:
274  *	The natural byte order of the processor.  A pointer to an int points
275  *	to the least/most significant byte of that int.
276  *
277  * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
278  *	The processor specific direction of stack growth.  A push onto the
279  *	stack increases/decreases the stack pointer, so it stores data at
280  *	successively higher/lower addresses.  (Stackless machines ignored
281  *	without regrets).
282  *
283  * _LONG_LONG_HTOL / _LONG_LONG_LTOH:
284  *	A pointer to a long long points to the most/least significant long
285  *	within that long long.
286  *
287  * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
288  *	The C compiler assigns bit fields from the high/low to the low/high end
289  *	of an int (most to least significant vs. least to most significant).
290  *
291  * _IEEE_754:
292  *	The processor (or supported implementations of the processor)
293  *	supports the ieee-754 floating point standard.  No other floating
294  *	point standards are supported (or significant).  Any other supported
295  *	floating point formats are expected to be cased on the ISA processor
296  *	symbol.
297  *
298  * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
299  *	The C Compiler implements objects of type `char' as `unsigned' or
300  *	`signed' respectively.  This is really an implementation choice of
301  *	the compiler writer, but it is specified in the ABI and tends to
302  *	be uniform across compilers for an instruction set architecture.
303  *	Hence, it has the properties of a processor characteristic.
304  *
305  * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
306  * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
307  * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
308  *	The ABI defines alignment requirements of each of the primitive
309  *	object types.  Some, if not all, may be hardware requirements as
310  * 	well.  The values are expressed in "byte-alignment" units.
311  *
312  * _MAX_ALIGNMENT:
313  *	The most stringent alignment requirement as specified by the ABI.
314  *	Equal to the maximum of all the above _XXX_ALIGNMENT values.
315  *
316  * _MAX_ALIGNMENT_TYPE:
317  * 	The name of the C type that has the value descried in _MAX_ALIGNMENT.
318  *
319  * _ALIGNMENT_REQUIRED:
320  *	True or false (1 or 0) whether or not the hardware requires the ABI
321  *	alignment.
322  *
323  * _LONG_LONG_ALIGNMENT_32
324  *	The 32-bit ABI supported by a 64-bit kernel may have different
325  *	alignment requirements for primitive object types.  The value of this
326  *	identifier is expressed in "byte-alignment" units.
327  *
328  * _HAVE_CPUID_INSN
329  *	This indicates that the architecture supports the 'cpuid'
330  *	instruction as defined by Intel.  (Intel allows other vendors
331  *	to extend the instruction for their own purposes.)
332  *
333  *
334  * Implementation Choices:
335  *
336  * _ILP32 / _LP64:
337  *	This specifies the compiler data type implementation as specified in
338  *	the relevant ABI.  The choice between these is strongly influenced
339  *	by the underlying hardware, but is not absolutely tied to it.
340  *	Currently only two data type models are supported:
341  *
342  *	_ILP32:
343  *		Int/Long/Pointer are 32 bits.  This is the historical UNIX
344  *		and Solaris implementation.  Due to its historical standing,
345  *		this is the default case.
346  *
347  *	_LP64:
348  *		Long/Pointer are 64 bits, Int is 32 bits.  This is the chosen
349  *		implementation for 64-bit ABIs such as SPARC V9.
350  *
351  *	_I32LPx:
352  *		A compilation environment where 'int' is 32-bit, and
353  *		longs and pointers are simply the same size.
354  *
355  *	In all cases, Char is 8 bits and Short is 16 bits.
356  *
357  * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
358  *	This specifies the form of the disk VTOC (or label):
359  *
360  *	_SUNOS_VTOC_8:
361  *		This is a VTOC form which is upwardly compatible with the
362  *		SunOS 4.x disk label and allows 8 partitions per disk.
363  *
364  *	_SUNOS_VTOC_16:
365  *		In this format the incore vtoc image matches the ondisk
366  *		version.  It allows 16 slices per disk, and is not
367  *		compatible with the SunOS 4.x disk label.
368  *
369  *	Note that these are not the only two VTOC forms possible and
370  *	additional forms may be added.  One possible form would be the
371  *	SVr4 VTOC form.  The symbol for that is reserved now, although
372  *	it is not implemented.
373  *
374  *	_SVR4_VTOC_16:
375  *		This VTOC form is compatible with the System V Release 4
376  *		VTOC (as implemented on the SVr4 Intel and 3b ports) with
377  *		16 partitions per disk.
378  *
379  *
380  * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
381  *	This describes the type of addresses used by system DMA:
382  *
383  *	_DMA_USES_PHYSADDR:
384  *		This type of DMA, used in the x86 implementation,
385  *		requires physical addresses for DMA buffers.  The 24-bit
386  *		addresses used by some legacy boards is the source of the
387  *		"low-memory" (<16MB) requirement for some devices using DMA.
388  *
389  *	_DMA_USES_VIRTADDR:
390  *		This method of DMA allows the use of virtual addresses for
391  *		DMA transfers.
392  *
393  * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
394  *      This indicates the presence/absence of an fdisk table.
395  *
396  *      _FIRMWARE_NEEDS_FDISK
397  *              The fdisk table is required by system firmware.  If present,
398  *              it allows a disk to be subdivided into multiple fdisk
399  *              partitions, each of which is equivalent to a separate,
400  *              virtual disk.  This enables the co-existence of multiple
401  *              operating systems on a shared hard disk.
402  *
403  *      _NO_FDISK_PRESENT
404  *              If the fdisk table is absent, it is assumed that the entire
405  *              media is allocated for a single operating system.
406  *
407  * _HAVE_TEM_FIRMWARE
408  *	Defined if this architecture has the (fallback) option of
409  *	using prom_* calls for doing I/O if a suitable kernel driver
410  *	is not available to do it.
411  *
412  * _DONT_USE_1275_GENERIC_NAMES
413  *		Controls whether or not device tree node names should
414  *		comply with the IEEE 1275 "Generic Names" Recommended
415  *		Practice. With _DONT_USE_GENERIC_NAMES, device-specific
416  *		names identifying the particular device will be used.
417  *
418  * __i386_COMPAT
419  *	This indicates whether the i386 ABI is supported as a *non-native*
420  *	mode for the platform.  When this symbol is defined:
421  *	-	32-bit xstat-style system calls are enabled
422  *	-	32-bit xmknod-style system calls are enabled
423  *	-	32-bit system calls use i386 sizes -and- alignments
424  *
425  *	Note that this is NOT defined for the i386 native environment!
426  *
427  * __x86
428  *	This is ONLY a synonym for defined(__i386) || defined(__amd64)
429  *	which is useful only insofar as these two architectures share
430  *	common attributes.  Analogous to __sparc.
431  *
432  * _PSM_MODULES
433  *	This indicates whether or not the implementation uses PSM
434  *	modules for processor support, reading /etc/mach from inside
435  *	the kernel to extract a list.
436  *
437  * _RTC_CONFIG
438  *	This indicates whether or not the implementation uses /etc/rtc_config
439  *	to configure the real-time clock in the kernel.
440  *
441  * _UNIX_KRTLD
442  *	This indicates that the implementation uses a dynamically
443  *	linked unix + krtld to form the core kernel image at boot
444  *	time, or (in the absence of this symbol) a prelinked kernel image.
445  *
446  * _OBP
447  *	This indicates the firmware interface is OBP.
448  *
449  * _SOFT_HOSTID
450  *	This indicates that the implementation obtains the hostid
451  *	from the file /etc/hostid, rather than from hardware.
452  */
453 
454 
455 
456 
457 
458 /*
459  * The following set of definitions characterize Solaris on AMD's
460  * 64-bit systems.
461  */
462 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
463 /*
464  * Define the appropriate "processor characteristics"
465  */
466 # 265 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
467 /*
468  * Different alignment constraints for the i386 ABI in compatibility mode
469  */
470 
471 
472 /*
473  * Define the appropriate "implementation choices".
474  */
475 # 290 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
476 /*
477  * The feature test macro __i386 is generic for all processors implementing
478  * the Intel 386 instruction set or a superset of it.  Specifically, this
479  * includes all members of the 386, 486, and Pentium family of processors.
480  */
481 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
482 
483 
484 
485 
486 
487 /*
488  * Values of _POSIX_C_SOURCE
489  *
490  *		undefined   not a POSIX compilation
491  *		1	    POSIX.1-1990 compilation
492  *		2	    POSIX.2-1992 compilation
493  *		199309L	    POSIX.1b-1993 compilation (Real Time)
494  *		199506L	    POSIX.1c-1995 compilation (POSIX Threads)
495  *		200112L	    POSIX.1-2001 compilation (Austin Group Revision)
496  *		200809L     POSIX.1-2008 compilation
497  */
498 
499 
500 
501 
502 /*
503  * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
504  * and _STDC_C99 are Sun implementation specific macros created in order to
505  * compress common standards specified feature test macros for easier reading.
506  * These macros should not be used by the application developer as
507  * unexpected results may occur. Instead, the user should reference
508  * standards(5) for correct usage of the standards feature test macros.
509  *
510  * __XOPEN_OR_POSIX     Used in cases where a symbol is defined by both
511  *                      X/Open or POSIX or in the negative, when neither
512  *                      X/Open or POSIX defines a symbol.
513  *
514  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
515  *                      by the compiler. For Sun compilers the value of
516  *                      __STDC__ is either 1, 0, or not defined based on the
517  *                      compilation mode (see cc(1)). When the value of
518  *                      __STDC__ is 1 and in the absence of any other feature
519  *                      test macros, the namespace available to the application
520  *                      is limited to only those symbols defined by the C
521  *                      Standard. _STRICT_STDC provides a more readable means
522  *                      of identifying symbols defined by the standard, or in
523  *                      the negative, symbols that are extensions to the C
524  *                      Standard. See additional comments for GNU C differences.
525  *
526  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
527  *                      defined by the compiler and indicates the version of
528  *                      the C standard. A value of 199901L indicates a
529  *                      compiler that complies with ISO/IEC 9899:1999, other-
530  *                      wise known as the C99 standard.
531  *
532  * _STDC_C11		Like _STDC_C99 except that the value of __STDC_VERSION__
533  *                      is 201112L indicating a compiler that compiles with
534  *                      ISO/IEXC 9899:2011, otherwise known as the C11 standard.
535  *
536  * _STRICT_SYMBOLS	Used in cases where symbol visibility is restricted
537  *                      by the standards, and the user has not explicitly
538  *                      relaxed the strictness via __EXTENSIONS__.
539  */
540 
541 
542 
543 
544 
545 /*
546  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
547  * 99899:2011 specify the following predefined macro name:
548  *
549  * __STDC__	The integer constant 1, intended to indicate a conforming
550  *		implementation.
551  *
552  * Furthermore, a strictly conforming program shall use only those features
553  * of the language and library specified in these standards. A conforming
554  * implementation shall accept any strictly conforming program.
555  *
556  * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
557  * strictly conforming environments and __STDC__ to 0 for environments that
558  * use ANSI C semantics but allow extensions to the C standard. For non-ANSI
559  * C semantics, Sun's C compiler does not define __STDC__.
560  *
561  * The GNU C project interpretation is that __STDC__ should always be defined
562  * to 1 for compilation modes that accept ANSI C syntax regardless of whether
563  * or not extensions to the C standard are used. Violations of conforming
564  * behavior are conditionally flagged as warnings via the use of the
565  * -pedantic option. In addition to defining __STDC__ to 1, the GNU C
566  * compiler also defines __STRICT_ANSI__ as a means of specifying strictly
567  * conforming environments using the -ansi or -std=<standard> options.
568  *
569  * In the absence of any other compiler options, Sun and GNU set the value
570  * of __STDC__ as follows when using the following options:
571  *
572  *				Value of __STDC__  __STRICT_ANSI__
573  *
574  * cc -Xa (default)			0	      undefined
575  * cc -Xt (transitional)		0             undefined
576  * cc -Xc (strictly conforming)		1	      undefined
577  * cc -Xs (K&R C)		    undefined	      undefined
578  *
579  * gcc (default)			1	      undefined
580  * gcc -ansi, -std={c89, c99,...)  	1              defined
581  * gcc -traditional (K&R)	    undefined	      undefined
582  *
583  * The default compilation modes for Sun C compilers versus GNU C compilers
584  * results in a differing value for __STDC__ which results in a more
585  * restricted namespace when using Sun compilers. To allow both GNU and Sun
586  * interpretations to peacefully co-exist, we use the following Sun
587  * implementation _STRICT_STDC_ macro:
588  */
589 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
590 /*
591  * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
592  */
593 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
594 /*
595  * Use strict symbol visibility.
596  */
597 
598 
599 
600 
601 
602 /*
603  * Large file interfaces:
604  *
605  *	_LARGEFILE_SOURCE
606  *		1		large file-related additions to POSIX
607  *				interfaces requested (fseeko, etc.)
608  *	_LARGEFILE64_SOURCE
609  *		1		transitional large-file-related interfaces
610  *				requested (seek64, stat64, etc.)
611  *
612  * The corresponding announcement macros are respectively:
613  *	_LFS_LARGEFILE
614  *	_LFS64_LARGEFILE
615  * (These are set in <unistd.h>.)
616  *
617  * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
618  * well.
619  *
620  * The large file interfaces are made visible regardless of the initial values
621  * of the feature test macros under certain circumstances:
622  *    -	If no explicit standards-conforming environment is requested (neither
623  *	of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
624  *	__STDC__ does not imply standards conformance).
625  *    -	Extended system interfaces are explicitly requested (__EXTENSIONS__
626  * 	is defined).
627  *    -	Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
628  *	defined).  (Note that this dependency is an artifact of the current
629  *	kernel implementation and may change in future releases.)
630  */
631 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
632 /*
633  * Large file compilation environment control:
634  *
635  * The setting of _FILE_OFFSET_BITS controls the size of various file-related
636  * types and governs the mapping between file-related source function symbol
637  * names and the corresponding binary entry points.
638  *
639  * In the 32-bit environment, the default value is 32; if not set, set it to
640  * the default here, to simplify tests in other headers.
641  *
642  * In the 64-bit compilation environment, the only value allowed is 64.
643  */
644 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
645 /*
646  * Use of _XOPEN_SOURCE
647  *
648  * The following X/Open specifications are supported:
649  *
650  * X/Open Portability Guide, Issue 3 (XPG3)
651  * X/Open CAE Specification, Issue 4 (XPG4)
652  * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
653  * X/Open CAE Specification, Issue 5 (XPG5)
654  * Open Group Technical Standard, Issue 6 (XPG6), also referred to as
655  *    IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
656  * Open Group Technical Standard, Issue 7 (XPG7), also referred to as
657  *    IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
658  *
659  * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
660  * XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
661  *     Version 2 (SUSv2)
662  * XPG6 is the result of a merge of the X/Open and POSIX specifications
663  *     and as such is also referred to as IEEE Std. 1003.1-2001 in
664  *     addition to UNIX 03 and SUSv3.
665  * XPG7 is also referred to as UNIX 08 and SUSv4.
666  *
667  * When writing a conforming X/Open application, as per the specification
668  * requirements, the appropriate feature test macros must be defined at
669  * compile time. These are as follows. For more info, see standards(5).
670  *
671  * Feature Test Macro				     Specification
672  * ------------------------------------------------  -------------
673  * _XOPEN_SOURCE                                         XPG3
674  * _XOPEN_SOURCE && _XOPEN_VERSION = 4                   XPG4
675  * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1           XPG4v2
676  * _XOPEN_SOURCE = 500                                   XPG5
677  * _XOPEN_SOURCE = 600  (or POSIX_C_SOURCE=200112L)      XPG6
678  * _XOPEN_SOURCE = 700  (or POSIX_C_SOURCE=200809L)      XPG7
679  *
680  * In order to simplify the guards within the headers, the following
681  * implementation private test macros have been created. Applications
682  * must NOT use these private test macros as unexpected results will
683  * occur.
684  *
685  * Note that in general, the use of these private macros is cumulative.
686  * For example, the use of _XPG3 with no other restrictions on the X/Open
687  * namespace will make the symbols visible for XPG3 through XPG6
688  * compilation environments. The use of _XPG4_2 with no other X/Open
689  * namespace restrictions indicates that the symbols were introduced in
690  * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
691  * environments, but not for XPG3 or XPG4 compilation environments.
692  *
693  * _XPG3    X/Open Portability Guide, Issue 3 (XPG3)
694  * _XPG4    X/Open CAE Specification, Issue 4 (XPG4)
695  * _XPG4_2  X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
696  * _XPG5    X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
697  * _XPG6    Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
698  * _XPG7    Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
699  */
700 
701 /* X/Open Portability Guide, Issue 3 */
702 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
703 /*
704  * _XOPEN_VERSION is defined by the X/Open specifications and is not
705  * normally defined by the application, except in the case of an XPG4
706  * application.  On the implementation side, _XOPEN_VERSION defined with
707  * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
708  * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
709  * _XOPEN_VERSION  defined with a value of 500 indicates an XPG5 (UNIX 98)
710  * application and with a value of 600 indicates an XPG6 (UNIX 03)
711  * application and with a value of 700 indicates an XPG7 (UNIX 08).
712  * The appropriate version is determined by the use of the
713  * feature test macros described earlier.  The value of _XOPEN_VERSION
714  * defaults to 3 otherwise indicating support for XPG3 applications.
715  */
716 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
717 /*
718  * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
719  * conforming environments.  ISO 9899:1999 says it does.
720  *
721  * The presence of _LONGLONG_TYPE says "long long exists" which is therefore
722  * defined in all but strictly conforming environments that disallow it.
723  */
724 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
725 /*
726  * The following macro defines a value for the ISO C99 restrict
727  * keyword so that _RESTRICT_KYWD resolves to "restrict" if
728  * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
729  * if any other compiler is used. This allows for the use of single
730  * prototype declarations regardless of compiler version.
731  */
732 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
733 /*
734  * The following macro defines a value for the ISO C11 _Noreturn
735  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
736  * an ISO C11 compiler is used and "" (null string) if any other
737  * compiler is used. This allows for the use of single prototype
738  * declarations regardless of compiler version.
739  */
740 
741 
742 
743 
744 
745 
746 
747 /*
748  * The following macro indicates header support for the ANSI C++
749  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
750  */
751 
752 
753 /*
754  * The following macro indicates header support for the C99 standard,
755  * ISO/IEC 9899:1999, Programming Languages - C.
756  */
757 
758 
759 /*
760  * The following macro indicates header support for the C99 standard,
761  * ISO/IEC 9899:2011, Programming Languages - C.
762  */
763 
764 
765 /*
766  * The following macro indicates header support for DTrace. The value is an
767  * integer that corresponds to the major version number for DTrace.
768  */
769 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
770 
771 
772 
773 
774 
775 /*
776  * Do all of our 'redefine_extname' processing before
777  * declarations of the associated functions are seen.
778  * This is necessary to keep gcc happy.
779  */
780 
781 
782 /* large file compilation environment setup */
783 # 63 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
784 /* In the LP64 compilation environment, all APIs are already large file */
785 
786 
787 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
788 #pragma redefine_extname fopen64 fopen
789 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
790 
791 
792 # 66 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
793 #pragma redefine_extname freopen64 freopen
794 # 66 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
795 
796 
797 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
798 #pragma redefine_extname tmpfile64 tmpfile
799 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
800 
801 
802 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
803 #pragma redefine_extname fgetpos64 fgetpos
804 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
805 
806 
807 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
808 #pragma redefine_extname fsetpos64 fsetpos
809 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
810 
811 
812 
813 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
814 #pragma redefine_extname fseeko64 fseeko
815 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
816 
817 
818 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
819 #pragma redefine_extname ftello64 ftello
820 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
821 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
822 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1
823 /*
824  * CDDL HEADER START
825  *
826  * The contents of this file are subject to the terms of the
827  * Common Development and Distribution License, Version 1.0 only
828  * (the "License").  You may not use this file except in compliance
829  * with the License.
830  *
831  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
832  * or http://www.opensolaris.org/os/licensing.
833  * See the License for the specific language governing permissions
834  * and limitations under the License.
835  *
836  * When distributing Covered Code, include this CDDL HEADER in each
837  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
838  * If applicable, add the following below this CDDL HEADER, with the
839  * fields enclosed by brackets "[]" replaced with your own identifying
840  * information: Portions Copyright [yyyy] [name of copyright owner]
841  *
842  * CDDL HEADER END
843  */
844 /*
845  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
846  * Copyright 2014 PALO, Richard.
847  *
848  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
849  * Use is subject to license terms.
850  */
851 
852 /*	Copyright (c) 1988 AT&T	*/
853 /*	  All Rights Reserved  	*/
854 
855 /*
856  * An application should not include this header directly.  Instead it
857  * should be included only through the inclusion of other Sun headers.
858  *
859  * The contents of this header is limited to identifiers specified in the
860  * C Standard.  Any new identifiers specified in future amendments to the
861  * C Standard must be placed in this header.  If these new identifiers
862  * are required to also be in the C++ Standard "std" namespace, then for
863  * anything other than macro definitions, corresponding "using" directives
864  * must also be added to <stdio.h>.
865  */
866 
867 /*
868  * User-visible pieces of the ANSI C standard I/O package.
869  */
870 
871 
872 
873 
874 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
875 /*
876  * CDDL HEADER START
877  *
878  * The contents of this file are subject to the terms of the
879  * Common Development and Distribution License (the "License").
880  * You may not use this file except in compliance with the License.
881  *
882  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
883  * or http://www.opensolaris.org/os/licensing.
884  * See the License for the specific language governing permissions
885  * and limitations under the License.
886  *
887  * When distributing Covered Code, include this CDDL HEADER in each
888  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
889  * If applicable, add the following below this CDDL HEADER, with the
890  * fields enclosed by brackets "[]" replaced with your own identifying
891  * information: Portions Copyright [yyyy] [name of copyright owner]
892  *
893  * CDDL HEADER END
894  */
895 
896 /*
897  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
898  * Copyright 2016 Joyent, Inc.
899  *
900  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
901  * Use is subject to license terms.
902  */
903 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
904 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
905 /*
906  * This file and its contents are supplied under the terms of the
907  * Common Development and Distribution License ("CDDL"), version 1.0.
908  * You may only use this file in accordance with the terms of version
909  * 1.0 of the CDDL.
910  *
911  * A full copy of the text of the CDDL should have accompanied this
912  * source.  A copy of the CDDL is also available via the Internet at
913  * http://www.illumos.org/license/CDDL.
914  */
915 
916 /*
917  * Copyright 2014-2016 PALO, Richard.
918  */
919 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
920 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
921 /*
922  * CDDL HEADER START
923  *
924  * The contents of this file are subject to the terms of the
925  * Common Development and Distribution License, Version 1.0 only
926  * (the "License").  You may not use this file except in compliance
927  * with the License.
928  *
929  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
930  * or http://www.opensolaris.org/os/licensing.
931  * See the License for the specific language governing permissions
932  * and limitations under the License.
933  *
934  * When distributing Covered Code, include this CDDL HEADER in each
935  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
936  * If applicable, add the following below this CDDL HEADER, with the
937  * fields enclosed by brackets "[]" replaced with your own identifying
938  * information: Portions Copyright [yyyy] [name of copyright owner]
939  *
940  * CDDL HEADER END
941  */
942 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
943 /*	  All Rights Reserved	*/
944 
945 
946 /*
947  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
948  *
949  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
950  * Use is subject to license terms.
951  */
952 
953 
954 
955 
956 /*
957  * An application should not include this header directly.  Instead it
958  * should be included only through the inclusion of other Sun headers.
959  *
960  * The purpose of this header is to provide the type definitions for
961  * the va_list argument used by a number of printf and printf like
962  * functions. The headers that define these various function prototypes
963  * #include this header directly. These include but are not necessarily
964  * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and
965  * <syslog.h>. The type definitions included in this header are for
966  * the benefit of consumers of va_list.
967  *
968  * Any application that accepts variable argument lists must as documented,
969  * include either <varargs.h> or the preferred <stdarg.h>. Doing so will
970  * pull in the appropriate compiler protocols defined in <sys/va_impl.h>
971  * which is in turn is included by <varargs.h> and <stdarg.h>. See comments
972  * in <sys/va_impl.h> for more detailed information regarding implementation
973  * and compiler specific protocols.
974  */
975 
976 /*
977  * The common definitions exported by this header or compilers using
978  * this header are:
979  *
980  * the identifier __builtin_va_alist for the variable list pseudo parameter
981  * the type __va_alist_type for the variable list pseudo parameter
982  * the type __va_list defining the type of the variable list iterator
983  *
984  * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros
985  * (__GNUC__) and processor macros (e.g. __amd64) are intended to be
986  * defined by the compilation system, not the user of the system.
987  */
988 
989 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
990 /*
991  * CDDL HEADER START
992  *
993  * The contents of this file are subject to the terms of the
994  * Common Development and Distribution License (the "License").
995  * You may not use this file except in compliance with the License.
996  *
997  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
998  * or http://www.opensolaris.org/os/licensing.
999  * See the License for the specific language governing permissions
1000  * and limitations under the License.
1001  *
1002  *
1003  * When distributing Covered Code, include this CDDL HEADER in each
1004  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1005  * If applicable, add the following below this CDDL HEADER, with the
1006  * fields enclosed by brackets "[]" replaced with your own identifying
1007  * information: Portions Copyright [yyyy] [name of copyright owner]
1008  *
1009  * CDDL HEADER END
1010  */
1011 
1012 /*
1013  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
1014  * Use is subject to license terms.
1015  * Copyright 2016 Joyent, Inc.
1016  */
1017 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2
1018 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h"
1019 typedef __builtin_va_list __gnuc_va_list;
1020 /*
1021  * XX64 This seems unnecessary .. but is needed because vcmn_err is
1022  *	defined with __va_list instead of plain old va_list.
1023  *	Perhaps that should be fixed!
1024  */
1025 typedef __builtin_va_list __va_list;
1026 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1027 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1
1028 /*
1029  * CDDL HEADER START
1030  *
1031  * The contents of this file are subject to the terms of the
1032  * Common Development and Distribution License, Version 1.0 only
1033  * (the "License").  You may not use this file except in compliance
1034  * with the License.
1035  *
1036  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1037  * or http://www.opensolaris.org/os/licensing.
1038  * See the License for the specific language governing permissions
1039  * and limitations under the License.
1040  *
1041  * When distributing Covered Code, include this CDDL HEADER in each
1042  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1043  * If applicable, add the following below this CDDL HEADER, with the
1044  * fields enclosed by brackets "[]" replaced with your own identifying
1045  * information: Portions Copyright [yyyy] [name of copyright owner]
1046  *
1047  * CDDL HEADER END
1048  */
1049 /*
1050  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1051  * Use is subject to license terms.
1052  */
1053 
1054 
1055 
1056 
1057 #pragma ident "%Z%%M%	%I%	%E% SMI"
1058 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h"
1059 typedef struct __FILE __FILE;
1060 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1061 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1
1062 /*
1063  * CDDL HEADER START
1064  *
1065  * The contents of this file are subject to the terms of the
1066  * Common Development and Distribution License (the "License").
1067  * You may not use this file except in compliance with the License.
1068  *
1069  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1070  * or http://www.opensolaris.org/os/licensing.
1071  * See the License for the specific language governing permissions
1072  * and limitations under the License.
1073  *
1074  * When distributing Covered Code, include this CDDL HEADER in each
1075  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1076  * If applicable, add the following below this CDDL HEADER, with the
1077  * fields enclosed by brackets "[]" replaced with your own identifying
1078  * information: Portions Copyright [yyyy] [name of copyright owner]
1079  *
1080  * CDDL HEADER END
1081  */
1082 
1083 /*
1084  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1085  * Use is subject to license terms.
1086  */
1087 
1088 
1089 
1090 
1091 #pragma ident "%Z%%M%	%I%	%E% SMI"
1092 
1093 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
1094 /*
1095  * CDDL HEADER START
1096  *
1097  * The contents of this file are subject to the terms of the
1098  * Common Development and Distribution License (the "License").
1099  * You may not use this file except in compliance with the License.
1100  *
1101  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1102  * or http://www.opensolaris.org/os/licensing.
1103  * See the License for the specific language governing permissions
1104  * and limitations under the License.
1105  *
1106  *
1107  * When distributing Covered Code, include this CDDL HEADER in each
1108  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1109  * If applicable, add the following below this CDDL HEADER, with the
1110  * fields enclosed by brackets "[]" replaced with your own identifying
1111  * information: Portions Copyright [yyyy] [name of copyright owner]
1112  *
1113  * CDDL HEADER END
1114  */
1115 
1116 /*
1117  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
1118  * Use is subject to license terms.
1119  * Copyright 2016 Joyent, Inc.
1120  */
1121 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2
1122 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h"
1123 struct __FILE {
1124  long __pad[16];
1125 };
1126 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1127 
1128 /*
1129  * If feature test macros are set that enable interfaces that use types
1130  * defined in <sys/types.h>, get those types by doing the include.
1131  *
1132  * Note that in asking for the interfaces associated with this feature test
1133  * macro one also asks for definitions of the POSIX types.
1134  */
1135 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1136 typedef __FILE FILE;
1137 
1138 
1139 
1140 
1141 
1142 typedef unsigned long size_t; /* size of something in bytes */
1143 
1144 
1145 
1146 
1147 
1148 
1149 typedef long fpos_t;
1150 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1151 /*
1152  * The value of _NFILE is defined in the Processor Specific ABI.  The value
1153  * is chosen for historical reasons rather than for truly processor related
1154  * attribute.  Note that the SPARC Processor Specific ABI uses the common
1155  * UNIX historical value of 20 so it is allowed to fall through.
1156  */
1157 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1158 extern __FILE __iob[20];
1159 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1160 extern int remove(const char *);
1161 extern int rename(const char *, const char *);
1162 extern FILE *tmpfile(void);
1163 extern char *tmpnam(char *);
1164 extern int fclose(FILE *);
1165 extern int fflush(FILE *);
1166 extern FILE *fopen(const char *, const char *);
1167 extern FILE *freopen(const char *,
1168    const char *, FILE *);
1169 extern void setbuf(FILE *, char *);
1170 extern int setvbuf(FILE *, char *, int,
1171    size_t);
1172 /* PRINTFLIKE2 */
1173 extern int fprintf(FILE *, const char *, ...);
1174 /* SCANFLIKE2 */
1175 extern int fscanf(FILE *, const char *, ...);
1176 /* PRINTFLIKE1 */
1177 extern int printf(const char *, ...);
1178 /* SCANFLIKE1 */
1179 extern int scanf(const char *, ...);
1180 /* PRINTFLIKE2 */
1181 extern int sprintf(char *, const char *, ...);
1182 /* SCANFLIKE2 */
1183 extern int sscanf(const char *,
1184    const char *, ...);
1185 extern int vfprintf(FILE *, const char *,
1186    __va_list);
1187 extern int vprintf(const char *, __va_list);
1188 extern int vsprintf(char *, const char *,
1189    __va_list);
1190 extern int fgetc(FILE *);
1191 extern char *fgets(char *, int, FILE *);
1192 extern int fputc(int, FILE *);
1193 extern int fputs(const char *, FILE *);
1194 
1195 
1196 extern int getc(FILE *);
1197 extern int putc(int, FILE *);
1198 
1199 
1200 
1201 extern int getchar(void);
1202 extern int putchar(int);
1203 
1204 
1205 /*
1206  * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11
1207  * environment has been requested, we remove it.
1208  */
1209 
1210 extern char *gets(char *);
1211 
1212 extern int puts(const char *);
1213 extern int ungetc(int, FILE *);
1214 extern size_t fread(void *, size_t, size_t,
1215  FILE *);
1216 extern size_t fwrite(const void *, size_t, size_t,
1217  FILE *);
1218 
1219 extern int fgetpos(FILE *, fpos_t *);
1220 extern int fsetpos(FILE *, const fpos_t *);
1221 
1222 extern int fseek(FILE *, long, int);
1223 extern long ftell(FILE *);
1224 extern void rewind(FILE *);
1225 
1226 
1227 extern void clearerr(FILE *);
1228 extern int feof(FILE *);
1229 extern int ferror(FILE *);
1230 
1231 extern void perror(const char *);
1232 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
1233 
1234 /*
1235  * If feature test macros are set that enable interfaces that use types
1236  * defined in <sys/types.h>, get those types by doing the include.
1237  *
1238  * Note that in asking for the interfaces associated with this feature test
1239  * macro one also asks for definitions of the POSIX types.
1240  */
1241 
1242 /*
1243  * Allow global visibility for symbols defined in
1244  * C++ "std" namespace in <iso/stdio_iso.h>.
1245  */
1246 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1247 /*
1248  * This header needs to be included here because it relies on the global
1249  * visibility of FILE and size_t in the C++ environment.
1250  */
1251 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1
1252 /*
1253  * CDDL HEADER START
1254  *
1255  * The contents of this file are subject to the terms of the
1256  * Common Development and Distribution License, Version 1.0 only
1257  * (the "License").  You may not use this file except in compliance
1258  * with the License.
1259  *
1260  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1261  * or http://www.opensolaris.org/os/licensing.
1262  * See the License for the specific language governing permissions
1263  * and limitations under the License.
1264  *
1265  * When distributing Covered Code, include this CDDL HEADER in each
1266  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1267  * If applicable, add the following below this CDDL HEADER, with the
1268  * fields enclosed by brackets "[]" replaced with your own identifying
1269  * information: Portions Copyright [yyyy] [name of copyright owner]
1270  *
1271  * CDDL HEADER END
1272  */
1273 /*
1274  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1275  *
1276  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1277  * Use is subject to license terms.
1278  */
1279 
1280 /*
1281  * An application should not include this header directly.  Instead it
1282  * should be included only through the inclusion of other Sun headers.
1283  *
1284  * The contents of this header is limited to identifiers specified in
1285  * the C99 standard and in conflict with the C++ implementation of the
1286  * standard header.  The C++ standard may adopt the C99 standard at
1287  * which point it is expected that the symbols included here will
1288  * become part of the C++ std namespace.
1289  */
1290 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
1291 /*
1292  * The following have been added as a result of the ISO/IEC 9899:1999
1293  * standard. For a strictly conforming C application, visibility is
1294  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1295  * For non-strictly conforming C applications, there are no restrictions
1296  * on the C namespace.
1297  */
1298 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
1299 extern int vfscanf(FILE *, const char *, __va_list);
1300 extern int vscanf(const char *, __va_list);
1301 extern int vsscanf(const char *, const char *,
1302   __va_list);
1303 
1304 
1305 
1306 
1307 extern int snprintf(char *, size_t, const char *,
1308  ...);
1309 extern int vsnprintf(char *, size_t, const char *,
1310  __va_list);
1311 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
1312 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1313 typedef long off_t;
1314 
1315 
1316 
1317 
1318 
1319 typedef off_t off64_t;
1320 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1321 typedef fpos_t fpos64_t;
1322 
1323 
1324 
1325 
1326 
1327 /*
1328  * XPG4 requires that va_list be defined in <stdio.h> "as described in
1329  * <stdarg.h>".  ANSI-C and POSIX require that the namespace of <stdio.h>
1330  * not be polluted with this name.
1331  */
1332 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1333 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1334 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1335 extern unsigned char _sibuf[], _sobuf[];
1336 
1337 
1338 /* large file compilation environment setup */
1339 # 241 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1340 /* In the LP64 compilation environment, all APIs are already large file */
1341 # 259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1342 typedef long ssize_t; /* size of something in bytes or -1 */
1343 # 268 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1344 extern char *tmpnam_r(char *);
1345 
1346 
1347 
1348 
1349 extern int fcloseall(void);
1350 extern void setbuffer(FILE *, char *, size_t);
1351 extern int setlinebuf(FILE *);
1352 /* PRINTFLIKE2 */
1353 extern int asprintf(char **, const char *, ...);
1354 /* PRINTFLIKE2 */
1355 extern int vasprintf(char **, const char *, __va_list);
1356 
1357 
1358 
1359 
1360  /* || defined(_XPG7) */
1361 extern ssize_t getdelim(char **, size_t *,
1362  int, FILE *);
1363 extern ssize_t getline(char **, size_t *,
1364  FILE *);
1365 
1366 
1367 /*
1368  * The following are known to POSIX and XOPEN, but not to ANSI-C.
1369  */
1370 
1371 
1372 
1373 extern FILE *fdopen(int, const char *);
1374 extern char *ctermid(char *);
1375 extern int fileno(FILE *);
1376 
1377 
1378 
1379 /*
1380  * The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
1381  */
1382 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1383 /*
1384  * The following are known to XOPEN, but not to ANSI-C or POSIX.
1385  */
1386 
1387 
1388 extern FILE *popen(const char *, const char *);
1389 extern char *tempnam(const char *, const char *);
1390 extern int pclose(FILE *);
1391 
1392 extern int getsubopt(char **, char *const *, char **);
1393 
1394 
1395 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1396 
1397 extern char *cuserid(char *);
1398 extern int getopt(int, char *const *, const char *);
1399 extern char *optarg;
1400 extern int optind, opterr, optopt;
1401 extern int getw(FILE *);
1402 extern int putw(int, FILE *);
1403 
1404 
1405 
1406 
1407 /*
1408  * The following are defined as part of the Large File Summit interfaces.
1409  */
1410 
1411 extern int fseeko(FILE *, off_t, int);
1412 extern off_t ftello(FILE *);
1413 
1414 
1415 /*
1416  * The following are defined as part of the transitional Large File Summit
1417  * interfaces.
1418  */
1419 
1420 
1421 extern FILE *fopen64(const char *, const char *);
1422 extern FILE *freopen64(const char *, const char *, FILE *);
1423 extern FILE *tmpfile64(void);
1424 extern int fgetpos64(FILE *, fpos64_t *);
1425 extern int fsetpos64(FILE *, const fpos64_t *);
1426 extern int fseeko64(FILE *, off64_t, int);
1427 extern off64_t ftello64(FILE *);
1428 
1429 
1430 /*
1431  * XPG7 symbols
1432  */
1433 
1434 extern FILE *fmemopen(void *, size_t,
1435       const char *);
1436 extern FILE *open_memstream(char **, size_t *);
1437 # 51 "../common/zones_str.c" 2
1438 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1
1439 /*
1440  * CDDL HEADER START
1441  *
1442  * The contents of this file are subject to the terms of the
1443  * Common Development and Distribution License (the "License").
1444  * You may not use this file except in compliance with the License.
1445  *
1446  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1447  * or http://www.opensolaris.org/os/licensing.
1448  * See the License for the specific language governing permissions
1449  * and limitations under the License.
1450  *
1451  * When distributing Covered Code, include this CDDL HEADER in each
1452  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1453  * If applicable, add the following below this CDDL HEADER, with the
1454  * fields enclosed by brackets "[]" replaced with your own identifying
1455  * information: Portions Copyright [yyyy] [name of copyright owner]
1456  *
1457  * CDDL HEADER END
1458  */
1459 
1460 /*
1461  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1462  * Copyright (c) 2013 Gary Mills
1463  *
1464  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
1465  */
1466 
1467 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
1468 
1469 /*	Copyright (c) 1988 AT&T	*/
1470 /*	  All Rights Reserved  	*/
1471 
1472 
1473 
1474 
1475 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1
1476 /*
1477  * CDDL HEADER START
1478  *
1479  * The contents of this file are subject to the terms of the
1480  * Common Development and Distribution License, Version 1.0 only
1481  * (the "License").  You may not use this file except in compliance
1482  * with the License.
1483  *
1484  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1485  * or http://www.opensolaris.org/os/licensing.
1486  * See the License for the specific language governing permissions
1487  * and limitations under the License.
1488  *
1489  * When distributing Covered Code, include this CDDL HEADER in each
1490  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1491  * If applicable, add the following below this CDDL HEADER, with the
1492  * fields enclosed by brackets "[]" replaced with your own identifying
1493  * information: Portions Copyright [yyyy] [name of copyright owner]
1494  *
1495  * CDDL HEADER END
1496  */
1497 /*
1498  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1499  * Copyright 2014 PALO, Richard.
1500  *
1501  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
1502  * Use is subject to license terms.
1503  */
1504 
1505 /*	Copyright (c) 1988 AT&T	*/
1506 /*	  All Rights Reserved  	*/
1507 
1508 
1509 /*
1510  * An application should not include this header directly.  Instead it
1511  * should be included only through the inclusion of other Sun headers.
1512  *
1513  * The contents of this header is limited to identifiers specified in the
1514  * C Standard.  Any new identifiers specified in future amendments to the
1515  * C Standard must be placed in this header.  If these new identifiers
1516  * are required to also be in the C++ Standard "std" namespace, then for
1517  * anything other than macro definitions, corresponding "using" directives
1518  * must also be added to <locale.h>.
1519  */
1520 
1521 
1522 
1523 
1524 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1525 /*
1526  * CDDL HEADER START
1527  *
1528  * The contents of this file are subject to the terms of the
1529  * Common Development and Distribution License (the "License").
1530  * You may not use this file except in compliance with the License.
1531  *
1532  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1533  * or http://www.opensolaris.org/os/licensing.
1534  * See the License for the specific language governing permissions
1535  * and limitations under the License.
1536  *
1537  * When distributing Covered Code, include this CDDL HEADER in each
1538  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1539  * If applicable, add the following below this CDDL HEADER, with the
1540  * fields enclosed by brackets "[]" replaced with your own identifying
1541  * information: Portions Copyright [yyyy] [name of copyright owner]
1542  *
1543  * CDDL HEADER END
1544  */
1545 
1546 /*
1547  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1548  * Copyright 2016 Joyent, Inc.
1549  *
1550  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1551  * Use is subject to license terms.
1552  */
1553 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
1554 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
1555 /*
1556  * This file and its contents are supplied under the terms of the
1557  * Common Development and Distribution License ("CDDL"), version 1.0.
1558  * You may only use this file in accordance with the terms of version
1559  * 1.0 of the CDDL.
1560  *
1561  * A full copy of the text of the CDDL should have accompanied this
1562  * source.  A copy of the CDDL is also available via the Internet at
1563  * http://www.illumos.org/license/CDDL.
1564  */
1565 
1566 /*
1567  * Copyright 2014-2016 PALO, Richard.
1568  */
1569 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
1570 
1571 
1572 
1573 
1574 
1575 unsigned char __mb_cur_max(void);
1576 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1577 typedef struct {
1578  int quot;
1579  int rem;
1580 } div_t;
1581 
1582 typedef struct {
1583  long quot;
1584  long rem;
1585 } ldiv_t;
1586 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1587 /*
1588  * wchar_t is a built-in type in standard C++ and as such is not
1589  * defined here when using standard C++. However, the GNU compiler
1590  * fixincludes utility nonetheless creates its own version of this
1591  * header for use by gcc and g++. In that version it adds a redundant
1592  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
1593  * header we need to include the following magic comment:
1594  *
1595  * we must use the C++ compiler's type
1596  *
1597  * The above comment should not be removed or changed until GNU
1598  * gcc/fixinc/inclhack.def is updated to bypass this header.
1599  */
1600 
1601 
1602 
1603 
1604 typedef int wchar_t;
1605 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1606 extern void abort(void) __attribute__((__noreturn__));
1607 extern int abs(int);
1608 extern int atexit(void (*)(void));
1609 extern double atof(const char *);
1610 extern int atoi(const char *);
1611 extern long int atol(const char *);
1612 extern void *bsearch(const void *, const void *, size_t, size_t,
1613  int (*)(const void *, const void *));
1614 
1615 
1616 
1617 
1618 
1619 
1620 extern void *calloc(size_t, size_t);
1621 extern div_t div(int, int);
1622 extern void exit(int)
1623  __attribute__((__noreturn__));
1624 extern void free(void *);
1625 extern char *getenv(const char *);
1626 extern long int labs(long);
1627 extern ldiv_t ldiv(long, long);
1628 extern void *malloc(size_t);
1629 extern int mblen(const char *, size_t);
1630 extern size_t mbstowcs(wchar_t *, const char *,
1631  size_t);
1632 extern int mbtowc(wchar_t *, const char *, size_t);
1633 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
1634 
1635 
1636 
1637 
1638 
1639 extern int rand(void);
1640 extern void *realloc(void *, size_t);
1641 extern void srand(unsigned int);
1642 extern double strtod(const char *, char **);
1643 extern long int strtol(const char *, char **, int);
1644 extern unsigned long int strtoul(const char *,
1645  char **, int);
1646 extern int system(const char *);
1647 extern int wctomb(char *, wchar_t);
1648 extern size_t wcstombs(char *, const wchar_t *,
1649  size_t);
1650 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1651 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1
1652 /*
1653  * CDDL HEADER START
1654  *
1655  * The contents of this file are subject to the terms of the
1656  * Common Development and Distribution License, Version 1.0 only
1657  * (the "License").  You may not use this file except in compliance
1658  * with the License.
1659  *
1660  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1661  * or http://www.opensolaris.org/os/licensing.
1662  * See the License for the specific language governing permissions
1663  * and limitations under the License.
1664  *
1665  * When distributing Covered Code, include this CDDL HEADER in each
1666  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1667  * If applicable, add the following below this CDDL HEADER, with the
1668  * fields enclosed by brackets "[]" replaced with your own identifying
1669  * information: Portions Copyright [yyyy] [name of copyright owner]
1670  *
1671  * CDDL HEADER END
1672  */
1673 /*
1674  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1675  *
1676  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1677  * Use is subject to license terms.
1678  */
1679 
1680 /*
1681  * An application should not include this header directly.  Instead it
1682  * should be included only through the inclusion of other Sun headers.
1683  *
1684  * The contents of this header is limited to identifiers specified in
1685  * the C99 standard and in conflict with the C++ implementation of the
1686  * standard header.  The C++ standard may adopt the C99 standard at
1687  * which point it is expected that the symbols included here will
1688  * become part of the C++ std namespace.
1689  */
1690 
1691 
1692 
1693 
1694 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1695 /*
1696  * CDDL HEADER START
1697  *
1698  * The contents of this file are subject to the terms of the
1699  * Common Development and Distribution License (the "License").
1700  * You may not use this file except in compliance with the License.
1701  *
1702  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1703  * or http://www.opensolaris.org/os/licensing.
1704  * See the License for the specific language governing permissions
1705  * and limitations under the License.
1706  *
1707  * When distributing Covered Code, include this CDDL HEADER in each
1708  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1709  * If applicable, add the following below this CDDL HEADER, with the
1710  * fields enclosed by brackets "[]" replaced with your own identifying
1711  * information: Portions Copyright [yyyy] [name of copyright owner]
1712  *
1713  * CDDL HEADER END
1714  */
1715 
1716 /*
1717  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1718  * Copyright 2016 Joyent, Inc.
1719  *
1720  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1721  * Use is subject to license terms.
1722  */
1723 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2
1724 
1725 
1726 
1727 
1728 
1729 /*
1730  * The following have been added as a result of the ISO/IEC 9899:1999
1731  * standard. For a strictly conforming C application, visibility is
1732  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1733  * For non-strictly conforming C applications, there are no restrictions
1734  * on the C namespace.
1735  */
1736 
1737 
1738 typedef struct {
1739  long long quot;
1740  long long rem;
1741 } lldiv_t;
1742 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h"
1743 extern void _Exit(int);
1744 extern float strtof(const char *, char **);
1745 extern long double strtold(const char *, char **);
1746 
1747 
1748 extern long long atoll(const char *);
1749 extern long long llabs(long long);
1750 extern lldiv_t lldiv(long long, long long);
1751 extern long long strtoll(const char *, char **,
1752  int);
1753 extern unsigned long long strtoull(const char *,
1754  char **, int);
1755 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1756 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1
1757 /*
1758  * This file and its contents are supplied under the terms of the
1759  * Common Development and Distribution License ("CDDL"), version 1.0.
1760  * You may only use this file in accordance with the terms of version
1761  * 1.0 of the CDDL.
1762  *
1763  * A full copy of the text of the CDDL should have accompanied this
1764  * source.  A copy of the CDDL is also available via the Internet at
1765  * http://www.illumos.org/license/CDDL.
1766  */
1767 
1768 /*
1769  * Copyright 2016 Joyent, Inc.
1770  */
1771 
1772 /*
1773  * An application should not include this header directly.  Instead it
1774  * should be included only through the inclusion of other illumos headers.
1775  *
1776  * The contents of this header is limited to identifiers specified in
1777  * the C11 standard and in conflict with the C++ implementation of the
1778  * standard header.  The C++ standard may adopt the C11 standard at
1779  * which point it is expected that the symbols included here will
1780  * become part of the C++ std namespace.
1781  */
1782 
1783 
1784 
1785 
1786 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1787 /*
1788  * CDDL HEADER START
1789  *
1790  * The contents of this file are subject to the terms of the
1791  * Common Development and Distribution License (the "License").
1792  * You may not use this file except in compliance with the License.
1793  *
1794  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1795  * or http://www.opensolaris.org/os/licensing.
1796  * See the License for the specific language governing permissions
1797  * and limitations under the License.
1798  *
1799  * When distributing Covered Code, include this CDDL HEADER in each
1800  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1801  * If applicable, add the following below this CDDL HEADER, with the
1802  * fields enclosed by brackets "[]" replaced with your own identifying
1803  * information: Portions Copyright [yyyy] [name of copyright owner]
1804  *
1805  * CDDL HEADER END
1806  */
1807 
1808 /*
1809  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1810  * Copyright 2016 Joyent, Inc.
1811  *
1812  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1813  * Use is subject to license terms.
1814  */
1815 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2
1816 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
1817 /*
1818  * The following have been added as a result of the ISO/IEC 9899:2011
1819  * standard. For a strictly conforming C application, visibility is
1820  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1821  * For non-strictly conforming C applications, there are no restrictions
1822  * on the C namespace.
1823  */
1824 
1825 /*
1826  * Work around fix-includes and other bad actors with using multiple headers.
1827  */
1828 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
1829 extern void *aligned_alloc(size_t, size_t);
1830 extern int at_quick_exit(void (*)(void));
1831 extern void quick_exit(int);
1832 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1833 
1834 
1835 
1836 
1837 
1838 /*
1839  * Allow global visibility for symbols defined in
1840  * C++ "std" namespace in <iso/stdlib_iso.h>.
1841  */
1842 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1843 /*
1844  * Allow global visibility for symbols defined in
1845  * C++ "std" namespace in <iso/stdlib_c11.h>.
1846  */
1847 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1848 typedef unsigned int uid_t; /* UID type		*/
1849 
1850 
1851 /* large file compilation environment setup */
1852 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1853 /* In the LP64 compilation environment, all APIs are already large file */
1854 
1855 
1856 
1857 
1858 # 125 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1859 #pragma redefine_extname mkstemp64 mkstemp
1860 # 125 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1861 
1862 
1863 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1864 #pragma redefine_extname mkstemps64 mkstemps
1865 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1866 
1867 
1868 # 127 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1869 #pragma redefine_extname mkostemp64 mkostemp
1870 # 127 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1871 
1872 
1873 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1874 #pragma redefine_extname mkostemps64 mkostemps
1875 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1876 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1877 extern int rand_r(unsigned int *);
1878 
1879 
1880 extern void _exithandle(void);
1881 
1882 
1883 
1884 
1885 extern double drand48(void);
1886 extern double erand48(unsigned short *);
1887 extern long jrand48(unsigned short *);
1888 extern void lcong48(unsigned short *);
1889 extern long lrand48(void);
1890 extern long mrand48(void);
1891 extern long nrand48(unsigned short *);
1892 extern unsigned short *seed48(unsigned short *);
1893 extern void srand48(long);
1894 extern int putenv(char *);
1895 extern void setkey(const char *);
1896 
1897 
1898 /*
1899  * swab() has historically been in <stdlib.h> as delivered from AT&T
1900  * and continues to be visible in the default compilation environment.
1901  * As of Issue 4 of the X/Open Portability Guides, swab() was declared
1902  * in <unistd.h>. As a result, with respect to X/Open namespace the
1903  * swab() declaration in this header is only visible for the XPG3
1904  * environment.
1905  */
1906 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1907 extern void swab(const char *, char *, ssize_t);
1908 
1909 
1910 
1911 
1912 
1913 extern int mkstemp(char *);
1914 
1915 extern int mkstemps(char *, int);
1916 
1917 
1918 
1919 
1920 
1921 extern int mkstemp64(char *);
1922 
1923 extern int mkstemps64(char *, int);
1924 
1925 
1926 
1927 
1928 extern char *mkdtemp(char *);
1929 
1930 
1931 
1932 extern int mkostemp(char *, int);
1933 extern int mkostemps(char *, int, int);
1934 
1935 
1936 extern int mkostemp64(char *, int);
1937 extern int mkostemps64(char *, int, int);
1938 
1939 
1940 
1941 
1942 
1943 
1944 extern long a64l(const char *);
1945 extern char *ecvt(double, int, int *, int *);
1946 extern char *fcvt(double, int, int *, int *);
1947 extern char *gcvt(double, int, char *);
1948 extern int getsubopt(char **, char *const *, char **);
1949 extern int grantpt(int);
1950 extern char *initstate(unsigned, char *, size_t);
1951 extern char *l64a(long);
1952 extern char *mktemp(char *);
1953 extern char *ptsname(int);
1954 extern long random(void);
1955 extern char *realpath(const char *, char *);
1956 extern char *setstate(const char *);
1957 extern void srandom(unsigned);
1958 extern int unlockpt(int);
1959 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1960 
1961 extern int ttyslot(void);
1962 extern void *valloc(size_t);
1963 
1964 
1965 
1966 
1967 
1968 
1969 extern int posix_memalign(void **, size_t, size_t);
1970 extern int posix_openpt(int);
1971 extern int setenv(const char *, const char *, int);
1972 extern int unsetenv(const char *);
1973 
1974 
1975 
1976 
1977 extern char *canonicalize_file_name(const char *);
1978 extern int clearenv(void);
1979 extern void closefrom(int);
1980 extern int daemon(int, int);
1981 extern int dup2(int, int);
1982 extern int dup3(int, int, int);
1983 extern int fdwalk(int (*)(void *, int), void *);
1984 extern char *qecvt(long double, int, int *, int *);
1985 extern char *qfcvt(long double, int, int *, int *);
1986 extern char *qgcvt(long double, int, char *);
1987 extern char *getcwd(char *, size_t);
1988 extern const char *getexecname(void);
1989 
1990 
1991 
1992 
1993 
1994 
1995 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1996 #pragma redefine_extname getlogin getloginx
1997 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1998 
1999 
2000 
2001 
2002 
2003 
2004 extern char *getlogin(void);
2005 
2006 
2007 extern int getopt(int, char *const *, const char *);
2008 extern char *optarg;
2009 extern int optind, opterr, optopt;
2010 extern char *getpass(const char *);
2011 extern char *getpassphrase(const char *);
2012 extern int getpw(uid_t, char *);
2013 extern int isatty(int);
2014 extern void *memalign(size_t, size_t);
2015 extern char *ttyname(int);
2016 extern char *mkdtemp(char *);
2017 extern const char *getprogname(void);
2018 extern void setprogname(const char *);
2019 
2020 
2021 extern char *lltostr(long long, char *);
2022 extern char *ulltostr(unsigned long long, char *);
2023 
2024 
2025 
2026 
2027 /* OpenBSD compatibility functions */
2028 
2029 
2030 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
2031 /*
2032  * CDDL HEADER START
2033  *
2034  * The contents of this file are subject to the terms of the
2035  * Common Development and Distribution License, Version 1.0 only
2036  * (the "License").  You may not use this file except in compliance
2037  * with the License.
2038  *
2039  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2040  * or http://www.opensolaris.org/os/licensing.
2041  * See the License for the specific language governing permissions
2042  * and limitations under the License.
2043  *
2044  * When distributing Covered Code, include this CDDL HEADER in each
2045  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2046  * If applicable, add the following below this CDDL HEADER, with the
2047  * fields enclosed by brackets "[]" replaced with your own identifying
2048  * information: Portions Copyright [yyyy] [name of copyright owner]
2049  *
2050  * CDDL HEADER END
2051  */
2052 /*
2053  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2054  *
2055  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
2056  * Use is subject to license terms.
2057  */
2058 
2059 
2060 
2061 
2062 /*
2063  * This file, <inttypes.h>, is specified by the ISO C standard,
2064  * standard, ISO/IEC 9899:1999 Programming language - C and is
2065  * also defined by SUSv3.
2066  *
2067  * ISO	  International Organization for Standardization.
2068  * SUSv3  Single Unix Specification, Version 3
2069  */
2070 
2071 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2072 /*
2073  * CDDL HEADER START
2074  *
2075  * The contents of this file are subject to the terms of the
2076  * Common Development and Distribution License (the "License").
2077  * You may not use this file except in compliance with the License.
2078  *
2079  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2080  * or http://www.opensolaris.org/os/licensing.
2081  * See the License for the specific language governing permissions
2082  * and limitations under the License.
2083  *
2084  * When distributing Covered Code, include this CDDL HEADER in each
2085  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2086  * If applicable, add the following below this CDDL HEADER, with the
2087  * fields enclosed by brackets "[]" replaced with your own identifying
2088  * information: Portions Copyright [yyyy] [name of copyright owner]
2089  *
2090  * CDDL HEADER END
2091  */
2092 
2093 /*
2094  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2095  * Copyright 2016 Joyent, Inc.
2096  *
2097  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2098  * Use is subject to license terms.
2099  */
2100 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2101 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1
2102 /*
2103  * CDDL HEADER START
2104  *
2105  * The contents of this file are subject to the terms of the
2106  * Common Development and Distribution License, Version 1.0 only
2107  * (the "License").  You may not use this file except in compliance
2108  * with the License.
2109  *
2110  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2111  * or http://www.opensolaris.org/os/licensing.
2112  * See the License for the specific language governing permissions
2113  * and limitations under the License.
2114  *
2115  * When distributing Covered Code, include this CDDL HEADER in each
2116  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2117  * If applicable, add the following below this CDDL HEADER, with the
2118  * fields enclosed by brackets "[]" replaced with your own identifying
2119  * information: Portions Copyright [yyyy] [name of copyright owner]
2120  *
2121  * CDDL HEADER END
2122  */
2123 /*
2124  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
2125  * Use is subject to license terms.
2126  */
2127 
2128 
2129 
2130 
2131 #pragma ident "%Z%%M%	%I%	%E% SMI"
2132 
2133 /*
2134  * This header, <sys/inttypes.h>, contains (through nested inclusion) the
2135  * vast majority of the facilities specified for <inttypes.h> as defined
2136  * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
2137  *
2138  * Kernel/Driver developers are encouraged to include this file to access
2139  * the fixed size types, limits and utility macros. Application developers
2140  * should use the standard defined header <inttypes.h>.
2141  */
2142 
2143 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2144 /*
2145  * CDDL HEADER START
2146  *
2147  * The contents of this file are subject to the terms of the
2148  * Common Development and Distribution License (the "License").
2149  * You may not use this file except in compliance with the License.
2150  *
2151  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2152  * or http://www.opensolaris.org/os/licensing.
2153  * See the License for the specific language governing permissions
2154  * and limitations under the License.
2155  *
2156  * When distributing Covered Code, include this CDDL HEADER in each
2157  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2158  * If applicable, add the following below this CDDL HEADER, with the
2159  * fields enclosed by brackets "[]" replaced with your own identifying
2160  * information: Portions Copyright [yyyy] [name of copyright owner]
2161  *
2162  * CDDL HEADER END
2163  */
2164 
2165 /*
2166  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2167  * Copyright 2016 Joyent, Inc.
2168  *
2169  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2170  * Use is subject to license terms.
2171  */
2172 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2173 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
2174 /*
2175  * CDDL HEADER START
2176  *
2177  * The contents of this file are subject to the terms of the
2178  * Common Development and Distribution License, Version 1.0 only
2179  * (the "License").  You may not use this file except in compliance
2180  * with the License.
2181  *
2182  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2183  * or http://www.opensolaris.org/os/licensing.
2184  * See the License for the specific language governing permissions
2185  * and limitations under the License.
2186  *
2187  * When distributing Covered Code, include this CDDL HEADER in each
2188  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2189  * If applicable, add the following below this CDDL HEADER, with the
2190  * fields enclosed by brackets "[]" replaced with your own identifying
2191  * information: Portions Copyright [yyyy] [name of copyright owner]
2192  *
2193  * CDDL HEADER END
2194  */
2195 /*
2196  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2197  *
2198  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2199  * Use is subject to license terms.
2200  */
2201 
2202 
2203 
2204 
2205 /*
2206  * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
2207  * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
2208  * Programming language - C.
2209  *
2210  * Programs/Modules should not directly include this file.  Access to the
2211  * types defined in this file should be through the inclusion of one of the
2212  * following files:
2213  *
2214  *	<sys/types.h>		Provides only the "_t" types defined in this
2215  *				file which is a subset of the contents of
2216  *				<inttypes.h>.  (This can be appropriate for
2217  *				all programs/modules except those claiming
2218  *				ANSI-C conformance.)
2219  *
2220  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2221  *				components of <inttypes.h>.
2222  *
2223  *	<inttypes.h>		For use by applications.
2224  *
2225  * See these files for more details.
2226  */
2227 
2228 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2229 /*
2230  * CDDL HEADER START
2231  *
2232  * The contents of this file are subject to the terms of the
2233  * Common Development and Distribution License (the "License").
2234  * You may not use this file except in compliance with the License.
2235  *
2236  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2237  * or http://www.opensolaris.org/os/licensing.
2238  * See the License for the specific language governing permissions
2239  * and limitations under the License.
2240  *
2241  * When distributing Covered Code, include this CDDL HEADER in each
2242  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2243  * If applicable, add the following below this CDDL HEADER, with the
2244  * fields enclosed by brackets "[]" replaced with your own identifying
2245  * information: Portions Copyright [yyyy] [name of copyright owner]
2246  *
2247  * CDDL HEADER END
2248  */
2249 
2250 /*
2251  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2252  * Copyright 2016 Joyent, Inc.
2253  *
2254  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2255  * Use is subject to license terms.
2256  */
2257 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2
2258 
2259 
2260 
2261 
2262 
2263 /*
2264  * Basic / Extended integer types
2265  *
2266  * The following defines the basic fixed-size integer types.
2267  *
2268  * Implementations are free to typedef them to Standard C integer types or
2269  * extensions that they support. If an implementation does not support one
2270  * of the particular integer data types below, then it should not define the
2271  * typedefs and macros corresponding to that data type.  Note that int8_t
2272  * is not defined in -Xs mode on ISAs for which the ABI specifies "char"
2273  * as an unsigned entity because there is no way to define an eight bit
2274  * signed integral.
2275  */
2276 
2277 typedef char int8_t;
2278 
2279 
2280 
2281 typedef short int16_t;
2282 typedef int int32_t;
2283 
2284 
2285 typedef long int64_t;
2286 
2287 
2288 
2289 
2290 
2291 
2292 
2293 typedef unsigned char uint8_t;
2294 typedef unsigned short uint16_t;
2295 typedef unsigned int uint32_t;
2296 
2297 typedef unsigned long uint64_t;
2298 
2299 
2300 
2301 
2302 
2303 
2304 /*
2305  * intmax_t and uintmax_t are to be the longest (in number of bits) signed
2306  * and unsigned integer types supported by the implementation.
2307  */
2308 
2309 typedef int64_t intmax_t;
2310 typedef uint64_t uintmax_t;
2311 
2312 
2313 
2314 
2315 
2316 /*
2317  * intptr_t and uintptr_t are signed and unsigned integer types large enough
2318  * to hold any data pointer; that is, data pointers can be assigned into or
2319  * from these integer types without losing precision.
2320  */
2321 
2322 typedef long intptr_t;
2323 typedef unsigned long uintptr_t;
2324 
2325 
2326 
2327 
2328 
2329 /*
2330  * The following define the fastest integer types that can hold the
2331  * specified number of bits.
2332  */
2333 
2334 typedef char int_fast8_t;
2335 
2336 
2337 
2338 typedef int int_fast16_t;
2339 typedef int int_fast32_t;
2340 
2341 typedef long int_fast64_t;
2342 
2343 
2344 
2345 
2346 
2347 
2348 typedef unsigned char uint_fast8_t;
2349 typedef unsigned int uint_fast16_t;
2350 typedef unsigned int uint_fast32_t;
2351 
2352 typedef unsigned long uint_fast64_t;
2353 
2354 
2355 
2356 
2357 
2358 
2359 /*
2360  * The following define the smallest integer types that can hold the
2361  * specified number of bits.
2362  */
2363 
2364 typedef char int_least8_t;
2365 
2366 
2367 
2368 typedef short int_least16_t;
2369 typedef int int_least32_t;
2370 
2371 typedef long int_least64_t;
2372 
2373 
2374 
2375 
2376 
2377 
2378 /*
2379  * If these are changed, please update char16_t and char32_t in head/uchar.h.
2380  */
2381 typedef unsigned char uint_least8_t;
2382 typedef unsigned short uint_least16_t;
2383 typedef unsigned int uint_least32_t;
2384 
2385 typedef unsigned long uint_least64_t;
2386 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2387 
2388 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
2389 /*
2390  * CDDL HEADER START
2391  *
2392  * The contents of this file are subject to the terms of the
2393  * Common Development and Distribution License, Version 1.0 only
2394  * (the "License").  You may not use this file except in compliance
2395  * with the License.
2396  *
2397  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2398  * or http://www.opensolaris.org/os/licensing.
2399  * See the License for the specific language governing permissions
2400  * and limitations under the License.
2401  *
2402  * When distributing Covered Code, include this CDDL HEADER in each
2403  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2404  * If applicable, add the following below this CDDL HEADER, with the
2405  * fields enclosed by brackets "[]" replaced with your own identifying
2406  * information: Portions Copyright [yyyy] [name of copyright owner]
2407  *
2408  * CDDL HEADER END
2409  */
2410 /*
2411  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2412  *
2413  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2414  * Use is subject to license terms.
2415  */
2416 
2417 
2418 
2419 
2420 /*
2421  * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation
2422  * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999
2423  * Programming language - C.
2424  *
2425  * Programs/Modules should not directly include this file.  Access to the
2426  * types defined in this file should be through the inclusion of one of the
2427  * following files:
2428  *
2429  *	<limits.h>		This nested inclusion is disabled for strictly
2430  *				ANSI-C conforming compilations.  The *_MIN
2431  *				definitions are not visible to POSIX or XPG
2432  *				conforming applications (due to what may be
2433  *				a bug in the specification - this is under
2434  *				investigation)
2435  *
2436  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2437  *				components of <inttypes.h>.
2438  *
2439  *	<inttypes.h>		For use by applications.
2440  *
2441  * See these files for more details.
2442  */
2443 
2444 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2445 /*
2446  * CDDL HEADER START
2447  *
2448  * The contents of this file are subject to the terms of the
2449  * Common Development and Distribution License (the "License").
2450  * You may not use this file except in compliance with the License.
2451  *
2452  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2453  * or http://www.opensolaris.org/os/licensing.
2454  * See the License for the specific language governing permissions
2455  * and limitations under the License.
2456  *
2457  * When distributing Covered Code, include this CDDL HEADER in each
2458  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2459  * If applicable, add the following below this CDDL HEADER, with the
2460  * fields enclosed by brackets "[]" replaced with your own identifying
2461  * information: Portions Copyright [yyyy] [name of copyright owner]
2462  *
2463  * CDDL HEADER END
2464  */
2465 
2466 /*
2467  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2468  * Copyright 2016 Joyent, Inc.
2469  *
2470  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2471  * Use is subject to license terms.
2472  */
2473 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2
2474 
2475 
2476 
2477 
2478 
2479 /*
2480  * Limits
2481  *
2482  * The following define the limits for the types defined in <sys/int_types.h>.
2483  *
2484  * INTMAX_MIN (minimum value of the largest supported signed integer type),
2485  * INTMAX_MAX (maximum value of the largest supported signed integer type),
2486  * and UINTMAX_MAX (maximum value of the largest supported unsigned integer
2487  * type) can be set to implementation defined limits.
2488  *
2489  * NOTE : A programmer can test to see whether an implementation supports
2490  * a particular size of integer by testing if the macro that gives the
2491  * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX
2492  * tests false, the implementation does not support unsigned 64 bit integers.
2493  *
2494  * The type of these macros is intentionally unspecified.
2495  *
2496  * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs
2497  * where the ABI specifies "char" as unsigned when the translation mode is
2498  * not ANSI-C.
2499  */
2500 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2501 /*
2502  * The following 2 macros are provided for testing whether the types
2503  * intptr_t and uintptr_t (integers large enough to hold a void *) are
2504  * defined in this header. They are needed in case the architecture can't
2505  * represent a pointer in any standard integral type.
2506  */
2507 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2508 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */
2509 
2510 
2511 
2512 
2513 
2514 
2515 /*
2516  * Maximum value of a "size_t".  SIZE_MAX was previously defined
2517  * in <limits.h>, however, the standards specify it be defined
2518  * in <stdint.h>. The <stdint.h> headers includes this header as
2519  * does <limits.h>. The value of SIZE_MAX should not deviate
2520  * from the value of ULONG_MAX defined <sys/types.h>.
2521  */
2522 
2523 
2524 
2525 
2526 
2527 
2528 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */
2529 
2530 
2531 
2532 
2533 /*
2534  * Maximum limit of wchar_t. The WCHAR_* macros are also
2535  * defined in <iso/wchar_iso.h>, but inclusion of that header
2536  * will break ISO/IEC C namespace.
2537  */
2538 
2539 
2540 
2541 
2542 /* Maximum limit of wint_t */
2543 
2544 
2545 
2546 
2547 /*
2548  * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that
2549  * when including <limits.h> that the suffix _MAX is reserved but not the
2550  * suffix _MIN.  However, until that issue is resolved....
2551  */
2552 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2553 /* Minimum value of a pointer-holding signed integer type */
2554 
2555 
2556 
2557 
2558 
2559 
2560 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */
2561 
2562 
2563 
2564 
2565 
2566 
2567 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */
2568 
2569 
2570 
2571 
2572 /*
2573  * Minimum limit of wchar_t. The WCHAR_* macros are also
2574  * defined in <iso/wchar_iso.h>, but inclusion of that header
2575  * will break ISO/IEC C namespace.
2576  */
2577 
2578 
2579 
2580 
2581 /* Minimum limit of wint_t */
2582 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2583 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
2584 /*
2585  * CDDL HEADER START
2586  *
2587  * The contents of this file are subject to the terms of the
2588  * Common Development and Distribution License, Version 1.0 only
2589  * (the "License").  You may not use this file except in compliance
2590  * with the License.
2591  *
2592  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2593  * or http://www.opensolaris.org/os/licensing.
2594  * See the License for the specific language governing permissions
2595  * and limitations under the License.
2596  *
2597  * When distributing Covered Code, include this CDDL HEADER in each
2598  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2599  * If applicable, add the following below this CDDL HEADER, with the
2600  * fields enclosed by brackets "[]" replaced with your own identifying
2601  * information: Portions Copyright [yyyy] [name of copyright owner]
2602  *
2603  * CDDL HEADER END
2604  */
2605 /*
2606  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2607  *
2608  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2609  * Use is subject to license terms.
2610  */
2611 
2612 
2613 
2614 
2615 /*
2616  * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation
2617  * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working
2618  * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990
2619  * Programming language - C.
2620  *
2621  * Programs/Modules should not directly include this file.  Access to the
2622  * types defined in this file should be through the inclusion of one of the
2623  * following files:
2624  *
2625  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2626  *				components of <inttypes.h>.
2627  *
2628  *	<inttypes.h>		For use by applications.
2629  *
2630  * See these files for more details.
2631  *
2632  * Use at your own risk.  This file will track the evolution of the revision
2633  * of the current ISO C standard.  As of February 1996, the committee is
2634  * squarely behind the fixed sized types.
2635  */
2636 
2637 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2638 /*
2639  * CDDL HEADER START
2640  *
2641  * The contents of this file are subject to the terms of the
2642  * Common Development and Distribution License (the "License").
2643  * You may not use this file except in compliance with the License.
2644  *
2645  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2646  * or http://www.opensolaris.org/os/licensing.
2647  * See the License for the specific language governing permissions
2648  * and limitations under the License.
2649  *
2650  * When distributing Covered Code, include this CDDL HEADER in each
2651  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2652  * If applicable, add the following below this CDDL HEADER, with the
2653  * fields enclosed by brackets "[]" replaced with your own identifying
2654  * information: Portions Copyright [yyyy] [name of copyright owner]
2655  *
2656  * CDDL HEADER END
2657  */
2658 
2659 /*
2660  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2661  * Copyright 2016 Joyent, Inc.
2662  *
2663  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2664  * Use is subject to license terms.
2665  */
2666 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2
2667 
2668 
2669 
2670 
2671 
2672 /*
2673  * Constants
2674  *
2675  * The following macros create constants of the types defined in
2676  * <sys/int_types.h>. The intent is that:
2677  *	Constants defined using these macros have a specific size and
2678  *	signedness. The suffix used for int64_t and uint64_t (ll and ull)
2679  *	are for examples only. Implementations are permitted to use other
2680  *	suffixes.
2681  *
2682  * The "CSTYLED" comments are flags to an internal code style analysis tool
2683  * telling it to silently accept the line which follows.  This internal
2684  * standard requires a space between arguments, but the historical,
2685  * non-ANSI-C ``method'' of concatenation can't tolerate those spaces.
2686  */
2687 /* CSTYLED */
2688 
2689 
2690 
2691 
2692 
2693 
2694 /* CSTYLED */
2695 # 91 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
2696 /* CSTYLED */
2697 
2698 /* CSTYLED */
2699 
2700 /* CSTYLED */
2701 
2702 
2703 /* CSTYLED */
2704 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
2705 /* CSTYLED */
2706 
2707 /* CSTYLED */
2708 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2709 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1
2710 /*
2711  * CDDL HEADER START
2712  *
2713  * The contents of this file are subject to the terms of the
2714  * Common Development and Distribution License, Version 1.0 only
2715  * (the "License").  You may not use this file except in compliance
2716  * with the License.
2717  *
2718  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2719  * or http://www.opensolaris.org/os/licensing.
2720  * See the License for the specific language governing permissions
2721  * and limitations under the License.
2722  *
2723  * When distributing Covered Code, include this CDDL HEADER in each
2724  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2725  * If applicable, add the following below this CDDL HEADER, with the
2726  * fields enclosed by brackets "[]" replaced with your own identifying
2727  * information: Portions Copyright [yyyy] [name of copyright owner]
2728  *
2729  * CDDL HEADER END
2730  */
2731 /*
2732  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2733  *
2734  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2735  * Use is subject to license terms.
2736  */
2737 
2738 
2739 
2740 
2741 /*
2742  * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation
2743  * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999
2744  * Programming language - C.
2745  *
2746  * ISO  International Organization for Standardization.
2747  *
2748  * Programs/Modules should not directly include this file.  Access to the
2749  * types defined in this file should be through the inclusion of one of the
2750  * following files:
2751  *
2752  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2753  *				components of <inttypes.h>.
2754  *
2755  *	<inttypes.h>		For use by applications.
2756  *
2757  * See these files for more details.
2758  */
2759 
2760 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2761 /*
2762  * CDDL HEADER START
2763  *
2764  * The contents of this file are subject to the terms of the
2765  * Common Development and Distribution License (the "License").
2766  * You may not use this file except in compliance with the License.
2767  *
2768  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2769  * or http://www.opensolaris.org/os/licensing.
2770  * See the License for the specific language governing permissions
2771  * and limitations under the License.
2772  *
2773  * When distributing Covered Code, include this CDDL HEADER in each
2774  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2775  * If applicable, add the following below this CDDL HEADER, with the
2776  * fields enclosed by brackets "[]" replaced with your own identifying
2777  * information: Portions Copyright [yyyy] [name of copyright owner]
2778  *
2779  * CDDL HEADER END
2780  */
2781 
2782 /*
2783  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2784  * Copyright 2016 Joyent, Inc.
2785  *
2786  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2787  * Use is subject to license terms.
2788  */
2789 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2
2790 
2791 
2792 
2793 
2794 
2795 /*
2796  * Formatted I/O
2797  *
2798  * The following macros can be used even when an implementation has not
2799  * extended the printf/scanf family of functions.
2800  *
2801  * The form of the names of the macros is either "PRI" for printf specifiers
2802  * or "SCN" for scanf specifiers, followed by the conversion specifier letter
2803  * followed by the datatype size. For example, PRId32 is the macro for
2804  * the printf d conversion specifier with the flags for 32 bit datatype.
2805  *
2806  * An example using one of these macros:
2807  *
2808  *	uint64_t u;
2809  *	printf("u = %016" PRIx64 "\n", u);
2810  *
2811  * For the purpose of example, the definitions of the printf/scanf macros
2812  * below have the values appropriate for a machine with 8 bit shorts, 16
2813  * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation
2814  * mode, and 64 bit long longs.
2815  */
2816 
2817 /*
2818  * fprintf macros for signed integers
2819  */
2820 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2821 /*
2822  * fprintf macros for unsigned integers
2823  */
2824 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2825 /*
2826  * fprintf macros for pointers
2827  */
2828 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2829 /*
2830  * fscanf macros for signed integers
2831  */
2832 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2833 /*
2834  * fscanf macros for unsigned integers
2835  */
2836 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2837 /*
2838  * The following macros define I/O formats for intmax_t and uintmax_t.
2839  */
2840 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2841 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2842 
2843 
2844 
2845 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1
2846 /*
2847  * CDDL HEADER START
2848  *
2849  * The contents of this file are subject to the terms of the
2850  * Common Development and Distribution License, Version 1.0 only
2851  * (the "License").  You may not use this file except in compliance
2852  * with the License.
2853  *
2854  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2855  * or http://www.opensolaris.org/os/licensing.
2856  * See the License for the specific language governing permissions
2857  * and limitations under the License.
2858  *
2859  * When distributing Covered Code, include this CDDL HEADER in each
2860  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2861  * If applicable, add the following below this CDDL HEADER, with the
2862  * fields enclosed by brackets "[]" replaced with your own identifying
2863  * information: Portions Copyright [yyyy] [name of copyright owner]
2864  *
2865  * CDDL HEADER END
2866  */
2867 /*
2868  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
2869  * Use is subject to license terms.
2870  */
2871 
2872 
2873 
2874 
2875 #pragma ident "%Z%%M%	%I%	%E% SMI"
2876 
2877 /*
2878  * This header is included by <stdint.h> which was introduced by
2879  * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
2880  * The header is a subset of the <inttypes.h> header.
2881  */
2882 
2883 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
2884 /*
2885  * CDDL HEADER START
2886  *
2887  * The contents of this file are subject to the terms of the
2888  * Common Development and Distribution License, Version 1.0 only
2889  * (the "License").  You may not use this file except in compliance
2890  * with the License.
2891  *
2892  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2893  * or http://www.opensolaris.org/os/licensing.
2894  * See the License for the specific language governing permissions
2895  * and limitations under the License.
2896  *
2897  * When distributing Covered Code, include this CDDL HEADER in each
2898  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2899  * If applicable, add the following below this CDDL HEADER, with the
2900  * fields enclosed by brackets "[]" replaced with your own identifying
2901  * information: Portions Copyright [yyyy] [name of copyright owner]
2902  *
2903  * CDDL HEADER END
2904  */
2905 /*
2906  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2907  *
2908  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2909  * Use is subject to license terms.
2910  */
2911 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2912 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
2913 /*
2914  * CDDL HEADER START
2915  *
2916  * The contents of this file are subject to the terms of the
2917  * Common Development and Distribution License, Version 1.0 only
2918  * (the "License").  You may not use this file except in compliance
2919  * with the License.
2920  *
2921  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2922  * or http://www.opensolaris.org/os/licensing.
2923  * See the License for the specific language governing permissions
2924  * and limitations under the License.
2925  *
2926  * When distributing Covered Code, include this CDDL HEADER in each
2927  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2928  * If applicable, add the following below this CDDL HEADER, with the
2929  * fields enclosed by brackets "[]" replaced with your own identifying
2930  * information: Portions Copyright [yyyy] [name of copyright owner]
2931  *
2932  * CDDL HEADER END
2933  */
2934 /*
2935  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2936  *
2937  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2938  * Use is subject to license terms.
2939  */
2940 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2941 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
2942 /*
2943  * CDDL HEADER START
2944  *
2945  * The contents of this file are subject to the terms of the
2946  * Common Development and Distribution License, Version 1.0 only
2947  * (the "License").  You may not use this file except in compliance
2948  * with the License.
2949  *
2950  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2951  * or http://www.opensolaris.org/os/licensing.
2952  * See the License for the specific language governing permissions
2953  * and limitations under the License.
2954  *
2955  * When distributing Covered Code, include this CDDL HEADER in each
2956  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2957  * If applicable, add the following below this CDDL HEADER, with the
2958  * fields enclosed by brackets "[]" replaced with your own identifying
2959  * information: Portions Copyright [yyyy] [name of copyright owner]
2960  *
2961  * CDDL HEADER END
2962  */
2963 /*
2964  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2965  *
2966  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2967  * Use is subject to license terms.
2968  */
2969 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2970 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2971 
2972 
2973 
2974 
2975 
2976 
2977 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */
2978 
2979 /*
2980  * wchar_t is a built-in type in standard C++ and as such is not
2981  * defined here when using standard C++. However, the GNU compiler
2982  * fixincludes utility nonetheless creates its own version of this
2983  * header for use by gcc and g++. In that version it adds a redundant
2984  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
2985  * header we need to include the following magic comment:
2986  *
2987  * we must use the C++ compiler's type
2988  *
2989  * The above comment should not be removed or changed until GNU
2990  * gcc/fixinc/inclhack.def is updated to bypass this header.
2991  */
2992 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
2993 typedef struct {
2994  intmax_t quot;
2995  intmax_t rem;
2996 } imaxdiv_t;
2997 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
2998 extern intmax_t imaxabs(intmax_t);
2999 extern imaxdiv_t imaxdiv(intmax_t, intmax_t);
3000 extern intmax_t strtoimax(const char *, char **,
3001  int);
3002 extern uintmax_t strtoumax(const char *, char **,
3003  int);
3004 extern intmax_t wcstoimax(const wchar_t *,
3005  wchar_t **, int);
3006 extern uintmax_t wcstoumax(const wchar_t *,
3007  wchar_t **, int);
3008 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
3009 extern uint32_t arc4random(void);
3010 extern void arc4random_buf(void *, size_t);
3011 extern uint32_t arc4random_uniform(uint32_t);
3012 extern void freezero(void *, size_t);
3013 extern void *recallocarray(void *, size_t, size_t, size_t);
3014 # 52 "../common/zones_str.c" 2
3015 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1
3016 /*
3017  * CDDL HEADER START
3018  *
3019  * The contents of this file are subject to the terms of the
3020  * Common Development and Distribution License (the "License").
3021  * You may not use this file except in compliance with the License.
3022  *
3023  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3024  * or http://www.opensolaris.org/os/licensing.
3025  * See the License for the specific language governing permissions
3026  * and limitations under the License.
3027  *
3028  * When distributing Covered Code, include this CDDL HEADER in each
3029  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3030  * If applicable, add the following below this CDDL HEADER, with the
3031  * fields enclosed by brackets "[]" replaced with your own identifying
3032  * information: Portions Copyright [yyyy] [name of copyright owner]
3033  *
3034  * CDDL HEADER END
3035  */
3036 
3037 /*
3038  * Copyright 2014 PALO, Richard.
3039  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3040  * Copyright (c) 2013 Gary Mills
3041  *
3042  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
3043  */
3044 
3045 /*	Copyright (c) 1988 AT&T	*/
3046 /*	  All Rights Reserved  	*/
3047 
3048 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
3049 
3050 
3051 
3052 
3053 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3054 /*
3055  * CDDL HEADER START
3056  *
3057  * The contents of this file are subject to the terms of the
3058  * Common Development and Distribution License (the "License").
3059  * You may not use this file except in compliance with the License.
3060  *
3061  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3062  * or http://www.opensolaris.org/os/licensing.
3063  * See the License for the specific language governing permissions
3064  * and limitations under the License.
3065  *
3066  * When distributing Covered Code, include this CDDL HEADER in each
3067  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3068  * If applicable, add the following below this CDDL HEADER, with the
3069  * fields enclosed by brackets "[]" replaced with your own identifying
3070  * information: Portions Copyright [yyyy] [name of copyright owner]
3071  *
3072  * CDDL HEADER END
3073  */
3074 
3075 /*
3076  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3077  * Copyright 2016 Joyent, Inc.
3078  *
3079  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3080  * Use is subject to license terms.
3081  */
3082 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
3083 
3084 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
3085 /*
3086  * This file and its contents are supplied under the terms of the
3087  * Common Development and Distribution License ("CDDL"), version 1.0.
3088  * You may only use this file in accordance with the terms of version
3089  * 1.0 of the CDDL.
3090  *
3091  * A full copy of the text of the CDDL should have accompanied this
3092  * source.  A copy of the CDDL is also available via the Internet at
3093  * http://www.illumos.org/license/CDDL.
3094  */
3095 
3096 /*
3097  * Copyright 2014-2016 PALO, Richard.
3098  */
3099 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
3100 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
3101 /*
3102  * CDDL HEADER START
3103  *
3104  * The contents of this file are subject to the terms of the
3105  * Common Development and Distribution License (the "License").
3106  * You may not use this file except in compliance with the License.
3107  *
3108  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3109  * or http://www.opensolaris.org/os/licensing.
3110  * See the License for the specific language governing permissions
3111  * and limitations under the License.
3112  *
3113  * When distributing Covered Code, include this CDDL HEADER in each
3114  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3115  * If applicable, add the following below this CDDL HEADER, with the
3116  * fields enclosed by brackets "[]" replaced with your own identifying
3117  * information: Portions Copyright [yyyy] [name of copyright owner]
3118  *
3119  * CDDL HEADER END
3120  */
3121 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3122 /*	  All Rights Reserved  	*/
3123 
3124 
3125 /*
3126  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3127  * Use is subject to license terms.
3128  *
3129  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3130  * Copyright 2016 Joyent, Inc.
3131  */
3132 
3133 
3134 
3135 
3136 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3137 /*
3138  * CDDL HEADER START
3139  *
3140  * The contents of this file are subject to the terms of the
3141  * Common Development and Distribution License (the "License").
3142  * You may not use this file except in compliance with the License.
3143  *
3144  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3145  * or http://www.opensolaris.org/os/licensing.
3146  * See the License for the specific language governing permissions
3147  * and limitations under the License.
3148  *
3149  * When distributing Covered Code, include this CDDL HEADER in each
3150  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3151  * If applicable, add the following below this CDDL HEADER, with the
3152  * fields enclosed by brackets "[]" replaced with your own identifying
3153  * information: Portions Copyright [yyyy] [name of copyright owner]
3154  *
3155  * CDDL HEADER END
3156  */
3157 
3158 /*
3159  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3160  * Copyright 2016 Joyent, Inc.
3161  *
3162  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3163  * Use is subject to license terms.
3164  */
3165 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3166 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
3167 /*
3168  * CDDL HEADER START
3169  *
3170  * The contents of this file are subject to the terms of the
3171  * Common Development and Distribution License (the "License").
3172  * You may not use this file except in compliance with the License.
3173  *
3174  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3175  * or http://www.opensolaris.org/os/licensing.
3176  * See the License for the specific language governing permissions
3177  * and limitations under the License.
3178  *
3179  *
3180  * When distributing Covered Code, include this CDDL HEADER in each
3181  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3182  * If applicable, add the following below this CDDL HEADER, with the
3183  * fields enclosed by brackets "[]" replaced with your own identifying
3184  * information: Portions Copyright [yyyy] [name of copyright owner]
3185  *
3186  * CDDL HEADER END
3187  */
3188 
3189 /*
3190  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3191  * Use is subject to license terms.
3192  * Copyright 2016 Joyent, Inc.
3193  */
3194 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3195 
3196 /*
3197  * Machine dependent definitions moved to <sys/machtypes.h>.
3198  */
3199 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1
3200 /*
3201  * CDDL HEADER START
3202  *
3203  * The contents of this file are subject to the terms of the
3204  * Common Development and Distribution License, Version 1.0 only
3205  * (the "License").  You may not use this file except in compliance
3206  * with the License.
3207  *
3208  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3209  * or http://www.opensolaris.org/os/licensing.
3210  * See the License for the specific language governing permissions
3211  * and limitations under the License.
3212  *
3213  * When distributing Covered Code, include this CDDL HEADER in each
3214  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3215  * If applicable, add the following below this CDDL HEADER, with the
3216  * fields enclosed by brackets "[]" replaced with your own identifying
3217  * information: Portions Copyright [yyyy] [name of copyright owner]
3218  *
3219  * CDDL HEADER END
3220  */
3221 /*
3222  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3223  * Use is subject to license terms.
3224  */
3225 
3226 
3227 
3228 
3229 #pragma ident "%Z%%M%	%I%	%E% SMI"
3230 
3231 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3232 /*
3233  * CDDL HEADER START
3234  *
3235  * The contents of this file are subject to the terms of the
3236  * Common Development and Distribution License (the "License").
3237  * You may not use this file except in compliance with the License.
3238  *
3239  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3240  * or http://www.opensolaris.org/os/licensing.
3241  * See the License for the specific language governing permissions
3242  * and limitations under the License.
3243  *
3244  * When distributing Covered Code, include this CDDL HEADER in each
3245  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3246  * If applicable, add the following below this CDDL HEADER, with the
3247  * fields enclosed by brackets "[]" replaced with your own identifying
3248  * information: Portions Copyright [yyyy] [name of copyright owner]
3249  *
3250  * CDDL HEADER END
3251  */
3252 
3253 /*
3254  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3255  * Copyright 2016 Joyent, Inc.
3256  *
3257  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3258  * Use is subject to license terms.
3259  */
3260 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
3261 
3262 
3263 
3264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1
3265 /*
3266  * CDDL HEADER START
3267  *
3268  * The contents of this file are subject to the terms of the
3269  * Common Development and Distribution License (the "License").
3270  * You may not use this file except in compliance with the License.
3271  *
3272  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3273  * or http://www.opensolaris.org/os/licensing.
3274  * See the License for the specific language governing permissions
3275  * and limitations under the License.
3276  *
3277  * When distributing Covered Code, include this CDDL HEADER in each
3278  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3279  * If applicable, add the following below this CDDL HEADER, with the
3280  * fields enclosed by brackets "[]" replaced with your own identifying
3281  * information: Portions Copyright [yyyy] [name of copyright owner]
3282  *
3283  * CDDL HEADER END
3284  */
3285 /*
3286  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3287  * Use is subject to license terms.
3288  */
3289 
3290 
3291 
3292 
3293 #pragma ident "%Z%%M%	%I%	%E% SMI"
3294 
3295 
3296 
3297 
3298 
3299 /*
3300  * Machine dependent types:
3301  *
3302  *	intel ia32 Version
3303  */
3304 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h"
3305 typedef struct _label_t { long val[8]; } label_t;
3306 
3307 
3308 
3309 typedef unsigned char lock_t; /* lock work for busy wait */
3310 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
3311 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3312 
3313 /*
3314  * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
3315  * committee's working draft for the revision of the current ISO C standard,
3316  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
3317  * required by any standard but constitute a useful, general purpose set
3318  * of type definitions which is namespace clean with respect to all standards.
3319  */
3320 
3321 
3322 
3323 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
3324 /*
3325  * CDDL HEADER START
3326  *
3327  * The contents of this file are subject to the terms of the
3328  * Common Development and Distribution License, Version 1.0 only
3329  * (the "License").  You may not use this file except in compliance
3330  * with the License.
3331  *
3332  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3333  * or http://www.opensolaris.org/os/licensing.
3334  * See the License for the specific language governing permissions
3335  * and limitations under the License.
3336  *
3337  * When distributing Covered Code, include this CDDL HEADER in each
3338  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3339  * If applicable, add the following below this CDDL HEADER, with the
3340  * fields enclosed by brackets "[]" replaced with your own identifying
3341  * information: Portions Copyright [yyyy] [name of copyright owner]
3342  *
3343  * CDDL HEADER END
3344  */
3345 /*
3346  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3347  *
3348  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3349  * Use is subject to license terms.
3350  */
3351 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3352 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3353 /*
3354  * Strictly conforming ANSI C environments prior to the 1999
3355  * revision of the C Standard (ISO/IEC 9899:1999) do not have
3356  * the long long data type.
3357  */
3358 
3359 typedef long long longlong_t;
3360 typedef unsigned long long u_longlong_t;
3361 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3362 /*
3363  * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
3364  * to use them instead of int32_t and uint32_t because DEC had
3365  * shipped 64-bit wide.
3366  */
3367 
3368 typedef int32_t t_scalar_t;
3369 typedef uint32_t t_uscalar_t;
3370 
3371 
3372 
3373 
3374 
3375 /*
3376  * POSIX Extensions
3377  */
3378 typedef unsigned char uchar_t;
3379 typedef unsigned short ushort_t;
3380 typedef unsigned int uint_t;
3381 typedef unsigned long ulong_t;
3382 
3383 typedef char *caddr_t; /* ?<core address> type */
3384 typedef long daddr_t; /* <disk address> type */
3385 typedef short cnt_t; /* ?<count> type */
3386 
3387 
3388 
3389 
3390 typedef long ptrdiff_t; /* pointer difference */
3391 
3392 
3393 
3394 
3395 
3396 /*
3397  * VM-related types
3398  */
3399 typedef ulong_t pfn_t; /* page frame number */
3400 typedef ulong_t pgcnt_t; /* number of pages */
3401 typedef long spgcnt_t; /* signed number of pages */
3402 
3403 typedef uchar_t use_t; /* use count for swap.  */
3404 typedef short sysid_t;
3405 typedef short index_t;
3406 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */
3407 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */
3408 
3409 /*
3410  * The size of off_t and related types depends on the setting of
3411  * _FILE_OFFSET_BITS.  (Note that other system headers define other types
3412  * related to those defined here.)
3413  *
3414  * If _LARGEFILE64_SOURCE is defined, variants of these types that are
3415  * explicitly 64 bits wide become available.
3416  */
3417 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3418 typedef ulong_t ino_t; /* expanded inode type	*/
3419 typedef long blkcnt_t; /* count of file blocks */
3420 typedef ulong_t fsblkcnt_t; /* count of file system blocks */
3421 typedef ulong_t fsfilcnt_t; /* count of files */
3422 # 173 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3423 typedef ino_t ino64_t; /* expanded inode type */
3424 typedef blkcnt_t blkcnt64_t; /* count of file blocks */
3425 typedef fsblkcnt_t fsblkcnt64_t; /* count of file system blocks */
3426 typedef fsfilcnt_t fsfilcnt64_t; /* count of files */
3427 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3428 typedef int blksize_t; /* used for block sizes */
3429 
3430 
3431 
3432 
3433 
3434 
3435 
3436 typedef enum { B_FALSE, B_TRUE } boolean_t;
3437 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3438 /*
3439  * The {u,}pad64_t types can be used in structures such that those structures
3440  * may be accessed by code produced by compilation environments which don't
3441  * support a 64 bit integral datatype.  The intention is not to allow
3442  * use of these fields in such environments, but to maintain the alignment
3443  * and offsets of the structure.
3444  *
3445  * Similar comments for {u,}pad128_t.
3446  *
3447  * Note that these types do NOT generate any stronger alignment constraints
3448  * than those available in the underlying ABI.  See <sys/isa_defs.h>
3449  */
3450 
3451 typedef int64_t pad64_t;
3452 typedef uint64_t upad64_t;
3453 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3454 typedef union {
3455  long double _q;
3456  int32_t _l[4];
3457 } pad128_t;
3458 
3459 typedef union {
3460  long double _q;
3461  uint32_t _l[4];
3462 } upad128_t;
3463 
3464 typedef longlong_t offset_t;
3465 typedef u_longlong_t u_offset_t;
3466 typedef u_longlong_t len_t;
3467 typedef u_longlong_t diskaddr_t;
3468 
3469 
3470 
3471 
3472 /*
3473  * Definitions remaining from previous partial support for 64-bit file
3474  * offsets.  This partial support for devices greater than 2gb requires
3475  * compiler support for long long.
3476  */
3477 
3478 typedef union {
3479  offset_t _f; /* Full 64 bit offset value */
3480  struct {
3481   int32_t _l; /* lower 32 bits of offset value */
3482   int32_t _u; /* upper 32 bits of offset value */
3483  } _p;
3484 } lloff_t;
3485 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3486 typedef union {
3487  longlong_t _f; /* Full 64 bit disk address value */
3488  struct {
3489   int32_t _l; /* lower 32 bits of disk address value */
3490   int32_t _u; /* upper 32 bits of disk address value */
3491  } _p;
3492 } lldaddr_t;
3493 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3494 typedef uint_t k_fltset_t; /* kernel fault set type */
3495 
3496 /*
3497  * The following type is for various kinds of identifiers.  The
3498  * actual type must be the same for all since some system calls
3499  * (such as sigsend) take arguments that may be any of these
3500  * types.  The enumeration type idtype_t defined in sys/procset.h
3501  * is used to indicate what type of id is being specified --
3502  * a process id, process group id, session id, scheduling class id,
3503  * user id, group id, project id, task id or zone id.
3504  */
3505 
3506 typedef int id_t;
3507 
3508 
3509 
3510 
3511 typedef id_t lgrp_id_t; /* lgroup ID */
3512 
3513 /*
3514  * Type useconds_t is an unsigned integral type capable of storing
3515  * values at least in the range of zero to 1,000,000.
3516  */
3517 typedef uint_t useconds_t; /* Time, in microseconds */
3518 
3519 
3520 
3521 typedef long suseconds_t; /* signed # of microseconds */
3522 
3523 
3524 /*
3525  * Typedefs for dev_t components.
3526  */
3527 
3528 typedef uint_t major_t; /* major part of device number */
3529 typedef uint_t minor_t; /* minor part of device number */
3530 
3531 
3532 
3533 
3534 
3535 /*
3536  * The data type of a thread priority.
3537  */
3538 typedef short pri_t;
3539 
3540 /*
3541  * The data type for a CPU flags field.  (Can be extended to larger unsigned
3542  * types, if needed, limited by ability to update atomically.)
3543  */
3544 typedef ushort_t cpu_flag_t;
3545 
3546 /*
3547  * For compatibility reasons the following typedefs (prefixed o_)
3548  * can't grow regardless of the EFT definition. Although,
3549  * applications should not explicitly use these typedefs
3550  * they may be included via a system header definition.
3551  * WARNING: These typedefs may be removed in a future
3552  * release.
3553  *		ex. the definitions in s5inode.h (now obsoleted)
3554  *			remained small to preserve compatibility
3555  *			in the S5 file system type.
3556  */
3557 typedef ushort_t o_mode_t; /* old file attribute type */
3558 typedef short o_dev_t; /* old device type	*/
3559 typedef ushort_t o_uid_t; /* old UID type		*/
3560 typedef o_uid_t o_gid_t; /* old GID type		*/
3561 typedef short o_nlink_t; /* old file link type	*/
3562 typedef short o_pid_t; /* old process id type	*/
3563 typedef ushort_t o_ino_t; /* old inode type	*/
3564 
3565 
3566 /*
3567  * POSIX and XOPEN Declarations
3568  */
3569 typedef int key_t; /* IPC key type		*/
3570 
3571 typedef uint_t mode_t; /* file attribute type	*/
3572 # 382 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3573 typedef uid_t gid_t; /* GID type		*/
3574 
3575 typedef uint32_t datalink_id_t;
3576 typedef uint32_t vrid_t;
3577 
3578 typedef id_t taskid_t;
3579 typedef id_t projid_t;
3580 typedef id_t poolid_t;
3581 typedef id_t zoneid_t;
3582 typedef id_t ctid_t;
3583 
3584 /*
3585  * POSIX definitions are same as defined in thread.h and synch.h.
3586  * Any changes made to here should be reflected in corresponding
3587  * files as described in comments.
3588  */
3589 typedef uint_t pthread_t; /* = thread_t in thread.h */
3590 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */
3591 
3592 /* "Magic numbers" tagging synchronization object types */
3593 
3594 
3595 
3596 
3597 
3598 typedef struct _pthread_mutex { /* = mutex_t in synch.h */
3599  struct {
3600   uint16_t __pthread_mutex_flag1;
3601   uint8_t __pthread_mutex_flag2;
3602   uint8_t __pthread_mutex_ceiling;
3603   uint16_t __pthread_mutex_type;
3604   uint16_t __pthread_mutex_magic;
3605  } __pthread_mutex_flags;
3606  union {
3607   struct {
3608    uint8_t __pthread_mutex_pad[8];
3609   } __pthread_mutex_lock64;
3610   struct {
3611    uint32_t __pthread_ownerpid;
3612    uint32_t __pthread_lockword;
3613   } __pthread_mutex_lock32;
3614   upad64_t __pthread_mutex_owner64;
3615  } __pthread_mutex_lock;
3616  upad64_t __pthread_mutex_data;
3617 } pthread_mutex_t;
3618 
3619 typedef struct _pthread_cond { /* = cond_t in synch.h */
3620  struct {
3621   uint8_t __pthread_cond_flag[4];
3622   uint16_t __pthread_cond_type;
3623   uint16_t __pthread_cond_magic;
3624  } __pthread_cond_flags;
3625  upad64_t __pthread_cond_data;
3626 } pthread_cond_t;
3627 
3628 /*
3629  * UNIX 98 Extension
3630  */
3631 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */
3632  int32_t __pthread_rwlock_readers;
3633  uint16_t __pthread_rwlock_type;
3634  uint16_t __pthread_rwlock_magic;
3635  pthread_mutex_t __pthread_rwlock_mutex;
3636  pthread_cond_t __pthread_rwlock_readercv;
3637  pthread_cond_t __pthread_rwlock_writercv;
3638 } pthread_rwlock_t;
3639 
3640 /*
3641  * SUSV3
3642  */
3643 typedef struct {
3644  uint32_t __pthread_barrier_count;
3645  uint32_t __pthread_barrier_current;
3646  upad64_t __pthread_barrier_cycle;
3647  upad64_t __pthread_barrier_reserved;
3648  pthread_mutex_t __pthread_barrier_lock;
3649  pthread_cond_t __pthread_barrier_cond;
3650 } pthread_barrier_t;
3651 
3652 typedef pthread_mutex_t pthread_spinlock_t;
3653 
3654 /*
3655  * attributes for threads, dynamically allocated by library
3656  */
3657 typedef struct _pthread_attr {
3658  void *__pthread_attrp;
3659 } pthread_attr_t;
3660 
3661 /*
3662  * attributes for mutex, dynamically allocated by library
3663  */
3664 typedef struct _pthread_mutexattr {
3665  void *__pthread_mutexattrp;
3666 } pthread_mutexattr_t;
3667 
3668 /*
3669  * attributes for cond, dynamically allocated by library
3670  */
3671 typedef struct _pthread_condattr {
3672  void *__pthread_condattrp;
3673 } pthread_condattr_t;
3674 
3675 /*
3676  * pthread_once
3677  */
3678 typedef struct _once {
3679  upad64_t __pthread_once_pad[4];
3680 } pthread_once_t;
3681 
3682 /*
3683  * UNIX 98 Extensions
3684  * attributes for rwlock, dynamically allocated by library
3685  */
3686 typedef struct _pthread_rwlockattr {
3687  void *__pthread_rwlockattrp;
3688 } pthread_rwlockattr_t;
3689 
3690 /*
3691  * SUSV3
3692  * attributes for pthread_barrier_t, dynamically allocated by library
3693  */
3694 typedef struct {
3695  void *__pthread_barrierattrp;
3696 } pthread_barrierattr_t;
3697 
3698 typedef ulong_t dev_t; /* expanded device type */
3699 
3700 
3701 typedef uint_t nlink_t; /* file link type	*/
3702 typedef int pid_t; /* process id type	*/
3703 # 537 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3704 typedef long time_t; /* time of day in seconds */
3705 
3706 
3707 
3708 
3709 typedef long clock_t; /* relative time in a specified resolution */
3710 
3711 
3712 
3713 
3714 typedef int clockid_t; /* clock identifier type */
3715 
3716 
3717 
3718 
3719 typedef int timer_t; /* timer identifier type */
3720 
3721 
3722 
3723 
3724 /* BEGIN CSTYLED */
3725 typedef unsigned char unchar;
3726 typedef unsigned short ushort;
3727 typedef unsigned int uint;
3728 typedef unsigned long ulong;
3729 /* END CSTYLED */
3730 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3731 /*
3732  * The following is the value of type id_t to use to indicate the
3733  * caller's current id.  See procset.h for the type idtype_t
3734  * which defines which kind of id is being specified.
3735  */
3736 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3737 /*
3738  * The following value of type pfn_t is used to indicate
3739  * invalid page frame number.
3740  */
3741 
3742 
3743 
3744 /* BEGIN CSTYLED */
3745 typedef unsigned char u_char;
3746 typedef unsigned short u_short;
3747 typedef unsigned int u_int;
3748 typedef unsigned long u_long;
3749 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */
3750 typedef quad_t quad; /* used by UFS */
3751 /* END CSTYLED */
3752 
3753 /*
3754  * Nested include for BSD/sockets source compatibility.
3755  * (The select macros used to be defined here).
3756  */
3757 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
3758 /*
3759  * CDDL HEADER START
3760  *
3761  * The contents of this file are subject to the terms of the
3762  * Common Development and Distribution License (the "License").
3763  * You may not use this file except in compliance with the License.
3764  *
3765  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3766  * or http://www.opensolaris.org/os/licensing.
3767  * See the License for the specific language governing permissions
3768  * and limitations under the License.
3769  *
3770  * When distributing Covered Code, include this CDDL HEADER in each
3771  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3772  * If applicable, add the following below this CDDL HEADER, with the
3773  * fields enclosed by brackets "[]" replaced with your own identifying
3774  * information: Portions Copyright [yyyy] [name of copyright owner]
3775  *
3776  * CDDL HEADER END
3777  */
3778 
3779 /*
3780  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3781  *
3782  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3783  *
3784  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
3785  * Use is subject to license terms.
3786  */
3787 
3788 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3789 /*	  All Rights Reserved	*/
3790 
3791 /*
3792  * University Copyright- Copyright (c) 1982, 1986, 1988
3793  * The Regents of the University of California
3794  * All Rights Reserved
3795  *
3796  * University Acknowledgment- Portions of this document are derived from
3797  * software developed by the University of California, Berkeley, and its
3798  * contributors.
3799  */
3800 
3801 
3802 
3803 
3804 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3805 /*
3806  * CDDL HEADER START
3807  *
3808  * The contents of this file are subject to the terms of the
3809  * Common Development and Distribution License (the "License").
3810  * You may not use this file except in compliance with the License.
3811  *
3812  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3813  * or http://www.opensolaris.org/os/licensing.
3814  * See the License for the specific language governing permissions
3815  * and limitations under the License.
3816  *
3817  * When distributing Covered Code, include this CDDL HEADER in each
3818  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3819  * If applicable, add the following below this CDDL HEADER, with the
3820  * fields enclosed by brackets "[]" replaced with your own identifying
3821  * information: Portions Copyright [yyyy] [name of copyright owner]
3822  *
3823  * CDDL HEADER END
3824  */
3825 
3826 /*
3827  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3828  * Copyright 2016 Joyent, Inc.
3829  *
3830  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3831  * Use is subject to license terms.
3832  */
3833 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
3834 
3835 
3836 
3837 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
3838 /*
3839  * CDDL HEADER START
3840  *
3841  * The contents of this file are subject to the terms of the
3842  * Common Development and Distribution License, Version 1.0 only
3843  * (the "License").  You may not use this file except in compliance
3844  * with the License.
3845  *
3846  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3847  * or http://www.opensolaris.org/os/licensing.
3848  * See the License for the specific language governing permissions
3849  * and limitations under the License.
3850  *
3851  * When distributing Covered Code, include this CDDL HEADER in each
3852  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3853  * If applicable, add the following below this CDDL HEADER, with the
3854  * fields enclosed by brackets "[]" replaced with your own identifying
3855  * information: Portions Copyright [yyyy] [name of copyright owner]
3856  *
3857  * CDDL HEADER END
3858  */
3859 /*
3860  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
3861  * Use is subject to license terms.
3862  */
3863 
3864 /*
3865  * Implementation-private.  This header should not be included
3866  * directly by an application.  The application should instead
3867  * include <time.h> which includes this header conditionally
3868  * depending on which feature test macros are defined. By default,
3869  * this header is included by <time.h>.  X/Open and POSIX
3870  * standards requirements result in this header being included
3871  * by <time.h> only under a restricted set of conditions.
3872  */
3873 
3874 
3875 
3876 
3877 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3878 /*
3879  * CDDL HEADER START
3880  *
3881  * The contents of this file are subject to the terms of the
3882  * Common Development and Distribution License (the "License").
3883  * You may not use this file except in compliance with the License.
3884  *
3885  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3886  * or http://www.opensolaris.org/os/licensing.
3887  * See the License for the specific language governing permissions
3888  * and limitations under the License.
3889  *
3890  * When distributing Covered Code, include this CDDL HEADER in each
3891  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3892  * If applicable, add the following below this CDDL HEADER, with the
3893  * fields enclosed by brackets "[]" replaced with your own identifying
3894  * information: Portions Copyright [yyyy] [name of copyright owner]
3895  *
3896  * CDDL HEADER END
3897  */
3898 
3899 /*
3900  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3901  * Copyright 2016 Joyent, Inc.
3902  *
3903  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3904  * Use is subject to license terms.
3905  */
3906 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2
3907 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
3908 /*
3909  * Time expressed in seconds and nanoseconds
3910  */
3911 
3912 typedef struct timespec { /* definition per POSIX.4 */
3913  time_t tv_sec; /* seconds */
3914  long tv_nsec; /* and nanoseconds */
3915 } timespec_t;
3916 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
3917 typedef struct timespec timestruc_t; /* definition per SVr4 */
3918 
3919 /*
3920  * The following has been left in for backward compatibility. Portable
3921  * applications should not use the structure name timestruc.
3922  */
3923 
3924 
3925 
3926 
3927 
3928 /*
3929  * Timer specification
3930  */
3931 typedef struct itimerspec { /* definition per POSIX.4 */
3932  struct timespec it_interval; /* timer period */
3933  struct timespec it_value; /* timer expiration */
3934 } itimerspec_t;
3935 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
3936 
3937 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
3938 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3939 /*	  All Rights Reserved  	*/
3940 
3941 
3942 /*
3943  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
3944  * All rights reserved.  The Berkeley software License Agreement
3945  * specifies the terms and conditions for redistribution.
3946  */
3947 
3948 /*
3949  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3950  *
3951  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3952  * Use is subject to license terms.
3953  *
3954  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3955  */
3956 
3957 /*
3958  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
3959  */
3960 
3961 
3962 
3963 
3964 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3965 /*
3966  * CDDL HEADER START
3967  *
3968  * The contents of this file are subject to the terms of the
3969  * Common Development and Distribution License (the "License").
3970  * You may not use this file except in compliance with the License.
3971  *
3972  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3973  * or http://www.opensolaris.org/os/licensing.
3974  * See the License for the specific language governing permissions
3975  * and limitations under the License.
3976  *
3977  * When distributing Covered Code, include this CDDL HEADER in each
3978  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3979  * If applicable, add the following below this CDDL HEADER, with the
3980  * fields enclosed by brackets "[]" replaced with your own identifying
3981  * information: Portions Copyright [yyyy] [name of copyright owner]
3982  *
3983  * CDDL HEADER END
3984  */
3985 
3986 /*
3987  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3988  * Copyright 2016 Joyent, Inc.
3989  *
3990  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3991  * Use is subject to license terms.
3992  */
3993 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
3994 
3995 /*
3996  * Structure returned by gettimeofday(2) system call,
3997  * and used in other calls.
3998  */
3999 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4000 struct timeval {
4001  time_t tv_sec; /* seconds */
4002  suseconds_t tv_usec; /* and microseconds */
4003 };
4004 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4005 struct timezone {
4006  int tz_minuteswest; /* minutes west of Greenwich */
4007  int tz_dsttime; /* type of dst correction */
4008 };
4009 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4010 /*
4011  * Needed for longlong_t type.  Placement of this due to <sys/types.h>
4012  * including <sys/select.h> which relies on the presense of the itimerval
4013  * structure.
4014  */
4015 
4016 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4017 /*
4018  * CDDL HEADER START
4019  *
4020  * The contents of this file are subject to the terms of the
4021  * Common Development and Distribution License (the "License").
4022  * You may not use this file except in compliance with the License.
4023  *
4024  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4025  * or http://www.opensolaris.org/os/licensing.
4026  * See the License for the specific language governing permissions
4027  * and limitations under the License.
4028  *
4029  * When distributing Covered Code, include this CDDL HEADER in each
4030  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4031  * If applicable, add the following below this CDDL HEADER, with the
4032  * fields enclosed by brackets "[]" replaced with your own identifying
4033  * information: Portions Copyright [yyyy] [name of copyright owner]
4034  *
4035  * CDDL HEADER END
4036  */
4037 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4038 /*	  All Rights Reserved  	*/
4039 
4040 
4041 /*
4042  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4043  * Use is subject to license terms.
4044  *
4045  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4046  * Copyright 2016 Joyent, Inc.
4047  */
4048 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4049 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4050 /*
4051  * Operations on timevals.
4052  */
4053 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4054 /*
4055  * Names of the interval timers, and structure
4056  * defining a timer setting.
4057  */
4058 
4059 
4060 
4061     /* time and when system is running on */
4062     /* behalf of the process. */
4063 
4064     /* time profiling of multithreaded */
4065     /* programs. */
4066 
4067 
4068 struct itimerval {
4069  struct timeval it_interval; /* timer interval */
4070  struct timeval it_value; /* current value */
4071 };
4072 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4073 /*
4074  *	Definitions for commonly used resolutions.
4075  */
4076 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4077 /*
4078  * Time expressed as a 64-bit nanosecond counter.
4079  */
4080 typedef longlong_t hrtime_t;
4081 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4082 int adjtime(struct timeval *, struct timeval *);
4083 
4084 
4085 
4086 
4087 int futimesat(int, const char *, const struct timeval *);
4088 
4089 
4090 
4091 
4092 
4093 int getitimer(int, struct itimerval *);
4094 int utimes(const char *, const struct timeval *);
4095 
4096 
4097 
4098 
4099 int setitimer(int, struct itimerval *,
4100  struct itimerval *);
4101 
4102 
4103 
4104 
4105 /*
4106  * gettimeofday() and settimeofday() were included in SVr4 due to their
4107  * common use in BSD based applications.  They were to be included exactly
4108  * as in BSD, with two parameters.  However, AT&T/USL noted that the second
4109  * parameter was unused and deleted it, thereby making a routine included
4110  * for compatibility, incompatible.
4111  *
4112  * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two
4113  * parameters.
4114  *
4115  * This has caused general disagreement in the application community as to
4116  * the syntax of these routines.  Solaris defaults to the XSH4.2 definition.
4117  * The flag _SVID_GETTOD may be used to force the SVID version.
4118  */
4119 
4120 
4121 
4122 
4123 
4124 int settimeofday(struct timeval *, void *);
4125 
4126 hrtime_t gethrtime(void);
4127 hrtime_t gethrvtime(void);
4128 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4129 int gettimeofday(struct timeval *, void *);
4130 
4131 
4132 
4133 
4134 /*
4135  * The inclusion of <time.h> is historical and was added for
4136  * backward compatibility in delta 1.2 when a number of definitions
4137  * were moved out of <sys/time.h>.  More recently, the timespec and
4138  * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
4139  * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
4140  * which is now included by <time.h>.  This change was due to POSIX
4141  * 1003.1b-1993 and X/Open UNIX 98 requirements.  For non-POSIX and
4142  * non-X/Open applications, including this header will still make
4143  * visible these definitions.
4144  */
4145 
4146 
4147 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
4148 /*
4149  * CDDL HEADER START
4150  *
4151  * The contents of this file are subject to the terms of the
4152  * Common Development and Distribution License (the "License").
4153  * You may not use this file except in compliance with the License.
4154  *
4155  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4156  * or http://www.opensolaris.org/os/licensing.
4157  * See the License for the specific language governing permissions
4158  * and limitations under the License.
4159  *
4160  * When distributing Covered Code, include this CDDL HEADER in each
4161  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4162  * If applicable, add the following below this CDDL HEADER, with the
4163  * fields enclosed by brackets "[]" replaced with your own identifying
4164  * information: Portions Copyright [yyyy] [name of copyright owner]
4165  *
4166  * CDDL HEADER END
4167  */
4168 /*	Copyright (c) 1988 AT&T	*/
4169 /*	  All Rights Reserved  	*/
4170 
4171 
4172 /*
4173  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4174  *
4175  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
4176  * Use is subject to license terms.
4177  */
4178 /*
4179  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
4180  * Copyright 2016 Joyent, Inc.
4181  */
4182 
4183 
4184 
4185 
4186 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4187 /*
4188  * CDDL HEADER START
4189  *
4190  * The contents of this file are subject to the terms of the
4191  * Common Development and Distribution License (the "License").
4192  * You may not use this file except in compliance with the License.
4193  *
4194  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4195  * or http://www.opensolaris.org/os/licensing.
4196  * See the License for the specific language governing permissions
4197  * and limitations under the License.
4198  *
4199  * When distributing Covered Code, include this CDDL HEADER in each
4200  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4201  * If applicable, add the following below this CDDL HEADER, with the
4202  * fields enclosed by brackets "[]" replaced with your own identifying
4203  * information: Portions Copyright [yyyy] [name of copyright owner]
4204  *
4205  * CDDL HEADER END
4206  */
4207 
4208 /*
4209  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4210  * Copyright 2016 Joyent, Inc.
4211  *
4212  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4213  * Use is subject to license terms.
4214  */
4215 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4216 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1
4217 /*
4218  * CDDL HEADER START
4219  *
4220  * The contents of this file are subject to the terms of the
4221  * Common Development and Distribution License, Version 1.0 only
4222  * (the "License").  You may not use this file except in compliance
4223  * with the License.
4224  *
4225  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4226  * or http://www.opensolaris.org/os/licensing.
4227  * See the License for the specific language governing permissions
4228  * and limitations under the License.
4229  *
4230  * When distributing Covered Code, include this CDDL HEADER in each
4231  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4232  * If applicable, add the following below this CDDL HEADER, with the
4233  * fields enclosed by brackets "[]" replaced with your own identifying
4234  * information: Portions Copyright [yyyy] [name of copyright owner]
4235  *
4236  * CDDL HEADER END
4237  */
4238 /*	Copyright (c) 1988 AT&T	*/
4239 /*	  All Rights Reserved  	*/
4240 
4241 /*
4242  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4243  * Copyright 2014 PALO, Richard.
4244  *
4245  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
4246  * Use is subject to license terms.
4247  */
4248 
4249 /*
4250  * An application should not include this header directly.  Instead it
4251  * should be included only through the inclusion of other Sun headers.
4252  *
4253  * The contents of this header is limited to identifiers specified in the
4254  * C Standard.  Any new identifiers specified in future amendments to the
4255  * C Standard must be placed in this header.  If these new identifiers
4256  * are required to also be in the C++ Standard "std" namespace, then for
4257  * anything other than macro definitions, corresponding "using" directives
4258  * must also be added to <time.h.h>.
4259  */
4260 
4261 
4262 
4263 
4264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4265 /*
4266  * CDDL HEADER START
4267  *
4268  * The contents of this file are subject to the terms of the
4269  * Common Development and Distribution License (the "License").
4270  * You may not use this file except in compliance with the License.
4271  *
4272  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4273  * or http://www.opensolaris.org/os/licensing.
4274  * See the License for the specific language governing permissions
4275  * and limitations under the License.
4276  *
4277  * When distributing Covered Code, include this CDDL HEADER in each
4278  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4279  * If applicable, add the following below this CDDL HEADER, with the
4280  * fields enclosed by brackets "[]" replaced with your own identifying
4281  * information: Portions Copyright [yyyy] [name of copyright owner]
4282  *
4283  * CDDL HEADER END
4284  */
4285 
4286 /*
4287  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4288  * Copyright 2016 Joyent, Inc.
4289  *
4290  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4291  * Use is subject to license terms.
4292  */
4293 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
4294 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
4295 /*
4296  * This file and its contents are supplied under the terms of the
4297  * Common Development and Distribution License ("CDDL"), version 1.0.
4298  * You may only use this file in accordance with the terms of version
4299  * 1.0 of the CDDL.
4300  *
4301  * A full copy of the text of the CDDL should have accompanied this
4302  * source.  A copy of the CDDL is also available via the Internet at
4303  * http://www.illumos.org/license/CDDL.
4304  */
4305 
4306 /*
4307  * Copyright 2014-2016 PALO, Richard.
4308  */
4309 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
4310 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h"
4311 struct tm { /* see ctime(3) */
4312  int tm_sec;
4313  int tm_min;
4314  int tm_hour;
4315  int tm_mday;
4316  int tm_mon;
4317  int tm_year;
4318  int tm_wday;
4319  int tm_yday;
4320  int tm_isdst;
4321 };
4322 
4323 
4324 extern char *asctime(const struct tm *);
4325 extern clock_t clock(void);
4326 extern char *ctime(const time_t *);
4327 extern double difftime(time_t, time_t);
4328 extern struct tm *gmtime(const time_t *);
4329 extern struct tm *localtime(const time_t *);
4330 extern time_t mktime(struct tm *);
4331 extern time_t time(time_t *);
4332 extern size_t strftime(char *, size_t, const char *,
4333  const struct tm *);
4334 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4335 /*
4336  * C11 requires sys/time_impl.h for the definition of the struct timespec.
4337  */
4338 
4339 
4340 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4341 /*
4342  * CDDL HEADER START
4343  *
4344  * The contents of this file are subject to the terms of the
4345  * Common Development and Distribution License (the "License").
4346  * You may not use this file except in compliance with the License.
4347  *
4348  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4349  * or http://www.opensolaris.org/os/licensing.
4350  * See the License for the specific language governing permissions
4351  * and limitations under the License.
4352  *
4353  * When distributing Covered Code, include this CDDL HEADER in each
4354  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4355  * If applicable, add the following below this CDDL HEADER, with the
4356  * fields enclosed by brackets "[]" replaced with your own identifying
4357  * information: Portions Copyright [yyyy] [name of copyright owner]
4358  *
4359  * CDDL HEADER END
4360  */
4361 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4362 /*	  All Rights Reserved  	*/
4363 
4364 
4365 /*
4366  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4367  * Use is subject to license terms.
4368  *
4369  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4370  * Copyright 2016 Joyent, Inc.
4371  */
4372 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4373 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
4374 /*
4375  * CDDL HEADER START
4376  *
4377  * The contents of this file are subject to the terms of the
4378  * Common Development and Distribution License, Version 1.0 only
4379  * (the "License").  You may not use this file except in compliance
4380  * with the License.
4381  *
4382  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4383  * or http://www.opensolaris.org/os/licensing.
4384  * See the License for the specific language governing permissions
4385  * and limitations under the License.
4386  *
4387  * When distributing Covered Code, include this CDDL HEADER in each
4388  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4389  * If applicable, add the following below this CDDL HEADER, with the
4390  * fields enclosed by brackets "[]" replaced with your own identifying
4391  * information: Portions Copyright [yyyy] [name of copyright owner]
4392  *
4393  * CDDL HEADER END
4394  */
4395 /*
4396  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
4397  * Use is subject to license terms.
4398  */
4399 
4400 /*
4401  * Implementation-private.  This header should not be included
4402  * directly by an application.  The application should instead
4403  * include <time.h> which includes this header conditionally
4404  * depending on which feature test macros are defined. By default,
4405  * this header is included by <time.h>.  X/Open and POSIX
4406  * standards requirements result in this header being included
4407  * by <time.h> only under a restricted set of conditions.
4408  */
4409 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4410 
4411 
4412 /*
4413  * Allow global visibility for symbols defined in
4414  * C++ "std" namespace in <iso/time_iso.h>.
4415  */
4416 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4417 extern struct tm *gmtime_r(const time_t *,
4418    struct tm *);
4419 extern struct tm *localtime_r(const time_t *,
4420    struct tm *);
4421 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4422 extern char *strptime(const char *, const char *,
4423   struct tm *);
4424 
4425 
4426 
4427 
4428 
4429 /*
4430  * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
4431  * definition of the sigevent structure.  Both require the inclusion
4432  * of <signal.h> and <time.h> when using the timer_create() function.
4433  * However, X/Open also specifies that the sigevent structure be defined
4434  * in <time.h> as described in the header <signal.h>.  This prevents
4435  * compiler warnings for applications that only include <time.h> and not
4436  * also <signal.h>.  The sigval union and the sigevent structure is
4437  * therefore defined both here and in <sys/siginfo.h> which gets included
4438  * via inclusion of <signal.h>.
4439  */
4440 
4441 
4442 union sigval {
4443  int sival_int; /* integer value */
4444  void *sival_ptr; /* pointer value */
4445 };
4446 
4447 
4448 
4449 
4450 struct sigevent {
4451  int sigev_notify; /* notification mode */
4452  int sigev_signo; /* signal number */
4453  union sigval sigev_value; /* signal value */
4454  void (*sigev_notify_function)(union sigval);
4455  pthread_attr_t *sigev_notify_attributes;
4456  int __sigev_pad2;
4457 };
4458 
4459 
4460 extern int clock_getres(clockid_t, struct timespec *);
4461 extern int clock_gettime(clockid_t, struct timespec *);
4462 extern int clock_settime(clockid_t, const struct timespec *);
4463 extern int timer_create(clockid_t, struct sigevent *,
4464   timer_t *);
4465 extern int timer_delete(timer_t);
4466 extern int timer_getoverrun(timer_t);
4467 extern int timer_gettime(timer_t, struct itimerspec *);
4468 extern int timer_settime(timer_t, int, const struct itimerspec *,
4469   struct itimerspec *);
4470 
4471 extern int nanosleep(const struct timespec *, struct timespec *);
4472 extern int clock_nanosleep(clockid_t, int,
4473  const struct timespec *, struct timespec *);
4474 
4475 
4476 
4477 
4478 
4479 
4480 extern void tzset(void);
4481 extern char *tzname[2];
4482 
4483 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */
4484 
4485 
4486 extern long _sysconf(int); /* System Private interface to sysconf() */
4487 
4488     /* 3 is _SC_CLK_TCK */
4489 
4490 
4491 
4492 
4493 
4494 extern long timezone;
4495 extern int daylight;
4496 
4497 
4498 
4499 
4500 
4501 
4502 extern time_t timegm(struct tm *);
4503 extern int cftime(char *, char *, const time_t *);
4504 extern int ascftime(char *, const char *, const struct tm *);
4505 extern long altzone;
4506 
4507 
4508 
4509 
4510 extern struct tm *getdate(const char *);
4511 
4512 
4513 
4514 
4515 
4516 extern int getdate_err;
4517 
4518 
4519 
4520 /*
4521  * ctime_r() & asctime_r() prototypes are defined here.
4522  */
4523 
4524 /*
4525  * Previous releases of Solaris, starting at 2.3, provided definitions of
4526  * various functions as specified in POSIX.1c, Draft 6.  For some of these
4527  * functions, the final POSIX 1003.1c standard had a different number of
4528  * arguments and return values.
4529  *
4530  * The following segment of this header provides support for the standard
4531  * interfaces while supporting applications written under earlier
4532  * releases.  The application defines appropriate values of the feature
4533  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
4534  * whether it was written to expect the Draft 6 or standard versions of
4535  * these interfaces, before including this header.  This header then
4536  * provides a mapping from the source version of the interface to an
4537  * appropriate binary interface.  Such mappings permit an application
4538  * to be built from libraries and objects which have mixed expectations
4539  * of the definitions of these functions.
4540  *
4541  * For applications using the Draft 6 definitions, the binary symbol is the
4542  * same as the source symbol, and no explicit mapping is needed.  For the
4543  * standard interface, the function func() is mapped to the binary symbol
4544  * _posix_func().  The preferred mechanism for the remapping is a compiler
4545  * #pragma.  If the compiler does not provide such a #pragma, the header file
4546  * defines a static function func() which calls the _posix_func() version;
4547  * this has to be done instead of #define since POSIX specifies that an
4548  * application can #undef the symbol and still be bound to the correct
4549  * implementation.  Unfortunately, the statics confuse lint so we fallback to
4550  * #define in that case.
4551  *
4552  * NOTE: Support for the Draft 6 definitions is provided for compatibility
4553  * only.  New applications/libraries should use the standard definitions.
4554  */
4555 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4556 extern char *asctime_r(const struct tm *, char *, int);
4557 extern char *ctime_r(const time_t *, char *, int);
4558 # 292 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4559 typedef struct _locale *locale_t;
4560 
4561 
4562 extern size_t strftime_l(char *, size_t,
4563  const char *, const struct tm *, locale_t);
4564 
4565 
4566 
4567 
4568 
4569 /*
4570  * Note, the C11 standard requires that all the various base values that are
4571  * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one.
4572  */
4573 
4574 
4575 extern int timespec_get(struct timespec *, int);
4576 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4577 
4578 
4579 /*
4580  * The inclusion of <sys/select.h> is needed for the FD_CLR,
4581  * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
4582  * select() prototype defined in the XOpen specifications
4583  * beginning with XSH4v2.  Placement required after definition
4584  * for itimerval.
4585  */
4586 
4587 
4588 
4589 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
4590 /*
4591  * CDDL HEADER START
4592  *
4593  * The contents of this file are subject to the terms of the
4594  * Common Development and Distribution License (the "License").
4595  * You may not use this file except in compliance with the License.
4596  *
4597  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4598  * or http://www.opensolaris.org/os/licensing.
4599  * See the License for the specific language governing permissions
4600  * and limitations under the License.
4601  *
4602  * When distributing Covered Code, include this CDDL HEADER in each
4603  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4604  * If applicable, add the following below this CDDL HEADER, with the
4605  * fields enclosed by brackets "[]" replaced with your own identifying
4606  * information: Portions Copyright [yyyy] [name of copyright owner]
4607  *
4608  * CDDL HEADER END
4609  */
4610 
4611 /*
4612  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4613  *
4614  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4615  *
4616  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
4617  * Use is subject to license terms.
4618  */
4619 
4620 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4621 /*	  All Rights Reserved	*/
4622 
4623 /*
4624  * University Copyright- Copyright (c) 1982, 1986, 1988
4625  * The Regents of the University of California
4626  * All Rights Reserved
4627  *
4628  * University Acknowledgment- Portions of this document are derived from
4629  * software developed by the University of California, Berkeley, and its
4630  * contributors.
4631  */
4632 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4633 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
4634 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4635 /*
4636  * The sigset_t type is defined in <sys/signal.h> and duplicated
4637  * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
4638  * now allows the visibility of signal.h in this header, however
4639  * an order of inclusion problem occurs as a result of inclusion
4640  * of <sys/select.h> in <signal.h> under certain conditions.
4641  * Rather than include <sys/signal.h> here, we've duplicated
4642  * the sigset_t type instead. This type is required for the XPG6
4643  * introduced pselect() function also declared in this header.
4644  */
4645 
4646 
4647 typedef struct { /* signal set type */
4648  unsigned int __sigbits[4];
4649 } sigset_t;
4650 
4651 
4652 
4653 
4654 /*
4655  * Select uses bit masks of file descriptors in longs.
4656  * These macros manipulate such bit fields.
4657  * FD_SETSIZE may be defined by the user, but the default here
4658  * should be >= NOFILE (param.h).
4659  */
4660 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4661 typedef long fd_mask;
4662 
4663 typedef long fds_mask;
4664 
4665 /*
4666  *  The value of _NBBY needs to be consistant with the value
4667  *  of NBBY in <sys/param.h>.
4668  */
4669 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4670 typedef struct fd_set {
4671 
4672 
4673 
4674  long fds_bits[(((65536)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
4675 } fd_set;
4676 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4677 extern int select(int, fd_set *, fd_set *,
4678  fd_set *, struct timeval *);
4679 
4680 
4681 extern int pselect(int, fd_set *, fd_set *,
4682  fd_set *, const struct timespec *,
4683  const sigset_t *);
4684 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
4685 
4686 
4687 
4688 /*
4689  * _VOID was defined to be either void or char but this is not
4690  * required because previous SunOS compilers have accepted the void
4691  * type. However, because many system header and source files use the
4692  * void keyword, the volatile keyword, and ANSI C function prototypes,
4693  * non-ANSI compilers cannot compile the system anyway. The _VOID macro
4694  * should therefore not be used and remains for source compatibility
4695  * only.
4696  */
4697 /* CSTYLED */
4698 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
4699 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
4700 /*
4701  * CDDL HEADER START
4702  *
4703  * The contents of this file are subject to the terms of the
4704  * Common Development and Distribution License (the "License").
4705  * You may not use this file except in compliance with the License.
4706  *
4707  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4708  * or http://www.opensolaris.org/os/licensing.
4709  * See the License for the specific language governing permissions
4710  * and limitations under the License.
4711  *
4712  * When distributing Covered Code, include this CDDL HEADER in each
4713  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4714  * If applicable, add the following below this CDDL HEADER, with the
4715  * fields enclosed by brackets "[]" replaced with your own identifying
4716  * information: Portions Copyright [yyyy] [name of copyright owner]
4717  *
4718  * CDDL HEADER END
4719  */
4720 
4721 /*
4722  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
4723  *	  All Rights Reserved
4724  *
4725  */
4726 
4727 /*
4728  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4729  * Use is subject to license terms.
4730  */
4731 
4732 /*
4733  * WARNING: This is an implementation-specific header,
4734  * its contents are not guaranteed. Applications
4735  * should include <unistd.h> and not this header.
4736  */
4737 
4738 
4739 
4740 
4741 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4742 /*
4743  * CDDL HEADER START
4744  *
4745  * The contents of this file are subject to the terms of the
4746  * Common Development and Distribution License (the "License").
4747  * You may not use this file except in compliance with the License.
4748  *
4749  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4750  * or http://www.opensolaris.org/os/licensing.
4751  * See the License for the specific language governing permissions
4752  * and limitations under the License.
4753  *
4754  * When distributing Covered Code, include this CDDL HEADER in each
4755  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4756  * If applicable, add the following below this CDDL HEADER, with the
4757  * fields enclosed by brackets "[]" replaced with your own identifying
4758  * information: Portions Copyright [yyyy] [name of copyright owner]
4759  *
4760  * CDDL HEADER END
4761  */
4762 
4763 /*
4764  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4765  * Copyright 2016 Joyent, Inc.
4766  *
4767  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4768  * Use is subject to license terms.
4769  */
4770 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2
4771 
4772 
4773 
4774 
4775 
4776 /* command names for confstr */
4777 
4778 
4779 
4780 /*
4781  * command names for large file configuration information
4782  */
4783 /* large file compilation environment configuration */
4784 
4785 
4786 
4787 
4788 /* transitional large file interface configuration */
4789 
4790 
4791 
4792 
4793 
4794 /* UNIX 98 */
4795 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4796 /* UNIX 03 */
4797 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4798 /* command names for POSIX sysconf */
4799 
4800 /* POSIX.1 names */
4801 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4802 /* SVR4 names */
4803 
4804 
4805 
4806 
4807 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
4808 
4809 
4810 
4811 
4812 /* POSIX.4 names */
4813 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4814 /* XPG4 names */
4815 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4816 /* additional XSH4/XCU4 command names for sysconf */
4817 
4818 
4819 
4820 /* additional XPG4v2 (UNIX 95) command names */
4821 
4822 
4823 
4824 
4825 
4826 /* defined for XTI (XNS Issue 5) */
4827 
4828 
4829 
4830 
4831 
4832 
4833 
4834 /*
4835  * Hardware specific items
4836  * Note that not all items are supported on all architectures
4837  */
4838 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4839 /*
4840  * POSIX.1c (pthreads) names. These values are defined above
4841  * the sub-500 range. See psarc case 1995/257.
4842  */
4843 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4844 /* UNIX 98 */
4845 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4846 /* UNIX 03 */
4847 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4848 /* command names for POSIX pathconf */
4849 
4850 /* POSIX.1 names */
4851 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4852 /* POSIX.4 names */
4853 
4854 
4855 
4856 /* UNIX 03 names */
4857 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4858 /* UNIX 08 names */
4859 
4860 
4861 /*
4862  * Large File Summit names
4863  *
4864  * This value matches the MIPS ABI choice, but leaves a large gap in the
4865  * value space.
4866  */
4867 
4868 
4869 /*
4870  * Extended attributes
4871  */
4872 
4873 
4874 
4875 /*
4876  * If you add a _PC define above 101, you must change _PC_LAST (and truss).
4877  */
4878 
4879 
4880 /*
4881  * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
4882  */
4883 
4884 
4885 
4886 /*
4887  * The value of 0 is returned when
4888  * ACL's are not supported
4889  */
4890 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4891 /*
4892  * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
4893  * should not rely on this value, it has been aligned with the current
4894  * standard to avoid confusion if used.
4895  */
4896 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4897 /* UNIX 03 names */
4898 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
4899 
4900 
4901 
4902 
4903 
4904 /* Symbolic constants for the "access" routine: */
4905 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4906 /* Symbolic constants for the "lseek" routine: */
4907 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4908 /* Path names: */
4909 
4910 
4911 
4912 
4913 /*
4914  * compile-time symbolic constants,
4915  * Support does not mean the feature is enabled.
4916  * Use pathconf/sysconf to obtain actual configuration value.
4917  */
4918 
4919 /* Values unchanged in UNIX 03 */
4920 
4921 
4922 
4923 
4924 
4925 /*
4926  * POSIX.1b compile-time symbolic constants.
4927  */
4928 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4929 /*
4930  * POSIX.1c compile-time symbolic constants.
4931  */
4932 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4933 /* New in UNIX 03 */
4934 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4935 /*
4936  * Support for the POSIX.1 mutex protocol attribute. For realtime applications
4937  * which need mutexes to support priority inheritance/ceiling.
4938  */
4939 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4940 /*
4941  * Large File Summit-related announcement macros.  The system supports both
4942  * the additional and transitional Large File Summit interfaces.  (The final
4943  * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.)
4944  */
4945 
4946 
4947 
4948 
4949 
4950 /* large file compilation environment setup */
4951 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4952 /* In the LP64 compilation environment, the APIs are already large file */
4953 
4954 
4955 
4956 # 221 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4957 #pragma redefine_extname ftruncate64 ftruncate
4958 # 221 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4959 
4960 
4961 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4962 #pragma redefine_extname lseek64 lseek
4963 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4964 
4965 
4966 # 223 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4967 #pragma redefine_extname pread64 pread
4968 # 223 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4969 
4970 
4971 # 224 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4972 #pragma redefine_extname pwrite64 pwrite
4973 # 224 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4974 
4975 
4976 # 225 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4977 #pragma redefine_extname truncate64 truncate
4978 # 225 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4979 
4980 
4981 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4982 #pragma redefine_extname lockf64 lockf
4983 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4984 
4985 
4986 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4987 #pragma redefine_extname tell64 tell
4988 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4989 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4990 extern int access(const char *, int);
4991 
4992 extern int acct(const char *);
4993 
4994 extern unsigned alarm(unsigned);
4995 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
4996 
4997 
4998 extern int brk(void *);
4999 
5000 extern int chdir(const char *);
5001 extern int chown(const char *, uid_t, gid_t);
5002 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5003 
5004 
5005 extern int chroot(const char *);
5006 
5007 extern int close(int);
5008 
5009 
5010 
5011 
5012 
5013 
5014 extern char *ctermid(char *);
5015 
5016 
5017 extern char *ctermid_r(char *);
5018 
5019 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5020 
5021 extern char *cuserid(char *);
5022 
5023 extern int dup(int);
5024 extern int dup2(int, int);
5025 extern int dup3(int, int, int);
5026 
5027 
5028 
5029 
5030 extern void endusershell(void);
5031 
5032 extern int execl(const char *, const char *, ...);
5033 extern int execle(const char *, const char *, ...);
5034 extern int execlp(const char *, const char *, ...);
5035 extern int execv(const char *, char *const *);
5036 extern int execve(const char *, char *const *, char *const *);
5037 extern int execvp(const char *, char *const *);
5038 extern void _exit(int)
5039  __attribute__((__noreturn__));
5040 /*
5041  * The following fattach prototype is duplicated in <stropts.h>. The
5042  * duplication is necessitated by XPG4.2 which requires the prototype
5043  * be defined in <stropts.h>.
5044  */
5045 
5046 extern int fattach(int, const char *);
5047 
5048 
5049 extern int fchdir(int);
5050 extern int fchown(int, uid_t, gid_t);
5051 
5052 
5053 extern int fchroot(int);
5054 
5055 
5056 
5057 extern int fdatasync(int);
5058 
5059 /*
5060  * The following fdetach prototype is duplicated in <stropts.h>. The
5061  * duplication is necessitated by XPG4.2 which requires the prototype
5062  * be defined in <stropts.h>.
5063  */
5064 
5065 extern int fdetach(const char *);
5066 
5067 extern pid_t fork(void);
5068 
5069 extern pid_t fork1(void);
5070 extern pid_t forkall(void);
5071 
5072 extern long fpathconf(int, int);
5073 
5074 
5075 extern int fsync(int);
5076 
5077 
5078 
5079 
5080 extern int ftruncate(int, off_t);
5081 
5082 extern char *getcwd(char *, size_t);
5083 
5084 
5085 extern int getdtablesize(void);
5086 
5087 extern gid_t getegid(void);
5088 extern uid_t geteuid(void);
5089 extern gid_t getgid(void);
5090 extern int getgroups(int, gid_t *);
5091 
5092 extern long gethostid(void);
5093 
5094 
5095 
5096 
5097 extern int gethostname(char *, int);
5098 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5099 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5100 
5101 extern int getpagesize(void);
5102 
5103 extern pid_t getpgid(pid_t);
5104 
5105 extern pid_t getpid(void);
5106 extern pid_t getppid(void);
5107 extern pid_t getpgrp(void);
5108 
5109 
5110 char *gettxt(const char *, const char *);
5111 
5112 
5113 extern pid_t getsid(pid_t);
5114 
5115 extern uid_t getuid(void);
5116 
5117 extern char *getusershell(void);
5118 
5119 /*
5120  * The following ioctl prototype is duplicated in <stropts.h>. The
5121  * duplication is necessitated by XPG4.2 which requires the prototype
5122  * be defined in <stropts.h>.
5123  */
5124 
5125 extern int ioctl(int, int, ...);
5126 extern int isaexec(const char *, char *const *, char *const *);
5127 extern int issetugid(void);
5128 
5129 extern int isatty(int);
5130 
5131 extern int lchown(const char *, uid_t, gid_t);
5132 
5133 extern int link(const char *, const char *);
5134 
5135 extern offset_t llseek(int, offset_t, int);
5136 
5137 
5138 
5139 
5140 extern int lockf(int, int, off_t);
5141 
5142 extern off_t lseek(int, off_t, int);
5143 
5144 
5145 extern int nice(int);
5146 
5147 
5148 extern int mincore(caddr_t, size_t, char *);
5149 
5150 extern long pathconf(const char *, int);
5151 extern int pause(void);
5152 extern int pipe(int *);
5153 extern int pipe2(int *, int);
5154 
5155 
5156 
5157 extern ssize_t pread(int, void *, size_t, off_t);
5158 
5159 
5160 extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
5161 
5162 /*
5163  * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The
5164  * declarations are identical. A change to either one may also require
5165  * appropriate namespace updates in order to avoid redeclaration
5166  * warnings in the case where both prototypes are exposed via inclusion
5167  * of both <pthread.h> and <unistd.h>.
5168  */
5169 
5170 
5171 
5172 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
5173 # 454 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5174 extern ssize_t pwrite(int, const void *, size_t, off_t);
5175 
5176 
5177 /* per RFC 3542; This is also defined in netdb.h */
5178 extern int rcmd_af(char **, unsigned short, const char *, const char *,
5179  const char *, int *, int);
5180 
5181 extern ssize_t read(int, void *, size_t);
5182 
5183 
5184 extern ssize_t readlink(const char *, char *,
5185  size_t);
5186 
5187 
5188 
5189 
5190 
5191 
5192 extern int rename(const char *, const char *);
5193 
5194 
5195 
5196 
5197 
5198 
5199 
5200 extern int resolvepath(const char *, char *, size_t);
5201 /* per RFC 3542; This is also defined in netdb.h */
5202 extern int rexec_af(char **, unsigned short, const char *, const char *,
5203  const char *, int *, int);
5204 
5205 extern int rmdir(const char *);
5206 
5207 /* per RFC 3542; This is also defined in netdb.h */
5208 extern int rresvport_af(int *, int);
5209 
5210 
5211 
5212 
5213 extern void *sbrk(intptr_t);
5214 
5215 
5216 extern int setegid(gid_t);
5217 extern int seteuid(uid_t);
5218 
5219 extern int setgid(gid_t);
5220 
5221 extern int setgroups(int, const gid_t *);
5222 extern int sethostname(char *, int);
5223 
5224 extern int setpgid(pid_t, pid_t);
5225 
5226 extern pid_t setpgrp(void);
5227 extern int setregid(gid_t, gid_t);
5228 extern int setreuid(uid_t, uid_t);
5229 
5230 extern pid_t setsid(void);
5231 extern int setuid(uid_t);
5232 
5233 extern void setusershell(void);
5234 
5235 extern unsigned sleep(unsigned);
5236 
5237 extern int stime(const time_t *);
5238 
5239 
5240 
5241 
5242 
5243 
5244 extern int symlink(const char *, const char *);
5245 extern void sync(void);
5246 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5247 extern long sysconf(int);
5248 extern pid_t tcgetpgrp(int);
5249 extern int tcsetpgrp(int, pid_t);
5250 
5251 
5252 
5253 extern off_t tell(int);
5254 
5255 
5256 
5257 
5258 extern int truncate(const char *, off_t);
5259 
5260 extern char *ttyname(int);
5261 
5262 extern useconds_t ualarm(useconds_t, useconds_t);
5263 
5264 extern int unlink(const char *);
5265 
5266 extern char *getwd(char *);
5267 extern int usleep(useconds_t);
5268 extern pid_t vfork(void) __attribute__((__returns_twice__));
5269 #pragma unknown_control_flow(vfork)
5270 
5271 
5272 extern void vhangup(void);
5273 
5274 extern ssize_t write(int, const void *, size_t);
5275 
5276 extern void yield(void);
5277 
5278 
5279 
5280 
5281  /* || defined(_XPG7) */
5282 extern int faccessat(int, const char *, int, int);
5283 extern int fchownat(int, const char *, uid_t, gid_t, int);
5284 extern int linkat(int, const char *, int, const char *, int);
5285 extern ssize_t readlinkat(int, const char *,
5286  char *, size_t);
5287 extern int renameat(int, const char *, int, const char *);
5288 extern int symlinkat(const char *, int, const char *);
5289 extern int unlinkat(int, const char *, int);
5290 
5291 
5292 extern int get_nprocs(void);
5293 extern int get_nprocs_conf(void);
5294 
5295 
5296 /* transitional large file interface versions */
5297 
5298 
5299 extern int ftruncate64(int, off64_t);
5300 extern off64_t lseek64(int, off64_t, int);
5301 extern ssize_t pread64(int, void *, size_t, off64_t);
5302 extern ssize_t pwrite64(int, const void *, size_t, off64_t);
5303 extern off64_t tell64(int);
5304 extern int truncate64(const char *, off64_t);
5305 extern int lockf64(int, int, off64_t);
5306 
5307 
5308 /*
5309  * getlogin_r() & ttyname_r() prototypes are defined here.
5310  */
5311 
5312 /*
5313  * Previous releases of Solaris, starting at 2.3, provided definitions of
5314  * various functions as specified in POSIX.1c, Draft 6.  For some of these
5315  * functions, the final POSIX 1003.1c standard had a different number of
5316  * arguments and return values.
5317  *
5318  * The following segment of this header provides support for the standard
5319  * interfaces while supporting applications written under earlier
5320  * releases.  The application defines appropriate values of the feature
5321  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
5322  * whether it was written to expect the Draft 6 or standard versions of
5323  * these interfaces, before including this header.  This header then
5324  * provides a mapping from the source version of the interface to an
5325  * appropriate binary interface.  Such mappings permit an application
5326  * to be built from libraries and objects which have mixed expectations
5327  * of the definitions of these functions.
5328  *
5329  * For applications using the Draft 6 definitions, the binary symbol is the
5330  * same as the source symbol, and no explicit mapping is needed.  For the
5331  * standard interface, the function func() is mapped to the binary symbol
5332  * _posix_func().  The preferred mechanism for the remapping is a compiler
5333  * #pragma.  If the compiler does not provide such a #pragma, the header file
5334  * defines a static function func() which calls the _posix_func() version;
5335  * this has to be done instead of #define since POSIX specifies that an
5336  * application can #undef the symbol and still be bound to the correct
5337  * implementation.  Unfortunately, the statics confuse lint so we fallback to
5338  * #define in that case.
5339  *
5340  * NOTE: Support for the Draft 6 definitions is provided for compatibility
5341  * only.  New applications/libraries should use the standard definitions.
5342  */
5343 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5344 
5345 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5346 #pragma redefine_extname getlogin_r getloginx_r
5347 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5348 
5349 
5350 
5351 
5352 
5353 
5354 extern char *getlogin_r(char *, int);
5355 
5356 extern char *ttyname_r(int, char *, int);
5357 
5358 
5359 
5360 
5361 
5362 
5363 extern int getentropy(void *, size_t);
5364 # 53 "../common/zones_str.c" 2
5365 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1
5366 /*
5367  * CDDL HEADER START
5368  *
5369  * The contents of this file are subject to the terms of the
5370  * Common Development and Distribution License, Version 1.0 only
5371  * (the "License").  You may not use this file except in compliance
5372  * with the License.
5373  *
5374  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5375  * or http://www.opensolaris.org/os/licensing.
5376  * See the License for the specific language governing permissions
5377  * and limitations under the License.
5378  *
5379  * When distributing Covered Code, include this CDDL HEADER in each
5380  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5381  * If applicable, add the following below this CDDL HEADER, with the
5382  * fields enclosed by brackets "[]" replaced with your own identifying
5383  * information: Portions Copyright [yyyy] [name of copyright owner]
5384  *
5385  * CDDL HEADER END
5386  */
5387 /*	Copyright (c) 1988 AT&T	*/
5388 /*	  All Rights Reserved  	*/
5389 
5390 
5391 /*
5392  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5393  *
5394  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
5395  * Use is subject to license terms.
5396  */
5397 
5398 
5399 
5400 
5401 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 1
5402 /*
5403  * CDDL HEADER START
5404  *
5405  * The contents of this file are subject to the terms of the
5406  * Common Development and Distribution License, Version 1.0 only
5407  * (the "License").  You may not use this file except in compliance
5408  * with the License.
5409  *
5410  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5411  * or http://www.opensolaris.org/os/licensing.
5412  * See the License for the specific language governing permissions
5413  * and limitations under the License.
5414  *
5415  * When distributing Covered Code, include this CDDL HEADER in each
5416  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5417  * If applicable, add the following below this CDDL HEADER, with the
5418  * fields enclosed by brackets "[]" replaced with your own identifying
5419  * information: Portions Copyright [yyyy] [name of copyright owner]
5420  *
5421  * CDDL HEADER END
5422  */
5423 /*	Copyright (c) 1988 AT&T	*/
5424 /*	  All Rights Reserved  	*/
5425 
5426 /*
5427  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5428  *
5429  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
5430  * Use is subject to license terms.
5431  */
5432 
5433 /*
5434  * An application should not include this header directly.  Instead it
5435  * should be included only through the inclusion of other Sun headers.
5436  *
5437  * The contents of this header is limited to identifiers specified in the
5438  * C Standard.  Any new identifiers specified in future amendments to the
5439  * C Standard must be placed in this header.  If these new identifiers
5440  * are required to also be in the C++ Standard "std" namespace, then for
5441  * anything other than macro definitions, corresponding "using" directives
5442  * must also be added to <ctype.h>.
5443  */
5444 
5445 
5446 
5447 
5448 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5449 /*
5450  * CDDL HEADER START
5451  *
5452  * The contents of this file are subject to the terms of the
5453  * Common Development and Distribution License (the "License").
5454  * You may not use this file except in compliance with the License.
5455  *
5456  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5457  * or http://www.opensolaris.org/os/licensing.
5458  * See the License for the specific language governing permissions
5459  * and limitations under the License.
5460  *
5461  * When distributing Covered Code, include this CDDL HEADER in each
5462  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5463  * If applicable, add the following below this CDDL HEADER, with the
5464  * fields enclosed by brackets "[]" replaced with your own identifying
5465  * information: Portions Copyright [yyyy] [name of copyright owner]
5466  *
5467  * CDDL HEADER END
5468  */
5469 
5470 /*
5471  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5472  * Copyright 2016 Joyent, Inc.
5473  *
5474  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5475  * Use is subject to license terms.
5476  */
5477 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 2
5478 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h"
5479 extern unsigned char __ctype[];
5480 extern unsigned int *__ctype_mask;
5481 extern int *__trans_upper;
5482 extern int *__trans_lower;
5483 
5484 
5485 
5486 
5487 
5488 /*
5489  * These used to be macros, which while more efficient, precludes operation
5490  * with thread specific locales.  The old macros will still work, but new
5491  * code compiles to use functions.  This is specifically permitted by the
5492  * various standards.  Only _tolower and _toupper were required to be
5493  * delivered in macro form.
5494  */
5495 extern int isalnum(int);
5496 extern int isalpha(int);
5497 extern int iscntrl(int);
5498 extern int isdigit(int);
5499 extern int isgraph(int);
5500 extern int islower(int);
5501 extern int isprint(int);
5502 extern int ispunct(int);
5503 extern int isspace(int);
5504 extern int isupper(int);
5505 extern int isxdigit(int);
5506 
5507 extern int isblank(int);
5508 
5509 
5510 extern int tolower(int);
5511 extern int toupper(int);
5512 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 2
5513 
5514 /*
5515  * Allow global visibility for symbols defined in
5516  * C++ "std" namespace in <iso/ctype_iso.h>.
5517  */
5518 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h"
5519 extern int isascii(int);
5520 extern int toascii(int);
5521 extern int _tolower(int);
5522 extern int _toupper(int);
5523 # 98 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h"
5524 extern int isalnum_l(int, locale_t);
5525 extern int isalpha_l(int, locale_t);
5526 extern int isblank_l(int, locale_t);
5527 extern int iscntrl_l(int, locale_t);
5528 extern int isdigit_l(int, locale_t);
5529 extern int isgraph_l(int, locale_t);
5530 extern int islower_l(int, locale_t);
5531 extern int isprint_l(int, locale_t);
5532 extern int ispunct_l(int, locale_t);
5533 extern int isspace_l(int, locale_t);
5534 extern int isupper_l(int, locale_t);
5535 extern int isxdigit_l(int, locale_t);
5536 extern int tolower_l(int, locale_t);
5537 extern int toupper_l(int, locale_t);
5538 # 54 "../common/zones_str.c" 2
5539 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5540 /*
5541  * CDDL HEADER START
5542  *
5543  * The contents of this file are subject to the terms of the
5544  * Common Development and Distribution License (the "License").
5545  * You may not use this file except in compliance with the License.
5546  *
5547  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5548  * or http://www.opensolaris.org/os/licensing.
5549  * See the License for the specific language governing permissions
5550  * and limitations under the License.
5551  *
5552  * When distributing Covered Code, include this CDDL HEADER in each
5553  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5554  * If applicable, add the following below this CDDL HEADER, with the
5555  * fields enclosed by brackets "[]" replaced with your own identifying
5556  * information: Portions Copyright [yyyy] [name of copyright owner]
5557  *
5558  * CDDL HEADER END
5559  */
5560 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5561 /*	  All Rights Reserved  	*/
5562 
5563 
5564 /*
5565  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5566  * Use is subject to license terms.
5567  *
5568  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5569  * Copyright 2016 Joyent, Inc.
5570  */
5571 # 55 "../common/zones_str.c" 2
5572 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
5573 /*
5574  * CDDL HEADER START
5575  *
5576  * The contents of this file are subject to the terms of the
5577  * Common Development and Distribution License (the "License").
5578  * You may not use this file except in compliance with the License.
5579  *
5580  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5581  * or http://www.opensolaris.org/os/licensing.
5582  * See the License for the specific language governing permissions
5583  * and limitations under the License.
5584  *
5585  * When distributing Covered Code, include this CDDL HEADER in each
5586  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5587  * If applicable, add the following below this CDDL HEADER, with the
5588  * fields enclosed by brackets "[]" replaced with your own identifying
5589  * information: Portions Copyright [yyyy] [name of copyright owner]
5590  *
5591  * CDDL HEADER END
5592  */
5593 
5594 /*
5595  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
5596  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
5597  */
5598 
5599 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
5600 /*	  All Rights Reserved  	*/
5601 
5602 /*
5603  * University Copyright- Copyright (c) 1982, 1986, 1988
5604  * The Regents of the University of California
5605  * All Rights Reserved
5606  *
5607  * University Acknowledgment- Portions of this document are derived from
5608  * software developed by the University of California, Berkeley, and its
5609  * contributors.
5610  */
5611 
5612 
5613 
5614 
5615 
5616 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5617 /*
5618  * CDDL HEADER START
5619  *
5620  * The contents of this file are subject to the terms of the
5621  * Common Development and Distribution License (the "License").
5622  * You may not use this file except in compliance with the License.
5623  *
5624  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5625  * or http://www.opensolaris.org/os/licensing.
5626  * See the License for the specific language governing permissions
5627  * and limitations under the License.
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 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5638 /*	  All Rights Reserved  	*/
5639 
5640 
5641 /*
5642  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5643  * Use is subject to license terms.
5644  *
5645  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5646  * Copyright 2016 Joyent, Inc.
5647  */
5648 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5649 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
5650 /*
5651  * CDDL HEADER START
5652  *
5653  * The contents of this file are subject to the terms of the
5654  * Common Development and Distribution License (the "License").
5655  * You may not use this file except in compliance with the License.
5656  *
5657  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5658  * or http://www.opensolaris.org/os/licensing.
5659  * See the License for the specific language governing permissions
5660  * and limitations under the License.
5661  *
5662  *
5663  * When distributing Covered Code, include this CDDL HEADER in each
5664  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5665  * If applicable, add the following below this CDDL HEADER, with the
5666  * fields enclosed by brackets "[]" replaced with your own identifying
5667  * information: Portions Copyright [yyyy] [name of copyright owner]
5668  *
5669  * CDDL HEADER END
5670  */
5671 
5672 /*
5673  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
5674  * Use is subject to license terms.
5675  * Copyright 2016 Joyent, Inc.
5676  */
5677 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5678 
5679 
5680 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
5681 /*
5682  * This file and its contents are supplied under the terms of the
5683  * Common Development and Distribution License ("CDDL"), version 1.0.
5684  * You may only use this file in accordance with the terms of version
5685  * 1.0 of the CDDL.
5686  *
5687  * A full copy of the text of the CDDL should have accompanied this
5688  * source.  A copy of the CDDL is also available via the Internet at
5689  * http://www.illumos.org/license/CDDL.
5690  */
5691 
5692 /*
5693  * Copyright 2014-2016 PALO, Richard.
5694  */
5695 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5696 
5697 
5698 
5699 
5700 
5701 /*
5702  * Fundamental variables; don't change too often.
5703  */
5704 
5705 /*
5706  * _POSIX_VDISABLE has historically been defined in <sys/param.h> since
5707  * an early merge with AT&T source.  It has also historically been defined
5708  * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially
5709  * required the existence of _POSIX_VDISABLE in <sys/termios.h>.
5710  * Subsequent versions of the IEEE Standard as well as the X/Open
5711  * specifications required that _POSIX_VDISABLE be defined in <unistd.h>
5712  * while still allowing for it's existence in other headers.  With the
5713  * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>.
5714  */
5715 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5716     /* compatibility purposes only	*/
5717     /* and will be removed in a	*/
5718     /* later release		*/
5719 
5720 /*
5721  * These define the maximum and minimum allowable values of the
5722  * configurable parameter NGROUPS_MAX.
5723  */
5724 
5725 
5726 
5727 
5728 /*
5729  * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h.
5730  */
5731 
5732 
5733 /*
5734  * Default process priority.  Keep it in sync with limits.h.
5735  */
5736 
5737 
5738 /*
5739  * Fundamental constants of the implementation--cannot be changed easily.
5740  */
5741 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5742 /* REMOTE -- whether machine is primary, secondary, or regular */
5743 
5744 
5745 
5746 /*
5747  * MAXPATHLEN defines the longest permissible path length,
5748  * including the terminating null, after expanding symbolic links.
5749  * TYPICALMAXPATHLEN is used in a few places as an optimization
5750  * with a local buffer on the stack to avoid kmem_alloc().
5751  * MAXSYMLINKS defines the maximum number of symbolic links
5752  * that may be expanded in a path name. It should be set high
5753  * enough to allow all legitimate uses, but halt infinite loops
5754  * reasonably quickly.
5755  * MAXNAMELEN is the length (including the terminating null) of
5756  * the longest permissible file (component) name.
5757  */
5758 
5759 
5760 
5761 
5762 
5763 /*
5764  * MAXLINKNAMELEN defines the longest possible permitted datalink name,
5765  * including the terminating NUL.  Note that this must not be larger
5766  * than related networking constants such as LIFNAMSIZ.
5767  */
5768 
5769 
5770 
5771 
5772 
5773 
5774 /*
5775  * The following are defined to be the same as
5776  * defined in /usr/include/limits.h.  They are
5777  * needed for pipe and FIFO compatibility.
5778  */
5779 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5780 /* macros replacing interleaving functions */
5781 
5782 
5783 
5784 /*
5785  * File system parameters and macros.
5786  *
5787  * The file system is made out of blocks of at most MAXBSIZE units,
5788  * with smaller units (fragments) only in the last direct block.
5789  * MAXBSIZE primarily determines the size of buffers in the buffer
5790  * pool. It may be made larger without any effect on existing
5791  * file systems; however making it smaller make make some file
5792  * systems unmountable.
5793  *
5794  * Note that the blocked devices are assumed to have DEV_BSIZE
5795  * "sectors" and that fragments must be some multiple of this size.
5796  */
5797 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5798 /*	64 bit versions of btodb and dbtob */
5799 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5800 /*
5801  * Size of arg list passed in by user.
5802  */
5803 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5804 /*
5805  * Scale factor for scaled integers used to count
5806  * %cpu time and load averages.
5807  */
5808 
5809 
5810 
5811 /*
5812  * Delay units are in microseconds.
5813  *
5814  * XXX	These macros are not part of the DDI!
5815  */
5816 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5817 /*
5818  * The following is to free utilities from machine dependencies within
5819  * an architecture. Must be included after definition of DEV_BSIZE.
5820  */
5821 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
5822 /*
5823  * The following are assorted machine dependent values which can be
5824  * obtained in a machine independent manner through sysconf(2) or
5825  * sysinfo(2). In order to guarantee that these provide the expected
5826  * value at all times, the System Private interface (leading underscore)
5827  * is used.
5828  */
5829 
5830 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
5831 /*
5832  * CDDL HEADER START
5833  *
5834  * The contents of this file are subject to the terms of the
5835  * Common Development and Distribution License (the "License").
5836  * You may not use this file except in compliance with the License.
5837  *
5838  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5839  * or http://www.opensolaris.org/os/licensing.
5840  * See the License for the specific language governing permissions
5841  * and limitations under the License.
5842  *
5843  * When distributing Covered Code, include this CDDL HEADER in each
5844  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5845  * If applicable, add the following below this CDDL HEADER, with the
5846  * fields enclosed by brackets "[]" replaced with your own identifying
5847  * information: Portions Copyright [yyyy] [name of copyright owner]
5848  *
5849  * CDDL HEADER END
5850  */
5851 
5852 /*
5853  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
5854  *	  All Rights Reserved
5855  *
5856  */
5857 
5858 /*
5859  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5860  * Use is subject to license terms.
5861  */
5862 
5863 /*
5864  * WARNING: This is an implementation-specific header,
5865  * its contents are not guaranteed. Applications
5866  * should include <unistd.h> and not this header.
5867  */
5868 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
5869 
5870 
5871 
5872 
5873 
5874 
5875 extern long _sysconf(int); /* System Private interface to sysconf() */
5876 # 56 "../common/zones_str.c" 2
5877 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
5878 /*
5879  * CDDL HEADER START
5880  *
5881  * The contents of this file are subject to the terms of the
5882  * Common Development and Distribution License (the "License").
5883  * You may not use this file except in compliance with the License.
5884  *
5885  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5886  * or http://www.opensolaris.org/os/licensing.
5887  * See the License for the specific language governing permissions
5888  * and limitations under the License.
5889  *
5890  * When distributing Covered Code, include this CDDL HEADER in each
5891  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5892  * If applicable, add the following below this CDDL HEADER, with the
5893  * fields enclosed by brackets "[]" replaced with your own identifying
5894  * information: Portions Copyright [yyyy] [name of copyright owner]
5895  *
5896  * CDDL HEADER END
5897  */
5898 
5899 /*
5900  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5901  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
5902  */
5903 
5904 /*	Copyright (c) 1988 AT&T	*/
5905 /*	  All Rights Reserved  	*/
5906 
5907 
5908 
5909 
5910 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1
5911 /*
5912  * CDDL HEADER START
5913  *
5914  * The contents of this file are subject to the terms of the
5915  * Common Development and Distribution License, Version 1.0 only
5916  * (the "License").  You may not use this file except in compliance
5917  * with the License.
5918  *
5919  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5920  * or http://www.opensolaris.org/os/licensing.
5921  * See the License for the specific language governing permissions
5922  * and limitations under the License.
5923  *
5924  * When distributing Covered Code, include this CDDL HEADER in each
5925  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5926  * If applicable, add the following below this CDDL HEADER, with the
5927  * fields enclosed by brackets "[]" replaced with your own identifying
5928  * information: Portions Copyright [yyyy] [name of copyright owner]
5929  *
5930  * CDDL HEADER END
5931  */
5932 /*	Copyright (c) 1988 AT&T	*/
5933 /*	  All Rights Reserved  	*/
5934 
5935 
5936 /*
5937  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5938  * Copyright 2014 PALO, Richard.
5939  *
5940  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
5941  * Use is subject to license terms.
5942  */
5943 
5944 /*
5945  * An application should not include this header directly.  Instead it
5946  * should be included only through the inclusion of other Sun headers.
5947  *
5948  * The contents of this header is limited to identifiers specified in the
5949  * C Standard.  Any new identifiers specified in future amendments to the
5950  * C Standard must be placed in this header.  If these new identifiers
5951  * are required to also be in the C++ Standard "std" namespace, then for
5952  * anything other than macro definitions, corresponding "using" directives
5953  * must also be added to <string.h>.
5954  */
5955 
5956 
5957 
5958 
5959 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5960 /*
5961  * CDDL HEADER START
5962  *
5963  * The contents of this file are subject to the terms of the
5964  * Common Development and Distribution License (the "License").
5965  * You may not use this file except in compliance with the License.
5966  *
5967  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5968  * or http://www.opensolaris.org/os/licensing.
5969  * See the License for the specific language governing permissions
5970  * and limitations under the License.
5971  *
5972  * When distributing Covered Code, include this CDDL HEADER in each
5973  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5974  * If applicable, add the following below this CDDL HEADER, with the
5975  * fields enclosed by brackets "[]" replaced with your own identifying
5976  * information: Portions Copyright [yyyy] [name of copyright owner]
5977  *
5978  * CDDL HEADER END
5979  */
5980 
5981 /*
5982  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5983  * Copyright 2016 Joyent, Inc.
5984  *
5985  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5986  * Use is subject to license terms.
5987  */
5988 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
5989 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
5990 /*
5991  * This file and its contents are supplied under the terms of the
5992  * Common Development and Distribution License ("CDDL"), version 1.0.
5993  * You may only use this file in accordance with the terms of version
5994  * 1.0 of the CDDL.
5995  *
5996  * A full copy of the text of the CDDL should have accompanied this
5997  * source.  A copy of the CDDL is also available via the Internet at
5998  * http://www.illumos.org/license/CDDL.
5999  */
6000 
6001 /*
6002  * Copyright 2014-2016 PALO, Richard.
6003  */
6004 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
6005 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
6006 extern int memcmp(const void *, const void *, size_t);
6007 extern void *memcpy(void *, const void *, size_t);
6008 extern void *memmove(void *, const void *, size_t);
6009 extern void *memset(void *, int, size_t);
6010 extern char *strcat(char *, const char *);
6011 extern int strcmp(const char *, const char *);
6012 extern char *strcpy(char *, const char *);
6013 extern int strcoll(const char *, const char *);
6014 extern size_t strcspn(const char *, const char *);
6015 extern char *strerror(int);
6016 extern size_t strlen(const char *);
6017 extern char *strncat(char *, const char *, size_t);
6018 extern int strncmp(const char *, const char *, size_t);
6019 extern char *strncpy(char *, const char *, size_t);
6020 extern size_t strspn(const char *, const char *);
6021 extern char *strtok(char *, const char *);
6022 extern size_t strxfrm(char *, const char *, size_t);
6023 
6024 /*
6025  * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the
6026  * function signatures for the following functions be replaced by
6027  * two declarations, both of which have the same behavior.
6028  */
6029 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
6030 extern void *memchr(const void *, int, size_t);
6031 extern char *strchr(const char *, int);
6032 extern char *strpbrk(const char *, const char *);
6033 extern char *strrchr(const char *, int);
6034 extern char *strstr(const char *, const char *);
6035 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2
6036 
6037 /*
6038  * Allow global visibility for symbols defined in
6039  * C++ "std" namespace in <iso/string_iso.h>.
6040  */
6041 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h"
6042 extern int strerror_r(int, char *, size_t);
6043 
6044 
6045 
6046 
6047 
6048 extern char *strtok_r(char *, const char *,
6049  char **);
6050 
6051 
6052 
6053 
6054 extern void *memccpy(void *, const void *,
6055   int, size_t);
6056 
6057 
6058 
6059 
6060 extern char *stpcpy(char *, const char *);
6061 extern char *stpncpy(char *, const char *, size_t);
6062 extern char *strndup(const char *, size_t);
6063 extern size_t strnlen(const char *, size_t);
6064 extern char *strsignal(int);
6065 
6066 
6067 
6068 
6069 
6070 
6071 extern int strcoll_l(const char *, const char *, locale_t);
6072 extern size_t strxfrm_l(char *, const char *,
6073     size_t, locale_t);
6074 extern int strcasecmp_l(const char *, const char *, locale_t);
6075 extern int strncasecmp_l(const char *, const char *, size_t, locale_t);
6076 extern char *strerror_l(int, locale_t);
6077 
6078 
6079 
6080 
6081 
6082 /* Note that some of these are also declared in strings.h for XPG4_2+ */
6083 extern void explicit_bzero(void *, size_t);
6084 extern int uucopy(const void *, void *, size_t);
6085 extern int uucopystr(const void *, void *, size_t);
6086 extern int ffs(int);
6087 extern int ffsl(long);
6088 extern int ffsll(long long);
6089 extern int fls(int);
6090 extern int flsl(long);
6091 extern int flsll(long long);
6092 extern void *memmem(const void *, size_t, const void *, size_t);
6093 extern char *strcasestr(const char *, const char *);
6094 extern char *strnstr(const char *, const char *, size_t);
6095 extern size_t strlcpy(char *, const char *, size_t);
6096 extern size_t strlcat(char *, const char *, size_t);
6097 extern char *strsep(char **stringp, const char *delim);
6098 extern char *strchrnul(const char *, int);
6099 extern char *strcasestr_l(const char *, const char *, locale_t);
6100 extern int strcasecmp(const char *, const char *);
6101 extern int strncasecmp(const char *, const char *, size_t);
6102 
6103 
6104 
6105 
6106 
6107 extern char *strdup(const char *);
6108 
6109 
6110 
6111 
6112 
6113 
6114 /*
6115  * gcc provides this inlining facility but Studio C does not.
6116  * We should use it exclusively once Studio C also provides it.
6117  */
6118 extern void *__builtin_alloca(size_t);
6119 # 57 "../common/zones_str.c" 2
6120 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/strings.h" 1
6121 /*
6122  * CDDL HEADER START
6123  *
6124  * The contents of this file are subject to the terms of the
6125  * Common Development and Distribution License, Version 1.0 only
6126  * (the "License").  You may not use this file except in compliance
6127  * with the License.
6128  *
6129  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6130  * or http://www.opensolaris.org/os/licensing.
6131  * See the License for the specific language governing permissions
6132  * and limitations under the License.
6133  *
6134  * When distributing Covered Code, include this CDDL HEADER in each
6135  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6136  * If applicable, add the following below this CDDL HEADER, with the
6137  * fields enclosed by brackets "[]" replaced with your own identifying
6138  * information: Portions Copyright [yyyy] [name of copyright owner]
6139  *
6140  * CDDL HEADER END
6141  */
6142 /*
6143  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6144  *
6145  * Copyright (c) 1995, 1996, by Sun Microsystems, Inc.
6146  * All rights reserved.
6147  */
6148 
6149 
6150 
6151 
6152 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
6153 /*
6154  * CDDL HEADER START
6155  *
6156  * The contents of this file are subject to the terms of the
6157  * Common Development and Distribution License (the "License").
6158  * You may not use this file except in compliance with the License.
6159  *
6160  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6161  * or http://www.opensolaris.org/os/licensing.
6162  * See the License for the specific language governing permissions
6163  * and limitations under the License.
6164  *
6165  * When distributing Covered Code, include this CDDL HEADER in each
6166  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6167  * If applicable, add the following below this CDDL HEADER, with the
6168  * fields enclosed by brackets "[]" replaced with your own identifying
6169  * information: Portions Copyright [yyyy] [name of copyright owner]
6170  *
6171  * CDDL HEADER END
6172  */
6173 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6174 /*	  All Rights Reserved  	*/
6175 
6176 
6177 /*
6178  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6179  * Use is subject to license terms.
6180  *
6181  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6182  * Copyright 2016 Joyent, Inc.
6183  */
6184 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/strings.h" 2
6185 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6186 /*
6187  * CDDL HEADER START
6188  *
6189  * The contents of this file are subject to the terms of the
6190  * Common Development and Distribution License (the "License").
6191  * You may not use this file except in compliance with the License.
6192  *
6193  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6194  * or http://www.opensolaris.org/os/licensing.
6195  * See the License for the specific language governing permissions
6196  * and limitations under the License.
6197  *
6198  * When distributing Covered Code, include this CDDL HEADER in each
6199  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6200  * If applicable, add the following below this CDDL HEADER, with the
6201  * fields enclosed by brackets "[]" replaced with your own identifying
6202  * information: Portions Copyright [yyyy] [name of copyright owner]
6203  *
6204  * CDDL HEADER END
6205  */
6206 
6207 /*
6208  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6209  * Copyright 2016 Joyent, Inc.
6210  *
6211  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6212  * Use is subject to license terms.
6213  */
6214 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/strings.h" 2
6215 
6216 
6217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
6218 /*
6219  * CDDL HEADER START
6220  *
6221  * The contents of this file are subject to the terms of the
6222  * Common Development and Distribution License (the "License").
6223  * You may not use this file except in compliance with the License.
6224  *
6225  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6226  * or http://www.opensolaris.org/os/licensing.
6227  * See the License for the specific language governing permissions
6228  * and limitations under the License.
6229  *
6230  * When distributing Covered Code, include this CDDL HEADER in each
6231  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6232  * If applicable, add the following below this CDDL HEADER, with the
6233  * fields enclosed by brackets "[]" replaced with your own identifying
6234  * information: Portions Copyright [yyyy] [name of copyright owner]
6235  *
6236  * CDDL HEADER END
6237  */
6238 
6239 /*
6240  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6241  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
6242  */
6243 
6244 /*	Copyright (c) 1988 AT&T	*/
6245 /*	  All Rights Reserved  	*/
6246 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/strings.h" 2
6247 
6248 
6249 
6250 
6251 
6252 
6253 extern int bcmp(const void *, const void *, size_t);
6254 extern void bcopy(const void *, void *, size_t);
6255 extern void bzero(void *, size_t);
6256 
6257 extern char *index(const char *, int);
6258 extern char *rindex(const char *, int);
6259 
6260 /*
6261  * X/Open System Interfaces and Headers, Issue 4, Version 2, defines
6262  * both <string.h> and <strings.h>.  The namespace requirements
6263  * do not permit the visibility of anything other than what is
6264  * specifically defined for each of these headers.  As a result,
6265  * inclusion of <string.h> would result in declarations not allowed
6266  * in <strings.h>, and making the following prototypes visible for
6267  * anything other than X/Open UNIX Extension would result in
6268  * conflicts with what is now in <string.h>.
6269  */
6270 # 58 "../common/zones_str.c" 2
6271 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1
6272 /*
6273  * CDDL HEADER START
6274  *
6275  * The contents of this file are subject to the terms of the
6276  * Common Development and Distribution License, Version 1.0 only
6277  * (the "License").  You may not use this file except in compliance
6278  * with the License.
6279  *
6280  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6281  * or http://www.opensolaris.org/os/licensing.
6282  * See the License for the specific language governing permissions
6283  * and limitations under the License.
6284  *
6285  * When distributing Covered Code, include this CDDL HEADER in each
6286  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6287  * If applicable, add the following below this CDDL HEADER, with the
6288  * fields enclosed by brackets "[]" replaced with your own identifying
6289  * information: Portions Copyright [yyyy] [name of copyright owner]
6290  *
6291  * CDDL HEADER END
6292  */
6293 /*	Copyright (c) 1988 AT&T	*/
6294 /*	  All Rights Reserved	*/
6295 
6296 /*
6297  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6298  *
6299  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6300  * Use is subject to license terms.
6301  */
6302 
6303 
6304 
6305 
6306 /*
6307  * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999
6308  * variable argument definitions.  For legacy support, it also defines
6309  * the pre-standard variable argument definitions.
6310  *
6311  * The varargs definitions within this header are defined in terms of
6312  * implementation definitions.  These implementation definitions reside
6313  * in <sys/va_list.h>.  This organization enables protected use of
6314  * the implementation by other standard headers without introducing
6315  * names into the users' namespace.
6316  */
6317 
6318 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1
6319 /*
6320  * CDDL HEADER START
6321  *
6322  * The contents of this file are subject to the terms of the
6323  * Common Development and Distribution License, Version 1.0 only
6324  * (the "License").  You may not use this file except in compliance
6325  * with the License.
6326  *
6327  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6328  * or http://www.opensolaris.org/os/licensing.
6329  * See the License for the specific language governing permissions
6330  * and limitations under the License.
6331  *
6332  * When distributing Covered Code, include this CDDL HEADER in each
6333  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6334  * If applicable, add the following below this CDDL HEADER, with the
6335  * fields enclosed by brackets "[]" replaced with your own identifying
6336  * information: Portions Copyright [yyyy] [name of copyright owner]
6337  *
6338  * CDDL HEADER END
6339  */
6340 /*	Copyright (c) 1988 AT&T	*/
6341 /*	  All Rights Reserved  	*/
6342 
6343 
6344 /*
6345  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6346  * Use is subject to license terms.
6347  */
6348 
6349 /*
6350  * An application should not include this header directly.  Instead it
6351  * should be included only through the inclusion of other Sun headers.
6352  *
6353  * The contents of this header is limited to identifiers specified in the
6354  * C Standard.  Any new identifiers specified in future amendments to the
6355  * C Standard must be placed in this header.  If these new identifiers
6356  * are required to also be in the C++ Standard "std" namespace, then for
6357  * anything other than macro definitions, corresponding "using" directives
6358  * must also be added to <stdarg.h>.
6359  */
6360 
6361 
6362 
6363 
6364 #pragma ident "%Z%%M%	%I%	%E% SMI"
6365 
6366 /*
6367  * This header defines the ISO C 1989 and ISO C++ 1998 variable
6368  * argument definitions.
6369  *
6370  * The varargs definitions within this header are defined in terms of
6371  * implementation definitions.  These implementation definitions reside
6372  * in <sys/va_impl.h>.  This organization enables protected use of
6373  * the implementation by other standard headers without introducing
6374  * names into the users' namespace.
6375  */
6376 
6377 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1
6378 /*
6379  * CDDL HEADER START
6380  *
6381  * The contents of this file are subject to the terms of the
6382  * Common Development and Distribution License, Version 1.0 only
6383  * (the "License").  You may not use this file except in compliance
6384  * with the License.
6385  *
6386  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6387  * or http://www.opensolaris.org/os/licensing.
6388  * See the License for the specific language governing permissions
6389  * and limitations under the License.
6390  *
6391  * When distributing Covered Code, include this CDDL HEADER in each
6392  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6393  * If applicable, add the following below this CDDL HEADER, with the
6394  * fields enclosed by brackets "[]" replaced with your own identifying
6395  * information: Portions Copyright [yyyy] [name of copyright owner]
6396  *
6397  * CDDL HEADER END
6398  */
6399 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6400 /*	  All Rights Reserved	*/
6401 
6402 
6403 /*
6404  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6405  *
6406  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6407  * Use is subject to license terms.
6408  */
6409 
6410 
6411 
6412 
6413 /*
6414  * An application should not include this header directly.  Instead it
6415  * should be included only through the inclusion of other Sun headers,
6416  * specifically <stdarg.h> and <varargs.h>.
6417  *
6418  * This header serves two purposes.
6419  *
6420  * First, it provides a common set of definitions that implementations
6421  * of the various standards for variable argument lists may use.  These
6422  * various standards are implemented in <varargs.h>, <stdarg.h>,
6423  * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>.
6424  *
6425  * Second, it provides varying implementations of the common definitions,
6426  * depending upon the compiler.
6427  */
6428 
6429 /*
6430  * The common definitions exported by this header or compilers using
6431  * this header are:
6432  *
6433  * the macro __va_start(list, name) starting the list iteration
6434  * the macro __va_arg(list, type) getting the current arg and iterating
6435  * the macro __va_copy(to, from) to bookmark the list iteration
6436  * the macro __va_end(list) to end the iteration
6437  *
6438  * In addition, the following are exported via inclusion of <sys/va_list.h>:
6439  *
6440  * the identifier __builtin_va_alist for the variable list pseudo parameter
6441  * the type __va_alist_type for the variable list pseudo parameter
6442  * the type __va_list defining the type of the variable list iterator
6443  */
6444 
6445 /*
6446  * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and
6447  * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor
6448  * macros (e.g. __sparc) to determine the protocol appropriate to the
6449  * current compilation.  It is intended that the compilation system
6450  * define the feature, processor, and compiler macros, not the user of
6451  * the system.
6452  */
6453 
6454 /*
6455  * Many compilation systems depend upon the use of special functions
6456  * built into the the compilation system to handle variable argument
6457  * lists.  These built-in symbols may include one or more of the
6458  * following:
6459  *
6460  *      __builtin_va_alist
6461  *      __builtin_va_start
6462  *      __builtin_va_arg_incr
6463  *      __builtin_stdarg_start
6464  *      __builtin_va_end
6465  *      __builtin_va_arg
6466  *      __builtin_va_copy
6467  */
6468 
6469 /*
6470  * The following are defined in <sys/va_list.h>:
6471  *
6472  *      __va_alist_type
6473  *      __va_void()
6474  *      __va_ptr_base
6475  *      ISA definitions via inclusion of <sys/isa_defs.h>
6476  *
6477  * Inclusion of this header also makes visible the symbols in <sys/va_list.h>.
6478  * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h>
6479  * via inclusion of <iso/stdarg_iso.h>.
6480  */
6481 
6482 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
6483 /*
6484  * CDDL HEADER START
6485  *
6486  * The contents of this file are subject to the terms of the
6487  * Common Development and Distribution License, Version 1.0 only
6488  * (the "License").  You may not use this file except in compliance
6489  * with the License.
6490  *
6491  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6492  * or http://www.opensolaris.org/os/licensing.
6493  * See the License for the specific language governing permissions
6494  * and limitations under the License.
6495  *
6496  * When distributing Covered Code, include this CDDL HEADER in each
6497  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6498  * If applicable, add the following below this CDDL HEADER, with the
6499  * fields enclosed by brackets "[]" replaced with your own identifying
6500  * information: Portions Copyright [yyyy] [name of copyright owner]
6501  *
6502  * CDDL HEADER END
6503  */
6504 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6505 /*	  All Rights Reserved	*/
6506 
6507 
6508 /*
6509  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6510  *
6511  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6512  * Use is subject to license terms.
6513  */
6514 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2
6515 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2
6516 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h"
6517 typedef __va_list va_list;
6518 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2
6519 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1
6520 /*
6521  * CDDL HEADER START
6522  *
6523  * The contents of this file are subject to the terms of the
6524  * Common Development and Distribution License, Version 1.0 only
6525  * (the "License").  You may not use this file except in compliance
6526  * with the License.
6527  *
6528  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6529  * or http://www.opensolaris.org/os/licensing.
6530  * See the License for the specific language governing permissions
6531  * and limitations under the License.
6532  *
6533  * When distributing Covered Code, include this CDDL HEADER in each
6534  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6535  * If applicable, add the following below this CDDL HEADER, with the
6536  * fields enclosed by brackets "[]" replaced with your own identifying
6537  * information: Portions Copyright [yyyy] [name of copyright owner]
6538  *
6539  * CDDL HEADER END
6540  */
6541 /*	Copyright (c) 1988 AT&T	*/
6542 /*	  All Rights Reserved	*/
6543 
6544 
6545 /*
6546  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6547  * Use is subject to license terms.
6548  */
6549 
6550 
6551 
6552 
6553 #pragma ident "%Z%%M%	%I%	%E% SMI"
6554 
6555 /*
6556  * An application should not include this header directly.  Instead it
6557  * should be included only through the inclusion of other Sun headers.
6558  *
6559  * This header defines the va_copy variable argument macro, which is
6560  * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++
6561  * 1998.  Because this macro is a long-standing Solaris extension, it
6562  * is also permitted in other contexts.
6563  *
6564  * The varargs definitions within this header are defined in terms of
6565  * implementation definitions.  These implementation definitions reside
6566  * in <sys/va_list.h>.  This organization enables protected use of
6567  * the implementation by other standard headers without introducing
6568  * names into the users' namespace.
6569  */
6570 
6571 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6572 /*
6573  * CDDL HEADER START
6574  *
6575  * The contents of this file are subject to the terms of the
6576  * Common Development and Distribution License (the "License").
6577  * You may not use this file except in compliance with the License.
6578  *
6579  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6580  * or http://www.opensolaris.org/os/licensing.
6581  * See the License for the specific language governing permissions
6582  * and limitations under the License.
6583  *
6584  * When distributing Covered Code, include this CDDL HEADER in each
6585  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6586  * If applicable, add the following below this CDDL HEADER, with the
6587  * fields enclosed by brackets "[]" replaced with your own identifying
6588  * information: Portions Copyright [yyyy] [name of copyright owner]
6589  *
6590  * CDDL HEADER END
6591  */
6592 
6593 /*
6594  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6595  * Copyright 2016 Joyent, Inc.
6596  *
6597  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6598  * Use is subject to license terms.
6599  */
6600 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2
6601 
6602 
6603 
6604 
6605 
6606 /*
6607  * va_copy was initially a Solaris extension to provide a portable
6608  * way to perform a variable argument list ``bookmarking'' function.
6609  * It is now specified in the ISO/IEC 9899:1999 standard.
6610  */
6611 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2
6612 
6613 /*
6614  * Allow global visibility for symbols defined in
6615  * C++ "std" namespace in <iso/stdarg_iso.h>.
6616  */
6617 # 59 "../common/zones_str.c" 2
6618 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
6619 /*
6620  * CDDL HEADER START
6621  *
6622  * The contents of this file are subject to the terms of the
6623  * Common Development and Distribution License (the "License").
6624  * You may not use this file except in compliance with the License.
6625  *
6626  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6627  * or http://www.opensolaris.org/os/licensing.
6628  * See the License for the specific language governing permissions
6629  * and limitations under the License.
6630  *
6631  * When distributing Covered Code, include this CDDL HEADER in each
6632  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6633  * If applicable, add the following below this CDDL HEADER, with the
6634  * fields enclosed by brackets "[]" replaced with your own identifying
6635  * information: Portions Copyright [yyyy] [name of copyright owner]
6636  *
6637  * CDDL HEADER END
6638  */
6639 
6640 /*
6641  * Copyright (c) 2013 Gary Mills
6642  *
6643  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
6644  * Use is subject to license terms.
6645  */
6646 
6647 /*	Copyright (c) 1988 AT&T	*/
6648 /*	  All Rights Reserved  	*/
6649 
6650 
6651 
6652 
6653 
6654 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6655 /*
6656  * CDDL HEADER START
6657  *
6658  * The contents of this file are subject to the terms of the
6659  * Common Development and Distribution License (the "License").
6660  * You may not use this file except in compliance with the License.
6661  *
6662  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6663  * or http://www.opensolaris.org/os/licensing.
6664  * See the License for the specific language governing permissions
6665  * and limitations under the License.
6666  *
6667  * When distributing Covered Code, include this CDDL HEADER in each
6668  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6669  * If applicable, add the following below this CDDL HEADER, with the
6670  * fields enclosed by brackets "[]" replaced with your own identifying
6671  * information: Portions Copyright [yyyy] [name of copyright owner]
6672  *
6673  * CDDL HEADER END
6674  */
6675 
6676 /*
6677  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6678  * Copyright 2016 Joyent, Inc.
6679  *
6680  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6681  * Use is subject to license terms.
6682  */
6683 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
6684 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
6685 /*
6686  * CDDL HEADER START
6687  *
6688  * The contents of this file are subject to the terms of the
6689  * Common Development and Distribution License (the "License").
6690  * You may not use this file except in compliance with the License.
6691  *
6692  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6693  * or http://www.opensolaris.org/os/licensing.
6694  * See the License for the specific language governing permissions
6695  * and limitations under the License.
6696  *
6697  *
6698  * When distributing Covered Code, include this CDDL HEADER in each
6699  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6700  * If applicable, add the following below this CDDL HEADER, with the
6701  * fields enclosed by brackets "[]" replaced with your own identifying
6702  * information: Portions Copyright [yyyy] [name of copyright owner]
6703  *
6704  * CDDL HEADER END
6705  */
6706 
6707 /*
6708  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
6709  * Use is subject to license terms.
6710  * Copyright 2016 Joyent, Inc.
6711  */
6712 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
6713 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1
6714 /*
6715  * CDDL HEADER START
6716  *
6717  * The contents of this file are subject to the terms of the
6718  * Common Development and Distribution License, Version 1.0 only
6719  * (the "License").  You may not use this file except in compliance
6720  * with the License.
6721  *
6722  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6723  * or http://www.opensolaris.org/os/licensing.
6724  * See the License for the specific language governing permissions
6725  * and limitations under the License.
6726  *
6727  * When distributing Covered Code, include this CDDL HEADER in each
6728  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6729  * If applicable, add the following below this CDDL HEADER, with the
6730  * fields enclosed by brackets "[]" replaced with your own identifying
6731  * information: Portions Copyright [yyyy] [name of copyright owner]
6732  *
6733  * CDDL HEADER END
6734  */
6735 /*
6736  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
6737  * Use is subject to license terms.
6738  */
6739 
6740 /*	Copyright (c) 1988 AT&T	*/
6741 /*	  All Rights Reserved  	*/
6742 
6743 
6744 /*
6745  * An application should not include this header directly.  Instead it
6746  * should be included only through the inclusion of other Sun headers.
6747  *
6748  * The contents of this header is limited to identifiers specified in the
6749  * C Standard.  Any new identifiers specified in future amendments to the
6750  * C Standard must be placed in this header.  If these new identifiers
6751  * are required to also be in the C++ Standard "std" namespace, then for
6752  * anything other than macro definitions, corresponding "using" directives
6753  * must also be added to <limits.h>.
6754  */
6755 
6756 
6757 
6758 
6759 #pragma ident "%Z%%M%	%I%	%E% SMI"
6760 
6761 
6762 
6763 
6764 
6765 /*
6766  * Sizes of integral types
6767  */
6768 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h"
6769      /* min value of a "long int" */
6770 
6771      /* max value of a "long int" */
6772 
6773      /* max value of "unsigned long int" */
6774 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h"
6775      /* min value of a long long */
6776 
6777      /* max value of a long long */
6778 
6779      /* max value of "unsigned long long */
6780 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
6781 
6782 /*
6783  * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C
6784  * committee's working draft for the revision of the current ISO C standard,
6785  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
6786  * required by any standard but constitute a useful, general purpose set
6787  * of type definitions and limits which is namespace clean with respect to
6788  * all standards.
6789  */
6790 
6791 
6792 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
6793 /*
6794  * CDDL HEADER START
6795  *
6796  * The contents of this file are subject to the terms of the
6797  * Common Development and Distribution License, Version 1.0 only
6798  * (the "License").  You may not use this file except in compliance
6799  * with the License.
6800  *
6801  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6802  * or http://www.opensolaris.org/os/licensing.
6803  * See the License for the specific language governing permissions
6804  * and limitations under the License.
6805  *
6806  * When distributing Covered Code, include this CDDL HEADER in each
6807  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6808  * If applicable, add the following below this CDDL HEADER, with the
6809  * fields enclosed by brackets "[]" replaced with your own identifying
6810  * information: Portions Copyright [yyyy] [name of copyright owner]
6811  *
6812  * CDDL HEADER END
6813  */
6814 /*
6815  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6816  *
6817  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6818  * Use is subject to license terms.
6819  */
6820 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
6821 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6822 /*
6823  * ARG_MAX is calculated as follows:
6824  * NCARGS - space for other stuff on initial stack
6825  * like aux vectors, saved registers, etc..
6826  */
6827 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6828 /*
6829  * POSIX conformant definitions - An implementation may define
6830  * other symbols which reflect the actual implementation. Alternate
6831  * definitions may not be as restrictive as the POSIX definitions.
6832  */
6833 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6834 /* POSIX.1c conformant */
6835 
6836 
6837 
6838 
6839 
6840 /* UNIX 03 conformant */
6841 
6842 
6843 
6844 
6845 
6846 /*
6847  * POSIX.2 and XPG4-XSH4 conformant definitions
6848  */
6849 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6850 /* UNIX 03 conformant */
6851 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6852 /*
6853  * For dual definitions for PASS_MAX and sysconf.c
6854  */
6855 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6856     /* NLS printf() and scanf() */
6857 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6858 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */
6859 
6860 
6861 
6862        /* of a double */
6863 
6864 
6865        /* of a "float" */
6866 
6867 
6868 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */
6869 
6870 
6871        /* of a double */
6872 
6873        /* of a float */
6874 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6875 /*
6876  * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the
6877  * related text states:
6878  *
6879  * A definition of one of the values from Table 2-5 shall be omitted from the
6880  * <limits.h> on specific implementations where the corresponding value is
6881  * equal to or greater than the stated minimum, but where the value can vary
6882  * depending on the file to which it is applied. The actual value supported for
6883  * a specific pathname shall be provided by the pathconf() (5.7.1) function.
6884  *
6885  * This is clear that any machine supporting multiple file system types
6886  * and/or a network can not include this define, regardless of protection
6887  * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags.
6888  *
6889  * #define	NAME_MAX	14
6890  */
6891 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
6892     /* Increased for illumos */
6893 # 60 "../common/zones_str.c" 2
6894 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stropts.h" 1
6895 /*
6896  * CDDL HEADER START
6897  *
6898  * The contents of this file are subject to the terms of the
6899  * Common Development and Distribution License, Version 1.0 only
6900  * (the "License").  You may not use this file except in compliance
6901  * with the License.
6902  *
6903  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6904  * or http://www.opensolaris.org/os/licensing.
6905  * See the License for the specific language governing permissions
6906  * and limitations under the License.
6907  *
6908  * When distributing Covered Code, include this CDDL HEADER in each
6909  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6910  * If applicable, add the following below this CDDL HEADER, with the
6911  * fields enclosed by brackets "[]" replaced with your own identifying
6912  * information: Portions Copyright [yyyy] [name of copyright owner]
6913  *
6914  * CDDL HEADER END
6915  */
6916 /*	Copyright (c) 1988 AT&T	*/
6917 /*	  All Rights Reserved  	*/
6918 
6919 /*
6920  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6921  *
6922  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
6923  * Use is subject to license terms.
6924  */
6925 
6926 
6927 
6928 
6929 /*
6930  * Streams user options definitions.
6931  */
6932 
6933 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6934 /*
6935  * CDDL HEADER START
6936  *
6937  * The contents of this file are subject to the terms of the
6938  * Common Development and Distribution License (the "License").
6939  * You may not use this file except in compliance with the License.
6940  *
6941  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6942  * or http://www.opensolaris.org/os/licensing.
6943  * See the License for the specific language governing permissions
6944  * and limitations under the License.
6945  *
6946  * When distributing Covered Code, include this CDDL HEADER in each
6947  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6948  * If applicable, add the following below this CDDL HEADER, with the
6949  * fields enclosed by brackets "[]" replaced with your own identifying
6950  * information: Portions Copyright [yyyy] [name of copyright owner]
6951  *
6952  * CDDL HEADER END
6953  */
6954 
6955 /*
6956  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6957  * Copyright 2016 Joyent, Inc.
6958  *
6959  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6960  * Use is subject to license terms.
6961  */
6962 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stropts.h" 2
6963 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h" 1
6964 /*
6965  * CDDL HEADER START
6966  *
6967  * The contents of this file are subject to the terms of the
6968  * Common Development and Distribution License (the "License").
6969  * You may not use this file except in compliance with the License.
6970  *
6971  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6972  * or http://www.opensolaris.org/os/licensing.
6973  * See the License for the specific language governing permissions
6974  * and limitations under the License.
6975  *
6976  * When distributing Covered Code, include this CDDL HEADER in each
6977  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6978  * If applicable, add the following below this CDDL HEADER, with the
6979  * fields enclosed by brackets "[]" replaced with your own identifying
6980  * information: Portions Copyright [yyyy] [name of copyright owner]
6981  *
6982  * CDDL HEADER END
6983  */
6984 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6985 /*	  All Rights Reserved  	*/
6986 
6987 
6988 /*
6989  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
6990  * Use is subject to license terms.
6991  */
6992 
6993 
6994 
6995 
6996 #pragma ident "%Z%%M%	%I%	%E% SMI"
6997 
6998 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6999 /*
7000  * CDDL HEADER START
7001  *
7002  * The contents of this file are subject to the terms of the
7003  * Common Development and Distribution License (the "License").
7004  * You may not use this file except in compliance with the License.
7005  *
7006  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7007  * or http://www.opensolaris.org/os/licensing.
7008  * See the License for the specific language governing permissions
7009  * and limitations under the License.
7010  *
7011  * When distributing Covered Code, include this CDDL HEADER in each
7012  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7013  * If applicable, add the following below this CDDL HEADER, with the
7014  * fields enclosed by brackets "[]" replaced with your own identifying
7015  * information: Portions Copyright [yyyy] [name of copyright owner]
7016  *
7017  * CDDL HEADER END
7018  */
7019 
7020 /*
7021  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7022  * Copyright 2016 Joyent, Inc.
7023  *
7024  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7025  * Use is subject to license terms.
7026  */
7027 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h" 2
7028 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7029 /*
7030  * CDDL HEADER START
7031  *
7032  * The contents of this file are subject to the terms of the
7033  * Common Development and Distribution License (the "License").
7034  * You may not use this file except in compliance with the License.
7035  *
7036  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7037  * or http://www.opensolaris.org/os/licensing.
7038  * See the License for the specific language governing permissions
7039  * and limitations under the License.
7040  *
7041  * When distributing Covered Code, include this CDDL HEADER in each
7042  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7043  * If applicable, add the following below this CDDL HEADER, with the
7044  * fields enclosed by brackets "[]" replaced with your own identifying
7045  * information: Portions Copyright [yyyy] [name of copyright owner]
7046  *
7047  * CDDL HEADER END
7048  */
7049 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7050 /*	  All Rights Reserved  	*/
7051 
7052 
7053 /*
7054  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7055  * Use is subject to license terms.
7056  *
7057  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7058  * Copyright 2016 Joyent, Inc.
7059  */
7060 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h" 2
7061 /*
7062  * For FMNAMESZ define.
7063  */
7064 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/conf.h" 1
7065 /*
7066  * CDDL HEADER START
7067  *
7068  * The contents of this file are subject to the terms of the
7069  * Common Development and Distribution License (the "License").
7070  * You may not use this file except in compliance with the License.
7071  *
7072  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7073  * or http://www.opensolaris.org/os/licensing.
7074  * See the License for the specific language governing permissions
7075  * and limitations under the License.
7076  *
7077  * When distributing Covered Code, include this CDDL HEADER in each
7078  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7079  * If applicable, add the following below this CDDL HEADER, with the
7080  * fields enclosed by brackets "[]" replaced with your own identifying
7081  * information: Portions Copyright [yyyy] [name of copyright owner]
7082  *
7083  * CDDL HEADER END
7084  */
7085 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7086 /*	  All Rights Reserved  	*/
7087 
7088 /*
7089  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7090  * Use is subject to license terms.
7091  */
7092 
7093 
7094 
7095 
7096 
7097 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7098 /*
7099  * CDDL HEADER START
7100  *
7101  * The contents of this file are subject to the terms of the
7102  * Common Development and Distribution License (the "License").
7103  * You may not use this file except in compliance with the License.
7104  *
7105  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7106  * or http://www.opensolaris.org/os/licensing.
7107  * See the License for the specific language governing permissions
7108  * and limitations under the License.
7109  *
7110  * When distributing Covered Code, include this CDDL HEADER in each
7111  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7112  * If applicable, add the following below this CDDL HEADER, with the
7113  * fields enclosed by brackets "[]" replaced with your own identifying
7114  * information: Portions Copyright [yyyy] [name of copyright owner]
7115  *
7116  * CDDL HEADER END
7117  */
7118 
7119 /*
7120  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7121  * Copyright 2016 Joyent, Inc.
7122  *
7123  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7124  * Use is subject to license terms.
7125  */
7126 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/conf.h" 2
7127 
7128 
7129 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
7130 /*
7131  * CDDL HEADER START
7132  *
7133  * The contents of this file are subject to the terms of the
7134  * Common Development and Distribution License, Version 1.0 only
7135  * (the "License").  You may not use this file except in compliance
7136  * with the License.
7137  *
7138  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7139  * or http://www.opensolaris.org/os/licensing.
7140  * See the License for the specific language governing permissions
7141  * and limitations under the License.
7142  *
7143  * When distributing Covered Code, include this CDDL HEADER in each
7144  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7145  * If applicable, add the following below this CDDL HEADER, with the
7146  * fields enclosed by brackets "[]" replaced with your own identifying
7147  * information: Portions Copyright [yyyy] [name of copyright owner]
7148  *
7149  * CDDL HEADER END
7150  */
7151 /*
7152  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
7153  * All rights reserved.
7154  */
7155 
7156 /*
7157  * t_lock.h:	Prototypes for disp_locks, plus include files
7158  *		that describe the interfaces to kernel synch.
7159  *		objects.
7160  */
7161 
7162 
7163 
7164 
7165 #pragma ident "%Z%%M%	%I%	%E% SMI"
7166 
7167 
7168 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1
7169 /*
7170  * CDDL HEADER START
7171  *
7172  * The contents of this file are subject to the terms of the
7173  * Common Development and Distribution License (the "License").
7174  * You may not use this file except in compliance with the License.
7175  *
7176  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7177  * or http://www.opensolaris.org/os/licensing.
7178  * See the License for the specific language governing permissions
7179  * and limitations under the License.
7180  *
7181  * When distributing Covered Code, include this CDDL HEADER in each
7182  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7183  * If applicable, add the following below this CDDL HEADER, with the
7184  * fields enclosed by brackets "[]" replaced with your own identifying
7185  * information: Portions Copyright [yyyy] [name of copyright owner]
7186  *
7187  * CDDL HEADER END
7188  */
7189 /*
7190  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
7191  * Use is subject to license terms.
7192  * Copyright 2016 Joyent, Inc.
7193  */
7194 
7195 
7196 
7197 
7198 #pragma ident "%Z%%M%	%I%	%E% SMI"
7199 
7200 
7201 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7202 /*
7203  * CDDL HEADER START
7204  *
7205  * The contents of this file are subject to the terms of the
7206  * Common Development and Distribution License (the "License").
7207  * You may not use this file except in compliance with the License.
7208  *
7209  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7210  * or http://www.opensolaris.org/os/licensing.
7211  * See the License for the specific language governing permissions
7212  * and limitations under the License.
7213  *
7214  * When distributing Covered Code, include this CDDL HEADER in each
7215  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7216  * If applicable, add the following below this CDDL HEADER, with the
7217  * fields enclosed by brackets "[]" replaced with your own identifying
7218  * information: Portions Copyright [yyyy] [name of copyright owner]
7219  *
7220  * CDDL HEADER END
7221  */
7222 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7223 /*	  All Rights Reserved  	*/
7224 
7225 
7226 /*
7227  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7228  * Use is subject to license terms.
7229  *
7230  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7231  * Copyright 2016 Joyent, Inc.
7232  */
7233 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
7234 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
7235 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7236 /*	  All Rights Reserved  	*/
7237 
7238 
7239 /*
7240  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
7241  * All rights reserved.  The Berkeley software License Agreement
7242  * specifies the terms and conditions for redistribution.
7243  */
7244 
7245 /*
7246  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7247  *
7248  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7249  * Use is subject to license terms.
7250  *
7251  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7252  */
7253 
7254 /*
7255  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
7256  */
7257 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
7258 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
7259 typedef lock_t disp_lock_t; /* dispatcher lock type */
7260 
7261 /*
7262  * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or
7263  * an adaptive mutex, depending on what interrupt levels use it.
7264  */
7265 
7266 
7267 /*
7268  * Macro to control loops which spin on a lock and then check state
7269  * periodically.  Its passed an integer, and returns a boolean value
7270  * that if true indicates its a good time to get the scheduler lock and
7271  * check the state of the current owner of the lock.
7272  */
7273 
7274 
7275 /*
7276  * Externs for CLOCK_LOCK and clock resolution
7277  */
7278 extern volatile uint32_t hres_lock;
7279 extern hrtime_t hrtime_base;
7280 extern int clock_res;
7281 
7282 
7283 
7284 /*
7285  * The definitions of the symbolic interrupt levels:
7286  *
7287  *   CLOCK_LEVEL =>  The level at which one must be to block the clock.
7288  *
7289  *   LOCK_LEVEL  =>  The highest level at which one may block (and thus the
7290  *                   highest level at which one may acquire adaptive locks)
7291  *                   Also the highest level at which one may be preempted.
7292  *
7293  *   DISP_LEVEL  =>  The level at which one must be to perform dispatcher
7294  *                   operations.
7295  *
7296  * The constraints on the platform:
7297  *
7298  *  - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL
7299  *  - LOCK_LEVEL must be less than DISP_LEVEL
7300  *  - DISP_LEVEL should be as close to LOCK_LEVEL as possible
7301  *
7302  * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal;
7303  * changing this relationship is probably possible but not advised.
7304  *
7305  */
7306 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
7307 /*
7308  * The following mask is for the cpu_intr_actv bits corresponding to
7309  * high-level PILs. It should equal:
7310  * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1)
7311  */
7312 
7313 
7314 /*
7315  * The semaphore code depends on being able to represent a lock plus
7316  * owner in a single 32-bit word.  (Mutexes used to have a similar
7317  * dependency, but no longer.)  Thus the owner must contain at most
7318  * 24 significant bits.  At present only threads and semaphores
7319  * must be aware of this vile constraint.  Different ISAs may handle this
7320  * differently depending on their capabilities (e.g. compare-and-swap)
7321  * and limitations (e.g. constraints on alignment and/or KERNELBASE).
7322  */
7323 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
7324 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
7325 /*
7326  * CDDL HEADER START
7327  *
7328  * The contents of this file are subject to the terms of the
7329  * Common Development and Distribution License (the "License").
7330  * You may not use this file except in compliance with the License.
7331  *
7332  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7333  * or http://www.opensolaris.org/os/licensing.
7334  * See the License for the specific language governing permissions
7335  * and limitations under the License.
7336  *
7337  * When distributing Covered Code, include this CDDL HEADER in each
7338  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7339  * If applicable, add the following below this CDDL HEADER, with the
7340  * fields enclosed by brackets "[]" replaced with your own identifying
7341  * information: Portions Copyright [yyyy] [name of copyright owner]
7342  *
7343  * CDDL HEADER END
7344  */
7345 
7346 /*
7347  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
7348  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
7349  */
7350 
7351 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
7352 /*	  All Rights Reserved  	*/
7353 
7354 /*
7355  * University Copyright- Copyright (c) 1982, 1986, 1988
7356  * The Regents of the University of California
7357  * All Rights Reserved
7358  *
7359  * University Acknowledgment- Portions of this document are derived from
7360  * software developed by the University of California, Berkeley, and its
7361  * contributors.
7362  */
7363 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
7364 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
7365 /*
7366  * CDDL HEADER START
7367  *
7368  * The contents of this file are subject to the terms of the
7369  * Common Development and Distribution License (the "License").
7370  * You may not use this file except in compliance with the License.
7371  *
7372  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7373  * or http://www.opensolaris.org/os/licensing.
7374  * See the License for the specific language governing permissions
7375  * and limitations under the License.
7376  *
7377  * When distributing Covered Code, include this CDDL HEADER in each
7378  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7379  * If applicable, add the following below this CDDL HEADER, with the
7380  * fields enclosed by brackets "[]" replaced with your own identifying
7381  * information: Portions Copyright [yyyy] [name of copyright owner]
7382  *
7383  * CDDL HEADER END
7384  */
7385 /*
7386  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
7387  */
7388 
7389 
7390 
7391 
7392 
7393 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7394 /*
7395  * CDDL HEADER START
7396  *
7397  * The contents of this file are subject to the terms of the
7398  * Common Development and Distribution License (the "License").
7399  * You may not use this file except in compliance with the License.
7400  *
7401  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7402  * or http://www.opensolaris.org/os/licensing.
7403  * See the License for the specific language governing permissions
7404  * and limitations under the License.
7405  *
7406  * When distributing Covered Code, include this CDDL HEADER in each
7407  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7408  * If applicable, add the following below this CDDL HEADER, with the
7409  * fields enclosed by brackets "[]" replaced with your own identifying
7410  * information: Portions Copyright [yyyy] [name of copyright owner]
7411  *
7412  * CDDL HEADER END
7413  */
7414 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7415 /*	  All Rights Reserved  	*/
7416 
7417 
7418 /*
7419  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7420  * Use is subject to license terms.
7421  *
7422  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7423  * Copyright 2016 Joyent, Inc.
7424  */
7425 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2
7426 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h"
7427 /*
7428  * Public interface to mutual exclusion locks.  See mutex(9F) for details.
7429  *
7430  * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used
7431  * in almost all of the kernel.  MUTEX_SPIN provides interrupt blocking
7432  * and must be used in interrupt handlers above LOCK_LEVEL.  The iblock
7433  * cookie argument to mutex_init() encodes the interrupt level to block.
7434  * The iblock cookie must be NULL for adaptive locks.
7435  *
7436  * MUTEX_DEFAULT is the type usually specified (except in drivers) to
7437  * mutex_init().  It is identical to MUTEX_ADAPTIVE.
7438  *
7439  * MUTEX_DRIVER is always used by drivers.  mutex_init() converts this to
7440  * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie.
7441  *
7442  * Mutex statistics can be gathered on the fly, without rebooting or
7443  * recompiling the kernel, via the lockstat driver (lockstat(7D)).
7444  */
7445 typedef enum {
7446  MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */
7447  MUTEX_SPIN = 1, /* block interrupts and spin */
7448  MUTEX_DRIVER = 4, /* driver (DDI) mutex */
7449  MUTEX_DEFAULT = 6 /* kernel default mutex */
7450 } kmutex_type_t;
7451 
7452 typedef struct mutex {
7453 
7454  void *_opaque[1];
7455 
7456 
7457 
7458 } kmutex_t;
7459 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
7460 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1
7461 /*
7462  * CDDL HEADER START
7463  *
7464  * The contents of this file are subject to the terms of the
7465  * Common Development and Distribution License (the "License").
7466  * You may not use this file except in compliance with the License.
7467  *
7468  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7469  * or http://www.opensolaris.org/os/licensing.
7470  * See the License for the specific language governing permissions
7471  * and limitations under the License.
7472  *
7473  * When distributing Covered Code, include this CDDL HEADER in each
7474  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7475  * If applicable, add the following below this CDDL HEADER, with the
7476  * fields enclosed by brackets "[]" replaced with your own identifying
7477  * information: Portions Copyright [yyyy] [name of copyright owner]
7478  *
7479  * CDDL HEADER END
7480  */
7481 /*
7482  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
7483  * Use is subject to license terms.
7484  */
7485 
7486 /*
7487  * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
7488  */
7489 
7490 
7491 
7492 
7493 /*
7494  * Public interface to readers/writer locks.  See rwlock(9F) for details.
7495  */
7496 
7497 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7498 /*
7499  * CDDL HEADER START
7500  *
7501  * The contents of this file are subject to the terms of the
7502  * Common Development and Distribution License (the "License").
7503  * You may not use this file except in compliance with the License.
7504  *
7505  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7506  * or http://www.opensolaris.org/os/licensing.
7507  * See the License for the specific language governing permissions
7508  * and limitations under the License.
7509  *
7510  * When distributing Covered Code, include this CDDL HEADER in each
7511  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7512  * If applicable, add the following below this CDDL HEADER, with the
7513  * fields enclosed by brackets "[]" replaced with your own identifying
7514  * information: Portions Copyright [yyyy] [name of copyright owner]
7515  *
7516  * CDDL HEADER END
7517  */
7518 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7519 /*	  All Rights Reserved  	*/
7520 
7521 
7522 /*
7523  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7524  * Use is subject to license terms.
7525  *
7526  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7527  * Copyright 2016 Joyent, Inc.
7528  */
7529 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2
7530 
7531 
7532 
7533 
7534 
7535 
7536 
7537 typedef enum {
7538  RW_DRIVER = 2, /* driver (DDI) rwlock */
7539  RW_DEFAULT = 4 /* kernel default rwlock */
7540 } krw_type_t;
7541 
7542 typedef enum {
7543  RW_WRITER,
7544  RW_READER,
7545  RW_READER_STARVEWRITER
7546 } krw_t;
7547 
7548 typedef struct _krwlock {
7549  void *_opaque[1];
7550 } krwlock_t;
7551 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
7552 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1
7553 /*
7554  * CDDL HEADER START
7555  *
7556  * The contents of this file are subject to the terms of the
7557  * Common Development and Distribution License, Version 1.0 only
7558  * (the "License").  You may not use this file except in compliance
7559  * with the License.
7560  *
7561  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7562  * or http://www.opensolaris.org/os/licensing.
7563  * See the License for the specific language governing permissions
7564  * and limitations under the License.
7565  *
7566  * When distributing Covered Code, include this CDDL HEADER in each
7567  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7568  * If applicable, add the following below this CDDL HEADER, with the
7569  * fields enclosed by brackets "[]" replaced with your own identifying
7570  * information: Portions Copyright [yyyy] [name of copyright owner]
7571  *
7572  * CDDL HEADER END
7573  */
7574 /*
7575  * Copyright (c) 1993-1998 by Sun Microsystems, Inc.
7576  * All rights reserved.
7577  */
7578 
7579 
7580 
7581 
7582 #pragma ident "%Z%%M%	%I%	%E% SMI"
7583 
7584 /*
7585  * Public interface to semaphores.  See semaphore(9F) for details.
7586  */
7587 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h"
7588 typedef enum {
7589  SEMA_DEFAULT,
7590  SEMA_DRIVER
7591 } ksema_type_t;
7592 
7593 typedef struct _ksema {
7594  void * _opaque[2]; /* 2 words on 4 byte alignment */
7595 } ksema_t;
7596 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
7597 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1
7598 /*
7599  * CDDL HEADER START
7600  *
7601  * The contents of this file are subject to the terms of the
7602  * Common Development and Distribution License (the "License").
7603  * You may not use this file except in compliance with the License.
7604  *
7605  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7606  * or http://www.opensolaris.org/os/licensing.
7607  * See the License for the specific language governing permissions
7608  * and limitations under the License.
7609  *
7610  * When distributing Covered Code, include this CDDL HEADER in each
7611  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7612  * If applicable, add the following below this CDDL HEADER, with the
7613  * fields enclosed by brackets "[]" replaced with your own identifying
7614  * information: Portions Copyright [yyyy] [name of copyright owner]
7615  *
7616  * CDDL HEADER END
7617  */
7618 /*
7619  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7620  * Use is subject to license terms.
7621  */
7622 
7623 /*
7624  * Copyright (c) 2012 by Delphix. All rights reserved.
7625  */
7626 
7627 /*
7628  * condvar.h:
7629  *
7630  * definitions for thread synchronization primitives: condition variables
7631  * This is the public part of the interface to condition variables. The
7632  * private (implementation-specific) part is in <arch>/sys/condvar_impl.h.
7633  */
7634 
7635 
7636 
7637 
7638 
7639 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7640 /*
7641  * CDDL HEADER START
7642  *
7643  * The contents of this file are subject to the terms of the
7644  * Common Development and Distribution License (the "License").
7645  * You may not use this file except in compliance with the License.
7646  *
7647  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7648  * or http://www.opensolaris.org/os/licensing.
7649  * See the License for the specific language governing permissions
7650  * and limitations under the License.
7651  *
7652  * When distributing Covered Code, include this CDDL HEADER in each
7653  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7654  * If applicable, add the following below this CDDL HEADER, with the
7655  * fields enclosed by brackets "[]" replaced with your own identifying
7656  * information: Portions Copyright [yyyy] [name of copyright owner]
7657  *
7658  * CDDL HEADER END
7659  */
7660 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7661 /*	  All Rights Reserved  	*/
7662 
7663 
7664 /*
7665  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7666  * Use is subject to license terms.
7667  *
7668  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7669  * Copyright 2016 Joyent, Inc.
7670  */
7671 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
7672 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
7673 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7674 /*	  All Rights Reserved  	*/
7675 
7676 
7677 /*
7678  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
7679  * All rights reserved.  The Berkeley software License Agreement
7680  * specifies the terms and conditions for redistribution.
7681  */
7682 
7683 /*
7684  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7685  *
7686  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7687  * Use is subject to license terms.
7688  *
7689  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7690  */
7691 
7692 /*
7693  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
7694  */
7695 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
7696 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h"
7697 /*
7698  * Condtion variables.
7699  */
7700 
7701 typedef struct _kcondvar {
7702  ushort_t _opaque;
7703 } kcondvar_t;
7704 
7705 typedef enum {
7706  CV_DEFAULT,
7707  CV_DRIVER
7708 } kcv_type_t;
7709 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
7710 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h"
7711 /*
7712  * Mutual exclusion locks described in common/sys/mutex.h.
7713  *
7714  * Semaphores described in common/sys/semaphore.h.
7715  *
7716  * Readers/Writer locks described in common/sys/rwlock.h.
7717  *
7718  * Condition variables described in common/sys/condvar.h
7719  */
7720 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/conf.h" 2
7721 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/conf.h"
7722 /*
7723  * Device flags.
7724  *
7725  * Bit 0 to bit 15 are reserved for kernel.
7726  * Bit 16 to bit 31 are reserved for different machines.
7727  */
7728 
7729 
7730 
7731 
7732 
7733 /*
7734  * MT-safety level (in DDI portion of flags).
7735  *
7736  * All drivers must be MT-safe, and must advertise this by specifying D_MP.
7737  *
7738  * The remainder of the flags apply only to STREAMS modules and drivers.
7739  *
7740  * A STREAMS driver or module can optionally select inner and outer perimeters.
7741  * The four mutually exclusive options that define the presence and scope
7742  * of the inner perimeter are:
7743  *	D_MTPERMOD - per module single threaded.
7744  *	D_MTQPAIR - per queue-pair single threaded.
7745  *	D_MTPERQ - per queue instance single threaded.
7746  *	(none of the above) - no inner perimeter restricting concurrency
7747  *
7748  * The presence	of the outer perimeter is declared with:
7749  *	D_MTOUTPERIM - a per-module outer perimeter. Can be combined with
7750  *		D_MTPERQ, D_MTQPAIR, and D_MP.
7751  *
7752  * The concurrency when entering the different STREAMS entry points can be
7753  * modified with:
7754  *	D_MTPUTSHARED - modifier for D_MTPERQ, D_MTQPAIR, and D_MTPERMOD
7755  *		specifying that the put procedures should not be
7756  *		single-threaded at the inner perimeter.
7757  *	_D_MTOCSHARED - EXPERIMENTAL - will be removed in a future release.
7758  *		Modifier for D_MTPERQ, D_MTQPAIR, and D_MTPERMOD
7759  *		specifying that the open and close procedures should not be
7760  *		single-threaded at the inner perimeter.
7761  *	_D_MTCBSHARED - EXPERIMENTAL - will be removed in a future release.
7762  *		Modifier for D_MTPERQ, D_MTQPAIR, and D_MTPERMOD
7763  *		specifying that the callback i.e qtimeout() procedures should
7764  *		not be single-threaded at the inner perimeter.
7765  *	_D_MTSVCSHARED - EXPERIMENTAL - will be removed in a future release.
7766  *		Modifier for D_MTPERMOD only. Specifies that the service
7767  *		procedure should not be single-threaded at the inner perimeter.
7768  *		However only a single instance of the service thread can run on
7769  *		any given queue.
7770  *	D_MTOCEXCL - modifier for D_MTOUTPERIM specifying that the open and
7771  *		close procedures should be single-threaded at the outer
7772  *		perimeter.
7773  */
7774 
7775 
7776 
7777 /* 0x100 - see below */
7778 /* 0x200 - see below */
7779 /* 0x400 - see below */
7780 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/conf.h"
7781 /* The inner perimeter scope bits */
7782 
7783 
7784 /* Inner perimeter modification bits */
7785 
7786 
7787 
7788 /* Outer perimeter modification bits */
7789 
7790 
7791 /* All the MT flags */
7792 # 212 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/conf.h"
7793     /* extended qinit structure */
7794 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h" 2
7795 
7796 
7797 
7798 
7799 
7800 /*
7801  * Write options
7802  */
7803 
7804 
7805      /* putmsg if sd_werror is set */
7806 
7807 /*
7808  * Read options
7809  */
7810 # 64 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7811 /*
7812  * These next three read options are added for the sake of
7813  * user-level transparency.  RPROTDAT will cause the stream head
7814  * to treat the contents of M_PROTO and M_PCPROTO message blocks
7815  * as data.  RPROTDIS will prevent the stream head from failing
7816  * a read with EBADMSG if an M_PROTO or M_PCPROTO message is on
7817  * the front of the stream head read queue.  Rather, the protocol
7818  * blocks will be silently discarded and the data associated with
7819  * the message (in linked M_DATA blocks), if any, will be delivered
7820  * to the user.  RPROTNORM sets the default behavior, where read
7821  * will fail with EBADMSG if an M_PROTO or M_PCPROTO are at the
7822  * stream head.
7823  */
7824 
7825 
7826      /* read data portion */
7827 
7828 
7829 
7830 
7831 
7832 /*
7833  * The next read option is used so that a TPI aware module can tell the
7834  * stream head to not flush M_PCPROTO messages when processing a read side
7835  * flush. This will avoid problems where a flush removes a T_OK_ACK.
7836  */
7837 
7838 
7839 
7840 
7841 
7842 
7843 /*
7844  * Error options
7845  */
7846 
7847 /*
7848  * Error options to adjust the stream head error behavior with respect
7849  * to M_ERROR message for read and write side errors respectively.
7850  * The normal case is that the read/write side error is
7851  * persistent and these options allow the application or streams module/driver
7852  * to specify that errors are nonpersistent. In this case the error is cleared
7853  * after having been returned to read(), getmsg(), ioctl(), write(), putmsg(),
7854  * etc.
7855  */
7856 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7857 /*
7858  * Flush options
7859  */
7860 
7861 
7862 
7863 
7864 
7865      /* in next byte */
7866 /*
7867  * Copy options for M_SETOPS/SO_COPYOPT
7868  */
7869 
7870 
7871      /* pages instead of bcopy */
7872 
7873 
7874 
7875 
7876 /*
7877  * Events for which the SIGPOLL signal is to be sent.
7878  */
7879 # 154 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7880      /* SIGURG instead of SIGPOLL */
7881 
7882 /*
7883  * Flags for getmsg() and putmsg() syscall arguments.
7884  * "RS" stands for recv/send.  The system calls were originally called
7885  * recv() and send(), but were renamed to avoid confusion with the BSD
7886  * calls of the same name.  A value of zero will cause getmsg() to return
7887  * the first message on the stream head read queue and putmsg() to send
7888  * a normal priority message.
7889  *
7890  * Flags for strmakemsg() arguments (should define strmakemsg() flags).
7891  * Used to determine the message type of the control part of a message,
7892  * if RS_HIPRI, M_PCPROTO, else M_PROTO.
7893  */
7894 
7895 
7896 
7897 
7898 /*
7899  * Flags for getpmsg() and putpmsg() syscall arguments.
7900  */
7901 
7902 /*
7903  * These are settable by the user and will be set on return
7904  * to indicate the priority of message received.
7905  */
7906 
7907 
7908 
7909 
7910 /*
7911  * This is a private flag passed by libc to kernel to
7912  * identify that it is a XPG4_2 application. No
7913  * applications need to know about this flag.
7914  */
7915 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7916 /*
7917  * Flags returned as value of getmsg() and getpmsg() syscall.
7918  */
7919 
7920 
7921 
7922 /*
7923  * Define to indicate that all multiplexors beneath a stream should
7924  * be unlinked.
7925  */
7926 
7927 
7928 /*
7929  * Flag definitions for the I_ATMARK ioctl.
7930  */
7931 
7932 
7933 
7934 /*
7935  *  Stream Ioctl defines
7936  */
7937 
7938 /* (STR|000) in use */
7939 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7940 /* (STR|016) in use */
7941 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7942 /*
7943  * IOCTLs (STR|050) - (STR|055) are available for use.
7944  */
7945 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7946 /*
7947  * User level ioctl format for ioctls that go downstream (I_STR)
7948  */
7949 struct strioctl {
7950  int ic_cmd; /* command */
7951  int ic_timout; /* timeout value */
7952  int ic_len; /* length of data */
7953  char *ic_dp; /* pointer to data */
7954 };
7955 # 308 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7956 /*
7957  * Value for timeouts (ioctl, select) that denotes infinity
7958  */
7959 
7960 
7961 
7962 
7963 
7964 
7965 /*
7966  * For _I_CMD: similar to strioctl, but with included buffer (to avoid copyin/
7967  * copyout from another address space).  NOTE: the size of this structure must
7968  * be less than libproc.h`MAXARGL for pr_ioctl() to handle it.
7969  */
7970 
7971 typedef struct strcmd {
7972  int sc_cmd; /* ioctl command */
7973  int sc_timeout; /* timeout value (in seconds) */
7974  int sc_len; /* length of data */
7975  int sc_pad;
7976  char sc_buf[2048]; /* data buffer */
7977 } strcmd_t;
7978 
7979 
7980 /*
7981  * Stream buffer structure for putmsg and getmsg system calls
7982  */
7983 struct strbuf {
7984  int maxlen; /* no. of bytes in buffer */
7985  int len; /* no. of bytes returned */
7986  caddr_t buf; /* pointer to data */
7987 };
7988 # 350 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7989 /*
7990  * Stream I_PEEK ioctl format
7991  */
7992 struct strpeek {
7993  struct strbuf ctlbuf;
7994  struct strbuf databuf;
7995  t_uscalar_t flags;
7996 };
7997 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
7998 /*
7999  * Stream I_FDINSERT ioctl format
8000  */
8001 struct strfdinsert {
8002  struct strbuf ctlbuf;
8003  struct strbuf databuf;
8004  t_uscalar_t flags;
8005  int fildes;
8006  int offset;
8007 };
8008 # 392 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
8009 /*
8010  * Receive file descriptor structure
8011  */
8012 # 426 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
8013 struct strrecvfd {
8014  int fd;
8015  uid_t uid;
8016  gid_t gid;
8017 
8018 
8019 
8020  char fill[8];
8021 
8022 };
8023 
8024 
8025 /*
8026  * For I_LIST ioctl.
8027  */
8028 struct str_mlist {
8029  char l_name[8 +1];
8030 };
8031 
8032 struct str_list {
8033  int sl_nmods;
8034  struct str_mlist *sl_modlist;
8035 };
8036 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
8037 /*
8038  * Private, for _I_INSERT/_I_REMOVE ioctl.
8039  */
8040 struct strmodconf {
8041  int pos; /* Position to be inserted/removed. */
8042  caddr_t mod_name; /* Name of module. */
8043 };
8044 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stropts.h"
8045 /*
8046  * For I_FLUSHBAND ioctl.  Describes the priority
8047  * band for which the operation applies.
8048  */
8049 struct bandinfo {
8050  unsigned char bi_pri;
8051  int bi_flag;
8052 };
8053 
8054 
8055 /*
8056  * The argument for I_ESETSIG and I_EGETSIG ioctls.
8057  */
8058 
8059 struct strsigset {
8060  pid_t ss_pid; /* pgrp if negative */
8061  int ss_events; /* S_ events */
8062 };
8063 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stropts.h" 2
8064 
8065 
8066 
8067 
8068 
8069 extern int isastream(int);
8070 
8071 extern int getmsg(int, struct strbuf *,
8072   struct strbuf *, int *);
8073 extern int putmsg(int, const struct strbuf *, const struct strbuf *, int);
8074 
8075 extern int getpmsg(int, struct strbuf *,
8076   struct strbuf *, int *,
8077   int *);
8078 extern int putpmsg(int, const struct strbuf *, const struct strbuf *, int, int);
8079 
8080 /*
8081  * These three routines are duplicated in unistd.h; duplication necessitated
8082  * by XPG4.2 compliance/namespace issues.
8083  */
8084 extern int ioctl(int, int, ...);
8085 extern int fattach(int, const char *);
8086 extern int fdetach(const char *);
8087 # 61 "../common/zones_str.c" 2
8088 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
8089 /*
8090  * CDDL HEADER START
8091  *
8092  * The contents of this file are subject to the terms of the
8093  * Common Development and Distribution License (the "License").
8094  * You may not use this file except in compliance with the License.
8095  *
8096  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8097  * or http://www.opensolaris.org/os/licensing.
8098  * See the License for the specific language governing permissions
8099  * and limitations under the License.
8100  *
8101  * When distributing Covered Code, include this CDDL HEADER in each
8102  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8103  * If applicable, add the following below this CDDL HEADER, with the
8104  * fields enclosed by brackets "[]" replaced with your own identifying
8105  * information: Portions Copyright [yyyy] [name of copyright owner]
8106  *
8107  * CDDL HEADER END
8108  */
8109 /*
8110  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8111  *
8112  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
8113  * Use is subject to license terms.
8114  */
8115 
8116 
8117 
8118 
8119 
8120 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
8121 /*
8122  * CDDL HEADER START
8123  *
8124  * The contents of this file are subject to the terms of the
8125  * Common Development and Distribution License (the "License").
8126  * You may not use this file except in compliance with the License.
8127  *
8128  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8129  * or http://www.opensolaris.org/os/licensing.
8130  * See the License for the specific language governing permissions
8131  * and limitations under the License.
8132  *
8133  *
8134  * When distributing Covered Code, include this CDDL HEADER in each
8135  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8136  * If applicable, add the following below this CDDL HEADER, with the
8137  * fields enclosed by brackets "[]" replaced with your own identifying
8138  * information: Portions Copyright [yyyy] [name of copyright owner]
8139  *
8140  * CDDL HEADER END
8141  */
8142 
8143 /*
8144  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
8145  * Use is subject to license terms.
8146  * Copyright 2016 Joyent, Inc.
8147  */
8148 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2
8149 
8150 
8151 
8152 
8153 
8154 /*
8155  * wchar_t is a built-in type in standard C++ and as such is not
8156  * defined here when using standard C++. However, the GNU compiler
8157  * fixincludes utility nonetheless creates its own version of this
8158  * header for use by gcc and g++. In that version it adds a redundant
8159  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
8160  * header we need to include the following magic comment:
8161  *
8162  * we must use the C++ compiler's type
8163  *
8164  * The above comment should not be removed or changed until GNU
8165  * gcc/fixinc/inclhack.def is updated to bypass this header.
8166  */
8167 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h"
8168 extern char *dcgettext(const char *, const char *, const int);
8169 extern char *dgettext(const char *, const char *);
8170 extern char *gettext(const char *);
8171 extern char *textdomain(const char *);
8172 extern char *bindtextdomain(const char *, const char *);
8173 
8174 /*
8175  * LI18NUX 2000 Globalization Specification Version 1.0
8176  * with Amendment 2
8177  */
8178 extern char *dcngettext(const char *, const char *,
8179  const char *, unsigned long int, int);
8180 extern char *dngettext(const char *, const char *,
8181  const char *, unsigned long int);
8182 extern char *ngettext(const char *, const char *, unsigned long int);
8183 extern char *bind_textdomain_codeset(const char *, const char *);
8184 
8185 /* Word handling functions --- requires dynamic linking */
8186 /* Warning: these are experimental and subject to change. */
8187 extern int wdinit(void);
8188 extern int wdchkind(wchar_t);
8189 extern int wdbindf(wchar_t, wchar_t, int);
8190 extern wchar_t *wddelim(wchar_t, wchar_t, int);
8191 extern wchar_t mcfiller(void);
8192 extern int mcwrap(void);
8193 # 62 "../common/zones_str.c" 2
8194 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 1
8195 /*
8196  * CDDL HEADER START
8197  *
8198  * The contents of this file are subject to the terms of the
8199  * Common Development and Distribution License, Version 1.0 only
8200  * (the "License").  You may not use this file except in compliance
8201  * with the License.
8202  *
8203  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8204  * or http://www.opensolaris.org/os/licensing.
8205  * See the License for the specific language governing permissions
8206  * and limitations under the License.
8207  *
8208  * When distributing Covered Code, include this CDDL HEADER in each
8209  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8210  * If applicable, add the following below this CDDL HEADER, with the
8211  * fields enclosed by brackets "[]" replaced with your own identifying
8212  * information: Portions Copyright [yyyy] [name of copyright owner]
8213  *
8214  * CDDL HEADER END
8215  */
8216 /*
8217  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
8218  * Use is subject to license terms.
8219  */
8220 
8221 /*
8222  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8223  *
8224  * Portions of this file developed by Garrett D'Amore are licensed
8225  * under the terms of the Common Development and Distribution License (CDDL)
8226  * version 1.0 only.  The use of subsequent versions of the License are
8227  * is specifically prohibited unless those terms are not in conflict with
8228  * version 1.0 of the License.  You can find this license on-line at
8229  * http://www.illumos.org/license/CDDL
8230  */
8231 
8232 
8233 
8234 
8235 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 1
8236 /*
8237  * CDDL HEADER START
8238  *
8239  * The contents of this file are subject to the terms of the
8240  * Common Development and Distribution License, Version 1.0 only
8241  * (the "License").  You may not use this file except in compliance
8242  * with the License.
8243  *
8244  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8245  * or http://www.opensolaris.org/os/licensing.
8246  * See the License for the specific language governing permissions
8247  * and limitations under the License.
8248  *
8249  * When distributing Covered Code, include this CDDL HEADER in each
8250  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8251  * If applicable, add the following below this CDDL HEADER, with the
8252  * fields enclosed by brackets "[]" replaced with your own identifying
8253  * information: Portions Copyright [yyyy] [name of copyright owner]
8254  *
8255  * CDDL HEADER END
8256  */
8257 /*
8258  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8259  * Copyright 2014 PALO, Richard.
8260  *
8261  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
8262  * Use is subject to license terms.
8263  */
8264 
8265 /*	Copyright (c) 1988 AT&T	*/
8266 /*	  All Rights Reserved  	*/
8267 
8268 
8269 /*
8270  * An application should not include this header directly.  Instead it
8271  * should be included only through the inclusion of other Sun headers.
8272  *
8273  * The contents of this header is limited to identifiers specified in the
8274  * C Standard.  Any new identifiers specified in future amendments to the
8275  * C Standard must be placed in this header.  If these new identifiers
8276  * are required to also be in the C++ Standard "std" namespace, then for
8277  * anything other than macro definitions, corresponding "using" directives
8278  * must also be added to <locale.h>.
8279  */
8280 
8281 
8282 
8283 
8284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
8285 /*
8286  * CDDL HEADER START
8287  *
8288  * The contents of this file are subject to the terms of the
8289  * Common Development and Distribution License (the "License").
8290  * You may not use this file except in compliance with the License.
8291  *
8292  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8293  * or http://www.opensolaris.org/os/licensing.
8294  * See the License for the specific language governing permissions
8295  * and limitations under the License.
8296  *
8297  * When distributing Covered Code, include this CDDL HEADER in each
8298  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8299  * If applicable, add the following below this CDDL HEADER, with the
8300  * fields enclosed by brackets "[]" replaced with your own identifying
8301  * information: Portions Copyright [yyyy] [name of copyright owner]
8302  *
8303  * CDDL HEADER END
8304  */
8305 
8306 /*
8307  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
8308  * Copyright 2016 Joyent, Inc.
8309  *
8310  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
8311  * Use is subject to license terms.
8312  */
8313 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2
8314 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
8315 /*
8316  * This file and its contents are supplied under the terms of the
8317  * Common Development and Distribution License ("CDDL"), version 1.0.
8318  * You may only use this file in accordance with the terms of version
8319  * 1.0 of the CDDL.
8320  *
8321  * A full copy of the text of the CDDL should have accompanied this
8322  * source.  A copy of the CDDL is also available via the Internet at
8323  * http://www.illumos.org/license/CDDL.
8324  */
8325 
8326 /*
8327  * Copyright 2014-2016 PALO, Richard.
8328  */
8329 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2
8330 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
8331 struct lconv {
8332  char *decimal_point;
8333  char *thousands_sep;
8334  char *grouping;
8335  char *int_curr_symbol;
8336  char *currency_symbol;
8337  char *mon_decimal_point;
8338  char *mon_thousands_sep;
8339  char *mon_grouping;
8340  char *positive_sign;
8341  char *negative_sign;
8342  char int_frac_digits;
8343  char frac_digits;
8344  char p_cs_precedes;
8345  char p_sep_by_space;
8346  char n_cs_precedes;
8347  char n_sep_by_space;
8348  char p_sign_posn;
8349  char n_sign_posn;
8350 
8351 /*
8352  * New in IEEE Std 1003.1-2001 for alignment with the ISO/IEC 9899:1999
8353  * standard.  Namespace and binary compatibility dictate that visibility
8354  * of these new members be limited.  Visibility is limited to a strictly
8355  * conforming ANSI C environment (-Xc) or if _LCONV_C99 is defined.
8356  */
8357 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
8358 };
8359 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
8360 extern char *setlocale(int, const char *);
8361 extern struct lconv *localeconv(void);
8362 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2
8363 
8364 
8365 
8366 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
8367 /*
8368  * CDDL HEADER START
8369  *
8370  * The contents of this file are subject to the terms of the
8371  * Common Development and Distribution License (the "License").
8372  * You may not use this file except in compliance with the License.
8373  *
8374  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8375  * or http://www.opensolaris.org/os/licensing.
8376  * See the License for the specific language governing permissions
8377  * and limitations under the License.
8378  *
8379  * When distributing Covered Code, include this CDDL HEADER in each
8380  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8381  * If applicable, add the following below this CDDL HEADER, with the
8382  * fields enclosed by brackets "[]" replaced with your own identifying
8383  * information: Portions Copyright [yyyy] [name of copyright owner]
8384  *
8385  * CDDL HEADER END
8386  */
8387 /*
8388  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8389  *
8390  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
8391  * Use is subject to license terms.
8392  */
8393 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2
8394 
8395 
8396 /*
8397  * Allow global visibility for symbols defined in
8398  * C++ "std" namespace in <iso/locale_iso.h>.
8399  */
8400 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h"
8401 /*
8402  * These were added in POSIX 2008 as part of the newlocale() specification.
8403  */
8404 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h"
8405 extern locale_t duplocale(locale_t);
8406 extern void freelocale(locale_t);
8407 extern locale_t newlocale(int, const char *, locale_t);
8408 extern locale_t uselocale(locale_t);
8409 
8410 
8411 extern locale_t __global_locale(void);
8412 # 63 "../common/zones_str.c" 2
8413 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h" 1
8414 /*
8415  * CDDL HEADER START
8416  *
8417  * The contents of this file are subject to the terms of the
8418  * Common Development and Distribution License, Version 1.0 only
8419  * (the "License").  You may not use this file except in compliance
8420  * with the License.
8421  *
8422  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8423  * or http://www.opensolaris.org/os/licensing.
8424  * See the License for the specific language governing permissions
8425  * and limitations under the License.
8426  *
8427  * When distributing Covered Code, include this CDDL HEADER in each
8428  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8429  * If applicable, add the following below this CDDL HEADER, with the
8430  * fields enclosed by brackets "[]" replaced with your own identifying
8431  * information: Portions Copyright [yyyy] [name of copyright owner]
8432  *
8433  * CDDL HEADER END
8434  */
8435 /*	Copyright (c) 1988 AT&T	*/
8436 /*	  All Rights Reserved  	*/
8437 
8438 /*
8439  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8440  * Copyright 2016 Joyent, Inc.
8441  * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
8442  *
8443  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8444  * Use is subject to license terms.
8445  */
8446 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h"
8447 extern void __assert(const char *, const char *, int);
8448 
8449 
8450 /*
8451  * In C11 the static_assert macro is always defined, unlike the assert macro.
8452  */
8453 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h"
8454 /*
8455  * Note that the ANSI C Standard requires all headers to be idempotent except
8456  * <assert.h> which is explicitly required not to be idempotent (section 4.1.2).
8457  * Therefore, it is by intent that the header guards (#ifndef _ASSERT_H) do
8458  * not span this entire file.
8459  */
8460 # 64 "../common/zones_str.c" 2
8461 
8462 /*
8463  * local includes
8464  */
8465 
8466 # 1 "../common/instzones_lib.h" 1
8467 /*
8468  * CDDL HEADER START
8469  *
8470  * The contents of this file are subject to the terms of the
8471  * Common Development and Distribution License (the "License").
8472  * You may not use this file except in compliance with the License.
8473  *
8474  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8475  * or http://www.opensolaris.org/os/licensing.
8476  * See the License for the specific language governing permissions
8477  * and limitations under the License.
8478  *
8479  * When distributing Covered Code, include this CDDL HEADER in each
8480  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8481  * If applicable, add the following below this CDDL HEADER, with the
8482  * fields enclosed by brackets "[]" replaced with your own identifying
8483  * information: Portions Copyright [yyyy] [name of copyright owner]
8484  *
8485  * CDDL HEADER END
8486  */
8487 /*
8488  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
8489  */
8490 
8491 
8492 
8493 
8494 
8495 
8496 
8497 /*
8498  * Module:	instzones_lib.h
8499  * Group:	libinstzones
8500  * Description:	This module contains the libinstzones internal data structures,
8501  *		constants, and function prototypes. This include should not be
8502  *		needed by any external code (consumers of this library).
8503  */
8504 
8505 /*
8506  * required includes
8507  */
8508 
8509 /* System includes */
8510 
8511 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 1
8512 /*
8513  * CDDL HEADER START
8514  *
8515  * The contents of this file are subject to the terms of the
8516  * Common Development and Distribution License (the "License").
8517  * You may not use this file except in compliance with the License.
8518  *
8519  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8520  * or http://www.opensolaris.org/os/licensing.
8521  * See the License for the specific language governing permissions
8522  * and limitations under the License.
8523  *
8524  * When distributing Covered Code, include this CDDL HEADER in each
8525  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8526  * If applicable, add the following below this CDDL HEADER, with the
8527  * fields enclosed by brackets "[]" replaced with your own identifying
8528  * information: Portions Copyright [yyyy] [name of copyright owner]
8529  *
8530  * CDDL HEADER END
8531  */
8532 /*
8533  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8534  * Use is subject to license terms.
8535  */
8536 
8537 
8538 
8539 
8540 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8541 /*
8542  * CDDL HEADER START
8543  *
8544  * The contents of this file are subject to the terms of the
8545  * Common Development and Distribution License (the "License").
8546  * You may not use this file except in compliance with the License.
8547  *
8548  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8549  * or http://www.opensolaris.org/os/licensing.
8550  * See the License for the specific language governing permissions
8551  * and limitations under the License.
8552  *
8553  * When distributing Covered Code, include this CDDL HEADER in each
8554  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8555  * If applicable, add the following below this CDDL HEADER, with the
8556  * fields enclosed by brackets "[]" replaced with your own identifying
8557  * information: Portions Copyright [yyyy] [name of copyright owner]
8558  *
8559  * CDDL HEADER END
8560  */
8561 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8562 /*	  All Rights Reserved  	*/
8563 
8564 
8565 /*
8566  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8567  * Use is subject to license terms.
8568  *
8569  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8570  * Copyright 2016 Joyent, Inc.
8571  */
8572 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
8573 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 1
8574 /*
8575  * CDDL HEADER START
8576  *
8577  * The contents of this file are subject to the terms of the
8578  * Common Development and Distribution License (the "License").
8579  * You may not use this file except in compliance with the License.
8580  *
8581  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8582  * or http://www.opensolaris.org/os/licensing.
8583  * See the License for the specific language governing permissions
8584  * and limitations under the License.
8585  *
8586  * When distributing Covered Code, include this CDDL HEADER in each
8587  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8588  * If applicable, add the following below this CDDL HEADER, with the
8589  * fields enclosed by brackets "[]" replaced with your own identifying
8590  * information: Portions Copyright [yyyy] [name of copyright owner]
8591  *
8592  * CDDL HEADER END
8593  */
8594 /*
8595  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
8596  * Copyright 2013, Joyent, Inc. All rights reserved.
8597  * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
8598  * Copyright 2014 Igor Kozhukhov <ikozhukhov@gmail.com>.
8599  */
8600 
8601 
8602 
8603 
8604 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8605 /*
8606  * CDDL HEADER START
8607  *
8608  * The contents of this file are subject to the terms of the
8609  * Common Development and Distribution License (the "License").
8610  * You may not use this file except in compliance with the License.
8611  *
8612  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8613  * or http://www.opensolaris.org/os/licensing.
8614  * See the License for the specific language governing permissions
8615  * and limitations under the License.
8616  *
8617  * When distributing Covered Code, include this CDDL HEADER in each
8618  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8619  * If applicable, add the following below this CDDL HEADER, with the
8620  * fields enclosed by brackets "[]" replaced with your own identifying
8621  * information: Portions Copyright [yyyy] [name of copyright owner]
8622  *
8623  * CDDL HEADER END
8624  */
8625 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8626 /*	  All Rights Reserved  	*/
8627 
8628 
8629 /*
8630  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8631  * Use is subject to license terms.
8632  *
8633  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8634  * Copyright 2016 Joyent, Inc.
8635  */
8636 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
8637 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
8638 /*
8639  * CDDL HEADER START
8640  *
8641  * The contents of this file are subject to the terms of the
8642  * Common Development and Distribution License (the "License").
8643  * You may not use this file except in compliance with the License.
8644  *
8645  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8646  * or http://www.opensolaris.org/os/licensing.
8647  * See the License for the specific language governing permissions
8648  * and limitations under the License.
8649  *
8650  * When distributing Covered Code, include this CDDL HEADER in each
8651  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8652  * If applicable, add the following below this CDDL HEADER, with the
8653  * fields enclosed by brackets "[]" replaced with your own identifying
8654  * information: Portions Copyright [yyyy] [name of copyright owner]
8655  *
8656  * CDDL HEADER END
8657  */
8658 /*
8659  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
8660  */
8661 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
8662 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
8663 /*
8664  * CDDL HEADER START
8665  *
8666  * The contents of this file are subject to the terms of the
8667  * Common Development and Distribution License (the "License").
8668  * You may not use this file except in compliance with the License.
8669  *
8670  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8671  * or http://www.opensolaris.org/os/licensing.
8672  * See the License for the specific language governing permissions
8673  * and limitations under the License.
8674  *
8675  * When distributing Covered Code, include this CDDL HEADER in each
8676  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8677  * If applicable, add the following below this CDDL HEADER, with the
8678  * fields enclosed by brackets "[]" replaced with your own identifying
8679  * information: Portions Copyright [yyyy] [name of copyright owner]
8680  *
8681  * CDDL HEADER END
8682  */
8683 
8684 /*
8685  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
8686  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
8687  */
8688 
8689 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
8690 /*	  All Rights Reserved  	*/
8691 
8692 /*
8693  * University Copyright- Copyright (c) 1982, 1986, 1988
8694  * The Regents of the University of California
8695  * All Rights Reserved
8696  *
8697  * University Acknowledgment- Portions of this document are derived from
8698  * software developed by the University of California, Berkeley, and its
8699  * contributors.
8700  */
8701 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
8702 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
8703 /*
8704  * CDDL HEADER START
8705  *
8706  * The contents of this file are subject to the terms of the
8707  * Common Development and Distribution License (the "License").
8708  * You may not use this file except in compliance with the License.
8709  *
8710  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8711  * or http://www.opensolaris.org/os/licensing.
8712  * See the License for the specific language governing permissions
8713  * and limitations under the License.
8714  *
8715  * When distributing Covered Code, include this CDDL HEADER in each
8716  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8717  * If applicable, add the following below this CDDL HEADER, with the
8718  * fields enclosed by brackets "[]" replaced with your own identifying
8719  * information: Portions Copyright [yyyy] [name of copyright owner]
8720  *
8721  * CDDL HEADER END
8722  */
8723 /*
8724  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
8725  */
8726 
8727 
8728 
8729 
8730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 1
8731 /*
8732  * CDDL HEADER START
8733  *
8734  * The contents of this file are subject to the terms of the
8735  * Common Development and Distribution License (the "License").
8736  * You may not use this file except in compliance with the License.
8737  *
8738  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8739  * or http://www.opensolaris.org/os/licensing.
8740  * See the License for the specific language governing permissions
8741  * and limitations under the License.
8742  *
8743  * When distributing Covered Code, include this CDDL HEADER in each
8744  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8745  * If applicable, add the following below this CDDL HEADER, with the
8746  * fields enclosed by brackets "[]" replaced with your own identifying
8747  * information: Portions Copyright [yyyy] [name of copyright owner]
8748  *
8749  * CDDL HEADER END
8750  */
8751 
8752 /*
8753  * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
8754  * Copyright (c) 2012 by Delphix. All rights reserved.
8755  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8756  */
8757 
8758 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
8759 /*	  All Rights Reserved	*/
8760 
8761 
8762 
8763 
8764 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8765 /*
8766  * CDDL HEADER START
8767  *
8768  * The contents of this file are subject to the terms of the
8769  * Common Development and Distribution License (the "License").
8770  * You may not use this file except in compliance with the License.
8771  *
8772  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8773  * or http://www.opensolaris.org/os/licensing.
8774  * See the License for the specific language governing permissions
8775  * and limitations under the License.
8776  *
8777  * When distributing Covered Code, include this CDDL HEADER in each
8778  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8779  * If applicable, add the following below this CDDL HEADER, with the
8780  * fields enclosed by brackets "[]" replaced with your own identifying
8781  * information: Portions Copyright [yyyy] [name of copyright owner]
8782  *
8783  * CDDL HEADER END
8784  */
8785 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8786 /*	  All Rights Reserved  	*/
8787 
8788 
8789 /*
8790  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8791  * Use is subject to license terms.
8792  *
8793  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8794  * Copyright 2016 Joyent, Inc.
8795  */
8796 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 2
8797 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h" 1
8798 /*
8799  * CDDL HEADER START
8800  *
8801  * The contents of this file are subject to the terms of the
8802  * Common Development and Distribution License (the "License").
8803  * You may not use this file except in compliance with the License.
8804  *
8805  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8806  * or http://www.opensolaris.org/os/licensing.
8807  * See the License for the specific language governing permissions
8808  * and limitations under the License.
8809  *
8810  * When distributing Covered Code, include this CDDL HEADER in each
8811  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8812  * If applicable, add the following below this CDDL HEADER, with the
8813  * fields enclosed by brackets "[]" replaced with your own identifying
8814  * information: Portions Copyright [yyyy] [name of copyright owner]
8815  *
8816  * CDDL HEADER END
8817  */
8818 /*
8819  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
8820  * Copyright (c) 2012 by Delphix. All rights reserved.
8821  */
8822 
8823 
8824 
8825 
8826 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
8827 /*
8828  * CDDL HEADER START
8829  *
8830  * The contents of this file are subject to the terms of the
8831  * Common Development and Distribution License (the "License").
8832  * You may not use this file except in compliance with the License.
8833  *
8834  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8835  * or http://www.opensolaris.org/os/licensing.
8836  * See the License for the specific language governing permissions
8837  * and limitations under the License.
8838  *
8839  * When distributing Covered Code, include this CDDL HEADER in each
8840  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8841  * If applicable, add the following below this CDDL HEADER, with the
8842  * fields enclosed by brackets "[]" replaced with your own identifying
8843  * information: Portions Copyright [yyyy] [name of copyright owner]
8844  *
8845  * CDDL HEADER END
8846  */
8847 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8848 /*	  All Rights Reserved  	*/
8849 
8850 
8851 /*
8852  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
8853  * Use is subject to license terms.
8854  *
8855  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
8856  * Copyright 2016 Joyent, Inc.
8857  */
8858 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h" 2
8859 
8860 
8861 
8862 
8863 
8864 
8865 /*
8866  * Per-allocation flags
8867  */
8868 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h"
8869 /*
8870  * The following flags are restricted for use only within the kernel.
8871  * VM_MEMLOAD is for use by the HAT to avoid infinite recursion.
8872  * VM_NORELOC is used by the kernel when static VA->PA mappings are required.
8873  */
8874 
8875 
8876 /*
8877  * VM_ABORT requests that vmem_alloc() *ignore* the VM_SLEEP/VM_NOSLEEP flags
8878  * and forgo reaping if the allocation or attempted import, fails.  This
8879  * flag is a segkmem-specific flag, and should not be used by anyone else.
8880  */
8881 
8882 
8883 /*
8884  * VM_ENDALLOC requests that large addresses be preferred in allocations.
8885  * Has no effect if VM_NEXTFIT is active.
8886  */
8887 
8888 
8889 
8890 
8891 /*
8892  * Arena creation flags
8893  */
8894 
8895 
8896 
8897 
8898 /*
8899  * internal use only;	the import function uses the vmem_ximport_t interface
8900  *			and may increase the request size if it so desires.
8901  *			VMC_XALIGN, for use with vmem_xcreate, specifies that
8902  *			the address returned by the import function will be
8903  *			aligned according to the alignment argument.
8904  */
8905 
8906 
8907 
8908 
8909 /*
8910  * Public segment types
8911  */
8912 
8913 
8914 
8915 /*
8916  * Implementation-private segment types
8917  */
8918 
8919 
8920 
8921 
8922 /*
8923  * VMEM_REENTRANT indicates to vmem_walk() that the callback routine may
8924  * call back into the arena being walked, so vmem_walk() must drop the
8925  * arena lock before each callback.  The caveat is that since the arena
8926  * isn't locked, its state can change.  Therefore it is up to the callback
8927  * routine to handle cases where the segment isn't of the expected type.
8928  * For example, we use this to walk heap_arena when generating a crash dump;
8929  * see segkmem_dump() for sample usage.
8930  */
8931 
8932 
8933 typedef struct vmem vmem_t;
8934 typedef void *(vmem_alloc_t)(vmem_t *, size_t, int);
8935 typedef void (vmem_free_t)(vmem_t *, void *, size_t);
8936 
8937 /*
8938  * Alternate import style; the requested size is passed in a pointer,
8939  * which can be increased by the import function if desired.
8940  */
8941 typedef void *(vmem_ximport_t)(vmem_t *, size_t *, size_t, int);
8942 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vmem.h"
8943 extern vmem_t *vmem_create(const char *, void *, size_t, size_t,
8944     vmem_alloc_t *, vmem_free_t *, vmem_t *, size_t, int);
8945 extern vmem_t *vmem_xcreate(const char *, void *, size_t, size_t,
8946     vmem_ximport_t *, vmem_free_t *, vmem_t *, size_t, int);
8947 extern void vmem_destroy(vmem_t *);
8948 extern void *vmem_alloc(vmem_t *, size_t, int);
8949 extern void *vmem_xalloc(vmem_t *, size_t, size_t, size_t, size_t,
8950     void *, void *, int);
8951 extern void vmem_free(vmem_t *, void *, size_t);
8952 extern void vmem_xfree(vmem_t *, void *, size_t);
8953 extern void *vmem_add(vmem_t *, void *, size_t, int);
8954 extern int vmem_contains(vmem_t *, void *, size_t);
8955 extern void vmem_walk(vmem_t *, int, void (*)(void *, void *, size_t), void *);
8956 extern size_t vmem_size(vmem_t *, int);
8957 extern void vmem_qcache_reap(vmem_t *vmp);
8958 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h" 2
8959 
8960 
8961 
8962 
8963 
8964 /*
8965  * Kernel memory allocator: DDI interfaces.
8966  * See kmem_alloc(9F) for details.
8967  */
8968 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h"
8969 /*
8970  * Kernel memory allocator: private interfaces.
8971  * These interfaces are still evolving.
8972  * Do not use them in unbundled drivers.
8973  */
8974 
8975 /*
8976  * Flags for kmem_cache_create()
8977  */
8978 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kmem.h"
8979 struct kmem_cache; /* cache structure is opaque to kmem clients */
8980 
8981 typedef struct kmem_cache kmem_cache_t;
8982 
8983 /* Client response to kmem move callback */
8984 typedef enum kmem_cbrc {
8985  KMEM_CBRC_YES,
8986  KMEM_CBRC_NO,
8987  KMEM_CBRC_LATER,
8988  KMEM_CBRC_DONT_NEED,
8989  KMEM_CBRC_DONT_KNOW
8990 } kmem_cbrc_t;
8991 # 29 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
8992 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 1
8993 /*
8994  * CDDL HEADER START
8995  *
8996  * The contents of this file are subject to the terms of the
8997  * Common Development and Distribution License (the "License").
8998  * You may not use this file except in compliance with the License.
8999  *
9000  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9001  * or http://www.opensolaris.org/os/licensing.
9002  * See the License for the specific language governing permissions
9003  * and limitations under the License.
9004  *
9005  * When distributing Covered Code, include this CDDL HEADER in each
9006  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9007  * If applicable, add the following below this CDDL HEADER, with the
9008  * fields enclosed by brackets "[]" replaced with your own identifying
9009  * information: Portions Copyright [yyyy] [name of copyright owner]
9010  *
9011  * CDDL HEADER END
9012  */
9013 /*
9014  * Copyright 2014 Garrrett D'Amore <garrett@damore.org>
9015  *
9016  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9017  * Use is subject to license terms.
9018  */
9019 
9020 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9021 /*	  All Rights Reserved  	*/
9022 
9023 /*
9024  * University Copyright- Copyright (c) 1982, 1986, 1988
9025  * The Regents of the University of California
9026  * All Rights Reserved
9027  *
9028  * University Acknowledgment- Portions of this document are derived from
9029  * software developed by the University of California, Berkeley, and its
9030  * contributors.
9031  */
9032 
9033 
9034 
9035 
9036 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9037 /*
9038  * CDDL HEADER START
9039  *
9040  * The contents of this file are subject to the terms of the
9041  * Common Development and Distribution License (the "License").
9042  * You may not use this file except in compliance with the License.
9043  *
9044  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9045  * or http://www.opensolaris.org/os/licensing.
9046  * See the License for the specific language governing permissions
9047  * and limitations under the License.
9048  *
9049  * When distributing Covered Code, include this CDDL HEADER in each
9050  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9051  * If applicable, add the following below this CDDL HEADER, with the
9052  * fields enclosed by brackets "[]" replaced with your own identifying
9053  * information: Portions Copyright [yyyy] [name of copyright owner]
9054  *
9055  * CDDL HEADER END
9056  */
9057 
9058 /*
9059  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9060  * Copyright 2016 Joyent, Inc.
9061  *
9062  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9063  * Use is subject to license terms.
9064  */
9065 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
9066 
9067 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9068 /*
9069  * CDDL HEADER START
9070  *
9071  * The contents of this file are subject to the terms of the
9072  * Common Development and Distribution License (the "License").
9073  * You may not use this file except in compliance with the License.
9074  *
9075  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9076  * or http://www.opensolaris.org/os/licensing.
9077  * See the License for the specific language governing permissions
9078  * and limitations under the License.
9079  *
9080  * When distributing Covered Code, include this CDDL HEADER in each
9081  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9082  * If applicable, add the following below this CDDL HEADER, with the
9083  * fields enclosed by brackets "[]" replaced with your own identifying
9084  * information: Portions Copyright [yyyy] [name of copyright owner]
9085  *
9086  * CDDL HEADER END
9087  */
9088 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9089 /*	  All Rights Reserved  	*/
9090 
9091 
9092 /*
9093  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9094  * Use is subject to license terms.
9095  *
9096  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9097  * Copyright 2016 Joyent, Inc.
9098  */
9099 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
9100 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
9101 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9102 /*	  All Rights Reserved  	*/
9103 
9104 
9105 /*
9106  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
9107  * All rights reserved.  The Berkeley software License Agreement
9108  * specifies the terms and conditions for redistribution.
9109  */
9110 
9111 /*
9112  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
9113  *
9114  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9115  * Use is subject to license terms.
9116  *
9117  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9118  */
9119 
9120 /*
9121  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
9122  */
9123 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h" 2
9124 
9125 
9126 
9127 
9128 
9129 /*
9130  * Process priority specifications
9131  */
9132 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9133 /*
9134  * Resource limits
9135  */
9136 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9137 typedef unsigned long rlim_t;
9138 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9139 struct rlimit {
9140  rlim_t rlim_cur; /* current limit */
9141  rlim_t rlim_max; /* maximum value for rlim_cur */
9142 };
9143 
9144 /* transitional large file interface versions */
9145 
9146 
9147 typedef u_longlong_t rlim64_t;
9148 
9149 
9150 
9151 
9152 
9153 struct rlimit64 {
9154  rlim64_t rlim_cur; /* current limit */
9155  rlim64_t rlim_max; /* maximum value for rlim_cur */
9156 };
9157 
9158 
9159 
9160 /*
9161  * Although the saved rlimits were initially introduced by the large file API,
9162  * they are now available for all resource limits on the 64-bit kernel and for
9163  * cpu time and file size limits on the 32-bit kernel.
9164  */
9165 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9166 struct rusage {
9167  struct timeval ru_utime; /* user time used */
9168  struct timeval ru_stime; /* system time used */
9169  long ru_maxrss; /* <unimp> */
9170  long ru_ixrss; /* <unimp> */
9171  long ru_idrss; /* <unimp> */
9172  long ru_isrss; /* <unimp> */
9173  long ru_minflt; /* any page faults not requiring I/O */
9174  long ru_majflt; /* any page faults requiring I/O */
9175  long ru_nswap; /* swaps */
9176  long ru_inblock; /* block input operations */
9177  long ru_oublock; /* block output operations */
9178  long ru_msgsnd; /* streams messsages sent */
9179  long ru_msgrcv; /* streams messages received */
9180  long ru_nsignals; /* signals received */
9181  long ru_nvcsw; /* voluntary context switches */
9182  long ru_nivcsw; /* involuntary " */
9183 };
9184 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9185 /*
9186  * In the LP64 compilation environment, map large file interfaces
9187  * back to native versions where possible.
9188  */
9189 
9190 
9191 # 252 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9192 #pragma redefine_extname setrlimit64 setrlimit
9193 # 252 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9194 
9195 
9196 # 253 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9197 #pragma redefine_extname getrlimit64 getrlimit
9198 # 253 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9199 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/resource.h"
9200 extern int setrlimit(int, const struct rlimit *);
9201 extern int getrlimit(int, struct rlimit *);
9202 
9203 /* transitional large file interfaces */
9204 
9205 
9206 extern int setrlimit64(int, const struct rlimit64 *);
9207 extern int getrlimit64(int, struct rlimit64 *);
9208 
9209 
9210 extern int getpriority(int, id_t);
9211 extern int setpriority(int, id_t, int);
9212 extern int getrusage(int, struct rusage *);
9213 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
9214 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9215 /*
9216  * CDDL HEADER START
9217  *
9218  * The contents of this file are subject to the terms of the
9219  * Common Development and Distribution License (the "License").
9220  * You may not use this file except in compliance with the License.
9221  *
9222  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9223  * or http://www.opensolaris.org/os/licensing.
9224  * See the License for the specific language governing permissions
9225  * and limitations under the License.
9226  *
9227  * When distributing Covered Code, include this CDDL HEADER in each
9228  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9229  * If applicable, add the following below this CDDL HEADER, with the
9230  * fields enclosed by brackets "[]" replaced with your own identifying
9231  * information: Portions Copyright [yyyy] [name of copyright owner]
9232  *
9233  * CDDL HEADER END
9234  */
9235 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9236 /*	  All Rights Reserved  	*/
9237 
9238 
9239 /*
9240  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9241  * Use is subject to license terms.
9242  *
9243  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9244  * Copyright 2016 Joyent, Inc.
9245  */
9246 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 2
9247 
9248 
9249 
9250 
9251 
9252 /*
9253  * Available local actions and flags.
9254  */
9255 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
9256 /*
9257  * Available global actions and flags.
9258  */
9259 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
9260 /*
9261  * getrctl(2) flag values
9262  */
9263 
9264 
9265 
9266 
9267 /*
9268  * setrctl(2) flag values
9269  */
9270 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h"
9271 /*
9272  * rctl_priv_t: rctl privilege defined values
9273  *   A large amount of space has been deliberately left between these privileges
9274  *   to permit future enrichment of the control privilege value.
9275  */
9276 
9277 
9278 
9279 
9280 typedef u_longlong_t rctl_qty_t; /* resource control numerical values   */
9281 typedef int rctl_priv_t;
9282 
9283 typedef struct rctlblk rctlblk_t;
9284 
9285 extern int setrctl(const char *, rctlblk_t *, rctlblk_t *, int);
9286 extern int getrctl(const char *, rctlblk_t *, rctlblk_t *, int);
9287 
9288 typedef enum {
9289  RCENTITY_PROCESS,
9290  RCENTITY_TASK,
9291  RCENTITY_PROJECT,
9292  RCENTITY_ZONE
9293 } rctl_entity_t;
9294 
9295 
9296 
9297 
9298 typedef struct rctl_set rctl_set_t;
9299 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
9300 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ipc_rctl.h" 1
9301 /*
9302  * CDDL HEADER START
9303  *
9304  * The contents of this file are subject to the terms of the
9305  * Common Development and Distribution License (the "License").
9306  * You may not use this file except in compliance with the License.
9307  *
9308  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9309  * or http://www.opensolaris.org/os/licensing.
9310  * See the License for the specific language governing permissions
9311  * and limitations under the License.
9312  *
9313  * When distributing Covered Code, include this CDDL HEADER in each
9314  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9315  * If applicable, add the following below this CDDL HEADER, with the
9316  * fields enclosed by brackets "[]" replaced with your own identifying
9317  * information: Portions Copyright [yyyy] [name of copyright owner]
9318  *
9319  * CDDL HEADER END
9320  */
9321 /*
9322  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9323  * Use is subject to license terms.
9324  */
9325 
9326 
9327 
9328 
9329 #pragma ident "%Z%%M%	%I%	%E% SMI"
9330 
9331 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
9332 /*
9333  * CDDL HEADER START
9334  *
9335  * The contents of this file are subject to the terms of the
9336  * Common Development and Distribution License (the "License").
9337  * You may not use this file except in compliance with the License.
9338  *
9339  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9340  * or http://www.opensolaris.org/os/licensing.
9341  * See the License for the specific language governing permissions
9342  * and limitations under the License.
9343  *
9344  * When distributing Covered Code, include this CDDL HEADER in each
9345  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9346  * If applicable, add the following below this CDDL HEADER, with the
9347  * fields enclosed by brackets "[]" replaced with your own identifying
9348  * information: Portions Copyright [yyyy] [name of copyright owner]
9349  *
9350  * CDDL HEADER END
9351  */
9352 /*
9353  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
9354  */
9355 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ipc_rctl.h" 2
9356 
9357 
9358 
9359 
9360 
9361 typedef struct ipc_rqty { /* datum protected by:	*/
9362  rctl_qty_t ipcq_shmmni; /* shm's ipcs_lock	*/
9363  rctl_qty_t ipcq_semmni; /* sem's ipcs_lock	*/
9364  rctl_qty_t ipcq_msgmni; /* msg's ipcs_lock	*/
9365 } ipc_rqty_t;
9366 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
9367 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 1
9368 /*
9369  * CDDL HEADER START
9370  *
9371  * The contents of this file are subject to the terms of the
9372  * Common Development and Distribution License (the "License").
9373  * You may not use this file except in compliance with the License.
9374  *
9375  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9376  * or http://www.opensolaris.org/os/licensing.
9377  * See the License for the specific language governing permissions
9378  * and limitations under the License.
9379  *
9380  * When distributing Covered Code, include this CDDL HEADER in each
9381  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9382  * If applicable, add the following below this CDDL HEADER, with the
9383  * fields enclosed by brackets "[]" replaced with your own identifying
9384  * information: Portions Copyright [yyyy] [name of copyright owner]
9385  *
9386  * CDDL HEADER END
9387  */
9388 /*
9389  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
9390  *
9391  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9392  * Use is subject to license terms.
9393  */
9394 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h"
9395 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9396 /*
9397  * CDDL HEADER START
9398  *
9399  * The contents of this file are subject to the terms of the
9400  * Common Development and Distribution License (the "License").
9401  * You may not use this file except in compliance with the License.
9402  *
9403  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9404  * or http://www.opensolaris.org/os/licensing.
9405  * See the License for the specific language governing permissions
9406  * and limitations under the License.
9407  *
9408  * When distributing Covered Code, include this CDDL HEADER in each
9409  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9410  * If applicable, add the following below this CDDL HEADER, with the
9411  * fields enclosed by brackets "[]" replaced with your own identifying
9412  * information: Portions Copyright [yyyy] [name of copyright owner]
9413  *
9414  * CDDL HEADER END
9415  */
9416 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9417 /*	  All Rights Reserved  	*/
9418 
9419 
9420 /*
9421  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9422  * Use is subject to license terms.
9423  *
9424  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9425  * Copyright 2016 Joyent, Inc.
9426  */
9427 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
9428 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 1
9429 /*
9430  * CDDL HEADER START
9431  *
9432  * The contents of this file are subject to the terms of the
9433  * Common Development and Distribution License (the "License").
9434  * You may not use this file except in compliance with the License.
9435  *
9436  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9437  * or http://www.opensolaris.org/os/licensing.
9438  * See the License for the specific language governing permissions
9439  * and limitations under the License.
9440  *
9441  * When distributing Covered Code, include this CDDL HEADER in each
9442  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9443  * If applicable, add the following below this CDDL HEADER, with the
9444  * fields enclosed by brackets "[]" replaced with your own identifying
9445  * information: Portions Copyright [yyyy] [name of copyright owner]
9446  *
9447  * CDDL HEADER END
9448  */
9449 /*
9450  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
9451  *	  All Rights Reserved
9452  *
9453  */
9454 
9455 /*
9456  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
9457  *
9458  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
9459  * Use is subject to license terms.
9460  */
9461 
9462 
9463 
9464 
9465 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9466 /*
9467  * CDDL HEADER START
9468  *
9469  * The contents of this file are subject to the terms of the
9470  * Common Development and Distribution License (the "License").
9471  * You may not use this file except in compliance with the License.
9472  *
9473  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9474  * or http://www.opensolaris.org/os/licensing.
9475  * See the License for the specific language governing permissions
9476  * and limitations under the License.
9477  *
9478  * When distributing Covered Code, include this CDDL HEADER in each
9479  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9480  * If applicable, add the following below this CDDL HEADER, with the
9481  * fields enclosed by brackets "[]" replaced with your own identifying
9482  * information: Portions Copyright [yyyy] [name of copyright owner]
9483  *
9484  * CDDL HEADER END
9485  */
9486 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9487 /*	  All Rights Reserved  	*/
9488 
9489 
9490 /*
9491  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9492  * Use is subject to license terms.
9493  *
9494  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9495  * Copyright 2016 Joyent, Inc.
9496  */
9497 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 2
9498 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
9499 /*
9500  * CDDL HEADER START
9501  *
9502  * The contents of this file are subject to the terms of the
9503  * Common Development and Distribution License, Version 1.0 only
9504  * (the "License").  You may not use this file except in compliance
9505  * with the License.
9506  *
9507  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9508  * or http://www.opensolaris.org/os/licensing.
9509  * See the License for the specific language governing permissions
9510  * and limitations under the License.
9511  *
9512  * When distributing Covered Code, include this CDDL HEADER in each
9513  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9514  * If applicable, add the following below this CDDL HEADER, with the
9515  * fields enclosed by brackets "[]" replaced with your own identifying
9516  * information: Portions Copyright [yyyy] [name of copyright owner]
9517  *
9518  * CDDL HEADER END
9519  */
9520 /*
9521  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
9522  * Use is subject to license terms.
9523  */
9524 
9525 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9526 /*	  All Rights Reserved  	*/
9527 
9528 
9529 
9530 
9531 
9532 #pragma ident "%Z%%M%	%I%	%E% SMI"
9533 
9534 
9535 
9536 
9537 
9538 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9539 /*
9540  * CDDL HEADER START
9541  *
9542  * The contents of this file are subject to the terms of the
9543  * Common Development and Distribution License (the "License").
9544  * You may not use this file except in compliance with the License.
9545  *
9546  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9547  * or http://www.opensolaris.org/os/licensing.
9548  * See the License for the specific language governing permissions
9549  * and limitations under the License.
9550  *
9551  * When distributing Covered Code, include this CDDL HEADER in each
9552  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9553  * If applicable, add the following below this CDDL HEADER, with the
9554  * fields enclosed by brackets "[]" replaced with your own identifying
9555  * information: Portions Copyright [yyyy] [name of copyright owner]
9556  *
9557  * CDDL HEADER END
9558  */
9559 
9560 /*
9561  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9562  * Copyright 2016 Joyent, Inc.
9563  *
9564  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9565  * Use is subject to license terms.
9566  */
9567 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
9568 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9569 /*
9570  * CDDL HEADER START
9571  *
9572  * The contents of this file are subject to the terms of the
9573  * Common Development and Distribution License (the "License").
9574  * You may not use this file except in compliance with the License.
9575  *
9576  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9577  * or http://www.opensolaris.org/os/licensing.
9578  * See the License for the specific language governing permissions
9579  * and limitations under the License.
9580  *
9581  * When distributing Covered Code, include this CDDL HEADER in each
9582  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9583  * If applicable, add the following below this CDDL HEADER, with the
9584  * fields enclosed by brackets "[]" replaced with your own identifying
9585  * information: Portions Copyright [yyyy] [name of copyright owner]
9586  *
9587  * CDDL HEADER END
9588  */
9589 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9590 /*	  All Rights Reserved  	*/
9591 
9592 
9593 /*
9594  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9595  * Use is subject to license terms.
9596  *
9597  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9598  * Copyright 2016 Joyent, Inc.
9599  */
9600 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
9601 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 1
9602 /*
9603  * CDDL HEADER START
9604  *
9605  * The contents of this file are subject to the terms of the
9606  * Common Development and Distribution License (the "License").
9607  * You may not use this file except in compliance with the License.
9608  *
9609  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9610  * or http://www.opensolaris.org/os/licensing.
9611  * See the License for the specific language governing permissions
9612  * and limitations under the License.
9613  *
9614  * When distributing Covered Code, include this CDDL HEADER in each
9615  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9616  * If applicable, add the following below this CDDL HEADER, with the
9617  * fields enclosed by brackets "[]" replaced with your own identifying
9618  * information: Portions Copyright [yyyy] [name of copyright owner]
9619  *
9620  * CDDL HEADER END
9621  */
9622 
9623 /*
9624  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
9625  * Use is subject to license terms.
9626  */
9627 
9628 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9629 /*	  All Rights Reserved  	*/
9630 
9631 /*
9632  * University Copyright- Copyright (c) 1982, 1986, 1988
9633  * The Regents of the University of California
9634  * All Rights Reserved
9635  *
9636  * University Acknowledgment- Portions of this document are derived from
9637  * software developed by the University of California, Berkeley, and its
9638  * contributors.
9639  */
9640 
9641 
9642 
9643 
9644 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9645 /*
9646  * CDDL HEADER START
9647  *
9648  * The contents of this file are subject to the terms of the
9649  * Common Development and Distribution License (the "License").
9650  * You may not use this file except in compliance with the License.
9651  *
9652  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9653  * or http://www.opensolaris.org/os/licensing.
9654  * See the License for the specific language governing permissions
9655  * and limitations under the License.
9656  *
9657  * When distributing Covered Code, include this CDDL HEADER in each
9658  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9659  * If applicable, add the following below this CDDL HEADER, with the
9660  * fields enclosed by brackets "[]" replaced with your own identifying
9661  * information: Portions Copyright [yyyy] [name of copyright owner]
9662  *
9663  * CDDL HEADER END
9664  */
9665 
9666 /*
9667  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9668  * Copyright 2016 Joyent, Inc.
9669  *
9670  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9671  * Use is subject to license terms.
9672  */
9673 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
9674 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 1
9675 /*
9676  * CDDL HEADER START
9677  *
9678  * The contents of this file are subject to the terms of the
9679  * Common Development and Distribution License (the "License").
9680  * You may not use this file except in compliance with the License.
9681  *
9682  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9683  * or http://www.opensolaris.org/os/licensing.
9684  * See the License for the specific language governing permissions
9685  * and limitations under the License.
9686  *
9687  * When distributing Covered Code, include this CDDL HEADER in each
9688  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9689  * If applicable, add the following below this CDDL HEADER, with the
9690  * fields enclosed by brackets "[]" replaced with your own identifying
9691  * information: Portions Copyright [yyyy] [name of copyright owner]
9692  *
9693  * CDDL HEADER END
9694  */
9695 
9696 /*
9697  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
9698  * Use is subject to license terms.
9699  */
9700 
9701 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9702 /*	  All Rights Reserved  	*/
9703 
9704 /*
9705  * An application should not include this header directly.  Instead it
9706  * should be included only through the inclusion of other Sun headers.
9707  *
9708  * The contents of this header is limited to identifiers specified in the
9709  * C Standard.  Any new identifiers specified in future amendments to the
9710  * C Standard must be placed in this header.  If these new identifiers
9711  * are required to also be in the C++ Standard "std" namespace, then for
9712  * anything other than macro definitions, corresponding "using" directives
9713  * must also be added to <sys/signal.h.h>.
9714  */
9715 
9716 
9717 
9718 
9719 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
9720 /*
9721  * CDDL HEADER START
9722  *
9723  * The contents of this file are subject to the terms of the
9724  * Common Development and Distribution License (the "License").
9725  * You may not use this file except in compliance with the License.
9726  *
9727  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9728  * or http://www.opensolaris.org/os/licensing.
9729  * See the License for the specific language governing permissions
9730  * and limitations under the License.
9731  *
9732  * When distributing Covered Code, include this CDDL HEADER in each
9733  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9734  * If applicable, add the following below this CDDL HEADER, with the
9735  * fields enclosed by brackets "[]" replaced with your own identifying
9736  * information: Portions Copyright [yyyy] [name of copyright owner]
9737  *
9738  * CDDL HEADER END
9739  */
9740 
9741 /*
9742  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
9743  *	  All Rights Reserved
9744  *
9745  */
9746 
9747 /*
9748  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9749  * Use is subject to license terms.
9750  */
9751 
9752 /*
9753  * WARNING: This is an implementation-specific header,
9754  * its contents are not guaranteed. Applications
9755  * should include <unistd.h> and not this header.
9756  */
9757 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h" 2
9758 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/iso/signal_iso.h"
9759 /* insert new signals here, and move _SIGRTM* appropriately */
9760 
9761 
9762 extern long _sysconf(int); /* System Private interface to sysconf() */
9763 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
9764 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
9765 /*
9766  * We need <sys/siginfo.h> for the declaration of siginfo_t.
9767  */
9768 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 1
9769 /*
9770  * CDDL HEADER START
9771  *
9772  * The contents of this file are subject to the terms of the
9773  * Common Development and Distribution License, Version 1.0 only
9774  * (the "License").  You may not use this file except in compliance
9775  * with the License.
9776  *
9777  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9778  * or http://www.opensolaris.org/os/licensing.
9779  * See the License for the specific language governing permissions
9780  * and limitations under the License.
9781  *
9782  * When distributing Covered Code, include this CDDL HEADER in each
9783  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9784  * If applicable, add the following below this CDDL HEADER, with the
9785  * fields enclosed by brackets "[]" replaced with your own identifying
9786  * information: Portions Copyright [yyyy] [name of copyright owner]
9787  *
9788  * CDDL HEADER END
9789  */
9790 /*
9791  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
9792  * Use is subject to license terms.
9793  */
9794 
9795 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9796 /*	  All Rights Reserved  	*/
9797 
9798 
9799 
9800 
9801 #pragma ident "%Z%%M%	%I%	%E% SMI"
9802 
9803 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9804 /*
9805  * CDDL HEADER START
9806  *
9807  * The contents of this file are subject to the terms of the
9808  * Common Development and Distribution License (the "License").
9809  * You may not use this file except in compliance with the License.
9810  *
9811  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9812  * or http://www.opensolaris.org/os/licensing.
9813  * See the License for the specific language governing permissions
9814  * and limitations under the License.
9815  *
9816  * When distributing Covered Code, include this CDDL HEADER in each
9817  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9818  * If applicable, add the following below this CDDL HEADER, with the
9819  * fields enclosed by brackets "[]" replaced with your own identifying
9820  * information: Portions Copyright [yyyy] [name of copyright owner]
9821  *
9822  * CDDL HEADER END
9823  */
9824 
9825 /*
9826  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9827  * Copyright 2016 Joyent, Inc.
9828  *
9829  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9830  * Use is subject to license terms.
9831  */
9832 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9833 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
9834 /*
9835  * CDDL HEADER START
9836  *
9837  * The contents of this file are subject to the terms of the
9838  * Common Development and Distribution License (the "License").
9839  * You may not use this file except in compliance with the License.
9840  *
9841  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9842  * or http://www.opensolaris.org/os/licensing.
9843  * See the License for the specific language governing permissions
9844  * and limitations under the License.
9845  *
9846  * When distributing Covered Code, include this CDDL HEADER in each
9847  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9848  * If applicable, add the following below this CDDL HEADER, with the
9849  * fields enclosed by brackets "[]" replaced with your own identifying
9850  * information: Portions Copyright [yyyy] [name of copyright owner]
9851  *
9852  * CDDL HEADER END
9853  */
9854 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9855 /*	  All Rights Reserved  	*/
9856 
9857 
9858 /*
9859  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
9860  * Use is subject to license terms.
9861  *
9862  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
9863  * Copyright 2016 Joyent, Inc.
9864  */
9865 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
9866 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9867 /*
9868  * The union sigval is also defined in <time.h> as per X/Open and
9869  * POSIX requirements.
9870  */
9871 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9872 /*
9873  * The sigevent structure is also defined in <time.h> as per X/Open and
9874  * POSIX requirements.
9875  */
9876 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9877 /* values of sigev_notify */
9878 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9879 /*
9880  * negative signal codes are reserved for future use for user generated
9881  * signals
9882  */
9883 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
9884 /*
9885  * Get the machine dependent signal codes (SIGILL, SIGFPE, SIGSEGV, and
9886  * SIGBUS) from <sys/machsig.h>
9887  */
9888 
9889 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 1
9890 /*
9891  * CDDL HEADER START
9892  *
9893  * The contents of this file are subject to the terms of the
9894  * Common Development and Distribution License, Version 1.0 only
9895  * (the "License").  You may not use this file except in compliance
9896  * with the License.
9897  *
9898  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9899  * or http://www.opensolaris.org/os/licensing.
9900  * See the License for the specific language governing permissions
9901  * and limitations under the License.
9902  *
9903  * When distributing Covered Code, include this CDDL HEADER in each
9904  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9905  * If applicable, add the following below this CDDL HEADER, with the
9906  * fields enclosed by brackets "[]" replaced with your own identifying
9907  * information: Portions Copyright [yyyy] [name of copyright owner]
9908  *
9909  * CDDL HEADER END
9910  */
9911 /*
9912  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
9913  * Use is subject to license terms.
9914  */
9915 
9916 /*	Copyright (c) 1988 AT&T	*/
9917 /*	  All Rights Reserved  	*/
9918 
9919 
9920 
9921 
9922 
9923 #pragma ident "%Z%%M%	%I%	%E% SMI"
9924 
9925 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
9926 /*
9927  * CDDL HEADER START
9928  *
9929  * The contents of this file are subject to the terms of the
9930  * Common Development and Distribution License (the "License").
9931  * You may not use this file except in compliance with the License.
9932  *
9933  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9934  * or http://www.opensolaris.org/os/licensing.
9935  * See the License for the specific language governing permissions
9936  * and limitations under the License.
9937  *
9938  * When distributing Covered Code, include this CDDL HEADER in each
9939  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9940  * If applicable, add the following below this CDDL HEADER, with the
9941  * fields enclosed by brackets "[]" replaced with your own identifying
9942  * information: Portions Copyright [yyyy] [name of copyright owner]
9943  *
9944  * CDDL HEADER END
9945  */
9946 
9947 /*
9948  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
9949  * Copyright 2016 Joyent, Inc.
9950  *
9951  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
9952  * Use is subject to license terms.
9953  */
9954 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 2
9955 
9956 
9957 
9958 
9959 
9960 /*
9961  * machsig.h is the machine dependent portion of siginfo.h (and is
9962  * included by siginfo.h). A version of machsig.h should exist for
9963  * each architecture. The codes for SIGILL, SIGFPU, SIGSEGV and SIGBUS
9964  * are in this file. The codes for SIGTRAP, SIGCLD(SIGCHLD), and
9965  * SIGPOLL are architecture independent and may be found in siginfo.h.
9966  */
9967 
9968 
9969 
9970 
9971 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/vm/faultcode.h" 1
9972 /*
9973  * CDDL HEADER START
9974  *
9975  * The contents of this file are subject to the terms of the
9976  * Common Development and Distribution License (the "License").
9977  * You may not use this file except in compliance with the License.
9978  *
9979  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9980  * or http://www.opensolaris.org/os/licensing.
9981  * See the License for the specific language governing permissions
9982  * and limitations under the License.
9983  *
9984  * When distributing Covered Code, include this CDDL HEADER in each
9985  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9986  * If applicable, add the following below this CDDL HEADER, with the
9987  * fields enclosed by brackets "[]" replaced with your own identifying
9988  * information: Portions Copyright [yyyy] [name of copyright owner]
9989  *
9990  * CDDL HEADER END
9991  */
9992 /*
9993  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
9994  * Use is subject to license terms.
9995  */
9996 
9997 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
9998 /*	  All Rights Reserved  	*/
9999 
10000 /*
10001  * University Copyright- Copyright (c) 1982, 1986, 1988
10002  * The Regents of the University of California
10003  * All Rights Reserved
10004  *
10005  * University Acknowledgment- Portions of this document are derived from
10006  * software developed by the University of California, Berkeley, and its
10007  * contributors.
10008  */
10009 
10010 
10011 
10012 
10013 #pragma ident "%Z%%M%	%I%	%E% SMI"
10014 
10015 
10016 
10017 
10018 
10019 /*
10020  * This file describes the data type returned by vm routines
10021  * which handle faults.
10022  *
10023  * If FC_CODE(fc) == FC_OBJERR, then FC_ERRNO(fc) contains the errno value
10024  * returned by the underlying object mapped at the fault address.
10025  */
10026 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/vm/faultcode.h"
10027 typedef int faultcode_t; /* type returned by vm fault routines */
10028 
10029 extern int fc_decode(faultcode_t);
10030 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h" 2
10031 
10032 
10033 /*
10034  * SIGILL signal codes
10035  */
10036 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h"
10037 /*
10038  * SIGEMT signal codes
10039  */
10040 
10041 
10042 
10043 
10044 
10045 
10046 /*
10047  * SIGFPE signal codes
10048  */
10049 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machsig.h"
10050 /*
10051  * SIGSEGV signal codes
10052  */
10053 
10054 
10055 
10056 
10057 
10058 
10059 
10060 /*
10061  * SIGBUS signal codes
10062  */
10063 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
10064 
10065 /*
10066  * SIGTRAP signal codes
10067  */
10068 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
10069 /*
10070  * SIGCLD signal codes
10071  */
10072 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
10073 /*
10074  * SIGPOLL signal codes
10075  */
10076 # 195 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
10077 /*
10078  * SIGPROF signal codes
10079  */
10080 # 215 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
10081 /*
10082  * Inclusion of <sys/time_impl.h> is needed for the declaration of
10083  * timestruc_t.  However, since inclusion of <sys/time_impl.h> results
10084  * in X/Open and POSIX namespace pollution, the definition for
10085  * timestruct_t has been duplicated in a standards namespace safe header
10086  * <sys/time_std_impl.h>.  In <sys/time_std_impl.h>, the structure
10087  * name, tag, and member names, as well as the type itself, all have
10088  * leading underscores to protect namespace.
10089  */
10090 
10091 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
10092 /*
10093  * CDDL HEADER START
10094  *
10095  * The contents of this file are subject to the terms of the
10096  * Common Development and Distribution License, Version 1.0 only
10097  * (the "License").  You may not use this file except in compliance
10098  * with the License.
10099  *
10100  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10101  * or http://www.opensolaris.org/os/licensing.
10102  * See the License for the specific language governing permissions
10103  * and limitations under the License.
10104  *
10105  * When distributing Covered Code, include this CDDL HEADER in each
10106  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10107  * If applicable, add the following below this CDDL HEADER, with the
10108  * fields enclosed by brackets "[]" replaced with your own identifying
10109  * information: Portions Copyright [yyyy] [name of copyright owner]
10110  *
10111  * CDDL HEADER END
10112  */
10113 /*
10114  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
10115  * Use is subject to license terms.
10116  */
10117 
10118 /*
10119  * Implementation-private.  This header should not be included
10120  * directly by an application.  The application should instead
10121  * include <time.h> which includes this header conditionally
10122  * depending on which feature test macros are defined. By default,
10123  * this header is included by <time.h>.  X/Open and POSIX
10124  * standards requirements result in this header being included
10125  * by <time.h> only under a restricted set of conditions.
10126  */
10127 # 226 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
10128 
10129 
10130 
10131 
10132 /*
10133  * The inclusion of <sys/types.h> is needed for definitions of pid_t, etc.
10134  * Placement here is due to a dependency in <sys/select.h> which is included
10135  * by <sys/types.h> for the sigevent structure.  Hence this inclusion must
10136  * follow that definition.
10137  */
10138 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10139 /*
10140  * CDDL HEADER START
10141  *
10142  * The contents of this file are subject to the terms of the
10143  * Common Development and Distribution License (the "License").
10144  * You may not use this file except in compliance with the License.
10145  *
10146  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10147  * or http://www.opensolaris.org/os/licensing.
10148  * See the License for the specific language governing permissions
10149  * and limitations under the License.
10150  *
10151  * When distributing Covered Code, include this CDDL HEADER in each
10152  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10153  * If applicable, add the following below this CDDL HEADER, with the
10154  * fields enclosed by brackets "[]" replaced with your own identifying
10155  * information: Portions Copyright [yyyy] [name of copyright owner]
10156  *
10157  * CDDL HEADER END
10158  */
10159 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10160 /*	  All Rights Reserved  	*/
10161 
10162 
10163 /*
10164  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10165  * Use is subject to license terms.
10166  *
10167  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10168  * Copyright 2016 Joyent, Inc.
10169  */
10170 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h" 2
10171 
10172 
10173 typedef struct siginfo { /* pollutes POSIX/XOPEN namespace */
10174 
10175 
10176 
10177  int si_signo; /* signal from signal.h	*/
10178  int si_code; /* code from above	*/
10179  int si_errno; /* error from errno.h	*/
10180 
10181  int si_pad; /* _LP64 union starts on an 8-byte boundary */
10182 
10183  union {
10184 
10185   int __pad[((256 / sizeof (int)) - 4)]; /* for future growth	*/
10186 
10187   struct { /* kill(), SIGCLD, siqqueue() */
10188    pid_t __pid; /* process ID		*/
10189    union {
10190     struct {
10191      uid_t __uid;
10192 
10193 
10194      union sigval __value;
10195 
10196 
10197 
10198     } __kill;
10199     struct {
10200      clock_t __utime;
10201      int __status;
10202      clock_t __stime;
10203     } __cld;
10204    } __pdata;
10205    ctid_t __ctid; /* contract ID		*/
10206    zoneid_t __zoneid; /* zone ID		*/
10207   } __proc;
10208 
10209   struct { /* SIGSEGV, SIGBUS, SIGILL, SIGTRAP, SIGFPE */
10210    void *__addr; /* faulting address	*/
10211    int __trapno; /* illegal trap number	*/
10212    caddr_t __pc; /* instruction address	*/
10213   } __fault;
10214 
10215   struct { /* SIGPOLL, SIGXFSZ	*/
10216   /* fd not currently available for SIGPOLL */
10217    int __fd; /* file descriptor	*/
10218    long __band;
10219   } __file;
10220 
10221   struct { /* SIGPROF */
10222    caddr_t __faddr; /* last fault address	*/
10223 
10224    timestruc_t __tstamp; /* real time stamp	*/
10225 
10226 
10227 
10228    short __syscall; /* current syscall	*/
10229    char __nsysarg; /* number of arguments	*/
10230    char __fault; /* last fault type	*/
10231    long __sysarg[8]; /* syscall arguments	*/
10232    int __mstate[10]; /* see <sys/msacct.h>	*/
10233   } __prof;
10234 
10235   struct { /* SI_RCTL */
10236    int32_t __entity; /* type of entity exceeding */
10237   } __rctl;
10238  } __data;
10239 
10240 } siginfo_t;
10241 # 374 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/siginfo.h"
10242 /*
10243  * XXX -- internal version is identical to siginfo_t but without the padding.
10244  * This must be maintained in sync with it.
10245  */
10246 
10247 
10248 
10249 typedef struct k_siginfo {
10250  int si_signo; /* signal from signal.h	*/
10251  int si_code; /* code from above	*/
10252  int si_errno; /* error from errno.h	*/
10253 
10254  int si_pad; /* _LP64 union starts on an 8-byte boundary */
10255 
10256  union {
10257   struct { /* kill(), SIGCLD, siqqueue() */
10258    pid_t __pid; /* process ID		*/
10259    union {
10260     struct {
10261      uid_t __uid;
10262      union sigval __value;
10263     } __kill;
10264     struct {
10265      clock_t __utime;
10266      int __status;
10267      clock_t __stime;
10268     } __cld;
10269    } __pdata;
10270    ctid_t __ctid; /* contract ID		*/
10271    zoneid_t __zoneid; /* zone ID		*/
10272   } __proc;
10273 
10274   struct { /* SIGSEGV, SIGBUS, SIGILL, SIGTRAP, SIGFPE */
10275    void *__addr; /* faulting address	*/
10276    int __trapno; /* illegal trap number	*/
10277    caddr_t __pc; /* instruction address	*/
10278   } __fault;
10279 
10280   struct { /* SIGPOLL, SIGXFSZ	*/
10281   /* fd not currently available for SIGPOLL */
10282    int __fd; /* file descriptor	*/
10283    long __band;
10284   } __file;
10285 
10286   struct { /* SIGPROF */
10287    caddr_t __faddr; /* last fault address	*/
10288 
10289 
10290    timestruc_t __tstamp; /* real time stamp	*/
10291 
10292 
10293 
10294    short __syscall; /* current syscall	*/
10295    char __nsysarg; /* number of arguments	*/
10296    char __fault; /* last fault type	*/
10297    /* these are omitted to keep k_siginfo_t small	*/
10298    /* long	__sysarg[8]; */
10299    /* int	__mstate[10]; */
10300   } __prof;
10301 
10302   struct { /* SI_RCTL */
10303    int32_t __entity; /* type of entity exceeding */
10304   } __rctl;
10305 
10306  } __data;
10307 
10308 } k_siginfo_t;
10309 
10310 typedef struct sigqueue {
10311  struct sigqueue *sq_next;
10312  k_siginfo_t sq_info;
10313  void (*sq_func)(struct sigqueue *); /* destructor function */
10314  void *sq_backptr; /* pointer to the data structure */
10315      /* associated by sq_func()	*/
10316  int sq_external; /* comes from outside the contract */
10317 } sigqueue_t;
10318 
10319 /*  indication whether to queue the signal or not */
10320 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h" 2
10321 
10322 
10323 /* Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements */
10324 
10325 
10326 
10327 
10328 
10329 
10330 
10331 typedef struct {
10332  unsigned int __sigbits[3];
10333 } k_sigset_t;
10334 
10335 /*
10336  * The signal handler routine can have either one or three arguments.
10337  * Existing C code has used either form so not specifing the arguments
10338  * neatly finesses the problem.  C++ doesn't accept this.  To C++
10339  * "(*sa_handler)()" indicates a routine with no arguments (ANSI C would
10340  * specify this as "(*sa_handler)(void)").  One or the other form must be
10341  * used for C++ and the only logical choice is "(*sa_handler)(int)" to allow
10342  * the SIG_* defines to work.  "(*sa_sigaction)(int, siginfo_t *, void *)"
10343  * can be used for the three argument form.
10344  */
10345 
10346 /*
10347  * Note: storage overlap by sa_handler and sa_sigaction
10348  */
10349 struct sigaction {
10350  int sa_flags;
10351  union {
10352 
10353 
10354 
10355   void (*_handler)();
10356 
10357 
10358 
10359 
10360   void (*_sigaction)(int, siginfo_t *, void *);
10361 
10362  } _funcptr;
10363  sigset_t sa_mask;
10364 
10365 
10366 
10367 };
10368 # 126 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10369 /* this is only valid for SIGCLD */
10370 
10371 
10372 
10373 
10374 
10375 
10376 
10377    /* non-conformant ANSI compilation	*/
10378 
10379 /* definitions for the sa_flags field */
10380 # 153 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10381 /* this is only valid for SIGCLD */
10382 
10383 
10384 
10385 /*
10386  * use of these symbols by applications is injurious
10387  *	to binary compatibility
10388  */
10389 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10390 /* Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements. */
10391 
10392 
10393 
10394 typedef struct sigaltstack {
10395 
10396 
10397 
10398  void *ss_sp;
10399  size_t ss_size;
10400  int ss_flags;
10401 } stack_t;
10402 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10403 /* signotify id used only by libc for mq_notify()/aio_notify() */
10404 typedef struct signotify_id { /* signotify id struct		*/
10405  pid_t sn_pid; /* pid of proc to be notified	*/
10406  int sn_index; /* index in preallocated pool	*/
10407  int sn_pad; /* reserved			*/
10408 } signotify_id_t;
10409 # 222 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/signal.h"
10410 /* Command codes for sig_notify call */
10411 
10412 
10413 
10414 
10415 
10416 
10417 
10418 /* Added as per XPG4v2 */
10419 
10420 
10421 
10422 struct sigstack {
10423  void *ss_sp;
10424  int ss_onstack;
10425 };
10426 
10427 
10428 /*
10429  * For definition of ucontext_t; must follow struct definition
10430  * for  sigset_t
10431  */
10432 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 2
10433 
10434 /*
10435  *	This file defines the data needed to specify a set of
10436  *	processes.  These types are used by the sigsend, sigsendset,
10437  *	priocntl, priocntlset, waitid, evexit, and evexitset system
10438  *	calls.
10439  */
10440 
10441 
10442 
10443 
10444 
10445 /*
10446  *	The following defines the values for an identifier type.  It
10447  *	specifies the interpretation of an id value.  An idtype and
10448  *	id together define a simple set of processes.
10449  */
10450 typedef enum
10451 
10452  idtype /* pollutes XPG4.2 namespace */
10453 
10454   {
10455  P_PID, /* A process identifier.		*/
10456  P_PPID, /* A parent process identifier.		*/
10457  P_PGID, /* A process group (job control group)	*/
10458    /* identifier.				*/
10459  P_SID, /* A session identifier.		*/
10460  P_CID, /* A scheduling class identifier.	*/
10461  P_UID, /* A user identifier.			*/
10462  P_GID, /* A group identifier.			*/
10463  P_ALL, /* All processes.			*/
10464  P_LWPID, /* An LWP identifier.			*/
10465  P_TASKID, /* A task identifier.			*/
10466  P_PROJID, /* A project identifier.		*/
10467  P_POOLID, /* A pool identifier.			*/
10468  P_ZONEID, /* A zone identifier.			*/
10469  P_CTID, /* A (process) contract identifier.	*/
10470  P_CPUID, /* CPU identifier.			*/
10471  P_PSETID /* Processor set identifier		*/
10472 } idtype_t;
10473 
10474 
10475 /*
10476  *	The following defines the operations which can be performed to
10477  *	combine two simple sets of processes to form another set of
10478  *	processes.
10479  */
10480 
10481 typedef enum idop {
10482  POP_DIFF, /* Set difference.  The processes which	*/
10483    /* are in the left operand set and not	*/
10484    /* in the right operand set.		*/
10485  POP_AND, /* Set disjunction.  The processes	*/
10486    /* which are in both the left and right	*/
10487    /* operand sets.			*/
10488  POP_OR, /* Set conjunction.  The processes	*/
10489    /* which are in either the left or the	*/
10490    /* right operand sets (or both).	*/
10491  POP_XOR /* Set exclusive or.  The processes 	*/
10492    /* which are in either the left or	*/
10493    /* right operand sets but not in both.	*/
10494 } idop_t;
10495 
10496 
10497 /*
10498  *	The following structure is used to define a set of processes.
10499  *	The set is defined in terms of two simple sets of processes
10500  *	and an operator which operates on these two operand sets.
10501  */
10502 typedef struct procset {
10503  idop_t p_op; /* The operator connection the	*/
10504     /* following two operands each	*/
10505     /* of which is a simple set of	*/
10506     /* processes.			*/
10507 
10508  idtype_t p_lidtype;
10509     /* The type of the left operand	*/
10510     /* simple set.			*/
10511  id_t p_lid; /* The id of the left operand.	*/
10512 
10513  idtype_t p_ridtype;
10514     /* The type of the right	*/
10515     /* operand simple set.		*/
10516  id_t p_rid; /* The id of the right operand.	*/
10517 } procset_t;
10518 
10519 /*
10520  *	The following macro can be used to initialize a procset_t
10521  *	structure.
10522  */
10523 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h" 2
10524 
10525 
10526 
10527 
10528 
10529 /*
10530  * Definitions for p_online, processor_info & lgrp system calls.
10531  */
10532 
10533 /*
10534  * Type for an lgrpid
10535  */
10536 typedef uint16_t lgrpid_t;
10537 
10538 /*
10539  * Type for processor name (CPU number).
10540  */
10541 typedef int processorid_t;
10542 typedef int chipid_t;
10543 
10544 /*
10545  * Flags and return values for p_online(2), and pi_state for processor_info(2).
10546  * These flags are *not* for in-kernel examination of CPU states.
10547  * See <sys/cpuvar.h> for appropriate informational functions.
10548  */
10549 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/processor.h"
10550 /*
10551  * String names for processor states defined above.
10552  */
10553 
10554 
10555 
10556 
10557 
10558 
10559 
10560 /*
10561  * Structure filled in by processor_info(2). This structure
10562  * SHOULD NOT BE MODIFIED. Changes to the structure would
10563  * negate ABI compatibility.
10564  *
10565  * The string fields are guaranteed to contain a NULL.
10566  *
10567  * The pi_fputypes field contains a (possibly empty) comma-separated
10568  * list of floating point identifier strings.
10569  */
10570 
10571 
10572 
10573 typedef struct {
10574  int pi_state; /* processor state, see above */
10575  char pi_processor_type[16]; /* ASCII CPU type */
10576  char pi_fputypes[32]; /* ASCII FPU types */
10577  int pi_clock; /* CPU clock freq in MHz */
10578 } processor_info_t;
10579 
10580 /*
10581  * Binding values for processor_bind(2)
10582  */
10583 
10584 
10585 
10586 
10587 
10588 
10589 /*
10590  * User-level system call interface prototypes
10591  */
10592 
10593 
10594 extern int p_online(processorid_t processorid, int flag);
10595 extern int processor_info(processorid_t processorid,
10596       processor_info_t *infop);
10597 extern int processor_bind(idtype_t idtype, id_t id,
10598       processorid_t processorid, processorid_t *obind);
10599 extern processorid_t getcpuid(void);
10600 extern lgrpid_t gethomelgroup(void);
10601 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
10602 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/procset.h" 1
10603 /*
10604  * CDDL HEADER START
10605  *
10606  * The contents of this file are subject to the terms of the
10607  * Common Development and Distribution License, Version 1.0 only
10608  * (the "License").  You may not use this file except in compliance
10609  * with the License.
10610  *
10611  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10612  * or http://www.opensolaris.org/os/licensing.
10613  * See the License for the specific language governing permissions
10614  * and limitations under the License.
10615  *
10616  * When distributing Covered Code, include this CDDL HEADER in each
10617  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10618  * If applicable, add the following below this CDDL HEADER, with the
10619  * fields enclosed by brackets "[]" replaced with your own identifying
10620  * information: Portions Copyright [yyyy] [name of copyright owner]
10621  *
10622  * CDDL HEADER END
10623  */
10624 /*
10625  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
10626  * Use is subject to license terms.
10627  */
10628 
10629 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10630 /*	  All Rights Reserved  	*/
10631 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h" 2
10632 
10633 typedef int psetid_t;
10634 
10635 /* special processor set id's */
10636 
10637 
10638 
10639 
10640 
10641 
10642 
10643 /* types of processor sets */
10644 
10645 
10646 
10647 
10648 
10649 extern int pset_create(psetid_t *);
10650 extern int pset_destroy(psetid_t);
10651 extern int pset_assign(psetid_t, processorid_t, psetid_t *);
10652 extern int pset_info(psetid_t, int *, uint_t *, processorid_t *);
10653 extern int pset_bind(psetid_t, idtype_t, id_t, psetid_t *);
10654 extern int pset_bind_lwp(psetid_t, id_t, pid_t, psetid_t *);
10655 extern int pset_getloadavg(psetid_t, double [], int);
10656 extern int pset_list(psetid_t *, uint_t *);
10657 extern int pset_setattr(psetid_t, uint_t);
10658 extern int pset_getattr(psetid_t, uint_t *);
10659 
10660 
10661 
10662 
10663 
10664 /* system call subcodes */
10665 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/pset.h"
10666 /* attribute bits */
10667 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
10668 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 1
10669 /*
10670  * CDDL HEADER START
10671  *
10672  * The contents of this file are subject to the terms of the
10673  * Common Development and Distribution License (the "License").
10674  * You may not use this file except in compliance with the License.
10675  *
10676  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10677  * or http://www.opensolaris.org/os/licensing.
10678  * See the License for the specific language governing permissions
10679  * and limitations under the License.
10680  *
10681  * When distributing Covered Code, include this CDDL HEADER in each
10682  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10683  * If applicable, add the following below this CDDL HEADER, with the
10684  * fields enclosed by brackets "[]" replaced with your own identifying
10685  * information: Portions Copyright [yyyy] [name of copyright owner]
10686  *
10687  * CDDL HEADER END
10688  */
10689 /*
10690  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10691  * Use is subject to license terms.
10692  */
10693 
10694 
10695 
10696 
10697 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10698 /*
10699  * CDDL HEADER START
10700  *
10701  * The contents of this file are subject to the terms of the
10702  * Common Development and Distribution License (the "License").
10703  * You may not use this file except in compliance with the License.
10704  *
10705  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10706  * or http://www.opensolaris.org/os/licensing.
10707  * See the License for the specific language governing permissions
10708  * and limitations under the License.
10709  *
10710  * When distributing Covered Code, include this CDDL HEADER in each
10711  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10712  * If applicable, add the following below this CDDL HEADER, with the
10713  * fields enclosed by brackets "[]" replaced with your own identifying
10714  * information: Portions Copyright [yyyy] [name of copyright owner]
10715  *
10716  * CDDL HEADER END
10717  */
10718 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10719 /*	  All Rights Reserved  	*/
10720 
10721 
10722 /*
10723  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10724  * Use is subject to license terms.
10725  *
10726  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10727  * Copyright 2016 Joyent, Inc.
10728  */
10729 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 2
10730 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h"
10731 /*
10732  * types of label comparison
10733  */
10734 
10735 
10736 
10737 /* Manifest human readable label names */
10738 
10739 
10740 
10741 /* Binary Label Structure Definitions */
10742 
10743 typedef struct _mac_label_impl m_label_t;
10744 
10745 typedef m_label_t blevel_t, /* compatibility */
10746    bslabel_t, /* Sensitivity Label */
10747    bclear_t; /* Clearance */
10748 
10749 typedef struct _tsol_binary_level_lrange { /* Level Range */
10750  m_label_t *lower_bound;
10751  m_label_t *upper_bound;
10752 } m_range_t;
10753 
10754 typedef m_range_t blrange_t;
10755 
10756 typedef struct tsol_mlp_s {
10757  uchar_t mlp_ipp;
10758  uint16_t mlp_port;
10759  uint16_t mlp_port_upper;
10760 } tsol_mlp_t;
10761 
10762 /* Procedure Interface Definitions available to user and kernel */
10763 
10764 extern int bltype(const void *, uint8_t);
10765 extern int blequal(const m_label_t *, const m_label_t *);
10766 extern int bldominates(const m_label_t *, const m_label_t *);
10767 extern int blstrictdom(const m_label_t *, const m_label_t *);
10768 extern int blinrange(const m_label_t *, const m_range_t *);
10769 extern void blmaximum(m_label_t *, const m_label_t *);
10770 extern void blminimum(m_label_t *, const m_label_t *);
10771 extern void bsllow(m_label_t *);
10772 extern void bslhigh(m_label_t *);
10773 extern void bclearlow(m_label_t *);
10774 extern void bclearhigh(m_label_t *);
10775 extern void bslundef(m_label_t *);
10776 extern void bclearundef(m_label_t *);
10777 extern void setbltype(void *, uint8_t);
10778 extern boolean_t bisinvalid(const void *);
10779 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
10780 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
10781 /*
10782  * CDDL HEADER START
10783  *
10784  * The contents of this file are subject to the terms of the
10785  * Common Development and Distribution License (the "License").
10786  * You may not use this file except in compliance with the License.
10787  *
10788  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10789  * or http://www.opensolaris.org/os/licensing.
10790  * See the License for the specific language governing permissions
10791  * and limitations under the License.
10792  *
10793  * When distributing Covered Code, include this CDDL HEADER in each
10794  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10795  * If applicable, add the following below this CDDL HEADER, with the
10796  * fields enclosed by brackets "[]" replaced with your own identifying
10797  * information: Portions Copyright [yyyy] [name of copyright owner]
10798  *
10799  * CDDL HEADER END
10800  */
10801 /*
10802  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10803  * Use is subject to license terms.
10804  */
10805 
10806 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
10807 /*	  All Rights Reserved  	*/
10808 
10809 /*
10810  * Portions of this source code were derived from Berkeley 4.3 BSD
10811  * under license from the Regents of the University of California.
10812  */
10813 
10814 
10815 
10816 
10817 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10818 /*
10819  * CDDL HEADER START
10820  *
10821  * The contents of this file are subject to the terms of the
10822  * Common Development and Distribution License (the "License").
10823  * You may not use this file except in compliance with the License.
10824  *
10825  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10826  * or http://www.opensolaris.org/os/licensing.
10827  * See the License for the specific language governing permissions
10828  * and limitations under the License.
10829  *
10830  * When distributing Covered Code, include this CDDL HEADER in each
10831  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10832  * If applicable, add the following below this CDDL HEADER, with the
10833  * fields enclosed by brackets "[]" replaced with your own identifying
10834  * information: Portions Copyright [yyyy] [name of copyright owner]
10835  *
10836  * CDDL HEADER END
10837  */
10838 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10839 /*	  All Rights Reserved  	*/
10840 
10841 
10842 /*
10843  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10844  * Use is subject to license terms.
10845  *
10846  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10847  * Copyright 2016 Joyent, Inc.
10848  */
10849 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2
10850 
10851 
10852 
10853 
10854 
10855 /*
10856  * The credential is an opaque kernel private data structure defined in
10857  * <sys/cred_impl.h>.
10858  */
10859 
10860 typedef struct cred cred_t;
10861 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
10862 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h" 1
10863 /*
10864  * CDDL HEADER START
10865  *
10866  * The contents of this file are subject to the terms of the
10867  * Common Development and Distribution License (the "License").
10868  * You may not use this file except in compliance with the License.
10869  *
10870  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10871  * or http://www.opensolaris.org/os/licensing.
10872  * See the License for the specific language governing permissions
10873  * and limitations under the License.
10874  *
10875  * When distributing Covered Code, include this CDDL HEADER in each
10876  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10877  * If applicable, add the following below this CDDL HEADER, with the
10878  * fields enclosed by brackets "[]" replaced with your own identifying
10879  * information: Portions Copyright [yyyy] [name of copyright owner]
10880  *
10881  * CDDL HEADER END
10882  */
10883 
10884 /*
10885  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10886  * Use is subject to license terms.
10887  */
10888 
10889 
10890 
10891 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 1
10892 /*
10893  * CDDL HEADER START
10894  *
10895  * The contents of this file are subject to the terms of the
10896  * Common Development and Distribution License (the "License").
10897  * You may not use this file except in compliance with the License.
10898  *
10899  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10900  * or http://www.opensolaris.org/os/licensing.
10901  * See the License for the specific language governing permissions
10902  * and limitations under the License.
10903  *
10904  * When distributing Covered Code, include this CDDL HEADER in each
10905  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10906  * If applicable, add the following below this CDDL HEADER, with the
10907  * fields enclosed by brackets "[]" replaced with your own identifying
10908  * information: Portions Copyright [yyyy] [name of copyright owner]
10909  *
10910  * CDDL HEADER END
10911  */
10912 /*
10913  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
10914  * Use is subject to license terms.
10915  *
10916  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
10917  */
10918 
10919 
10920 
10921 
10922 /*
10923  * Definition of general kernel statistics structures and /dev/kstat ioctls
10924  */
10925 
10926 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
10927 /*
10928  * CDDL HEADER START
10929  *
10930  * The contents of this file are subject to the terms of the
10931  * Common Development and Distribution License (the "License").
10932  * You may not use this file except in compliance with the License.
10933  *
10934  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10935  * or http://www.opensolaris.org/os/licensing.
10936  * See the License for the specific language governing permissions
10937  * and limitations under the License.
10938  *
10939  * When distributing Covered Code, include this CDDL HEADER in each
10940  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10941  * If applicable, add the following below this CDDL HEADER, with the
10942  * fields enclosed by brackets "[]" replaced with your own identifying
10943  * information: Portions Copyright [yyyy] [name of copyright owner]
10944  *
10945  * CDDL HEADER END
10946  */
10947 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10948 /*	  All Rights Reserved  	*/
10949 
10950 
10951 /*
10952  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10953  * Use is subject to license terms.
10954  *
10955  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10956  * Copyright 2016 Joyent, Inc.
10957  */
10958 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 2
10959 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
10960 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
10961 /*	  All Rights Reserved  	*/
10962 
10963 
10964 /*
10965  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
10966  * All rights reserved.  The Berkeley software License Agreement
10967  * specifies the terms and conditions for redistribution.
10968  */
10969 
10970 /*
10971  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
10972  *
10973  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
10974  * Use is subject to license terms.
10975  *
10976  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
10977  */
10978 
10979 /*
10980  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
10981  */
10982 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h" 2
10983 
10984 
10985 
10986 
10987 
10988 typedef int kid_t; /* unique kstat id */
10989 
10990 /*
10991  * Kernel statistics driver (/dev/kstat) ioctls
10992  */
10993 
10994 
10995 
10996 
10997 
10998 
10999 
11000 /*
11001  * /dev/kstat ioctl usage (kd denotes /dev/kstat descriptor):
11002  *
11003  *	kcid = ioctl(kd, KSTAT_IOC_CHAIN_ID, NULL);
11004  *	kcid = ioctl(kd, KSTAT_IOC_READ, kstat_t *);
11005  *	kcid = ioctl(kd, KSTAT_IOC_WRITE, kstat_t *);
11006  */
11007 
11008 
11009 
11010 /*
11011  * The generic kstat header
11012  */
11013 
11014 typedef struct kstat {
11015  /*
11016 	 * Fields relevant to both kernel and user
11017 	 */
11018  hrtime_t ks_crtime; /* creation time (from gethrtime()) */
11019  struct kstat *ks_next; /* kstat chain linkage */
11020  kid_t ks_kid; /* unique kstat ID */
11021  char ks_module[31]; /* provider module name */
11022  uchar_t ks_resv; /* reserved, currently just padding */
11023  int ks_instance; /* provider module's instance */
11024  char ks_name[31]; /* kstat name */
11025  uchar_t ks_type; /* kstat data type */
11026  char ks_class[31]; /* kstat class */
11027  uchar_t ks_flags; /* kstat flags */
11028  void *ks_data; /* kstat type-specific data */
11029  uint_t ks_ndata; /* # of type-specific data records */
11030  size_t ks_data_size; /* total size of kstat data section */
11031  hrtime_t ks_snaptime; /* time of last data shapshot */
11032  /*
11033 	 * Fields relevant to kernel only
11034 	 */
11035  int (*ks_update)(struct kstat *, int); /* dynamic update */
11036  void *ks_private; /* arbitrary provider-private data */
11037  int (*ks_snapshot)(struct kstat *, void *, int);
11038  void *ks_lock; /* protects this kstat's data */
11039 } kstat_t;
11040 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
11041 /*
11042  * kstat structure and locking strategy
11043  *
11044  * Each kstat consists of a header section (a kstat_t) and a data section.
11045  * The system maintains a set of kstats, protected by kstat_chain_lock.
11046  * kstat_chain_lock protects all additions to/deletions from this set,
11047  * as well as all changes to kstat headers.  kstat data sections are
11048  * *optionally* protected by the per-kstat ks_lock.  If ks_lock is non-NULL,
11049  * kstat clients (e.g. /dev/kstat) will acquire this lock for all of their
11050  * operations on that kstat.  It is up to the kstat provider to decide whether
11051  * guaranteeing consistent data to kstat clients is sufficiently important
11052  * to justify the locking cost.  Note, however, that most statistic updates
11053  * already occur under one of the provider's mutexes, so if the provider sets
11054  * ks_lock to point to that mutex, then kstat data locking is free.
11055  *
11056  * NOTE: variable-size kstats MUST employ kstat data locking, to prevent
11057  * data-size races with kstat clients.
11058  *
11059  * NOTE: ks_lock is really of type (kmutex_t *); it is declared as (void *)
11060  * in the kstat header so that users don't have to be exposed to all of the
11061  * kernel's lock-related data structures.
11062  */
11063 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
11064 /*
11065  * kstat time
11066  *
11067  * All times associated with kstats (e.g. creation time, snapshot time,
11068  * kstat_timer_t and kstat_io_t timestamps, etc.) are 64-bit nanosecond values,
11069  * as returned by gethrtime().  The accuracy of these timestamps is machine
11070  * dependent, but the precision (units) is the same across all platforms.
11071  */
11072 
11073 /*
11074  * kstat identity (KID)
11075  *
11076  * Each kstat is assigned a unique KID (kstat ID) when it is added to the
11077  * global kstat chain.  The KID is used as a cookie by /dev/kstat to
11078  * request information about the corresponding kstat.  There is also
11079  * an identity associated with the entire kstat chain, kstat_chain_id,
11080  * which is bumped each time a kstat is added or deleted.  /dev/kstat uses
11081  * the chain ID to detect changes in the kstat chain (e.g., a new disk
11082  * coming online) between ioctl()s.
11083  */
11084 
11085 /*
11086  * kstat module, kstat instance
11087  *
11088  * ks_module and ks_instance contain the name and instance of the module
11089  * that created the kstat.  In cases where there can only be one instance,
11090  * ks_instance is 0.  The kernel proper (/kernel/unix) uses "unix" as its
11091  * module name.
11092  */
11093 
11094 /*
11095  * kstat name
11096  *
11097  * ks_name gives a meaningful name to a kstat.  The full kstat namespace
11098  * is module.instance.name, so the name only need be unique within a
11099  * module.  kstat_create() will fail if you try to create a kstat with
11100  * an already-used (ks_module, ks_instance, ks_name) triplet.  Spaces are
11101  * allowed in kstat names, but strongly discouraged, since they hinder
11102  * awk-style processing at user level.
11103  */
11104 
11105 /*
11106  * kstat type
11107  *
11108  * The kstat mechanism provides several flavors of kstat data, defined
11109  * below.  The "raw" kstat type is just treated as an array of bytes; you
11110  * can use this to export any kind of data you want.
11111  *
11112  * Some kstat types allow multiple data structures per kstat, e.g.
11113  * KSTAT_TYPE_NAMED; others do not.  This is part of the spec for each
11114  * kstat data type.
11115  *
11116  * User-level tools should *not* rely on the #define KSTAT_NUM_TYPES.  To
11117  * get this information, read out the standard system kstat "kstat_types".
11118  */
11119 
11120 
11121      /* ks_ndata >= 1 */
11122 
11123      /* ks_ndata >= 1 */
11124 
11125      /* ks_ndata == 1 */
11126 
11127      /* ks_ndata == 1 */
11128 
11129      /* ks_ndata >= 1 */
11130 
11131 
11132 
11133 /*
11134  * kstat class
11135  *
11136  * Each kstat can be characterized as belonging to some broad class
11137  * of statistics, e.g. disk, tape, net, vm, streams, etc.  This field
11138  * can be used as a filter to extract related kstats.  The following
11139  * values are currently in use: disk, tape, net, controller, vm, kvm,
11140  * hat, streams, kstat, and misc.  (The kstat class encompasses things
11141  * like kstat_types.)
11142  */
11143 
11144 /*
11145  * kstat flags
11146  *
11147  * Any of the following flags may be passed to kstat_create().  They are
11148  * all zero by default.
11149  *
11150  *	KSTAT_FLAG_VIRTUAL:
11151  *
11152  *		Tells kstat_create() not to allocate memory for the
11153  *		kstat data section; instead, you will set the ks_data
11154  *		field to point to the data you wish to export.  This
11155  *		provides a convenient way to export existing data
11156  *		structures.
11157  *
11158  *	KSTAT_FLAG_VAR_SIZE:
11159  *
11160  *		The size of the kstat you are creating will vary over time.
11161  *		For example, you may want to use the kstat mechanism to
11162  *		export a linked list.  NOTE: The kstat framework does not
11163  *		manage the data section, so all variable-size kstats must be
11164  *		virtual kstats.  Moreover, variable-size kstats MUST employ
11165  *		kstat data locking to prevent data-size races with kstat
11166  *		clients.  See the section on "kstat snapshot" for details.
11167  *
11168  *	KSTAT_FLAG_WRITABLE:
11169  *
11170  *		Makes the kstat's data section writable by root.
11171  *		The ks_snapshot routine (see below) does not need to check for
11172  *		this; permission checking is handled in the kstat driver.
11173  *
11174  *	KSTAT_FLAG_PERSISTENT:
11175  *
11176  *		Indicates that this kstat is to be persistent over time.
11177  *		For persistent kstats, kstat_delete() simply marks the
11178  *		kstat as dormant; a subsequent kstat_create() reactivates
11179  *		the kstat.  This feature is provided so that statistics
11180  *		are not lost across driver close/open (e.g., raw disk I/O
11181  *		on a disk with no mounted partitions.)
11182  *		NOTE: Persistent kstats cannot be virtual, since ks_data
11183  *		points to garbage as soon as the driver goes away.
11184  *
11185  * The following flags are maintained by the kstat framework:
11186  *
11187  *	KSTAT_FLAG_DORMANT:
11188  *
11189  *		For persistent kstats, indicates that the kstat is in the
11190  *		dormant state (e.g., the corresponding device is closed).
11191  *
11192  *	KSTAT_FLAG_INVALID:
11193  *
11194  *		This flag is set when a kstat is in a transitional state,
11195  *		e.g. between kstat_create() and kstat_install().
11196  *		kstat clients must not attempt to access the kstat's data
11197  *		if this flag is set.
11198  *
11199  *	KSTAT_FLAG_LONGSTRINGS:
11200  *
11201  *		Indicates that this kstat contains long strings (which
11202  *		are stored outside of the kstat data section). When copied
11203  *		out to user space the string data will be held in the data
11204  *		section provided by the user.
11205  */
11206 # 316 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
11207 /*
11208  * Dynamic update support
11209  *
11210  * The kstat mechanism allows for an optional ks_update function to update
11211  * kstat data.  This is useful for drivers where the underlying device
11212  * keeps cheap hardware stats, but extraction is expensive.  Instead of
11213  * constantly keeping the kstat data section up to date, you can supply a
11214  * ks_update function which updates the kstat's data section on demand.
11215  * To take advantage of this feature, simply set the ks_update field before
11216  * calling kstat_install().
11217  *
11218  * The ks_update function, if supplied, must have the following structure:
11219  *
11220  *	int
11221  *	foo_kstat_update(kstat_t *ksp, int rw)
11222  *	{
11223  *		if (rw == KSTAT_WRITE) {
11224  *			... update the native stats from ksp->ks_data;
11225  *				return EACCES if you don't support this
11226  *		} else {
11227  *			... update ksp->ks_data from the native stats
11228  *		}
11229  *	}
11230  *
11231  * The ks_update return codes are: 0 for success, EACCES if you don't allow
11232  * KSTAT_WRITE, and EIO for any other type of error.
11233  *
11234  * In general, the ks_update function may need to refer to provider-private
11235  * data; for example, it may need a pointer to the provider's raw statistics.
11236  * The ks_private field is available for this purpose.  Its use is entirely
11237  * at the provider's discretion.
11238  *
11239  * All variable-size kstats MUST supply a ks_update routine, which computes
11240  * and sets ks_data_size (and ks_ndata if that is meaningful), since these
11241  * are needed to perform kstat snapshots (see below).
11242  *
11243  * No kstat locking should be done inside the ks_update routine.  The caller
11244  * will already be holding the kstat's ks_lock (to ensure consistent data).
11245  */
11246 
11247 
11248 
11249 
11250 /*
11251  * Kstat snapshot
11252  *
11253  * In order to get a consistent view of a kstat's data, clients must obey
11254  * the kstat's locking strategy.  However, these clients may need to perform
11255  * operations on the data which could cause a fault (e.g. copyout()), or
11256  * operations which are simply expensive.  Doing so could cause deadlock
11257  * (e.g. if you're holding a disk's kstat lock which is ultimately required
11258  * to resolve a copyout() fault), performance degradation (since the providers'
11259  * activity is serialized at the kstat lock), device timing problems, etc.
11260  *
11261  * To avoid these problems, kstat data is provided via snapshots.  Taking
11262  * a snapshot is a simple process: allocate a wired-down kernel buffer,
11263  * acquire the kstat's data lock, copy the data into the buffer ("take the
11264  * snapshot"), and release the lock.  This ensures that the kstat's data lock
11265  * will be held as briefly as possible, and that no faults will occur while
11266  * the lock is held.
11267  *
11268  * Normally, the snapshot is taken by default_kstat_snapshot(), which
11269  * timestamps the data (sets ks_snaptime), copies it, and does a little
11270  * massaging to deal with incomplete transactions on i/o kstats.  However,
11271  * this routine only works for kstats with contiguous data (the typical case).
11272  * If you create a kstat whose data is, say, a linked list, you must provide
11273  * your own ks_snapshot routine.  The routine you supply must have the
11274  * following prototype (replace "foo" with something appropriate):
11275  *
11276  *	int foo_kstat_snapshot(kstat_t *ksp, void *buf, int rw);
11277  *
11278  * The minimal snapshot routine -- one which copies contiguous data that
11279  * doesn't need any massaging -- would be this:
11280  *
11281  *	ksp->ks_snaptime = gethrtime();
11282  *	if (rw == KSTAT_WRITE)
11283  *		bcopy(buf, ksp->ks_data, ksp->ks_data_size);
11284  *	else
11285  *		bcopy(ksp->ks_data, buf, ksp->ks_data_size);
11286  *	return (0);
11287  *
11288  * A more illuminating example is taking a snapshot of a linked list:
11289  *
11290  *	ksp->ks_snaptime = gethrtime();
11291  *	if (rw == KSTAT_WRITE)
11292  *		return (EACCES);		... See below ...
11293  *	for (foo = first_foo; foo; foo = foo->next) {
11294  *		bcopy((char *) foo, (char *) buf, sizeof (struct foo));
11295  *		buf = ((struct foo *) buf) + 1;
11296  *	}
11297  *	return (0);
11298  *
11299  * In the example above, we have decided that we don't want to allow
11300  * KSTAT_WRITE access, so we return EACCES if this is attempted.
11301  *
11302  * The key points are:
11303  *
11304  *	(1) ks_snaptime must be set (via gethrtime()) to timestamp the data.
11305  *	(2) Data gets copied from the kstat to the buffer on KSTAT_READ,
11306  *		and from the buffer to the kstat on KSTAT_WRITE.
11307  *	(3) ks_snapshot return values are: 0 for success, EACCES if you
11308  *		don't allow KSTAT_WRITE, and EIO for any other type of error.
11309  *
11310  * Named kstats (see section on "Named statistics" below) containing long
11311  * strings (KSTAT_DATA_STRING) need special handling.  The kstat driver
11312  * assumes that all strings are copied into the buffer after the array of
11313  * named kstats, and the pointers (KSTAT_NAMED_STR_PTR()) are updated to point
11314  * into the copy within the buffer. The default snapshot routine does this,
11315  * but overriding routines should contain at least the following:
11316  *
11317  * if (rw == KSTAT_READ) {
11318  * 	kstat_named_t *knp = buf;
11319  * 	char *end = knp + ksp->ks_ndata;
11320  * 	uint_t i;
11321  *
11322  * 	... Do the regular copy ...
11323  * 	bcopy(ksp->ks_data, buf, sizeof (kstat_named_t) * ksp->ks_ndata);
11324  *
11325  * 	for (i = 0; i < ksp->ks_ndata; i++, knp++) {
11326  *		if (knp[i].data_type == KSTAT_DATA_STRING &&
11327  *		    KSTAT_NAMED_STR_PTR(knp) != NULL) {
11328  *			bcopy(KSTAT_NAMED_STR_PTR(knp), end,
11329  *			    KSTAT_NAMED_STR_BUFLEN(knp));
11330  *			KSTAT_NAMED_STR_PTR(knp) = end;
11331  *			end += KSTAT_NAMED_STR_BUFLEN(knp);
11332  *		}
11333  *	}
11334  */
11335 
11336 /*
11337  * Named statistics.
11338  *
11339  * List of arbitrary name=value statistics.
11340  */
11341 
11342 typedef struct kstat_named {
11343  char name[31]; /* name of counter */
11344  uchar_t data_type; /* data type */
11345  union {
11346   char c[16]; /* enough for 128-bit ints */
11347   int32_t i32;
11348   uint32_t ui32;
11349   struct {
11350    union {
11351     char *ptr; /* NULL-term string */
11352 
11353 
11354 
11355     char __pad[8]; /* 64-bit padding */
11356    } addr;
11357    uint32_t len; /* # bytes for strlen + '\0' */
11358   } str;
11359 /*
11360  * The int64_t and uint64_t types are not valid for a maximally conformant
11361  * 32-bit compilation environment (cc -Xc) using compilers prior to the
11362  * introduction of C99 conforming compiler (reference ISO/IEC 9899:1990).
11363  * In these cases, the visibility of i64 and ui64 is only permitted for
11364  * 64-bit compilation environments or 32-bit non-maximally conformant
11365  * C89 or C90 ANSI C compilation environments (cc -Xt and cc -Xa). In the
11366  * C99 ANSI C compilation environment, the long long type is supported.
11367  * The _INT64_TYPE is defined by the implementation (see sys/int_types.h).
11368  */
11369 
11370   int64_t i64;
11371   uint64_t ui64;
11372 
11373   long l;
11374   ulong_t ul;
11375 
11376   /* These structure members are obsolete */
11377 
11378   longlong_t ll;
11379   u_longlong_t ull;
11380   float f;
11381   double d;
11382  } value; /* value of counter */
11383 } kstat_named_t;
11384 # 513 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
11385 /*
11386  * Statistics exporting named kstats with long strings (KSTAT_DATA_STRING)
11387  * may not make the assumption that ks_data_size is equal to (ks_ndata * sizeof
11388  * (kstat_named_t)).  ks_data_size in these cases is equal to the sum of the
11389  * amount of space required to store the strings (ie, the sum of
11390  * KSTAT_NAMED_STR_BUFLEN() for all KSTAT_DATA_STRING statistics) plus the
11391  * space required to store the kstat_named_t's.
11392  *
11393  * The default update routine will update ks_data_size automatically for
11394  * variable-length kstats containing long strings (using the default update
11395  * routine only makes sense if the string is the only thing that is changing
11396  * in size, and ks_ndata is constant).  Fixed-length kstats containing long
11397  * strings must explicitly change ks_data_size (after creation but before
11398  * initialization) to reflect the correct amount of space required for the
11399  * long strings and the kstat_named_t's.
11400  */
11401 
11402 
11403 /* These types are obsolete */
11404 # 540 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
11405 /*
11406  * Retrieve the pointer of the string contained in the given named kstat.
11407  */
11408 
11409 
11410 /*
11411  * Retrieve the length of the buffer required to store the string in the given
11412  * named kstat.
11413  */
11414 
11415 
11416 /*
11417  * Interrupt statistics.
11418  *
11419  * An interrupt is a hard interrupt (sourced from the hardware device
11420  * itself), a soft interrupt (induced by the system via the use of
11421  * some system interrupt source), a watchdog interrupt (induced by
11422  * a periodic timer call), spurious (an interrupt entry point was
11423  * entered but there was no interrupt condition to service),
11424  * or multiple service (an interrupt condition was detected and
11425  * serviced just prior to returning from any of the other types).
11426  *
11427  * Measurement of the spurious class of interrupts is useful for
11428  * autovectored devices in order to pinpoint any interrupt latency
11429  * problems in a particular system configuration.
11430  *
11431  * Devices that have more than one interrupt of the same
11432  * type should use multiple structures.
11433  */
11434 # 578 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/kstat.h"
11435 typedef struct kstat_intr {
11436  uint_t intrs[5]; /* interrupt counters */
11437 } kstat_intr_t;
11438 
11439 
11440 
11441 /*
11442  * I/O statistics.
11443  */
11444 
11445 typedef struct kstat_io {
11446 
11447  /*
11448 	 * Basic counters.
11449 	 *
11450 	 * The counters should be updated at the end of service
11451 	 * (e.g., just prior to calling biodone()).
11452 	 */
11453 
11454  u_longlong_t nread; /* number of bytes read */
11455  u_longlong_t nwritten; /* number of bytes written */
11456  uint_t reads; /* number of read operations */
11457  uint_t writes; /* number of write operations */
11458 
11459  /*
11460 	 * Accumulated time and queue length statistics.
11461 	 *
11462 	 * Accumulated time statistics are kept as a running sum
11463 	 * of "active" time.  Queue length statistics are kept as a
11464 	 * running sum of the product of queue length and elapsed time
11465 	 * at that length -- i.e., a Riemann sum for queue length
11466 	 * integrated against time.  (You can also think of the active time
11467 	 * as a Riemann sum, for the boolean function (queue_length > 0)
11468 	 * integrated against time, or you can think of it as the
11469 	 * Lebesgue measure of the set on which queue_length > 0.)
11470 	 *
11471 	 *		^
11472 	 *		|			_________
11473 	 *		8			| i4	|
11474 	 *		|			|	|
11475 	 *	Queue	6			|	|
11476 	 *	Length	|	_________	|	|
11477 	 *		4	| i2	|_______|	|
11478 	 *		|	|	    i3		|
11479 	 *		2_______|			|
11480 	 *		|    i1				|
11481 	 *		|_______________________________|
11482 	 *		Time->	t1	t2	t3	t4
11483 	 *
11484 	 * At each change of state (entry or exit from the queue),
11485 	 * we add the elapsed time (since the previous state change)
11486 	 * to the active time if the queue length was non-zero during
11487 	 * that interval; and we add the product of the elapsed time
11488 	 * times the queue length to the running length*time sum.
11489 	 *
11490 	 * This method is generalizable to measuring residency
11491 	 * in any defined system: instead of queue lengths, think
11492 	 * of "outstanding RPC calls to server X".
11493 	 *
11494 	 * A large number of I/O subsystems have at least two basic
11495 	 * "lists" of transactions they manage: one for transactions
11496 	 * that have been accepted for processing but for which processing
11497 	 * has yet to begin, and one for transactions which are actively
11498 	 * being processed (but not done). For this reason, two cumulative
11499 	 * time statistics are defined here: wait (pre-service) time,
11500 	 * and run (service) time.
11501 	 *
11502 	 * All times are 64-bit nanoseconds (hrtime_t), as returned by
11503 	 * gethrtime().
11504 	 *
11505 	 * The units of cumulative busy time are accumulated nanoseconds.
11506 	 * The units of cumulative length*time products are elapsed time
11507 	 * times queue length.
11508 	 *
11509 	 * Updates to the fields below are performed implicitly by calls to
11510 	 * these five functions:
11511 	 *
11512 	 *	kstat_waitq_enter()
11513 	 *	kstat_waitq_exit()
11514 	 *	kstat_runq_enter()
11515 	 *	kstat_runq_exit()
11516 	 *
11517 	 *	kstat_waitq_to_runq()		(see below)
11518 	 *	kstat_runq_back_to_waitq()	(see below)
11519 	 *
11520 	 * Since kstat_waitq_exit() is typically followed immediately
11521 	 * by kstat_runq_enter(), there is a single kstat_waitq_to_runq()
11522 	 * function which performs both operations.  This is a performance
11523 	 * win since only one timestamp is required.
11524 	 *
11525 	 * In some instances, it may be necessary to move a request from
11526 	 * the run queue back to the wait queue, e.g. for write throttling.
11527 	 * For these situations, call kstat_runq_back_to_waitq().
11528 	 *
11529 	 * These fields should never be updated by any other means.
11530 	 */
11531 
11532  hrtime_t wtime; /* cumulative wait (pre-service) time */
11533  hrtime_t wlentime; /* cumulative wait length*time product */
11534  hrtime_t wlastupdate; /* last time wait queue changed */
11535  hrtime_t rtime; /* cumulative run (service) time */
11536  hrtime_t rlentime; /* cumulative run length*time product */
11537  hrtime_t rlastupdate; /* last time run queue changed */
11538 
11539  uint_t wcnt; /* count of elements in wait state */
11540  uint_t rcnt; /* count of elements in run state */
11541 
11542 } kstat_io_t;
11543 
11544 
11545 
11546 /*
11547  * Event timer statistics - cumulative elapsed time and number of events.
11548  *
11549  * Updates to these fields are performed implicitly by calls to
11550  * kstat_timer_start() and kstat_timer_stop().
11551  */
11552 
11553 typedef struct kstat_timer {
11554  char name[31]; /* event name */
11555  uchar_t resv; /* reserved */
11556  u_longlong_t num_events; /* number of events */
11557  hrtime_t elapsed_time; /* cumulative elapsed time */
11558  hrtime_t min_time; /* shortest event duration */
11559  hrtime_t max_time; /* longest event duration */
11560  hrtime_t start_time; /* previous event start time */
11561  hrtime_t stop_time; /* previous event stop time */
11562 } kstat_timer_t;
11563 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h" 2
11564 
11565 
11566 
11567 
11568 
11569 /*
11570  * This allows various pieces in and around IP to have a separate instance
11571  * for each instance of IP. This is used to support zones that have an
11572  * exclusive stack.
11573  * Pieces of software far removed from IP (e.g., kernel software
11574  * sitting on top of TCP or UDP) probably should not use the netstack
11575  * support; if such software wants to support separate zones it
11576  * can do that using the zones framework (zone_key_create() etc)
11577  * whether there is a shared IP stack or and exclusive IP stack underneath.
11578  */
11579 
11580 /*
11581  * Each netstack has an identifier. We reuse the zoneid allocation for
11582  * this but have a separate typedef. Thus the shared stack (used by
11583  * the global zone and other shared stack zones) have a zero ID, and
11584  * the exclusive stacks have a netstackid that is the same as their zoneid.
11585  */
11586 typedef id_t netstackid_t;
11587 
11588 
11589 
11590 /*
11591  * One for each module which uses netstack support.
11592  * Used in netstack_register().
11593  *
11594  * The order of these is important for some modules both for
11595  * the creation (which done in ascending order) and destruction (which is
11596  * done in in decending order).
11597  */
11598 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
11599 /*
11600  * State maintained for each module which tracks the state of
11601  * the create, shutdown and destroy callbacks.
11602  *
11603  * Keeps track of pending actions to avoid holding locks when
11604  * calling into the create/shutdown/destroy functions in the module.
11605  */
11606 # 122 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
11607 /* User-level compile like IP Filter needs a netstack_t. Dummy */
11608 typedef uint_t nm_state_t;
11609 
11610 
11611 /*
11612  * One for every netstack in the system.
11613  * We use a union so that the compilar and lint can provide type checking -
11614  * in principle we could have
11615  * #define	netstack_arp		netstack_modules[NS_ARP]
11616  * etc, but that would imply void * types hence no type checking by the
11617  * compiler.
11618  *
11619  * All the fields in netstack_t except netstack_next are protected by
11620  * netstack_lock. netstack_next is protected by netstack_g_lock.
11621  */
11622 struct netstack {
11623  union {
11624   void *nu_modules[(18 +1)];
11625   struct {
11626    struct dls_stack *nu_dls;
11627    struct iptun_stack *nu_iptun;
11628    struct str_stack *nu_str;
11629    struct hook_stack *nu_hook;
11630    struct neti_stack *nu_neti;
11631    struct arp_stack *nu_arp;
11632    struct ip_stack *nu_ip;
11633    struct icmp_stack *nu_icmp;
11634    struct udp_stack *nu_udp;
11635    struct tcp_stack *nu_tcp;
11636    struct sctp_stack *nu_sctp;
11637    struct rts_stack *nu_rts;
11638    struct ipsec_stack *nu_ipsec;
11639    struct keysock_stack *nu_keysock;
11640    struct spd_stack *nu_spdsock;
11641    struct ipsecah_stack *nu_ipsecah;
11642    struct ipsecesp_stack *nu_ipsecesp;
11643    struct ipnet_stack *nu_ipnet;
11644    struct ilb_stack *nu_ilb;
11645   } nu_s;
11646  } netstack_u;
11647 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
11648  nm_state_t netstack_m_state[(18 +1)]; /* module state */
11649 
11650  kmutex_t netstack_lock;
11651  struct netstack *netstack_next;
11652  netstackid_t netstack_stackid;
11653  int netstack_numzones; /* Number of zones using this */
11654  int netstack_refcnt; /* Number of hold-rele */
11655  int netstack_flags; /* See below */
11656 
11657 
11658 
11659 
11660 
11661 };
11662 typedef struct netstack netstack_t;
11663 
11664 /* netstack_flags values */
11665 # 209 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netstack.h"
11666 /*
11667  * One for each of the NS_* values.
11668  */
11669 struct netstack_registry {
11670  int nr_flags; /* 0 if nothing registered */
11671  void *(*nr_create)(netstackid_t, netstack_t *);
11672  void (*nr_shutdown)(netstackid_t, void *);
11673  void (*nr_destroy)(netstackid_t, void *);
11674 };
11675 
11676 /* nr_flags values */
11677 
11678 
11679 
11680 /*
11681  * To support kstat_create_netstack() using kstat_add_zone we need
11682  * to track both
11683  *  - all zoneids that use the global/shared stack
11684  *  - all kstats that have been added for the shared stack
11685  */
11686 
11687 extern void netstack_init(void);
11688 extern void netstack_hold(netstack_t *);
11689 extern void netstack_rele(netstack_t *);
11690 extern netstack_t *netstack_find_by_cred(const cred_t *);
11691 extern netstack_t *netstack_find_by_stackid(netstackid_t);
11692 extern netstack_t *netstack_find_by_zoneid(zoneid_t);
11693 
11694 extern zoneid_t netstackid_to_zoneid(netstackid_t);
11695 extern zoneid_t netstack_get_zoneid(netstack_t *);
11696 extern netstackid_t zoneid_to_netstackid(zoneid_t);
11697 
11698 extern netstack_t *netstack_get_current(void);
11699 
11700 /*
11701  * Register interest in changes to the set of netstacks.
11702  * The createfn and destroyfn are required, but the shutdownfn can be
11703  * NULL.
11704  * Note that due to the current zsd implementation, when the create
11705  * function is called the zone isn't fully present, thus functions
11706  * like zone_find_by_* will fail, hence the create function can not
11707  * use many zones kernel functions including zcmn_err().
11708  */
11709 extern void netstack_register(int,
11710     void *(*)(netstackid_t, netstack_t *),
11711     void (*)(netstackid_t, void *),
11712     void (*)(netstackid_t, void *));
11713 extern void netstack_unregister(int);
11714 extern kstat_t *kstat_create_netstack(char *, int, char *, char *, uchar_t,
11715     uint_t, uchar_t, netstackid_t);
11716 extern void kstat_delete_netstack(kstat_t *, netstackid_t);
11717 
11718 /*
11719  * Simple support for walking all the netstacks.
11720  * The caller of netstack_next() needs to call netstack_rele() when
11721  * done with a netstack.
11722  */
11723 typedef int netstack_handle_t;
11724 
11725 extern void netstack_next_init(netstack_handle_t *);
11726 extern void netstack_next_fini(netstack_handle_t *);
11727 extern netstack_t *netstack_next(netstack_handle_t *);
11728 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
11729 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 1
11730 /*
11731  * CDDL HEADER START
11732  *
11733  * The contents of this file are subject to the terms of the
11734  * Common Development and Distribution License (the "License").
11735  * You may not use this file except in compliance with the License.
11736  *
11737  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11738  * or http://www.opensolaris.org/os/licensing.
11739  * See the License for the specific language governing permissions
11740  * and limitations under the License.
11741  *
11742  * When distributing Covered Code, include this CDDL HEADER in each
11743  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11744  * If applicable, add the following below this CDDL HEADER, with the
11745  * fields enclosed by brackets "[]" replaced with your own identifying
11746  * information: Portions Copyright [yyyy] [name of copyright owner]
11747  *
11748  * CDDL HEADER END
11749  */
11750 /*
11751  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11752  *
11753  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11754  * Use is subject to license terms.
11755  */
11756 
11757 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11758 /*	  All Rights Reserved  	*/
11759 
11760 
11761 
11762 
11763 
11764 
11765 
11766 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
11767 /*
11768  * CDDL HEADER START
11769  *
11770  * The contents of this file are subject to the terms of the
11771  * Common Development and Distribution License (the "License").
11772  * You may not use this file except in compliance with the License.
11773  *
11774  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11775  * or http://www.opensolaris.org/os/licensing.
11776  * See the License for the specific language governing permissions
11777  * and limitations under the License.
11778  *
11779  * When distributing Covered Code, include this CDDL HEADER in each
11780  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11781  * If applicable, add the following below this CDDL HEADER, with the
11782  * fields enclosed by brackets "[]" replaced with your own identifying
11783  * information: Portions Copyright [yyyy] [name of copyright owner]
11784  *
11785  * CDDL HEADER END
11786  */
11787 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11788 /*	  All Rights Reserved  	*/
11789 
11790 
11791 /*
11792  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11793  * Use is subject to license terms.
11794  *
11795  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
11796  * Copyright 2016 Joyent, Inc.
11797  */
11798 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 2
11799 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
11800 /*
11801  * CDDL HEADER START
11802  *
11803  * The contents of this file are subject to the terms of the
11804  * Common Development and Distribution License (the "License").
11805  * You may not use this file except in compliance with the License.
11806  *
11807  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11808  * or http://www.opensolaris.org/os/licensing.
11809  * See the License for the specific language governing permissions
11810  * and limitations under the License.
11811  *
11812  * When distributing Covered Code, include this CDDL HEADER in each
11813  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11814  * If applicable, add the following below this CDDL HEADER, with the
11815  * fields enclosed by brackets "[]" replaced with your own identifying
11816  * information: Portions Copyright [yyyy] [name of copyright owner]
11817  *
11818  * CDDL HEADER END
11819  */
11820 /*
11821  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11822  * Use is subject to license terms.
11823  */
11824 
11825 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
11826 /*	  All Rights Reserved  	*/
11827 
11828 /*
11829  * Portions of this source code were derived from Berkeley 4.3 BSD
11830  * under license from the Regents of the University of California.
11831  */
11832 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h" 2
11833 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
11834 /*			17-21	   reserved for obsolete interface */
11835 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
11836 /*
11837  * Functions reserved for A_FREEZE (may not be available on all platforms)
11838  * Note:  AD_COMPRESS, AD_CHECK and AD_FORCE are now obsolete
11839  *	The first two are succeeded by AD_SUSPEND_TO_DISK and
11840  *		AD_CHECK_SUSPEND_TO_DISK respectively.
11841  *	AD_FORCE should not be used by any new application
11842  *
11843  *	We maintain compatibility with the earlier interfaces:
11844  *	AD_COMPRESS and AD_CHECK, by preserving those values
11845  *	in the corresponding new interfaces
11846  */
11847 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
11848 /*
11849  * NOTE: the following defines comprise an Unstable interface.  Their semantics
11850  * may change or they may be removed completely in a later release
11851  */
11852 
11853 
11854 
11855 
11856 
11857 
11858 
11859 /*
11860  * Functions of A_CONFIG.  Unstable interface.
11861  */
11862 
11863 
11864 /*
11865  * When 'mdep' (the second argument to uadmin(2)) is initialized for A_REBOOT,
11866  * A_SHUTDOWN or A_DUMP, it represents the boot arguments string of at most
11867  * 256 characters.
11868  */
11869 
11870 
11871 
11872 /*
11873  * FMRI for boot-config service.
11874  */
11875 
11876 
11877 
11878 /*
11879  * Property group that contains all Fast Reboot configuration properties.
11880  */
11881 
11882 
11883 /*
11884  * Property group that contains all Fast Reboot blacklisting information.
11885  */
11886 
11887 
11888 /*
11889  * Non-persistent property group which contains all the properties that
11890  * will override settings in the BOOT_CONFIG_PG_PARAMS property group.
11891  */
11892 
11893 
11894 
11895 
11896 /*
11897  * Flag representations of fastboot configuration.
11898  */
11899 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uadmin.h"
11900 extern int uadmin(int, int, uintptr_t);
11901 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
11902 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ksynch.h" 1
11903 /*
11904  * CDDL HEADER START
11905  *
11906  * The contents of this file are subject to the terms of the
11907  * Common Development and Distribution License, Version 1.0 only
11908  * (the "License").  You may not use this file except in compliance
11909  * with the License.
11910  *
11911  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11912  * or http://www.opensolaris.org/os/licensing.
11913  * See the License for the specific language governing permissions
11914  * and limitations under the License.
11915  *
11916  * When distributing Covered Code, include this CDDL HEADER in each
11917  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11918  * If applicable, add the following below this CDDL HEADER, with the
11919  * fields enclosed by brackets "[]" replaced with your own identifying
11920  * information: Portions Copyright [yyyy] [name of copyright owner]
11921  *
11922  * CDDL HEADER END
11923  */
11924 /*
11925  *	Copyright (c) 1991, Sun Microsystems, Inc.
11926  */
11927 
11928 /*
11929  * DKI/DDI MT synchronization primitives.
11930  */
11931 
11932 
11933 
11934 
11935 #pragma ident "%Z%%M%	%I%	%E% SMI"
11936 
11937 /*
11938  * The presence of this file is specified by the DKI/DDI.
11939  */
11940 
11941 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
11942 /*
11943  * CDDL HEADER START
11944  *
11945  * The contents of this file are subject to the terms of the
11946  * Common Development and Distribution License, Version 1.0 only
11947  * (the "License").  You may not use this file except in compliance
11948  * with the License.
11949  *
11950  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11951  * or http://www.opensolaris.org/os/licensing.
11952  * See the License for the specific language governing permissions
11953  * and limitations under the License.
11954  *
11955  * When distributing Covered Code, include this CDDL HEADER in each
11956  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11957  * If applicable, add the following below this CDDL HEADER, with the
11958  * fields enclosed by brackets "[]" replaced with your own identifying
11959  * information: Portions Copyright [yyyy] [name of copyright owner]
11960  *
11961  * CDDL HEADER END
11962  */
11963 /*
11964  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
11965  * All rights reserved.
11966  */
11967 
11968 /*
11969  * t_lock.h:	Prototypes for disp_locks, plus include files
11970  *		that describe the interfaces to kernel synch.
11971  *		objects.
11972  */
11973 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ksynch.h" 2
11974 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
11975 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
11976 /*
11977  * CDDL HEADER START
11978  *
11979  * The contents of this file are subject to the terms of the
11980  * Common Development and Distribution License (the "License").
11981  * You may not use this file except in compliance with the License.
11982  *
11983  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11984  * or http://www.opensolaris.org/os/licensing.
11985  * See the License for the specific language governing permissions
11986  * and limitations under the License.
11987  *
11988  * When distributing Covered Code, include this CDDL HEADER in each
11989  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11990  * If applicable, add the following below this CDDL HEADER, with the
11991  * fields enclosed by brackets "[]" replaced with your own identifying
11992  * information: Portions Copyright [yyyy] [name of copyright owner]
11993  *
11994  * CDDL HEADER END
11995  */
11996 /*
11997  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11998  * Use is subject to license terms.
11999  */
12000 
12001 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
12002 /*	  All Rights Reserved	*/
12003 
12004 /*
12005  * Portions of this source code were derived from Berkeley 4.3 BSD
12006  * under license from the Regents of the University of California.
12007  */
12008 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h"
12009 typedef uint16_t sa_family_t;
12010 
12011 
12012 /*
12013  * Structure used by kernel to store most
12014  * addresses.
12015  */
12016 struct sockaddr {
12017  sa_family_t sa_family; /* address family */
12018  char sa_data[14]; /* up to 14 bytes of direct address */
12019 };
12020 
12021 
12022 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1
12023 /*
12024  * CDDL HEADER START
12025  *
12026  * The contents of this file are subject to the terms of the
12027  * Common Development and Distribution License (the "License").
12028  * You may not use this file except in compliance with the License.
12029  *
12030  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12031  * or http://www.opensolaris.org/os/licensing.
12032  * See the License for the specific language governing permissions
12033  * and limitations under the License.
12034  *
12035  * When distributing Covered Code, include this CDDL HEADER in each
12036  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12037  * If applicable, add the following below this CDDL HEADER, with the
12038  * fields enclosed by brackets "[]" replaced with your own identifying
12039  * information: Portions Copyright [yyyy] [name of copyright owner]
12040  *
12041  * CDDL HEADER END
12042  */
12043 /*
12044  * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
12045  */
12046 
12047 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
12048 /*	  All Rights Reserved  	*/
12049 
12050 /*
12051  * University Copyright- Copyright (c) 1982, 1986, 1988
12052  * The Regents of the University of California
12053  * All Rights Reserved
12054  *
12055  * University Acknowledgment- Portions of this document are derived from
12056  * software developed by the University of California, Berkeley, and its
12057  * contributors.
12058  */
12059 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
12060 /*
12061  * Definitions for UNIX IPC domain.
12062  */
12063 struct sockaddr_un {
12064  sa_family_t sun_family; /* AF_UNIX */
12065  char sun_path[108]; /* path name (gag) */
12066 };
12067 
12068 
12069 
12070 /*
12071  * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to
12072  * change.
12073  *
12074  * Also, include a strlen() prototype, and we have to protect it w.r.t.
12075  * UNIX{98,03}.  And because there's strlen, we need size_t as well.
12076  */
12077 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
12078 extern size_t strlen(const char *);
12079 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
12080 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1
12081 /*
12082  * Copyright 1993-2003 Sun Microsystems, Inc.  All rights reserved.
12083  * Use is subject to license terms.
12084  */
12085 /*
12086  * Copyright (c) 1990, 1993
12087  *	The Regents of the University of California.  All rights reserved.
12088  *
12089  * Redistribution and use in source and binary forms, with or without
12090  * modification, are permitted provided that the following conditions
12091  * are met:
12092  * 1. Redistributions of source code must retain the above copyright
12093  *    notice, this list of conditions and the following disclaimer.
12094  * 2. Redistributions in binary form must reproduce the above copyright
12095  *    notice, this list of conditions and the following disclaimer in the
12096  *    documentation and/or other materials provided with the distribution.
12097  * 3. All advertising materials mentioning features or use of this software
12098  *    must display the following acknowledgement:
12099  *	This product includes software developed by the University of
12100  *	California, Berkeley and its contributors.
12101  * 4. Neither the name of the University nor the names of its contributors
12102  *    may be used to endorse or promote products derived from this software
12103  *    without specific prior written permission.
12104  *
12105  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
12106  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12107  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
12108  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
12109  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
12110  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
12111  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12112  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
12113  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
12114  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
12115  * SUCH DAMAGE.
12116  */
12117 
12118 
12119 
12120 
12121 #pragma ident "%Z%%M%	%I%	%E% SMI"
12122 /* from UCB 8.1 (Berkeley) 6/10/93 */
12123 
12124 
12125 
12126 
12127 
12128 /*
12129  * A Link-Level Sockaddr may specify the interface in one of two
12130  * ways: either by means of a system-provided index number (computed
12131  * anew and possibly differently on every reboot), or by a human-readable
12132  * string such as "il0" (for managerial convenience).
12133  *
12134  * Census taking actions, such as something akin to SIOCGCONF would return
12135  * both the index and the human name.
12136  *
12137  * High volume transactions (such as giving a link-level ``from'' address
12138  * in a recvfrom or recvmsg call) may be likely only to provide the indexed
12139  * form, (which requires fewer copy operations and less space).
12140  *
12141  * The form and interpretation  of the link-level address is purely a matter
12142  * of convention between the device driver and its consumers; however, it is
12143  * expected that all drivers for an interface of a given if_type will agree.
12144  */
12145 
12146 /*
12147  * Structure of a Link-Level sockaddr:
12148  */
12149 struct sockaddr_dl {
12150  ushort_t sdl_family; /* AF_LINK */
12151  ushort_t sdl_index; /* if != 0, system given index for interface */
12152  uchar_t sdl_type; /* interface type */
12153  uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */
12154  uchar_t sdl_alen; /* link level address length */
12155  uchar_t sdl_slen; /* link layer selector length */
12156  char sdl_data[244]; /* contains both if name and ll address */
12157 };
12158 
12159 
12160 
12161 
12162 extern char *_link_ntoa(const unsigned char *, char *, int, int);
12163 extern unsigned char *_link_aton(const char *, int *);
12164 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
12165 
12166 
12167 
12168 /*
12169  * sockaddr_storage:
12170  * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr
12171  * structures. Has sufficient size and alignment for those sockaddrs.
12172  */
12173 
12174 /*
12175  * Desired maximum size, alignment size and related types.
12176  */
12177 
12178 
12179 /*
12180  * To represent desired sockaddr max alignment for platform, a
12181  * type is chosen which may depend on implementation platform architecture.
12182  * Type chosen based on alignment size restrictions from <sys/isa_defs.h>.
12183  * We desire to force up to (but no more than) 64-bit (8 byte) alignment,
12184  * on platforms where it is possible to do so. (e.g not possible on ia32).
12185  * For all currently supported platforms by our implementation
12186  * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64)
12187  * type "double" is suitable for that intent.
12188  *
12189  * Note: Type "double" is chosen over the more obvious integer type int64_t.
12190  *   int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32.
12191  */
12192 typedef double sockaddr_maxalign_t;
12193 
12194 
12195 
12196 /*
12197  * Definitions used for sockaddr_storage structure paddings design.
12198  */
12199 
12200 
12201 
12202 
12203 struct sockaddr_storage {
12204  sa_family_t ss_family; /* Address family */
12205  /* Following fields are implementation specific */
12206  char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))];
12207  sockaddr_maxalign_t _ss_align;
12208  char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))];
12209 };
12210 
12211 
12212 /*
12213  * To be compatible with the Linux interfaces used, this structure is
12214  * placed in socket_impl.h so that an include for <sys/socket.h> will
12215  * pickup this structure. This structure is for use with PF_PACKET
12216  * sockets.
12217  */
12218 struct sockaddr_ll {
12219  uint16_t sll_family;
12220  uint16_t sll_protocol;
12221  int32_t sll_ifindex;
12222  uint16_t sll_hatype;
12223  uint8_t sll_pkttype;
12224  uint8_t sll_halen;
12225  uint8_t sll_addr[8];
12226 };
12227 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
12228 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
12229 /*
12230  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12231  * Use is subject to license terms.
12232  *
12233  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
12234  */
12235 /*
12236  * Copyright (c) 1982, 1986 Regents of the University of California.
12237  * All rights reserved.
12238  *
12239  * Redistribution and use in source and binary forms are permitted
12240  * provided that this notice is preserved and that due credit is given
12241  * to the University of California at Berkeley. The name of the University
12242  * may not be used to endorse or promote products derived from this
12243  * software without specific prior written permission. This software
12244  * is provided ``as is'' without express or implied warranty.
12245  */
12246 
12247 /*
12248  * Constants and structures defined by the internet system,
12249  * according to following documents
12250  *
12251  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
12252  *	http://www.iana.org/assignments/protocol-numbers
12253  *	http://www.iana.org/assignments/port-numbers
12254  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
12255  *
12256  */
12257 
12258 
12259 
12260 
12261 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
12262 /*
12263  * CDDL HEADER START
12264  *
12265  * The contents of this file are subject to the terms of the
12266  * Common Development and Distribution License (the "License").
12267  * You may not use this file except in compliance with the License.
12268  *
12269  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12270  * or http://www.opensolaris.org/os/licensing.
12271  * See the License for the specific language governing permissions
12272  * and limitations under the License.
12273  *
12274  * When distributing Covered Code, include this CDDL HEADER in each
12275  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12276  * If applicable, add the following below this CDDL HEADER, with the
12277  * fields enclosed by brackets "[]" replaced with your own identifying
12278  * information: Portions Copyright [yyyy] [name of copyright owner]
12279  *
12280  * CDDL HEADER END
12281  */
12282 
12283 /*
12284  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
12285  * Copyright 2016 Joyent, Inc.
12286  *
12287  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
12288  * Use is subject to license terms.
12289  */
12290 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
12291 
12292 
12293 
12294 
12295 
12296 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
12297 /*
12298  * CDDL HEADER START
12299  *
12300  * The contents of this file are subject to the terms of the
12301  * Common Development and Distribution License (the "License").
12302  * You may not use this file except in compliance with the License.
12303  *
12304  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12305  * or http://www.opensolaris.org/os/licensing.
12306  * See the License for the specific language governing permissions
12307  * and limitations under the License.
12308  *
12309  * When distributing Covered Code, include this CDDL HEADER in each
12310  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12311  * If applicable, add the following below this CDDL HEADER, with the
12312  * fields enclosed by brackets "[]" replaced with your own identifying
12313  * information: Portions Copyright [yyyy] [name of copyright owner]
12314  *
12315  * CDDL HEADER END
12316  */
12317 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12318 /*	  All Rights Reserved  	*/
12319 
12320 
12321 /*
12322  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12323  * Use is subject to license terms.
12324  *
12325  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
12326  * Copyright 2016 Joyent, Inc.
12327  */
12328 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
12329 
12330 
12331 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
12332 /*
12333  * CDDL HEADER START
12334  *
12335  * The contents of this file are subject to the terms of the
12336  * Common Development and Distribution License (the "License").
12337  * You may not use this file except in compliance with the License.
12338  *
12339  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12340  * or http://www.opensolaris.org/os/licensing.
12341  * See the License for the specific language governing permissions
12342  * and limitations under the License.
12343  *
12344  * When distributing Covered Code, include this CDDL HEADER in each
12345  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12346  * If applicable, add the following below this CDDL HEADER, with the
12347  * fields enclosed by brackets "[]" replaced with your own identifying
12348  * information: Portions Copyright [yyyy] [name of copyright owner]
12349  *
12350  * CDDL HEADER END
12351  */
12352 /*
12353  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12354  * Use is subject to license terms.
12355  */
12356 
12357 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
12358 /*	  All Rights Reserved	*/
12359 
12360 /*
12361  * Portions of this source code were derived from Berkeley 4.3 BSD
12362  * under license from the Regents of the University of California.
12363  */
12364 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
12365 
12366 
12367 
12368 
12369 
12370 /*
12371  * The socklen definitions are reproduced here from sys/socket.h so as to
12372  * not introduce that namespace into existing users of netinet/in.h.
12373  */
12374 
12375 
12376 
12377 typedef uint32_t socklen_t;
12378 
12379 
12380 
12381 
12382 
12383 typedef void *Psocklen_t;
12384 
12385 
12386 
12387 
12388 
12389 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1
12390 /*
12391  * CDDL HEADER START
12392  *
12393  * The contents of this file are subject to the terms of the
12394  * Common Development and Distribution License (the "License").
12395  * You may not use this file except in compliance with the License.
12396  *
12397  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12398  * or http://www.opensolaris.org/os/licensing.
12399  * See the License for the specific language governing permissions
12400  * and limitations under the License.
12401  *
12402  * When distributing Covered Code, include this CDDL HEADER in each
12403  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12404  * If applicable, add the following below this CDDL HEADER, with the
12405  * fields enclosed by brackets "[]" replaced with your own identifying
12406  * information: Portions Copyright [yyyy] [name of copyright owner]
12407  *
12408  * CDDL HEADER END
12409  */
12410 /*
12411  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12412  * Use is subject to license terms.
12413  */
12414 
12415 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12416 /*	  All Rights Reserved  	*/
12417 
12418 
12419 
12420 
12421 
12422 /*
12423  * For source compatibility
12424  */
12425 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
12426 /*
12427  * CDDL HEADER START
12428  *
12429  * The contents of this file are subject to the terms of the
12430  * Common Development and Distribution License (the "License").
12431  * You may not use this file except in compliance with the License.
12432  *
12433  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12434  * or http://www.opensolaris.org/os/licensing.
12435  * See the License for the specific language governing permissions
12436  * and limitations under the License.
12437  *
12438  *
12439  * When distributing Covered Code, include this CDDL HEADER in each
12440  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12441  * If applicable, add the following below this CDDL HEADER, with the
12442  * fields enclosed by brackets "[]" replaced with your own identifying
12443  * information: Portions Copyright [yyyy] [name of copyright owner]
12444  *
12445  * CDDL HEADER END
12446  */
12447 
12448 /*
12449  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
12450  * Use is subject to license terms.
12451  * Copyright 2016 Joyent, Inc.
12452  */
12453 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
12454 
12455 
12456 
12457 
12458 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1
12459 /*
12460  * CDDL HEADER START
12461  *
12462  * The contents of this file are subject to the terms of the
12463  * Common Development and Distribution License, Version 1.0 only
12464  * (the "License").  You may not use this file except in compliance
12465  * with the License.
12466  *
12467  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12468  * or http://www.opensolaris.org/os/licensing.
12469  * See the License for the specific language governing permissions
12470  * and limitations under the License.
12471  *
12472  * When distributing Covered Code, include this CDDL HEADER in each
12473  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12474  * If applicable, add the following below this CDDL HEADER, with the
12475  * fields enclosed by brackets "[]" replaced with your own identifying
12476  * information: Portions Copyright [yyyy] [name of copyright owner]
12477  *
12478  * CDDL HEADER END
12479  */
12480 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12481 /*	  All Rights Reserved  	*/
12482 
12483 
12484 /*
12485  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12486  *
12487  * Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
12488  * All rights reserved.
12489  */
12490 
12491 /*
12492  * Copyright 2015, Joyent, Inc.
12493  */
12494 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
12495 /*
12496  * Structure of file descriptor/event pairs supplied in
12497  * the poll arrays.
12498  */
12499 typedef struct pollfd {
12500  int fd; /* file desc to poll */
12501  short events; /* events of interest on fd */
12502  short revents; /* events that occurred on fd */
12503 } pollfd_t;
12504 
12505 typedef unsigned long nfds_t;
12506 
12507 /*
12508  * Testable select events
12509  */
12510 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
12511 /*
12512  * Non-testable poll events (may not be specified in events field,
12513  * but may be returned in revents field).
12514  */
12515 
12516 
12517 
12518 
12519 /*
12520  * These events will never be specified in revents, but may be specified in
12521  * events to control /dev/poll behavior.
12522  */
12523 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
12524 int poll(struct pollfd *, nfds_t, int);
12525 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
12526 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1
12527 /*
12528  * CDDL HEADER START
12529  *
12530  * The contents of this file are subject to the terms of the
12531  * Common Development and Distribution License, Version 1.0 only
12532  * (the "License").  You may not use this file except in compliance
12533  * with the License.
12534  *
12535  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12536  * or http://www.opensolaris.org/os/licensing.
12537  * See the License for the specific language governing permissions
12538  * and limitations under the License.
12539  *
12540  * When distributing Covered Code, include this CDDL HEADER in each
12541  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12542  * If applicable, add the following below this CDDL HEADER, with the
12543  * fields enclosed by brackets "[]" replaced with your own identifying
12544  * information: Portions Copyright [yyyy] [name of copyright owner]
12545  *
12546  * CDDL HEADER END
12547  */
12548 /*
12549  * Copyright (c) 1997-1998 by Sun Microsystems, Inc.
12550  * All rights reserved.
12551  */
12552 
12553 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
12554 /*	  All Rights Reserved  	*/
12555 
12556 
12557 
12558 
12559 
12560 #pragma ident "%Z%%M%	%I%	%E% SMI"
12561 
12562 
12563 
12564 
12565 
12566 /*
12567  * This file contains all machine-dependent declarations
12568  * in STREAMS.
12569  */
12570 
12571 /*
12572  * Copy data from one data buffer to another.
12573  * The addresses must be word aligned - if not, use bcopy!
12574  */
12575 
12576 
12577 /*
12578  * save the address of the calling function on the 3b2 to
12579  * enable tracking of who is allocating message blocks
12580  */
12581 
12582 
12583 /*
12584  * macro to check pointer alignment
12585  * (true if alignment is sufficient for worst case)
12586  */
12587 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
12588 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
12589 /*
12590  * CDDL HEADER START
12591  *
12592  * The contents of this file are subject to the terms of the
12593  * Common Development and Distribution License (the "License").
12594  * You may not use this file except in compliance with the License.
12595  *
12596  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12597  * or http://www.opensolaris.org/os/licensing.
12598  * See the License for the specific language governing permissions
12599  * and limitations under the License.
12600  *
12601  * When distributing Covered Code, include this CDDL HEADER in each
12602  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12603  * If applicable, add the following below this CDDL HEADER, with the
12604  * fields enclosed by brackets "[]" replaced with your own identifying
12605  * information: Portions Copyright [yyyy] [name of copyright owner]
12606  *
12607  * CDDL HEADER END
12608  */
12609 /*
12610  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
12611  * Use is subject to license terms.
12612  */
12613 
12614 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
12615 /*	  All Rights Reserved  	*/
12616 
12617 /*
12618  * Portions of this source code were derived from Berkeley 4.3 BSD
12619  * under license from the Regents of the University of California.
12620  */
12621 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
12622 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
12623 /*
12624  * CDDL HEADER START
12625  *
12626  * The contents of this file are subject to the terms of the
12627  * Common Development and Distribution License, Version 1.0 only
12628  * (the "License").  You may not use this file except in compliance
12629  * with the License.
12630  *
12631  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12632  * or http://www.opensolaris.org/os/licensing.
12633  * See the License for the specific language governing permissions
12634  * and limitations under the License.
12635  *
12636  * When distributing Covered Code, include this CDDL HEADER in each
12637  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12638  * If applicable, add the following below this CDDL HEADER, with the
12639  * fields enclosed by brackets "[]" replaced with your own identifying
12640  * information: Portions Copyright [yyyy] [name of copyright owner]
12641  *
12642  * CDDL HEADER END
12643  */
12644 /*
12645  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
12646  * All rights reserved.
12647  */
12648 
12649 /*
12650  * t_lock.h:	Prototypes for disp_locks, plus include files
12651  *		that describe the interfaces to kernel synch.
12652  *		objects.
12653  */
12654 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
12655 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1
12656 /*
12657  * CDDL HEADER START
12658  *
12659  * The contents of this file are subject to the terms of the
12660  * Common Development and Distribution License, Version 1.0 only
12661  * (the "License").  You may not use this file except in compliance
12662  * with the License.
12663  *
12664  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12665  * or http://www.opensolaris.org/os/licensing.
12666  * See the License for the specific language governing permissions
12667  * and limitations under the License.
12668  *
12669  * When distributing Covered Code, include this CDDL HEADER in each
12670  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12671  * If applicable, add the following below this CDDL HEADER, with the
12672  * fields enclosed by brackets "[]" replaced with your own identifying
12673  * information: Portions Copyright [yyyy] [name of copyright owner]
12674  *
12675  * CDDL HEADER END
12676  */
12677 /*
12678  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
12679  * Use is subject to license terms.
12680  */
12681 
12682 
12683 
12684 
12685 #pragma ident "%Z%%M%	%I%	%E% SMI"
12686 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
12687 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
12688 /*
12689  * CDDL HEADER START
12690  *
12691  * The contents of this file are subject to the terms of the
12692  * Common Development and Distribution License (the "License").
12693  * You may not use this file except in compliance with the License.
12694  *
12695  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12696  * or http://www.opensolaris.org/os/licensing.
12697  * See the License for the specific language governing permissions
12698  * and limitations under the License.
12699  *
12700  *
12701  * When distributing Covered Code, include this CDDL HEADER in each
12702  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12703  * If applicable, add the following below this CDDL HEADER, with the
12704  * fields enclosed by brackets "[]" replaced with your own identifying
12705  * information: Portions Copyright [yyyy] [name of copyright owner]
12706  *
12707  * CDDL HEADER END
12708  */
12709 
12710 /*
12711  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
12712  * Use is subject to license terms.
12713  * Copyright 2016 Joyent, Inc.
12714  */
12715 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2
12716 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
12717 /*
12718  * XXX	Ick.  This type needs to be visible outside the above guard because
12719  * the proc structure is visible outside the _KERNEL | _KMEMUSER guard.
12720  * If we can make proc internals less visible, (which we obviously should)
12721  * then this can be invisible too.
12722  */
12723 typedef unsigned int model_t;
12724 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
12725 
12726 
12727 
12728 
12729 
12730 /*
12731  * Data queue.
12732  *
12733  * NOTE: The *only* public fields are documented in queue(9S).
12734  *       Everything else is implementation-private.
12735  *
12736  * The locking rules for the queue_t structure are extremely subtle and vary
12737  * widely depending on the field in question.  As such, each field is
12738  * annotated according to the following legend:
12739  *
12740  *   Q9S: The field is documented in queue(9S) and may be accessed without
12741  *        locks by a STREAMS module when inside an entry point (e.g., put(9E)).
12742  *        However, no fields can be directly modified unless q_lock is held
12743  *        (which is not possible in a DDI compliant STREAMS module), with the
12744  *        following exceptions:
12745  *
12746  *	   - q_ptr: can be modified as per the rules of the STREAMS module.
12747  *		    The STREAMS framework ignores q_ptr and thus imposes *no*
12748  *		    locking rules on it.
12749  *         - q_qinfo: can be modified before qprocson().
12750  *
12751  *	   - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the
12752  *		    rules of the STREAMS module.  The STREAMS framework never
12753  *		    modifies these fields, and is tolerant of temporarily
12754  *		    stale field values.
12755  *
12756  *	  In general, the STREAMS framework employs one of the following
12757  *	  techniques to ensure STREAMS modules can safely access Q9S fields:
12758  *
12759  *	   - The field is only modified by the framework when the stream is
12760  *	     locked with strlock() (q_next).
12761  *
12762  *	   - The field is modified by the framework, but the modifies are
12763  *	     atomic, and temporarily stale values are harmless (q_count,
12764  *	     q_first, q_last).
12765  *
12766  *	   - The field is modified by the framework, but the field's visible
12767  *	     values are either constant or directly under the control
12768  *	     of the STREAMS module itself (q_flag).
12769  *
12770  *   QLK: The field must be accessed or modified under q_lock, except when
12771  *        the stream has been locked with strlock().  If multiple q_locks must
12772  *        be acquired, q_locks at higher addresses must be taken first.
12773  *
12774  *   STR: The field can be accessed without a lock, but must be modified under
12775  *	  strlock().
12776  *
12777  *   SQLK: The field must be accessed or modified under SQLOCK().
12778  *
12779  *   NOLK: The field can be accessed without a lock, but can only be modified
12780  *	   when the queue_t is not known to any other threads.
12781  *
12782  *   SVLK: The field must be accessed or modified under the service_queue lock.
12783  *         Note that service_lock must be taken after any needed q_locks,
12784  *	   and that no other lock should be taken while service_lock is held.
12785  *
12786  * In addition, it is always acceptable to modify a field that is not yet
12787  * known to any other threads -- and other special case exceptions exist in
12788  * the code.  Also, q_lock is used with q_wait to implement a stream head
12789  * monitor for reads and writes.
12790  */
12791 typedef struct queue {
12792  struct qinit *q_qinfo; /* Q9S: Q processing procedure  */
12793  struct msgb *q_first; /* Q9S: first message in Q	*/
12794  struct msgb *q_last; /* Q9S: last message in Q	*/
12795  struct queue *q_next; /* Q9S: next Q in stream	*/
12796  struct queue *q_link; /* SVLK: next Q for scheduling	*/
12797  void *q_ptr; /* Q9S: module-specific data	*/
12798  size_t q_count; /* Q9S: number of bytes on Q	*/
12799  uint_t q_flag; /* Q9S: Q state			*/
12800  ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */
12801  ssize_t q_maxpsz; /* Q9S: largest packet OK on Q	*/
12802  size_t q_hiwat; /* Q9S: Q high water mark	*/
12803  size_t q_lowat; /* Q9S: Q low water mark	*/
12804  struct qband *q_bandp; /* QLK: band flow information	*/
12805  kmutex_t q_lock; /* NOLK: structure lock		*/
12806  struct stdata *q_stream; /* NOLK: stream backpointer	*/
12807  struct syncq *q_syncq; /* NOLK: associated syncq 	*/
12808  unsigned char q_nband; /* QLK: number of bands		*/
12809  kcondvar_t q_wait; /* NOLK: read/write sleep CV	*/
12810  struct queue *q_nfsrv; /* STR: next Q with svc routine */
12811  ushort_t q_draining; /* QLK: Q is draining		*/
12812  short q_struiot; /* QLK: sync streams Q UIO mode	*/
12813  clock_t q_qtstamp; /* QLK: when Q was enabled	*/
12814  size_t q_mblkcnt; /* QLK: mblk count		*/
12815  uint_t q_syncqmsgs; /* QLK: syncq message count	*/
12816  size_t q_rwcnt; /* QLK: # threads in rwnext()	*/
12817  pri_t q_spri; /* QLK: Q scheduling priority	*/
12818 
12819  /*
12820 	 * Syncq scheduling
12821 	 */
12822  struct msgb *q_sqhead; /* QLK: first syncq message	*/
12823  struct msgb *q_sqtail; /* QLK: last syncq message 	*/
12824  struct queue *q_sqnext; /* SQLK: next Q on syncq list	*/
12825  struct queue *q_sqprev; /* SQLK: prev Q on syncq list 	*/
12826  uint_t q_sqflags; /* SQLK: syncq flags		*/
12827  clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */
12828 
12829  /*
12830 	 * NOLK: Reference to the queue's module's implementation
12831 	 * structure. This will be NULL for queues associated with drivers.
12832 	 */
12833  struct fmodsw_impl *q_fp;
12834 } queue_t;
12835 
12836 /*
12837  * Queue flags; unused flags not documented in queue(9S) can be recycled.
12838  */
12839 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
12840 /*	UNUSED		0x00000200	   was QHLIST			*/
12841 /* 	UNUSED 		0x00000400	   was QUNSAFE			*/
12842 
12843 
12844 
12845 
12846 
12847 
12848      /* all MT type flags		*/
12849 
12850 
12851 
12852 
12853 
12854 
12855 /*	UNUSED		0x00400000	   was QHOT			*/
12856 /*	UNUSED		0x00800000	   was QNEXTHOT			*/
12857 /* 	UNUSED		0x01000000	   was _QNEXTLESS		*/
12858 
12859 
12860 
12861 
12862      /* direct interface to/from sockfs */
12863 
12864 /* queue sqflags (protected by SQLOCK). */
12865 
12866 
12867      /* This is also noted by the	*/
12868      /* q_draining field, but this one is */
12869      /* protected by SQLOCK */
12870 
12871 /*
12872  * Structure that describes the separate information
12873  * for each priority band in the queue.
12874  */
12875 typedef struct qband {
12876  struct qband *qb_next; /* next band's info */
12877  size_t qb_count; /* number of bytes in band */
12878  struct msgb *qb_first; /* beginning of band's data */
12879  struct msgb *qb_last; /* end of band's data */
12880  size_t qb_hiwat; /* high water mark for band */
12881  size_t qb_lowat; /* low water mark for band */
12882  uint_t qb_flag; /* see below */
12883  size_t qb_mblkcnt; /* mblk counter for runaway msgs */
12884 } qband_t;
12885 
12886 /*
12887  * qband flags
12888  */
12889 
12890 
12891 
12892 
12893 /*
12894  * Maximum number of bands.
12895  */
12896 
12897 
12898 /*
12899  * Fields that can be manipulated through strqset() and strqget().
12900  */
12901 typedef enum qfields {
12902  QHIWAT = 0, /* q_hiwat or qb_hiwat */
12903  QLOWAT = 1, /* q_lowat or qb_lowat */
12904  QMAXPSZ = 2, /* q_maxpsz */
12905  QMINPSZ = 3, /* q_minpsz */
12906  QCOUNT = 4, /* q_count or qb_count */
12907  QFIRST = 5, /* q_first or qb_first */
12908  QLAST = 6, /* q_last or qb_last */
12909  QFLAG = 7, /* q_flag or qb_flag */
12910  QSTRUIOT = 8, /* q_struiot */
12911  QBAD = 9
12912 } qfields_t;
12913 
12914 /*
12915  * Module information structure
12916  */
12917 struct module_info {
12918  ushort_t mi_idnum; /* module id number */
12919  char *mi_idname; /* module name */
12920  ssize_t mi_minpsz; /* min packet size accepted */
12921  ssize_t mi_maxpsz; /* max packet size accepted */
12922  size_t mi_hiwat; /* hi-water mark */
12923  size_t mi_lowat; /* lo-water mark */
12924 };
12925 
12926 /*
12927  * queue information structure (with Synchronous STREAMS extensions)
12928  */
12929 struct qinit {
12930  int (*qi_putp)(); /* put procedure */
12931  int (*qi_srvp)(); /* service procedure */
12932  int (*qi_qopen)(); /* called on startup */
12933  int (*qi_qclose)(); /* called on finish */
12934  int (*qi_qadmin)(); /* for future use */
12935  struct module_info *qi_minfo; /* module information structure */
12936  struct module_stat *qi_mstat; /* module statistics structure */
12937  int (*qi_rwp)(); /* r/w procedure */
12938  int (*qi_infop)(); /* information procedure */
12939  int qi_struiot; /* stream uio type for struio() */
12940 };
12941 
12942 /*
12943  * Values for qi_struiot and q_struiot:
12944  */
12945 
12946 
12947 
12948 
12949 /*
12950  * Streamtab (used in cdevsw and fmodsw to point to module or driver)
12951  */
12952 struct streamtab {
12953  struct qinit *st_rdinit;
12954  struct qinit *st_wrinit;
12955  struct qinit *st_muxrinit;
12956  struct qinit *st_muxwinit;
12957 };
12958 
12959 /*
12960  * Structure sent to mux drivers to indicate a link.
12961  */
12962 struct linkblk {
12963  queue_t *l_qtop; /* lowest level write queue of upper stream */
12964     /* (set to NULL for persistent links) */
12965  queue_t *l_qbot; /* highest level write queue of lower stream */
12966  int l_index; /* index for lower stream. */
12967 };
12968 
12969 /*
12970  * Esballoc data buffer freeing routine
12971  */
12972 typedef struct free_rtn {
12973  void (*free_func)();
12974  caddr_t free_arg;
12975 } frtn_t;
12976 
12977 /*
12978  * Data block descriptor
12979  *
12980  * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields,
12981  * as described in datab(9S).  Everything else is implementation-private.
12982  */
12983 
12984 
12985 
12986 typedef struct datab {
12987  frtn_t *db_frtnp;
12988  unsigned char *db_base;
12989  unsigned char *db_lim;
12990  unsigned char db_ref;
12991  unsigned char db_type;
12992  unsigned char db_flags;
12993  unsigned char db_struioflag;
12994  pid_t db_cpid; /* cached pid, needs verification */
12995  void *db_cache; /* kmem cache descriptor */
12996  struct msgb *db_mblk;
12997  void (*db_free)(struct msgb *, struct datab *);
12998  void (*db_lastfree)(struct msgb *, struct datab *);
12999  intptr_t db_cksumstart;
13000  intptr_t db_cksumend;
13001  intptr_t db_cksumstuff;
13002  union {
13003   double enforce_alignment;
13004   unsigned char data[8];
13005   struct {
13006    union {
13007     uint32_t u32;
13008     uint16_t u16;
13009    } cksum_val; /* used to store calculated cksum */
13010    uint16_t flags;
13011    uint16_t pad;
13012   } cksum;
13013   /*
13014 		 * Union used for future extensions (pointer to data ?).
13015 		 */
13016  } db_struioun;
13017  struct fthdr *db_fthdr;
13018  cred_t *db_credp; /* credential */
13019 } dblk_t;
13020 
13021 
13022 
13023 
13024 /*
13025  * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>).
13026  */
13027 
13028 
13029 
13030 /*
13031  * Used by GLDv2 to store the TCI information.
13032  */
13033 
13034 
13035 /*
13036  * Message block descriptor
13037  */
13038 typedef struct msgb {
13039  struct msgb *b_next;
13040  struct msgb *b_prev;
13041  struct msgb *b_cont;
13042  unsigned char *b_rptr;
13043  unsigned char *b_wptr;
13044  struct datab *b_datap;
13045  unsigned char b_band;
13046  unsigned char b_tag;
13047  unsigned short b_flag;
13048  queue_t *b_queue; /* for sync queues */
13049 } mblk_t;
13050 
13051 /*
13052  * bcache descriptor
13053  */
13054 typedef struct bcache {
13055  kmutex_t mutex;
13056  struct kmem_cache *buffer_cache;
13057  struct kmem_cache *dblk_cache;
13058  int alloc;
13059  int destroy;
13060  size_t size;
13061  uint_t align;
13062 } bcache_t;
13063 
13064 /*
13065  * db_flags values (all implementation private!)
13066  */
13067 
13068 
13069 
13070 
13071 /*
13072  * db_struioflag values:
13073  */
13074 
13075 
13076 
13077 
13078 
13079 
13080 /*
13081  * Message flags.  These are interpreted by the stream head.
13082  */
13083 
13084 
13085     /* write side of stream */
13086 
13087 /*	UNUSED		0x08	   was MSGNOGET (can be recycled) */
13088 
13089 
13090 
13091 
13092 /*
13093  * Streams message types.
13094  */
13095 
13096 /*
13097  * Data and protocol messages (regular and priority)
13098  */
13099 
13100 
13101 
13102 
13103 /*
13104  * Control messages (regular and priority)
13105  */
13106 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
13107 /*
13108  * Control messages (high priority; go to head of queue)
13109  */
13110 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
13111 /*
13112  * Queue message class definitions.
13113  */
13114 
13115 
13116 
13117 /*
13118  *  IOCTL structure - this structure is the format of the M_IOCTL message type.
13119  */
13120 
13121 struct iocblk {
13122  int ioc_cmd; /* ioctl command type */
13123  cred_t *ioc_cr; /* full credentials */
13124  uint_t ioc_id; /* ioctl id */
13125  uint_t ioc_flag; /* see below */
13126  size_t ioc_count; /* count of bytes in data field */
13127  int ioc_rval; /* return value  */
13128  int ioc_error; /* error code */
13129 };
13130 # 501 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
13131 typedef struct iocblk *IOCP;
13132 
13133 /* {ioc,cp}_flags values */
13134 
13135 
13136 
13137 
13138 
13139 
13140 
13141 /*
13142  *	Is the ioctl data formatted for our native model?
13143  */
13144 
13145 
13146 
13147 /*
13148  * structure for the M_COPYIN and M_COPYOUT message types.
13149  */
13150 
13151 struct copyreq {
13152  int cq_cmd; /* ioctl command (from ioc_cmd) */
13153  cred_t *cq_cr; /* full credentials (from ioc_cmd) */
13154  uint_t cq_id; /* ioctl id (from ioc_id) */
13155  uint_t cq_flag; /* must be zero */
13156  mblk_t *cq_private; /* private state information */
13157  caddr_t cq_addr; /* address to copy data to/from */
13158  size_t cq_size; /* number of bytes to copy */
13159 };
13160 # 543 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
13161 /*
13162  * structure for the M_IOCDATA message type.
13163  */
13164 
13165 struct copyresp {
13166  int cp_cmd; /* ioctl command (from ioc_cmd) */
13167  cred_t *cp_cr; /* full credentials (from ioc_cmd) */
13168  uint_t cp_id; /* ioctl id (from ioc_id) */
13169  uint_t cp_flag; /* datamodel IOC_ flags; see above */
13170  mblk_t *cp_private; /* private state information */
13171  caddr_t cp_rval; /* status of request: 0 -> success */
13172      /* 		non-zero -> failure */
13173 };
13174 # 571 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
13175 /*
13176  * Since these structures are all intended to travel in the same message
13177  * at different stages of a STREAMS ioctl, this union is used to determine
13178  * the message size in strdoioctl().
13179  */
13180 union ioctypes {
13181  struct iocblk iocblk;
13182  struct copyreq copyreq;
13183  struct copyresp copyresp;
13184 };
13185 
13186 /*
13187  * Options structure for M_SETOPTS message.  This is sent upstream
13188  * by a module or driver to set stream head options.
13189  */
13190 struct stroptions {
13191  uint_t so_flags; /* options to set */
13192  short so_readopt; /* read option */
13193  ushort_t so_wroff; /* write offset */
13194  ssize_t so_minpsz; /* minimum read packet size */
13195  ssize_t so_maxpsz; /* maximum read packet size */
13196  size_t so_hiwat; /* read queue high water mark */
13197  size_t so_lowat; /* read queue low water mark */
13198  unsigned char so_band; /* band for water marks */
13199  ushort_t so_erropt; /* error option */
13200  ssize_t so_maxblk; /* maximum message block size */
13201  ushort_t so_copyopt; /* copy options (see stropts.h) */
13202  ushort_t so_tail; /* space available at the end */
13203 };
13204 
13205 /* flags for stream options set message */
13206 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
13207 /*
13208  * Miscellaneous parameters and flags.
13209  */
13210 
13211 /*
13212  * Values for stream flag in open to indicate module open, clone open,
13213  * and the return value for failure.
13214  */
13215 
13216 
13217 
13218 
13219 /*
13220  * Priority definitions for block allocation.
13221  */
13222 
13223 
13224 
13225 
13226 /*
13227  * Value for packet size that denotes infinity
13228  */
13229 
13230 
13231 /*
13232  * Flags for flushq()
13233  */
13234 
13235 
13236 
13237 /*
13238  * Flag for transparent ioctls
13239  */
13240 
13241 
13242 /*
13243  * Stream head default high/low water marks
13244  */
13245 
13246 
13247 
13248 /*
13249  * qwriter perimeter types
13250  */
13251 
13252 
13253 
13254 /*
13255  * Definitions of Streams macros and function interfaces.
13256  */
13257 
13258 /*
13259  * canenable - check if queue can be enabled by putq().
13260  */
13261 
13262 
13263 /*
13264  * Test if data block type is one of the data messages (i.e. not a control
13265  * message).
13266  */
13267 
13268 
13269 
13270 
13271 
13272 
13273 
13274 /*
13275  * Extract queue class of message block.
13276  */
13277 
13278 
13279 /*
13280  * Align address on next lower word boundary.
13281  */
13282 
13283 
13284 /*
13285  * Find the max size of data block.
13286  */
13287 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
13288 
13289 /*
13290  * Symbols such as htonl() are required to be exposed through this file,
13291  * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h>
13292  */
13293 
13294 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1
13295 /*
13296  * CDDL HEADER START
13297  *
13298  * The contents of this file are subject to the terms of the
13299  * Common Development and Distribution License (the "License").
13300  * You may not use this file except in compliance with the License.
13301  *
13302  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13303  * or http://www.opensolaris.org/os/licensing.
13304  * See the License for the specific language governing permissions
13305  * and limitations under the License.
13306  *
13307  * When distributing Covered Code, include this CDDL HEADER in each
13308  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13309  * If applicable, add the following below this CDDL HEADER, with the
13310  * fields enclosed by brackets "[]" replaced with your own identifying
13311  * information: Portions Copyright [yyyy] [name of copyright owner]
13312  *
13313  * CDDL HEADER END
13314  */
13315 
13316 /*
13317  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
13318  * Use is subject to license terms.
13319  */
13320 
13321 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
13322 /*	  All Rights Reserved  	*/
13323 
13324 /*
13325  * University Copyright- Copyright (c) 1982, 1986, 1988
13326  * The Regents of the University of California
13327  * All Rights Reserved
13328  *
13329  * University Acknowledgment- Portions of this document are derived from
13330  * software developed by the University of California, Berkeley, and its
13331  * contributors.
13332  */
13333 
13334 
13335 
13336 
13337 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
13338 /*
13339  * CDDL HEADER START
13340  *
13341  * The contents of this file are subject to the terms of the
13342  * Common Development and Distribution License (the "License").
13343  * You may not use this file except in compliance with the License.
13344  *
13345  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13346  * or http://www.opensolaris.org/os/licensing.
13347  * See the License for the specific language governing permissions
13348  * and limitations under the License.
13349  *
13350  *
13351  * When distributing Covered Code, include this CDDL HEADER in each
13352  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13353  * If applicable, add the following below this CDDL HEADER, with the
13354  * fields enclosed by brackets "[]" replaced with your own identifying
13355  * information: Portions Copyright [yyyy] [name of copyright owner]
13356  *
13357  * CDDL HEADER END
13358  */
13359 
13360 /*
13361  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
13362  * Use is subject to license terms.
13363  * Copyright 2016 Joyent, Inc.
13364  */
13365 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
13366 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_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, Version 1.0 only
13372  * (the "License").  You may not use this file except in compliance
13373  * with the License.
13374  *
13375  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13376  * or http://www.opensolaris.org/os/licensing.
13377  * See the License for the specific language governing permissions
13378  * and limitations under the License.
13379  *
13380  * When distributing Covered Code, include this CDDL HEADER in each
13381  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
13382  * If applicable, add the following below this CDDL HEADER, with the
13383  * fields enclosed by brackets "[]" replaced with your own identifying
13384  * information: Portions Copyright [yyyy] [name of copyright owner]
13385  *
13386  * CDDL HEADER END
13387  */
13388 /*
13389  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
13390  *
13391  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
13392  * Use is subject to license terms.
13393  */
13394 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
13395 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
13396 /*
13397  * macros for conversion between host and (internet) network byte order
13398  */
13399 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
13400 typedef uint16_t in_port_t;
13401 
13402 
13403 
13404 
13405 typedef uint32_t in_addr_t;
13406 
13407 
13408 
13409 extern uint32_t htonl(uint32_t);
13410 extern uint16_t htons(uint16_t);
13411 extern uint32_t ntohl(uint32_t);
13412 extern uint16_t ntohs(uint16_t);
13413 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
13414 extern uint64_t htonll(uint64_t);
13415 extern uint64_t ntohll(uint64_t);
13416 
13417 
13418 
13419 
13420 
13421 
13422 /*
13423  * Macros to reverse byte order
13424  */
13425 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
13426 /*
13427  * Macros to convert from a specific byte order to/from native byte order
13428  */
13429 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
13430 /*
13431  * Macros to read unaligned values from a specific byte order to
13432  * native byte order
13433  */
13434 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
13435 /*
13436  * Macros to write unaligned values from native byte order to a specific byte
13437  * order.
13438  */
13439 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
13440 
13441 
13442 
13443 
13444 
13445 
13446 
13447 /*
13448  * Note: IPv4 address data structures usage conventions.
13449  * The "in_addr_t" type below (required by Unix standards)
13450  * is NOT a typedef of "struct in_addr" and violates the usual
13451  * conventions where "struct <name>" and <name>_t are corresponding
13452  * typedefs.
13453  * To minimize confusion, kernel data structures/usage prefers use
13454  * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t"
13455  * The user level APIs continue to follow the historic popular
13456  * practice of using "struct in_addr".
13457  */
13458 
13459 
13460 
13461 
13462 
13463 
13464 
13465 typedef uint32_t ipaddr_t;
13466 
13467 
13468 
13469 
13470 struct in6_addr {
13471  union {
13472   /*
13473 		 * Note: Static initalizers of "union" type assume
13474 		 * the constant on the RHS is the type of the first member
13475 		 * of union.
13476 		 * To make static initializers (and efficient usage) work,
13477 		 * the order of members exposed to user and kernel view of
13478 		 * this data structure is different.
13479 		 * User environment sees specified uint8_t type as first
13480 		 * member whereas kernel sees most efficient type as
13481 		 * first member.
13482 		 */
13483 
13484 
13485 
13486 
13487   uint8_t _S6_u8[16]; /* IPv6 address */
13488   uint32_t _S6_u32[4]; /* IPv6 address */
13489 
13490   uint32_t __S6_align; /* Align on 32 bit boundary */
13491  } _S6_un;
13492 };
13493 
13494 
13495 
13496 
13497 
13498 
13499 
13500 typedef struct in6_addr in6_addr_t;
13501 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13502 /*
13503  * Protocols
13504  *
13505  * Some of these constant names are copied for the DTrace IP provider in
13506  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
13507  * in sync.
13508  */
13509 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13510       /* Transmission Protocol */
13511 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13512 /*
13513  * Port/socket numbers: network standard functions
13514  *
13515  * Entries should exist here for each port number compiled into an ON
13516  * component, such as snoop.
13517  */
13518 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13519 /*
13520  * Port/socket numbers: host specific functions
13521  */
13522 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13523 /*
13524  * Internet Key Exchange (IKE) ports
13525  */
13526 
13527 
13528 
13529 /*
13530  * UNIX TCP sockets
13531  */
13532 
13533 
13534 
13535 
13536 
13537 
13538 /*
13539  * UNIX UDP sockets
13540  */
13541 
13542 
13543 
13544 
13545 
13546 
13547 
13548 /*
13549  * DHCPv6 UDP ports
13550  */
13551 
13552 
13553 
13554 
13555 
13556 /*
13557  * Ports < IPPORT_RESERVED are reserved for
13558  * privileged processes (e.g. root).
13559  * Ports > IPPORT_USERRESERVED are reserved
13560  * for servers, not necessarily privileged.
13561  */
13562 
13563 
13564 
13565 /*
13566  * Link numbers
13567  */
13568 
13569 
13570 
13571 
13572 /*
13573  * IPv4 Internet address
13574  *	This definition contains obsolete fields for compatibility
13575  *	with SunOS 3.x and 4.2bsd.  The presence of subnets renders
13576  *	divisions into fixed fields misleading at best.  New code
13577  *	should use only the s_addr field.
13578  */
13579 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13580 struct in_addr {
13581  union {
13582   struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b;
13583   struct { uint16_t s_w1, s_w2; } S_un_w;
13584 
13585   uint32_t S_addr;
13586 
13587 
13588 
13589  } S_un;
13590 
13591 
13592 
13593 
13594 
13595 
13596 };
13597 
13598 /*
13599  * Definitions of bits in internet address integers.
13600  * On subnets, the decomposition of addresses to host and net parts
13601  * is done according to subnet mask, not the masks here.
13602  *
13603  * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB,
13604  * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto
13605  * obsolete". IN_MULTICAST macro should be used to test if a address
13606  * is a multicast address.
13607  */
13608 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13609 /*
13610  * We have removed CLASS E checks from the kernel
13611  * But we preserve these defines for userland in order
13612  * to avoid compile  breakage of some 3rd party piece of software
13613  */
13614 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13615 /* Scoped IPv4 prefixes (in host byte-order) */
13616 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13617 /* RFC 3927 IPv4 link local address (i in host byte-order) */
13618 
13619 
13620 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */
13621 
13622 
13623 
13624 
13625 
13626 
13627 /*
13628  * Define a macro to stuff the loopback address into an Internet address
13629  */
13630 
13631 
13632 
13633 
13634 
13635 
13636 /*
13637  * IPv4 Socket address.
13638  */
13639 struct sockaddr_in {
13640  sa_family_t sin_family;
13641  in_port_t sin_port;
13642  struct in_addr sin_addr;
13643 
13644  char sin_zero[8];
13645 
13646 
13647 
13648 };
13649 
13650 
13651 /*
13652  * IPv6 socket address.
13653  */
13654 struct sockaddr_in6 {
13655  sa_family_t sin6_family;
13656  in_port_t sin6_port;
13657  uint32_t sin6_flowinfo;
13658  struct in6_addr sin6_addr;
13659  uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */
13660  uint32_t __sin6_src_id; /* Impl. specific - UDP replies */
13661 };
13662 
13663 /*
13664  * Macros for accessing the traffic class and flow label fields from
13665  * sin6_flowinfo.
13666  * These are designed to be applied to a 32-bit value.
13667  */
13668 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13669 /* masks */
13670 
13671 
13672 
13673 
13674 
13675 /*
13676  * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for
13677  * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t)
13678  * only. They need to be different for User/Kernel versions because union
13679  * component data structure is defined differently (it is identical at
13680  * binary representation level).
13681  *
13682  * const struct in6_addr IN6ADDR_ANY_INIT;
13683  * const struct in6_addr IN6ADDR_LOOPBACK_INIT;
13684  */
13685 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13686 /*
13687  * RFC 2553 specifies the following macros. Their type is defined
13688  * as "int" in the RFC but they only have boolean significance
13689  * (zero or non-zero). For the purposes of our comment notation,
13690  * we assume a hypothetical type "bool" defined as follows to
13691  * write the prototypes assumed for macros in our comments better.
13692  *
13693  * typedef int bool;
13694  */
13695 
13696 /*
13697  * IN6 macros used to test for special IPv6 addresses
13698  * (Mostly from spec)
13699  *
13700  * bool  IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
13701  * bool  IN6_IS_ADDR_LOOPBACK    (const struct in6_addr *);
13702  * bool  IN6_IS_ADDR_MULTICAST   (const struct in6_addr *);
13703  * bool  IN6_IS_ADDR_LINKLOCAL   (const struct in6_addr *);
13704  * bool  IN6_IS_ADDR_SITELOCAL   (const struct in6_addr *);
13705  * bool  IN6_IS_ADDR_V4MAPPED    (const struct in6_addr *);
13706  * bool  IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553
13707  * bool  IN6_IS_ADDR_V4COMPAT    (const struct in6_addr *);
13708  * bool  IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553
13709  * bool  IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
13710  * bool  IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
13711  * bool  IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
13712  * bool  IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
13713  * bool  IN6_IS_ADDR_MC_GLOBAL   (const struct in6_addr *);
13714  * bool  IN6_IS_ADDR_6TO4	 (const struct in6_addr *); -- Not from RFC2553
13715  * bool  IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *,
13716  *	     const struct in6_addr *);			    -- Not from RFC2553
13717  * bool  IN6_IS_ADDR_LINKSCOPE	 (const struct in6addr  *); -- Not from RFC2553
13718  */
13719 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13720 /*
13721  * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY
13722  * Note: This macro is currently NOT defined in RFC2553 specification
13723  * and not a standard macro that portable applications should use.
13724  */
13725 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13726 /* Exclude loopback and unspecified address */
13727 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13728 /*
13729  * Note:
13730  * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553
13731  * specification and not a standard macro that portable applications
13732  * should use.
13733  */
13734 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13735 /*
13736  * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or
13737  * RFC, and shouldn't be used by portable applications.  It is used to see
13738  * if an address is a solicited-node multicast address, which is prefixed
13739  * with ff02:0:0:0:0:1:ff00::/104.
13740  */
13741 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13742 /*
13743  * Macros to a) test for 6to4 IPv6 address, and b) to test if two
13744  * 6to4 addresses have the same /48 prefix, and, hence, are from the
13745  * same 6to4 site.
13746  */
13747 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13748 /*
13749  * IN6_IS_ADDR_LINKSCOPE
13750  * Identifies an address as being either link-local, link-local multicast or
13751  * node-local multicast.  All types of addresses are considered to be unique
13752  * within the scope of a given link.
13753  */
13754 
13755 
13756 
13757 
13758 /*
13759  * Useful utility macros for operations with IPv6 addresses
13760  * Note: These macros are NOT defined in the RFC2553 or any other
13761  * standard specification and are not standard macros that portable
13762  * applications should use.
13763  */
13764 
13765 /*
13766  * IN6_V4MAPPED_TO_INADDR
13767  * IN6_V4MAPPED_TO_IPADDR
13768  *	Assign a IPv4-Mapped IPv6 address to an IPv4 address.
13769  *	Note: These macros are NOT defined in RFC2553 or any other standard
13770  *	specification and are not macros that portable applications should
13771  *	use.
13772  *
13773  * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4);
13774  * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4);
13775  *
13776  */
13777 
13778 
13779 
13780 
13781 
13782 /*
13783  * IN6_INADDR_TO_V4MAPPED
13784  * IN6_IPADDR_TO_V4MAPPED
13785  *	Assign a IPv4 address address to an IPv6 address as a IPv4-mapped
13786  *	address.
13787  *	Note: These macros are NOT defined in RFC2553 or any other standard
13788  *	specification and are not macros that portable applications should
13789  *	use.
13790  *
13791  * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6);
13792  * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6);
13793  *
13794  */
13795 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13796 /*
13797  * IN6_6TO4_TO_V4ADDR
13798  *	Extract the embedded IPv4 address from the prefix to a 6to4 IPv6
13799  *      address.
13800  *	Note: This macro is NOT defined in RFC2553 or any other standard
13801  *	specification and is not a macro that portable applications should
13802  *	use.
13803  *	Note: we don't use the IPADDR form of the macro because we need
13804  *	to do a bytewise copy; the V4ADDR in the 6to4 address is not
13805  *	32-bit aligned.
13806  *
13807  * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4);
13808  *
13809  */
13810 
13811 
13812 
13813 
13814 
13815 
13816 /*
13817  * IN6_V4ADDR_TO_6TO4
13818  *	Given an IPv4 address and an IPv6 address for output, a 6to4 address
13819  *	will be created from the IPv4 Address.
13820  *	Note:  This method for creating 6to4 addresses is not standardized
13821  *	outside of Solaris.  The newly created 6to4 address will be of the form
13822  *	2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and
13823  *	HOSTID will equal 1.
13824  *
13825  * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6)
13826  *
13827  */
13828 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13829 /*
13830  * IN6_ARE_ADDR_EQUAL (defined in RFC2292)
13831  *	 Compares if IPv6 addresses are equal.
13832  * Note: Compares in order of high likelyhood of a miss so we minimize
13833  * compares. (Current heuristic order, compare in reverse order of
13834  * uint32_t units)
13835  *
13836  * bool  IN6_ARE_ADDR_EQUAL(const struct in6_addr *,
13837  *			    const struct in6_addr *);
13838  */
13839 
13840 
13841 
13842 
13843 
13844 
13845 /*
13846  * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs)
13847  *	Compares if prefixed parts of IPv6 addresses are equal.
13848  *
13849  * uint32_t IN6_MASK_FROM_PREFIX(int, int);
13850  * bool     IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *,
13851  *				       const struct in6_addr *,
13852  *				       int);
13853  */
13854 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13855 /*
13856  * Options for use with [gs]etsockopt at the IP level.
13857  *
13858  * Note: Some of the IP_ namespace has conflict with and
13859  * and is exposed through <xti.h>. (It also requires exposing
13860  * options not implemented). The options with potential
13861  * for conflicts use #ifndef guards.
13862  */
13863 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13864 /*
13865  * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in
13866  * is used to differentiate b/w the two.
13867  */
13868 
13869 
13870 
13871 
13872 
13873 /*
13874  * Different preferences that can be requested from IPSEC protocols.
13875  */
13876 
13877 
13878 
13879 
13880 /*
13881  * This can be used with the setsockopt() call to set per socket security
13882  * options. When the application uses per-socket API, we will reflect
13883  * the request on both outbound and inbound packets.
13884  */
13885 
13886 typedef struct ipsec_req {
13887  uint_t ipsr_ah_req; /* AH request */
13888  uint_t ipsr_esp_req; /* ESP request */
13889  uint_t ipsr_self_encap_req; /* Self-Encap request */
13890  uint8_t ipsr_auth_alg; /* Auth algs for AH */
13891  uint8_t ipsr_esp_alg; /* Encr algs for ESP */
13892  uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */
13893 } ipsec_req_t;
13894 
13895 /*
13896  * MCAST_* options are protocol-independent.  The actual definitions
13897  * are with the v6 options below; this comment is here to note the
13898  * namespace usage.
13899  *
13900  * #define	MCAST_JOIN_GROUP	0x29
13901  * #define	MCAST_LEAVE_GROUP	0x2a
13902  * #define	MCAST_BLOCK_SOURCE	0x2b
13903  * #define	MCAST_UNBLOCK_SOURCE	0x2c
13904  * #define	MCAST_JOIN_SOURCE_GROUP	0x2d
13905  * #define	MCAST_LEAVE_SOURCE_GROUP 0x2e
13906  */
13907 
13908 
13909 /*
13910  * SunOS private (potentially not portable) IP_ option names
13911  */
13912 
13913 
13914 
13915 /* can be reused		0x44 */
13916 
13917 
13918 /*
13919  * Option values and names (when !_XPG5) shared with <xti_inet.h>
13920  */
13921 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13922 /*
13923  * The following option values are reserved by <xti_inet.h>
13924  *
13925  * T_IP_OPTIONS	0x107	 -  IP per-packet options
13926  * T_IP_TOS	0x108	 -  IP per packet type of service
13927  */
13928 
13929 /*
13930  * Default value constants for multicast attributes controlled by
13931  * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options.
13932  */
13933 
13934 
13935 
13936 
13937 /*
13938  * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
13939  */
13940 struct ip_mreq {
13941  struct in_addr imr_multiaddr; /* IP multicast address of group */
13942  struct in_addr imr_interface; /* local IP address of interface */
13943 };
13944 
13945 /*
13946  * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE,
13947  * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP.
13948  */
13949 struct ip_mreq_source {
13950  struct in_addr imr_multiaddr; /* IP address of group */
13951  struct in_addr imr_sourceaddr; /* IP address of source */
13952  struct in_addr imr_interface; /* IP address of interface */
13953 };
13954 
13955 /*
13956  * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on
13957  * IPv6 addresses.
13958  */
13959 struct ipv6_mreq {
13960  struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */
13961  unsigned int ipv6mr_interface; /* interface index */
13962 };
13963 
13964 /*
13965  * Use #pragma pack() construct to force 32-bit alignment on amd64.
13966  * This is needed to keep the structure size and offsets consistent
13967  * between a 32-bit app and the 64-bit amd64 kernel in structures
13968  * where 64-bit alignment would create gaps (in this case, structures
13969  * which have a uint32_t followed by a struct sockaddr_storage).
13970  */
13971 
13972 
13973 # 1038 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13974 #pragma pack(4)
13975 # 1038 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
13976 
13977 
13978 
13979 /*
13980  * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP.
13981  */
13982 struct group_req {
13983  uint32_t gr_interface; /* interface index */
13984  struct sockaddr_storage gr_group; /* group address */
13985 };
13986 
13987 /*
13988  * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE,
13989  * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP.
13990  */
13991 struct group_source_req {
13992  uint32_t gsr_interface; /* interface index */
13993  struct sockaddr_storage gsr_group; /* group address */
13994  struct sockaddr_storage gsr_source; /* source address */
13995 };
13996 
13997 /*
13998  * Argument for SIOC[GS]MSFILTER ioctls
13999  */
14000 struct group_filter {
14001  uint32_t gf_interface; /* interface index */
14002  struct sockaddr_storage gf_group; /* multicast address */
14003  uint32_t gf_fmode; /* filter mode */
14004  uint32_t gf_numsrc; /* number of sources */
14005  struct sockaddr_storage gf_slist[1]; /* source address */
14006 };
14007 
14008 
14009 
14010 # 1071 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
14011 #pragma pack()
14012 # 1071 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
14013 
14014 
14015 
14016 
14017 
14018 
14019 
14020 /*
14021  * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific)
14022  */
14023 struct ip_msfilter {
14024  struct in_addr imsf_multiaddr; /* IP multicast address of group */
14025  struct in_addr imsf_interface; /* local IP address of interface */
14026  uint32_t imsf_fmode; /* filter mode */
14027  uint32_t imsf_numsrc; /* number of sources in src_list */
14028  struct in_addr imsf_slist[1]; /* start of source list */
14029 };
14030 
14031 
14032 
14033 
14034 
14035 /*
14036  * Multicast source filter manipulation functions in libsocket;
14037  * defined in RFC 3678.
14038  */
14039 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t,
14040    uint_t, struct sockaddr_storage *);
14041 
14042 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *,
14043    uint_t *, struct sockaddr_storage *);
14044 
14045 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
14046    uint32_t, struct in_addr *);
14047 
14048 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
14049    uint32_t *, struct in_addr *);
14050 
14051 /*
14052  * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter()
14053  */
14054 
14055 
14056 
14057 /*
14058  * Argument struct for IP_PKTINFO option
14059  */
14060 typedef struct in_pktinfo {
14061  unsigned int ipi_ifindex; /* send/recv interface index */
14062  struct in_addr ipi_spec_dst; /* matched source address */
14063  struct in_addr ipi_addr; /* src/dst address in IP hdr */
14064 } in_pktinfo_t;
14065 
14066 /*
14067  * Argument struct for IPV6_PKTINFO option
14068  */
14069 struct in6_pktinfo {
14070  struct in6_addr ipi6_addr; /* src/dst IPv6 address */
14071  unsigned int ipi6_ifindex; /* send/recv interface index */
14072 };
14073 
14074 /*
14075  * Argument struct for IPV6_MTUINFO option
14076  */
14077 struct ip6_mtuinfo {
14078  struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
14079  uint32_t ip6m_mtu; /* path MTU in host byte order */
14080 };
14081 
14082 /*
14083  * IPv6 routing header types
14084  */
14085 
14086 
14087 extern socklen_t inet6_rth_space(int type, int segments);
14088 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments);
14089 extern int inet6_rth_add(void *bp, const struct in6_addr *addr);
14090 extern int inet6_rth_reverse(const void *in, void *out);
14091 extern int inet6_rth_segments(const void *bp);
14092 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index);
14093 
14094 extern int inet6_opt_init(void *extbuf, socklen_t extlen);
14095 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset,
14096  uint8_t type, socklen_t len, uint_t align, void **databufp);
14097 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset);
14098 extern int inet6_opt_set_val(void *databuf, int offset, void *val,
14099  socklen_t vallen);
14100 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset,
14101  uint8_t *typep, socklen_t *lenp, void **databufp);
14102 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset,
14103  uint8_t type, socklen_t *lenp, void **databufp);
14104 extern int inet6_opt_get_val(void *databuf, int offset, void *val,
14105  socklen_t vallen);
14106 
14107 
14108 /*
14109  * Argument structure for IP_ADD_PROXY_ADDR.
14110  * Note that this is an unstable, experimental interface. It may change
14111  * later. Don't use it unless you know what it is.
14112  */
14113 typedef struct {
14114  struct in_addr in_prefix_addr;
14115  unsigned int in_prefix_len;
14116 } in_prefix_t;
14117 
14118 
14119 
14120 /*
14121  * IPv6 options
14122  */
14123 
14124      /* packets. */
14125      /* argument type: uint_t */
14126 
14127      /* multicast packets. */
14128      /* argument type: struct in6_addr */
14129 
14130      /* multicast packets. */
14131      /* argument type: uint_t */
14132 
14133      /* multicast packets on same socket. */
14134      /* argument type: uint_t */
14135 
14136      /* argument type: struct ipv6_mreq */
14137 
14138      /* argument type: struct ipv6_mreq */
14139 
14140 /*
14141  * Other XPG6 constants.
14142  */
14143 
14144      /* decimal notation. */
14145 
14146      /* standard colon-hex notation. */
14147 
14148 
14149 
14150 
14151 
14152 /*
14153  * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept
14154  * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP
14155  * and IPV6_LEAVE_GROUP respectively.
14156  */
14157 
14158      /* argument type: struct ipv6_mreq */
14159 
14160      /* argument type: struct ipv6_mreq */
14161 
14162 
14163      /* arg type: "struct in6_pktingo" - */
14164 
14165 
14166 
14167 
14168      /* the routing header */
14169 
14170 
14171      /* the routing header */
14172 
14173 
14174 
14175 
14176 /*
14177  * This options exists for backwards compatability and should no longer be
14178  * used.  Use IPV6_RECVDSTOPTS instead.
14179  */
14180 
14181 
14182 
14183 
14184 /*
14185  * enable/disable IPV6_RTHDRDSTOPTS.  Now obsolete.  IPV6_RECVDSTOPTS enables
14186  * the receipt of both headers.
14187  */
14188 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
14189 /*
14190  * enable/disable receipt of both both IPV6_DSTOPTS headers.
14191  */
14192 
14193 
14194 /*
14195  * protocol-independent multicast membership options.
14196  */
14197 
14198 
14199 
14200 
14201 
14202 
14203 
14204 /* 32Bit field for IPV6_SRC_PREFERENCES */
14205 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
14206 /*
14207  * SunOS private (potentially not portable) IPV6_ option names
14208  */
14209 
14210 
14211      /* unspecified (all zeros) */
14212 
14213 /*
14214  * Miscellaneous IPv6 constants.
14215  */
14216 
14217 
14218 
14219 
14220 /*
14221  * Extern declarations for pre-defined global const variables
14222  */
14223 
14224 
14225 
14226 extern const struct in6_addr in6addr_any;
14227 extern const struct in6_addr in6addr_loopback;
14228 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h" 2
14229 
14230 
14231 
14232 
14233 
14234 /*
14235  * NOTE
14236  *
14237  * The contents of this file are private to the implementation of
14238  * Solaris and are subject to change at any time without notice.
14239  * Applications and drivers using these interfaces may fail to
14240  * run on future releases.
14241  */
14242 
14243 /* Available both in kernel and for user space */
14244 
14245 /* zone id restrictions and special ids */
14246 
14247 
14248 
14249 
14250 
14251 
14252 /*
14253  * Special zoneid_t token to refer to all zones.
14254  */
14255 
14256 
14257 /* system call subcodes */
14258 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
14259 /* zone attributes */
14260 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
14261 /* Start of the brand-specific attribute namespace */
14262 # 129 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
14263 /*
14264  * Exit values that may be returned by scripts or programs invoked by various
14265  * zone commands.
14266  *
14267  * These are defined as:
14268  *
14269  *	ZONE_SUBPROC_OK
14270  *	===============
14271  *	The subprocess completed successfully.
14272  *
14273  *	ZONE_SUBPROC_USAGE
14274  *	==================
14275  *	The subprocess failed with a usage message, or a usage message should
14276  *	be output in its behalf.
14277  *
14278  *	ZONE_SUBPROC_NOTCOMPLETE
14279  *	========================
14280  *	The subprocess did not complete, but the actions performed by the
14281  *	subprocess require no recovery actions by the user.
14282  *
14283  *	For example, if the subprocess were called by "zoneadm install," the
14284  *	installation of the zone did not succeed but the user need not perform
14285  *	a "zoneadm uninstall" before attempting another install.
14286  *
14287  *	ZONE_SUBPROC_FATAL
14288  *	==================
14289  *	The subprocess failed in a fatal manner, usually one that will require
14290  *	some type of recovery action by the user.
14291  *
14292  *	For example, if the subprocess were called by "zoneadm install," the
14293  *	installation of the zone did not succeed and the user will need to
14294  *	perform a "zoneadm uninstall" before another install attempt is
14295  *	possible.
14296  *
14297  *	The non-success exit values are large to avoid accidental collision
14298  *	with values used internally by some commands (e.g. "Z_ERR" and
14299  *	"Z_USAGE" as used by zoneadm.)
14300  */
14301 # 189 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/zone.h"
14302 typedef struct {
14303  const char *zone_name;
14304  const char *zone_root;
14305  const struct priv_set *zone_privs;
14306  size_t zone_privssz;
14307  const char *rctlbuf;
14308  size_t rctlbufsz;
14309  int *extended_error;
14310  const char *zfsbuf;
14311  size_t zfsbufsz;
14312  int match; /* match level */
14313  uint32_t doi; /* DOI for label */
14314  const bslabel_t *label; /* label associated with zone */
14315  int flags;
14316 } zone_def;
14317 
14318 /* extended error information */
14319 
14320 
14321 
14322 
14323 
14324 /*
14325  * zone_status values
14326  *
14327  * You must modify zone_status_names in mdb(1M)'s genunix module
14328  * (genunix/zone.c) when you modify this enum.
14329  */
14330 typedef enum {
14331  ZONE_IS_UNINITIALIZED = 0,
14332  ZONE_IS_INITIALIZED,
14333  ZONE_IS_READY,
14334  ZONE_IS_BOOTING,
14335  ZONE_IS_RUNNING,
14336  ZONE_IS_SHUTTING_DOWN,
14337  ZONE_IS_EMPTY,
14338  ZONE_IS_DOWN,
14339  ZONE_IS_DYING,
14340  ZONE_IS_DEAD
14341 } zone_status_t;
14342 
14343 
14344 
14345 /*
14346  * Valid commands which may be issued by zoneadm to zoneadmd.  The kernel also
14347  * communicates with zoneadmd, but only uses Z_REBOOT and Z_HALT.
14348  */
14349 typedef enum zone_cmd {
14350  Z_READY, Z_BOOT, Z_FORCEBOOT, Z_REBOOT, Z_HALT, Z_NOTE_UNINSTALLING,
14351  Z_MOUNT, Z_FORCEMOUNT, Z_UNMOUNT, Z_SHUTDOWN
14352 } zone_cmd_t;
14353 
14354 /*
14355  * The structure of a request to zoneadmd.
14356  */
14357 typedef struct zone_cmd_arg {
14358  uint64_t uniqid; /* unique "generation number" */
14359  zone_cmd_t cmd; /* requested action */
14360  uint32_t _pad; /* need consistent 32/64 bit alignmt */
14361  char locale[1024]; /* locale in which to render messages */
14362  char bootbuf[256]; /* arguments passed to zone_boot() */
14363 } zone_cmd_arg_t;
14364 
14365 /*
14366  * Structure of zoneadmd's response to a request.  A NULL return value means
14367  * the caller should attempt to restart zoneadmd and retry.
14368  */
14369 typedef struct zone_cmd_rval {
14370  int rval; /* return value of request */
14371  char errbuf[1]; /* variable-sized buffer containing error messages */
14372 } zone_cmd_rval_t;
14373 
14374 /*
14375  * The zone support infrastructure uses the zone name as a component
14376  * of unix domain (AF_UNIX) sockets, which are limited to 108 characters
14377  * in length, so ZONENAME_MAX is limited by that.
14378  */
14379 
14380 
14381 
14382 
14383 /*
14384  * Extended Regular expression (see regex(5)) which matches all valid zone
14385  * names.
14386  */
14387 
14388 
14389 /*
14390  * Where the zones support infrastructure places temporary files.
14391  */
14392 
14393 
14394 /*
14395  * The path to the door used by clients to communicate with zoneadmd.
14396  */
14397 
14398 
14399 
14400 /* zone_flags */
14401 /*
14402  * Threads that read or write the following flag must hold zone_lock.
14403  */
14404 
14405 
14406 /*
14407  * The following threads are set when the zone is created and never changed.
14408  * Threads that test for these flags don't have to hold zone_lock.
14409  */
14410 
14411 
14412 
14413 
14414 
14415 /* zone_create flags */
14416 
14417 
14418 /* zone network properties */
14419 
14420 
14421 
14422 
14423 
14424 
14425 typedef struct zone_net_data {
14426  int zn_type;
14427  int zn_len;
14428  datalink_id_t zn_linkid;
14429  uint8_t zn_val[1];
14430 } zone_net_data_t;
14431 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
14432 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 1
14433 /*
14434  * CDDL HEADER START
14435  *
14436  * The contents of this file are subject to the terms of the
14437  * Common Development and Distribution License (the "License").
14438  * You may not use this file except in compliance with the License.
14439  *
14440  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14441  * or http://www.opensolaris.org/os/licensing.
14442  * See the License for the specific language governing permissions
14443  * and limitations under the License.
14444  *
14445  * When distributing Covered Code, include this CDDL HEADER in each
14446  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14447  * If applicable, add the following below this CDDL HEADER, with the
14448  * fields enclosed by brackets "[]" replaced with your own identifying
14449  * information: Portions Copyright [yyyy] [name of copyright owner]
14450  *
14451  * CDDL HEADER END
14452  */
14453 /*
14454  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
14455  *
14456  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
14457  */
14458 
14459 
14460 
14461 
14462 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
14463 /*
14464  * CDDL HEADER START
14465  *
14466  * The contents of this file are subject to the terms of the
14467  * Common Development and Distribution License (the "License").
14468  * You may not use this file except in compliance with the License.
14469  *
14470  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14471  * or http://www.opensolaris.org/os/licensing.
14472  * See the License for the specific language governing permissions
14473  * and limitations under the License.
14474  *
14475  * When distributing Covered Code, include this CDDL HEADER in each
14476  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14477  * If applicable, add the following below this CDDL HEADER, with the
14478  * fields enclosed by brackets "[]" replaced with your own identifying
14479  * information: Portions Copyright [yyyy] [name of copyright owner]
14480  *
14481  * CDDL HEADER END
14482  */
14483 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
14484 /*	  All Rights Reserved  	*/
14485 
14486 
14487 /*
14488  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14489  * Use is subject to license terms.
14490  *
14491  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
14492  * Copyright 2016 Joyent, Inc.
14493  */
14494 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
14495 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
14496 /*
14497  * CDDL HEADER START
14498  *
14499  * The contents of this file are subject to the terms of the
14500  * Common Development and Distribution License (the "License").
14501  * You may not use this file except in compliance with the License.
14502  *
14503  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14504  * or http://www.opensolaris.org/os/licensing.
14505  * See the License for the specific language governing permissions
14506  * and limitations under the License.
14507  *
14508  * When distributing Covered Code, include this CDDL HEADER in each
14509  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14510  * If applicable, add the following below this CDDL HEADER, with the
14511  * fields enclosed by brackets "[]" replaced with your own identifying
14512  * information: Portions Copyright [yyyy] [name of copyright owner]
14513  *
14514  * CDDL HEADER END
14515  */
14516 /*
14517  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
14518  * Use is subject to license terms.
14519  */
14520 
14521 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
14522 /*	  All Rights Reserved  	*/
14523 
14524 /*
14525  * Portions of this source code were derived from Berkeley 4.3 BSD
14526  * under license from the Regents of the University of California.
14527  */
14528 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
14529 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv_names.h" 1
14530 /*
14531  * CDDL HEADER START
14532  *
14533  * The contents of this file are subject to the terms of the
14534  * Common Development and Distribution License (the "License").
14535  * You may not use this file except in compliance with the License.
14536  *
14537  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14538  * or http://www.opensolaris.org/os/licensing.
14539  * See the License for the specific language governing permissions
14540  * and limitations under the License.
14541  *
14542  * When distributing Covered Code, include this CDDL HEADER in each
14543  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14544  * If applicable, add the following below this CDDL HEADER, with the
14545  * fields enclosed by brackets "[]" replaced with your own identifying
14546  * information: Portions Copyright [yyyy] [name of copyright owner]
14547  *
14548  * CDDL HEADER END
14549  */
14550 /*
14551  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
14552  * Copyright 2015, Joyent, Inc. All rights reserved.
14553  *
14554  * Privilege constant definitions.  Privileges and privilege sets
14555  * are only known by name and should be mapped at runtime.
14556  *
14557  * THIS FILE WAS GENERATED; DO NOT EDIT
14558  */
14559 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv_names.h"
14560 /*
14561  * Privilege names
14562  */
14563 /*
14564  * Allows a process to request critical events without limitation.
14565  * Allows a process to request reliable delivery of all events on
14566  * any event queue.
14567  */
14568 
14569 
14570 /*
14571  * Allows a process to set the service FMRI value of a process
14572  * contract template.
14573  */
14574 
14575 
14576 /*
14577  * Allows a process to observe contract events generated by
14578  * contracts created and owned by users other than the process's
14579  * effective user ID.
14580  * Allows a process to open contract event endpoints belonging to
14581  * contracts created and owned by users other than the process's
14582  * effective user ID.
14583  */
14584 
14585 
14586 /*
14587  * Allow a process to access per-CPU hardware performance counters.
14588  */
14589 
14590 
14591 /*
14592  * Allows DTrace kernel-level tracing.
14593  */
14594 
14595 
14596 /*
14597  * Allows DTrace process-level tracing.
14598  * Allows process-level tracing probes to be placed and enabled in
14599  * processes to which the user has permissions.
14600  */
14601 
14602 
14603 /*
14604  * Allows DTrace user-level tracing.
14605  * Allows use of the syscall and profile DTrace providers to
14606  * examine processes to which the user has permissions.
14607  */
14608 
14609 
14610 /*
14611  * Allows a process to change a file's owner user ID.
14612  * Allows a process to change a file's group ID to one other than
14613  * the process' effective group ID or one of the process'
14614  * supplemental group IDs.
14615  */
14616 
14617 
14618 /*
14619  * Allows a process to give away its files; a process with this
14620  * privilege will run as if {_POSIX_CHOWN_RESTRICTED} is not
14621  * in effect.
14622  */
14623 
14624 
14625 /*
14626  * Allows a process to execute an executable file whose permission
14627  * bits or ACL do not allow the process execute permission.
14628  */
14629 
14630 
14631 /*
14632  * Allows a process to read a file or directory whose permission
14633  * bits or ACL do not allow the process read permission.
14634  */
14635 
14636 
14637 /*
14638  * Allows a process to search a directory whose permission bits or
14639  * ACL do not allow the process search permission.
14640  */
14641 
14642 
14643 /*
14644  * Allows a process to write a file or directory whose permission
14645  * bits or ACL do not allow the process write permission.
14646  * In order to write files owned by uid 0 in the absence of an
14647  * effective uid of 0 ALL privileges are required.
14648  */
14649 
14650 
14651 /*
14652  * Allows a process to set the sensitivity label of a file or
14653  * directory to a sensitivity label that does not dominate the
14654  * existing sensitivity label.
14655  * This privilege is interpreted only if the system is configured
14656  * with Trusted Extensions.
14657  */
14658 
14659 
14660 /*
14661  * Allows a process to set immutable, nounlink or appendonly
14662  * file attributes.
14663  */
14664 
14665 
14666 /*
14667  * Allows a process to create hardlinks to files owned by a uid
14668  * different from the process' effective uid.
14669  */
14670 
14671 
14672 /*
14673  * Allows a process which is not the owner of a file or directory
14674  * to perform the following operations that are normally permitted
14675  * only for the file owner: modify that file's access and
14676  * modification times; remove or rename a file or directory whose
14677  * parent directory has the ``save text image after execution''
14678  * (sticky) bit set; mount a ``namefs'' upon a file; modify
14679  * permission bits or ACL except for the set-uid and set-gid
14680  * bits.
14681  */
14682 
14683 
14684 /*
14685  * Allows a process to read objects in the filesystem.
14686  */
14687 
14688 
14689 /*
14690  * Allows a process to change the ownership of a file or write to
14691  * a file without the set-user-ID and set-group-ID bits being
14692  * cleared.
14693  * Allows a process to set the set-group-ID bit on a file or
14694  * directory whose group is not the process' effective group or
14695  * one of the process' supplemental groups.
14696  * Allows a process to set the set-user-ID bit on a file with
14697  * different ownership in the presence of PRIV_FILE_OWNER.
14698  * Additional restrictions apply when creating or modifying a
14699  * set-uid 0 file.
14700  */
14701 
14702 
14703 /*
14704  * Allows a process to set the sensitivity label of a file or
14705  * directory to a sensitivity label that dominates the existing
14706  * sensitivity label.
14707  * This privilege is interpreted only if the system is configured
14708  * with Trusted Extensions.
14709  */
14710 
14711 
14712 /*
14713  * Allows a process to modify objects in the filesystem.
14714  */
14715 
14716 
14717 /*
14718  * Allows a process to make privileged ioctls to graphics devices.
14719  * Typically only xserver process needs to have this privilege.
14720  * A process with this privilege is also allowed to perform
14721  * privileged graphics device mappings.
14722  */
14723 
14724 
14725 /*
14726  * Allows a process to perform privileged mappings through a
14727  * graphics device.
14728  */
14729 
14730 
14731 /*
14732  * Allows a process to read a System V IPC
14733  * Message Queue, Semaphore Set, or Shared Memory Segment whose
14734  * permission bits do not allow the process read permission.
14735  * Allows a process to read remote shared memory whose
14736  * permission bits do not allow the process read permission.
14737  */
14738 
14739 
14740 /*
14741  * Allows a process to write a System V IPC
14742  * Message Queue, Semaphore Set, or Shared Memory Segment whose
14743  * permission bits do not allow the process write permission.
14744  * Allows a process to read remote shared memory whose
14745  * permission bits do not allow the process write permission.
14746  * Additional restrictions apply if the owner of the object has uid 0
14747  * and the effective uid of the current process is not 0.
14748  */
14749 
14750 
14751 /*
14752  * Allows a process which is not the owner of a System
14753  * V IPC Message Queue, Semaphore Set, or Shared Memory Segment to
14754  * remove, change ownership of, or change permission bits of the
14755  * Message Queue, Semaphore Set, or Shared Memory Segment.
14756  * Additional restrictions apply if the owner of the object has uid 0
14757  * and the effective uid of the current process is not 0.
14758  */
14759 
14760 
14761 /*
14762  * Allows a process to open a TCP, UDP, SDP or SCTP network endpoint.
14763  */
14764 
14765 
14766 /*
14767  * Allow a process to bind to a port that is configured as a
14768  * multi-level port(MLP) for the process's zone. This privilege
14769  * applies to both shared address and zone-specific address MLPs.
14770  * See tnzonecfg(4) from the Trusted Extensions manual pages for
14771  * information on configuring MLP ports.
14772  * This privilege is interpreted only if the system is configured
14773  * with Trusted Extensions.
14774  */
14775 
14776 
14777 /*
14778  * Allows a process to send and receive ICMP packets.
14779  */
14780 
14781 
14782 /*
14783  * Allows a process to set NET_MAC_AWARE process flag by using
14784  * setpflags(2). This privilege also allows a process to set
14785  * SO_MAC_EXEMPT socket option by using setsockopt(3SOCKET).
14786  * The NET_MAC_AWARE process flag and the SO_MAC_EXEMPT socket
14787  * option both allow a local process to communicate with an
14788  * unlabeled peer if the local process' label dominates the
14789  * peer's default label, or if the local process runs in the
14790  * global zone.
14791  * This privilege is interpreted only if the system is configured
14792  * with Trusted Extensions.
14793  */
14794 
14795 
14796 /*
14797  * Allows a process to set SO_MAC_IMPLICIT option by using
14798  * setsockopt(3SOCKET).  This allows a privileged process to
14799  * transmit implicitly-labeled packets to a peer.
14800  * This privilege is interpreted only if the system is configured
14801  * with Trusted Extensions.
14802  */
14803 
14804 
14805 /*
14806  * Allows a process to access /dev/lo0 and the devices in /dev/ipnet/
14807  * while not requiring them to need PRIV_NET_RAWACCESS.
14808  */
14809 
14810 
14811 /*
14812  * Allows a process to bind to a privileged port
14813  * number. The privilege port numbers are 1-1023 (the traditional
14814  * UNIX privileged ports) as well as those ports marked as
14815  * "udp/tcp_extra_priv_ports" with the exception of the ports
14816  * reserved for use by NFS.
14817  */
14818 
14819 
14820 /*
14821  * Allows a process to have direct access to the network layer.
14822  */
14823 
14824 
14825 /*
14826  * Allows a process to generate audit records.
14827  * Allows a process to get its own audit pre-selection information.
14828  */
14829 
14830 
14831 /*
14832  * Allows a process to change its root directory.
14833  */
14834 
14835 
14836 /*
14837  * Allows a process to use high resolution timers.
14838  */
14839 
14840 
14841 /*
14842  * Allows a process to call execve().
14843  */
14844 
14845 
14846 /*
14847  * Allows a process to call fork1()/forkall()/vfork()
14848  */
14849 
14850 
14851 /*
14852  * Allows a process to examine the status of processes other
14853  * than those it can send signals to.  Processes which cannot
14854  * be examined cannot be seen in /proc and appear not to exist.
14855  */
14856 
14857 
14858 /*
14859  * Allows a process to lock pages in physical memory.
14860  */
14861 
14862 
14863 /*
14864  * Allows a process to access physical memory information.
14865  */
14866 
14867 
14868 /*
14869  * Allows a process to send signals to other processes, inspect
14870  * and modify process state to other processes regardless of
14871  * ownership.  When modifying another process, additional
14872  * restrictions apply:  the effective privilege set of the
14873  * attaching process must be a superset of the target process'
14874  * effective, permitted and inheritable sets; the limit set must
14875  * be a superset of the target's limit set; if the target process
14876  * has any uid set to 0 all privilege must be asserted unless the
14877  * effective uid is 0.
14878  * Allows a process to bind arbitrary processes to CPUs.
14879  */
14880 
14881 
14882 /*
14883  * Allows a process to elevate its priority above its current level.
14884  */
14885 
14886 
14887 /*
14888  * Allows all that PRIV_PROC_PRIOUP allows.
14889  * Allows a process to change its scheduling class to any scheduling class,
14890  * including the RT class.
14891  */
14892 
14893 
14894 /*
14895  * Allows a process to send signals or trace processes outside its
14896  * session.
14897  */
14898 
14899 
14900 /*
14901  * Allows a process to set its uids at will.
14902  * Assuming uid 0 requires all privileges to be asserted.
14903  */
14904 
14905 
14906 /*
14907  * Allows a process to assign a new task ID to the calling process.
14908  */
14909 
14910 
14911 /*
14912  * Allows a process to trace or send signals to processes in
14913  * other zones.
14914  */
14915 
14916 
14917 /*
14918  * Allows a process to enable and disable and manage accounting through
14919  * acct(2), getacct(2), putacct(2) and wracct(2).
14920  */
14921 
14922 
14923 /*
14924  * Allows a process to perform system administration tasks such
14925  * as setting node and domain name and specifying nscd and coreadm
14926  * settings.
14927  */
14928 
14929 
14930 /*
14931  * Allows a process to start the (kernel) audit daemon.
14932  * Allows a process to view and set audit state (audit user ID,
14933  * audit terminal ID, audit sessions ID, audit pre-selection mask).
14934  * Allows a process to turn off and on auditing.
14935  * Allows a process to configure the audit parameters (cache and
14936  * queue sizes, event to class mappings, policy options).
14937  */
14938 
14939 
14940 /*
14941  * Allows a process to perform various system configuration tasks.
14942  * Allows a process to add and remove swap devices; when adding a swap
14943  * device, a process must also have sufficient privileges to read from
14944  * and write to the swap device.
14945  */
14946 
14947 
14948 /*
14949  * Allows a process to successfully call a kernel module that
14950  * calls the kernel drv_priv(9F) function to check for allowed
14951  * access.
14952  * Allows a process to open the real console device directly.
14953  * Allows a process to open devices that have been exclusively opened.
14954  */
14955 
14956 
14957 /*
14958  * Allows a process to increase the size of a System V IPC Message
14959  * Queue buffer.
14960  */
14961 
14962 
14963 /*
14964  * Allows a process to unlink and link directories.
14965  */
14966 
14967 
14968 /*
14969  * Allows filesystem specific administrative procedures, such as
14970  * filesystem configuration ioctls, quota calls and creation/deletion
14971  * of snapshots.
14972  * Allows a process to mount and unmount filesystems which would
14973  * otherwise be restricted (i.e., most filesystems except
14974  * namefs).
14975  * A process performing a mount operation needs to have
14976  * appropriate access to the device being mounted (read-write for
14977  * "rw" mounts, read for "ro" mounts).
14978  * A process performing any of the aforementioned
14979  * filesystem operations needs to have read/write/owner
14980  * access to the mount point.
14981  * Only regular files and directories can serve as mount points
14982  * for processes which do not have all zone privileges asserted.
14983  * Unless a process has all zone privileges, the mount(2)
14984  * system call will force the "nosuid" and "restrict" options, the
14985  * latter only for autofs mountpoints.
14986  * Regardless of privileges, a process running in a non-global zone may
14987  * only control mounts performed from within said zone.
14988  * Outside the global zone, the "nodevices" option is always forced.
14989  */
14990 
14991 
14992 /*
14993  * Allows a process to configure IP tunnel links.
14994  */
14995 
14996 
14997 /*
14998  * Allows a process to configure all classes of datalinks, including
14999  * configuration allowed by PRIV_SYS_IPTUN_CONFIG.
15000  */
15001 
15002 
15003 /*
15004  * Allows a process to configure a system's IP interfaces and routes.
15005  * Allows a process to configure network parameters using ndd.
15006  * Allows a process access to otherwise restricted information using ndd.
15007  * Allows a process to configure IPsec.
15008  * Allows a process to pop anchored STREAMs modules with matching zoneid.
15009  */
15010 
15011 
15012 /*
15013  * Allows all that PRIV_SYS_IP_CONFIG, PRIV_SYS_DL_CONFIG, and
15014  * PRIV_SYS_PPP_CONFIG allow.
15015  * Allows a process to push the rpcmod STREAMs module.
15016  * Allows a process to INSERT/REMOVE STREAMs modules on locations other
15017  * than the top of the module stack.
15018  */
15019 
15020 
15021 /*
15022  * Allows a process to perform Sun private NFS specific system calls.
15023  * Allows a process to bind to ports reserved by NFS: ports 2049 (nfs)
15024  * and port 4045 (lockd).
15025  */
15026 
15027 
15028 /*
15029  * Allows a process to create and destroy PPP (sppp) interfaces.
15030  * Allows a process to configure PPP tunnels (sppptun).
15031  */
15032 
15033 
15034 /*
15035  * Allows a process to bind processes to processor sets.
15036  */
15037 
15038 
15039 /*
15040  * Allows all that PRIV_SYS_RES_BIND allows.
15041  * Allows a process to create and delete processor sets, assign
15042  * CPUs to processor sets and override the PSET_NOESCAPE property.
15043  * Allows a process to change the operational status of CPUs in
15044  * the system using p_online(2).
15045  * Allows a process to configure resource pools and to bind
15046  * processes to pools
15047  */
15048 
15049 
15050 /*
15051  * Allows a process to modify the resource limits specified
15052  * by setrlimit(2) and setrctl(2) without restriction.
15053  * Allows a process to exceed the per-user maximum number of
15054  * processes.
15055  * Allows a process to extend or create files on a filesystem that
15056  * has less than minfree space in reserve.
15057  */
15058 
15059 
15060 /*
15061  * Allows a process to access the Sun private SMB kernel module.
15062  * Allows a process to bind to ports reserved by NetBIOS and SMB:
15063  * ports 137 (NBNS), 138 (NetBIOS Datagram Service), 139 (NetBIOS
15064  * Session Service and SMB-over-NBT) and 445 (SMB-over-TCP).
15065  */
15066 
15067 
15068 /*
15069  * Allows a process to successfully call a third party loadable module
15070  * that calls the kernel suser() function to check for allowed access.
15071  * This privilege exists only for third party loadable module
15072  * compatibility and is not used by Solaris proper.
15073  */
15074 
15075 
15076 /*
15077  * Allows a process to manipulate system time using any of the
15078  * appropriate system calls: stime, adjtime, ntp_adjtime and
15079  * the IA specific RTC calls.
15080  */
15081 
15082 
15083 /*
15084  * Allows a process to translate labels that are not dominated
15085  * by the process' sensitivity label to and from an external
15086  * string form.
15087  * This privilege is interpreted only if the system is configured
15088  * with Trusted Extensions.
15089  */
15090 
15091 
15092 /*
15093  * Allows a process to manage virtualized environments such as
15094  * xVM(5).
15095  */
15096 
15097 
15098 /*
15099  * Allows a process to override colormap restrictions.
15100  * Allows a process to install or remove colormaps.
15101  * Allows a process to retrieve colormap cell entries allocated
15102  * by other processes.
15103  * This privilege is interpreted only if the system is configured
15104  * with Trusted Extensions.
15105  */
15106 
15107 
15108 /*
15109  * Allows a process to configure or destroy resources that are
15110  * permanently retained by the X server.
15111  * Allows a process to use SetScreenSaver to set the screen
15112  * saver timeout value.
15113  * Allows a process to use ChangeHosts to modify the display
15114  * access control list.
15115  * Allows a process to use GrabServer.
15116  * Allows a process to use the SetCloseDownMode request which
15117  * may retain window, pixmap, colormap, property, cursor, font,
15118  * or graphic context resources.
15119  * This privilege is interpreted only if the system is configured
15120  * with Trusted Extensions.
15121  */
15122 
15123 
15124 /*
15125  * Allows a process to read from a window resource that it does
15126  * not own (has a different user ID).
15127  * This privilege is interpreted only if the system is configured
15128  * with Trusted Extensions.
15129  */
15130 
15131 
15132 /*
15133  * Allows a process to write to or create a window resource that
15134  * it does not own (has a different user ID). A newly created
15135  * window property is created with the window's user ID.
15136  * This privilege is interpreted only if the system is configured
15137  * with Trusted Extensions.
15138  */
15139 
15140 
15141 /*
15142  * Allows a process to perform operations on window input devices.
15143  * Allows a process to get and set keyboard and pointer controls.
15144  * Allows a process to modify pointer button and key mappings.
15145  * This privilege is interpreted only if the system is configured
15146  * with Trusted Extensions.
15147  */
15148 
15149 
15150 /*
15151  * Allows a process to use the direct graphics access (DGA) X protocol
15152  * extensions. Direct process access to the frame buffer is still
15153  * required. Thus the process must have MAC and DAC privileges that
15154  * allow access to the frame buffer, or the frame buffer must be
15155  * allocated to the process.
15156  * This privilege is interpreted only if the system is configured
15157  * with Trusted Extensions.
15158  */
15159 
15160 
15161 /*
15162  * Allows a process to set the sensitivity label of a window resource
15163  * to a sensitivity label that does not dominate the existing
15164  * sensitivity label.
15165  * This privilege is interpreted only if the system is configured
15166  * with Trusted Extensions.
15167  */
15168 
15169 
15170 /*
15171  * Allows a process to set a font path.
15172  * This privilege is interpreted only if the system is configured
15173  * with Trusted Extensions.
15174  */
15175 
15176 
15177 /*
15178  * Allows a process to read from a window resource whose sensitivity
15179  * label is not equal to the process sensitivity label.
15180  * This privilege is interpreted only if the system is configured
15181  * with Trusted Extensions.
15182  */
15183 
15184 
15185 /*
15186  * Allows a process to create a window resource whose sensitivity
15187  * label is not equal to the process sensitivity label.
15188  * A newly created window property is created with the window's
15189  * sensitivity label.
15190  * This privilege is interpreted only if the system is configured
15191  * with Trusted Extensions.
15192  */
15193 
15194 
15195 /*
15196  * Allows a process to request inter-window data moves without the
15197  * intervention of the selection confirmer.
15198  * This privilege is interpreted only if the system is configured
15199  * with Trusted Extensions.
15200  */
15201 
15202 
15203 /*
15204  * Allows a process to set the sensitivity label of a window
15205  * resource to a sensitivity label that dominates the existing
15206  * sensitivity label.
15207  * This privilege is interpreted only if the system is configured
15208  * with Trusted Extensions.
15209  */
15210 
15211 
15212 /*
15213  * Allows a process access to the xVM(5) control devices for
15214  * managing guest domains and the hypervisor. This privilege is
15215  * used only if booted into xVM on x86 platforms.
15216  */
15217 
15218 
15219 
15220 /*
15221  * Privilege set names
15222  */
15223 /*
15224  * Set of privileges currently in effect.
15225  */
15226 
15227 
15228 /*
15229  * Set of privileges that comes into effect on exec.
15230  */
15231 
15232 
15233 /*
15234  * Set of privileges that can be put into the effective set without
15235  * restriction.
15236  */
15237 
15238 
15239 /*
15240  * Set of privileges that determines the absolute upper bound of
15241  * privileges this process and its off-spring can obtain.
15242  */
15243 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 2
15244 
15245 
15246 
15247 
15248 
15249 typedef uint32_t priv_chunk_t;
15250 typedef struct priv_set priv_set_t;
15251 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
15252 /*
15253  * Userland type definitions.
15254  */
15255 
15256 typedef const char *priv_ptype_t;
15257 typedef const char *priv_t;
15258 
15259 
15260 
15261 /*
15262  * priv_op_t indicates a privilege operation type
15263  */
15264 typedef enum priv_op {
15265  PRIV_ON,
15266  PRIV_OFF,
15267  PRIV_SET
15268 } priv_op_t;
15269 
15270 /*
15271  * Privilege system call subcodes.
15272  */
15273 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
15274 /*
15275  * Maximum length of a user defined privilege name.
15276  */
15277 
15278 
15279 /*
15280  * Privilege interface functions for those parts of the kernel that
15281  * know nothing of the privilege internals.
15282  *
15283  * A privilege implementation can have a varying number of sets; sets
15284  * consist of a number of priv_chunk_t's and the size is expressed as such.
15285  * The privileges can be represented as
15286  *
15287  *		priv_chunk_t privs[info.priv_nsets][info.priv_setsize]
15288  *		... priv_infosize of extra information ...
15289  *
15290  * Extra data contained in the privilege information consists of chunks
15291  * of data with specified size and type all headed by a priv_info_t header
15292  * which defines both the type of information as well as the size of the
15293  * information.  ((char*)&info)+info->priv_info_size should be rounded up
15294  * to point to the next piece of information.
15295  */
15296 
15297 typedef struct priv_impl_info {
15298  uint32_t priv_headersize; /* sizeof (priv_impl_info) */
15299  uint32_t priv_flags; /* additional flags */
15300  uint32_t priv_nsets; /* number of priv sets */
15301  uint32_t priv_setsize; /* size in priv_chunk_t */
15302  uint32_t priv_max; /* highest actual valid priv */
15303  uint32_t priv_infosize; /* Per proc. additional info */
15304  uint32_t priv_globalinfosize; /* Per system info */
15305 } priv_impl_info_t;
15306 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
15307 /*
15308  * Per credential flags.
15309  */
15310 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h"
15311 /* user-settable flags: */
15312 
15313 
15314 
15315 /*
15316  * Header of the privilege info data structure; multiple structures can
15317  * follow the privilege sets and priv_impl_info structures.
15318  */
15319 typedef struct priv_info {
15320  uint32_t priv_info_type;
15321  uint32_t priv_info_size;
15322 } priv_info_t;
15323 
15324 typedef struct priv_info_uint {
15325  priv_info_t info;
15326  uint_t val;
15327 } priv_info_uint_t;
15328 
15329 /*
15330  * Global privilege set information item; the actual size of the array is
15331  * {priv_setsize}.
15332  */
15333 typedef struct priv_info_set {
15334  priv_info_t info;
15335  priv_chunk_t set[1];
15336 } priv_info_set_t;
15337 
15338 /*
15339  * names[1] is a place holder which can contain multiple NUL terminated,
15340  * non-empty strings.
15341  */
15342 
15343 typedef struct priv_info_names {
15344  priv_info_t info;
15345  int cnt; /* number of strings */
15346  char names[1]; /* "string1\0string2\0 ..stringN\0" */
15347 } priv_info_names_t;
15348 
15349 /*
15350  * Privilege information types.
15351  */
15352 
15353 
15354 
15355 
15356 
15357 /*
15358  * Special "privileges" used to indicate special conditions in privilege
15359  * debugging/tracing code.
15360  */
15361 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
15362 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 1
15363 /*
15364  * CDDL HEADER START
15365  *
15366  * The contents of this file are subject to the terms of the
15367  * Common Development and Distribution License (the "License").
15368  * You may not use this file except in compliance with the License.
15369  *
15370  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15371  * or http://www.opensolaris.org/os/licensing.
15372  * See the License for the specific language governing permissions
15373  * and limitations under the License.
15374  *
15375  * When distributing Covered Code, include this CDDL HEADER in each
15376  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15377  * If applicable, add the following below this CDDL HEADER, with the
15378  * fields enclosed by brackets "[]" replaced with your own identifying
15379  * information: Portions Copyright [yyyy] [name of copyright owner]
15380  *
15381  * CDDL HEADER END
15382  */
15383 /*
15384  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15385  * Use is subject to license terms.
15386  */
15387 
15388 
15389 
15390 
15391 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
15392 /*
15393  * CDDL HEADER START
15394  *
15395  * The contents of this file are subject to the terms of the
15396  * Common Development and Distribution License (the "License").
15397  * You may not use this file except in compliance with the License.
15398  *
15399  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15400  * or http://www.opensolaris.org/os/licensing.
15401  * See the License for the specific language governing permissions
15402  * and limitations under the License.
15403  *
15404  * When distributing Covered Code, include this CDDL HEADER in each
15405  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15406  * If applicable, add the following below this CDDL HEADER, with the
15407  * fields enclosed by brackets "[]" replaced with your own identifying
15408  * information: Portions Copyright [yyyy] [name of copyright owner]
15409  *
15410  * CDDL HEADER END
15411  */
15412 /*
15413  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
15414  * Use is subject to license terms.
15415  * Copyright 2015 Nexenta Systems, Inc.
15416  */
15417 
15418 
15419 
15420 
15421 #pragma ident "%Z%%M%	%I%	%E% SMI"
15422 
15423 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
15424 /*
15425  * CDDL HEADER START
15426  *
15427  * The contents of this file are subject to the terms of the
15428  * Common Development and Distribution License, Version 1.0 only
15429  * (the "License").  You may not use this file except in compliance
15430  * with the License.
15431  *
15432  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15433  * or http://www.opensolaris.org/os/licensing.
15434  * See the License for the specific language governing permissions
15435  * and limitations under the License.
15436  *
15437  * When distributing Covered Code, include this CDDL HEADER in each
15438  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15439  * If applicable, add the following below this CDDL HEADER, with the
15440  * fields enclosed by brackets "[]" replaced with your own identifying
15441  * information: Portions Copyright [yyyy] [name of copyright owner]
15442  *
15443  * CDDL HEADER END
15444  */
15445 /*
15446  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15447  *
15448  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
15449  * Use is subject to license terms.
15450  */
15451 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 2
15452 
15453 
15454 
15455 
15456 
15457 /*
15458  * Interoperability types for programs. Used for:
15459  *
15460  * Crossing between 32-bit and 64-bit domains.
15461  *
15462  * On disk data formats such as filesystem meta data
15463  * and disk label.
15464  *
15465  * Note: Applications should never include this
15466  *       header file.
15467  */
15468 typedef uint32_t caddr32_t;
15469 typedef int32_t daddr32_t;
15470 typedef int32_t off32_t;
15471 typedef uint32_t ino32_t;
15472 typedef int32_t blkcnt32_t;
15473 typedef uint32_t fsblkcnt32_t;
15474 typedef uint32_t fsfilcnt32_t;
15475 typedef int32_t id32_t;
15476 typedef uint32_t major32_t;
15477 typedef uint32_t minor32_t;
15478 typedef int32_t key32_t;
15479 typedef uint32_t mode32_t;
15480 typedef uint32_t uid32_t;
15481 typedef uint32_t gid32_t;
15482 typedef uint32_t nlink32_t;
15483 typedef uint32_t dev32_t;
15484 typedef int32_t pid32_t;
15485 typedef uint32_t size32_t;
15486 typedef int32_t ssize32_t;
15487 typedef int32_t time32_t;
15488 typedef int32_t clock32_t;
15489 typedef uint32_t uintptr32_t;
15490 typedef int32_t intptr32_t;
15491 
15492 struct timeval32 {
15493  time32_t tv_sec; /* seconds */
15494  int32_t tv_usec; /* and microseconds */
15495 };
15496 
15497 typedef struct timespec32 {
15498  time32_t tv_sec; /* seconds */
15499  int32_t tv_nsec; /* and nanoseconds */
15500 } timespec32_t;
15501 
15502 typedef struct timespec32 timestruc32_t;
15503 
15504 typedef struct itimerspec32 {
15505  struct timespec32 it_interval;
15506  struct timespec32 it_value;
15507 } itimerspec32_t;
15508 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 2
15509 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/tsol/label.h" 1
15510 /*
15511  * CDDL HEADER START
15512  *
15513  * The contents of this file are subject to the terms of the
15514  * Common Development and Distribution License (the "License").
15515  * You may not use this file except in compliance with the License.
15516  *
15517  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15518  * or http://www.opensolaris.org/os/licensing.
15519  * See the License for the specific language governing permissions
15520  * and limitations under the License.
15521  *
15522  * When distributing Covered Code, include this CDDL HEADER in each
15523  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15524  * If applicable, add the following below this CDDL HEADER, with the
15525  * fields enclosed by brackets "[]" replaced with your own identifying
15526  * information: Portions Copyright [yyyy] [name of copyright owner]
15527  *
15528  * CDDL HEADER END
15529  */
15530 /*
15531  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
15532  * Use is subject to license terms.
15533  */
15534 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 2
15535 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h" 1
15536 /*
15537  * CDDL HEADER START
15538  *
15539  * The contents of this file are subject to the terms of the
15540  * Common Development and Distribution License (the "License").
15541  * You may not use this file except in compliance with the License.
15542  *
15543  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15544  * or http://www.opensolaris.org/os/licensing.
15545  * See the License for the specific language governing permissions
15546  * and limitations under the License.
15547  *
15548  * When distributing Covered Code, include this CDDL HEADER in each
15549  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15550  * If applicable, add the following below this CDDL HEADER, with the
15551  * fields enclosed by brackets "[]" replaced with your own identifying
15552  * information: Portions Copyright [yyyy] [name of copyright owner]
15553  *
15554  * CDDL HEADER END
15555  */
15556 /*
15557  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15558  *
15559  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
15560  * Use is subject to license terms.
15561  */
15562 
15563 
15564 
15565 
15566 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/priv.h" 1
15567 /*
15568  * CDDL HEADER START
15569  *
15570  * The contents of this file are subject to the terms of the
15571  * Common Development and Distribution License (the "License").
15572  * You may not use this file except in compliance with the License.
15573  *
15574  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15575  * or http://www.opensolaris.org/os/licensing.
15576  * See the License for the specific language governing permissions
15577  * and limitations under the License.
15578  *
15579  * When distributing Covered Code, include this CDDL HEADER in each
15580  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15581  * If applicable, add the following below this CDDL HEADER, with the
15582  * fields enclosed by brackets "[]" replaced with your own identifying
15583  * information: Portions Copyright [yyyy] [name of copyright owner]
15584  *
15585  * CDDL HEADER END
15586  */
15587 /*
15588  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15589  *
15590  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
15591  */
15592 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h" 2
15593 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h"
15594 /*
15595  * library functions prototype.
15596  */
15597 
15598 extern int setppriv(priv_op_t, priv_ptype_t, const priv_set_t *);
15599 extern int getppriv(priv_ptype_t, priv_set_t *);
15600 extern int setpflags(uint_t, uint_t);
15601 extern uint_t getpflags(uint_t);
15602 extern const priv_impl_info_t *getprivimplinfo(void);
15603 
15604 extern int priv_set(priv_op_t, priv_ptype_t, ...);
15605 extern boolean_t priv_ineffect(const char *);
15606 extern priv_set_t *priv_str_to_set(const char *, const char *, const char **);
15607 extern char *priv_set_to_str(const priv_set_t *, char, int);
15608 
15609 extern int priv_getbyname(const char *);
15610 extern const char *priv_getbynum(int);
15611 extern int priv_getsetbyname(const char *);
15612 extern const char *priv_getsetbynum(int);
15613 extern char *priv_gettext(const char *);
15614 
15615 extern priv_set_t *priv_allocset(void);
15616 extern void priv_freeset(priv_set_t *);
15617 
15618 extern void priv_emptyset(priv_set_t *);
15619 extern void priv_basicset(priv_set_t *);
15620 extern void priv_fillset(priv_set_t *);
15621 extern boolean_t priv_isemptyset(const priv_set_t *);
15622 extern boolean_t priv_isfullset(const priv_set_t *);
15623 extern boolean_t priv_isequalset(const priv_set_t *, const priv_set_t *);
15624 extern boolean_t priv_issubset(const priv_set_t *, const priv_set_t *);
15625 extern void priv_intersect(const priv_set_t *, priv_set_t *);
15626 extern void priv_union(const priv_set_t *, priv_set_t *);
15627 extern void priv_inverse(priv_set_t *);
15628 extern int priv_addset(priv_set_t *, const char *);
15629 extern void priv_copyset(const priv_set_t *, priv_set_t *);
15630 extern int priv_delset(priv_set_t *, const char *);
15631 extern boolean_t priv_ismember(const priv_set_t *, const char *);
15632 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h" 2
15633 
15634 
15635 
15636 
15637 
15638 /* Procedural Interface Structure Definitions */
15639 
15640 struct label_info { /* structure returned by label_info */
15641  short ilabel_len; /* max Information Label length */
15642  short slabel_len; /* max Sensitivity Label length */
15643  short clabel_len; /* max CMW Label length */
15644  short clear_len; /* max Clearance Label length */
15645  short vers_len; /* version string length */
15646  short header_len; /* max len of banner page header */
15647  short protect_as_len; /* max len of banner page protect as */
15648  short caveats_len; /* max len of banner page caveats */
15649  short channels_len; /* max len of banner page channels */
15650 };
15651 
15652 typedef struct label_set_identifier { /* valid label set identifier */
15653  int type; /* type of the set */
15654  char *name; /* name of the set if needed */
15655 } set_id;
15656 
15657 struct name_fields { /* names for label builder fields */
15658  char *class_name; /* Classifications field name */
15659  char *comps_name; /* Compartments field name */
15660  char *marks_name; /* Markings field name */
15661 };
15662 
15663 /* Label Set Identifier Types */
15664 
15665 /*
15666  * The accreditation ranges as specified in the label encodings file.
15667  * The name parameter is ignored.
15668  *
15669  * System Accreditation Range is all valid labels plus Admin High and Low.
15670  *
15671  * User Accreditation Range is valid user labels as defined in the
15672  *	ACCREDITATION RANGE: section of the label encodings file.
15673  */
15674 
15675 
15676 
15677 
15678 
15679 /* System Call Interface Definitions */
15680 
15681 extern int getlabel(const char *, m_label_t *);
15682 extern int fgetlabel(int, m_label_t *);
15683 
15684 extern int getplabel(m_label_t *);
15685 extern int setflabel(const char *, m_label_t *);
15686 extern char *getpathbylabel(const char *, char *, size_t,
15687     const m_label_t *sl);
15688 extern m_label_t *getzonelabelbyid(zoneid_t);
15689 extern m_label_t *getzonelabelbyname(const char *);
15690 extern zoneid_t getzoneidbylabel(const m_label_t *);
15691 extern char *getzonenamebylabel(const m_label_t *);
15692 extern char *getzonerootbyid(zoneid_t);
15693 extern char *getzonerootbyname(const char *);
15694 extern char *getzonerootbylabel(const m_label_t *);
15695 extern m_label_t *getlabelbypath(const char *);
15696 
15697 
15698 /* Flag word values */
15699 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/tsol/label.h"
15700       /* implies NEW_LABEL */
15701 
15702 
15703 
15704 
15705 /* Procedure Interface Definitions available to user */
15706 
15707 /* APIs shared with the kernel are in <sys/tsol/label.h */
15708 
15709 extern m_label_t *blabel_alloc(void);
15710 extern void blabel_free(m_label_t *);
15711 extern size32_t blabel_size(void);
15712 extern char *bsltoh(const m_label_t *);
15713 extern char *bcleartoh(const m_label_t *);
15714 
15715 extern char *bsltoh_r(const m_label_t *, char *);
15716 extern char *bcleartoh_r(const m_label_t *, char *);
15717 extern char *h_alloc(uint8_t);
15718 extern void h_free(char *);
15719 
15720 extern int htobsl(const char *, m_label_t *);
15721 extern int htobclear(const char *, m_label_t *);
15722 
15723 extern m_range_t *getuserrange(const char *);
15724 extern m_range_t *getdevicerange(const char *);
15725 
15726 extern int set_effective_priv(priv_op_t, int, ...);
15727 extern int set_inheritable_priv(priv_op_t, int, ...);
15728 extern int set_permitted_priv(priv_op_t, int, ...);
15729 extern int is_system_labeled(void);
15730 
15731 /* Procedures needed for multi-level printing */
15732 
15733 extern int tsol_check_admin_auth(uid_t uid);
15734 
15735 /* APIs implemented via labeld */
15736 
15737 extern int blinset(const m_label_t *, const set_id *);
15738 extern int labelinfo(struct label_info *);
15739 extern ssize_t labelvers(char **, size_t);
15740 extern char *bltocolor(const m_label_t *);
15741 extern char *bltocolor_r(const m_label_t *, size_t, char *);
15742 
15743 extern ssize_t bsltos(const m_label_t *, char **, size_t, int);
15744 extern ssize_t bcleartos(const m_label_t *, char **, size_t, int);
15745 
15746 
15747 extern char *sbsltos(const m_label_t *, size_t);
15748 extern char *sbcleartos(const m_label_t *, size_t);
15749 
15750 
15751 extern int stobsl(const char *, m_label_t *, int, int *);
15752 extern int stobclear(const char *, m_label_t *, int, int *);
15753 extern int bslvalid(const m_label_t *);
15754 extern int bclearvalid(const m_label_t *);
15755 
15756 /* DIA label conversion and parsing */
15757 
15758 /* Conversion types */
15759 
15760 typedef enum _m_label_str {
15761  M_LABEL = 1, /* process or user clearance */
15762  M_INTERNAL = 2, /* internal form for use in public databases */
15763  M_COLOR = 3, /* process label color */
15764  PRINTER_TOP_BOTTOM = 4, /* DIA banner page top/bottom */
15765  PRINTER_LABEL = 5, /* DIA banner page label */
15766  PRINTER_CAVEATS = 6, /* DIA banner page caveats */
15767  PRINTER_CHANNELS = 7 /* DIA banner page handling channels */
15768 } m_label_str_t;
15769 
15770 /* Flags for conversion, not all flags apply to all types */
15771 
15772 
15773 
15774 
15775 extern int label_to_str(const m_label_t *, char **, const m_label_str_t,
15776     uint_t);
15777 extern int l_to_str_internal(const m_label_t *, char **);
15778 
15779 /* Parsing types */
15780 typedef enum _m_label_type {
15781  MAC_LABEL = 1, /* process or object label */
15782  USER_CLEAR = 2 /* user's clearance (LUB) */
15783 } m_label_type_t;
15784 
15785 /* Flags for parsing */
15786 
15787 
15788 
15789 
15790 
15791 
15792 /* EINVAL sub codes */
15793 
15794 
15795 
15796  /* bad requested label type, bad previous label type */
15797 
15798 
15799 extern int str_to_label(const char *, m_label_t **, const m_label_type_t,
15800     uint_t, int *);
15801 extern int hexstr_to_label(const char *, m_label_t *);
15802 
15803 extern m_label_t *m_label_alloc(const m_label_type_t);
15804 
15805 extern int m_label_dup(m_label_t **, const m_label_t *);
15806 
15807 extern void m_label_free(m_label_t *);
15808 
15809 /* Contract Private interfaces with the label builder GUIs */
15810 
15811 extern int bslcvtfull(const m_label_t *, const m_range_t *, int,
15812     char **, char **[], char **[], char *[], int *, int *);
15813 extern int bslcvt(const m_label_t *, int, char **, char *[]);
15814 extern int bclearcvtfull(const m_label_t *, const m_range_t *, int,
15815     char **, char **[], char **[], char *[], int *, int *);
15816 extern int bclearcvt(const m_label_t *, int, char **, char *[]);
15817 
15818 extern int labelfields(struct name_fields *);
15819 extern int userdefs(m_label_t *, m_label_t *);
15820 extern int zonecopy(m_label_t *, char *, char *, char *, int);
15821 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 2
15822 
15823 
15824 
15825 
15826 
15827 /*
15828  * Functions for mapping between id and name for active zones.
15829  */
15830 extern zoneid_t getzoneid(void);
15831 extern zoneid_t getzoneidbyname(const char *);
15832 extern ssize_t getzonenamebyid(zoneid_t, char *, size_t);
15833 
15834 /*
15835  * NOTE
15836  *
15837  * The remaining contents of this file are private to the implementation
15838  * of Solaris and are subject to change at any time without notice,
15839  * Applications using these interfaces may fail to run on future releases.
15840  */
15841 
15842 extern int zonept(int, zoneid_t);
15843 extern int zone_get_id(const char *, zoneid_t *);
15844 
15845 /* System call API */
15846 extern zoneid_t zone_create(const char *, const char *,
15847     const struct priv_set *, const char *, size_t, const char *, size_t, int *,
15848     int, int, const bslabel_t *, int);
15849 extern int zone_boot(zoneid_t);
15850 extern int zone_destroy(zoneid_t);
15851 extern ssize_t zone_getattr(zoneid_t, int, void *, size_t);
15852 extern int zone_setattr(zoneid_t, int, void *, size_t);
15853 extern int zone_enter(zoneid_t);
15854 extern int zone_list(zoneid_t *, uint_t *);
15855 extern int zone_shutdown(zoneid_t);
15856 extern int zone_version(int *);
15857 extern int zone_add_datalink(zoneid_t, datalink_id_t);
15858 extern int zone_remove_datalink(zoneid_t, datalink_id_t);
15859 extern int zone_check_datalink(zoneid_t *, datalink_id_t);
15860 extern int zone_list_datalink(zoneid_t, int *, datalink_id_t *);
15861 # 46 "../common/instzones_lib.h" 2
15862 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 1
15863 /*
15864  * CDDL HEADER START
15865  *
15866  * The contents of this file are subject to the terms of the
15867  * Common Development and Distribution License (the "License").
15868  * You may not use this file except in compliance with the License.
15869  *
15870  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15871  * or http://www.opensolaris.org/os/licensing.
15872  * See the License for the specific language governing permissions
15873  * and limitations under the License.
15874  *
15875  * When distributing Covered Code, include this CDDL HEADER in each
15876  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15877  * If applicable, add the following below this CDDL HEADER, with the
15878  * fields enclosed by brackets "[]" replaced with your own identifying
15879  * information: Portions Copyright [yyyy] [name of copyright owner]
15880  *
15881  * CDDL HEADER END
15882  */
15883 
15884 /*
15885  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
15886  */
15887 
15888 
15889 
15890 
15891 /*
15892  * Zone configuration header file.
15893  */
15894 
15895 
15896 
15897 
15898 
15899 /* sys/socket.h is required by net/if.h, which has a constant needed here */
15900 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
15901 /*
15902  * CDDL HEADER START
15903  *
15904  * The contents of this file are subject to the terms of the
15905  * Common Development and Distribution License (the "License").
15906  * You may not use this file except in compliance with the License.
15907  *
15908  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15909  * or http://www.opensolaris.org/os/licensing.
15910  * See the License for the specific language governing permissions
15911  * and limitations under the License.
15912  *
15913  * When distributing Covered Code, include this CDDL HEADER in each
15914  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15915  * If applicable, add the following below this CDDL HEADER, with the
15916  * fields enclosed by brackets "[]" replaced with your own identifying
15917  * information: Portions Copyright [yyyy] [name of copyright owner]
15918  *
15919  * CDDL HEADER END
15920  */
15921 
15922 /*
15923  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
15924  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
15925  */
15926 
15927 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
15928 /*	  All Rights Reserved  	*/
15929 
15930 /*
15931  * University Copyright- Copyright (c) 1982, 1986, 1988
15932  * The Regents of the University of California
15933  * All Rights Reserved
15934  *
15935  * University Acknowledgment- Portions of this document are derived from
15936  * software developed by the University of California, Berkeley, and its
15937  * contributors.
15938  */
15939 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
15940 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fstyp.h" 1
15941 /*
15942  * CDDL HEADER START
15943  *
15944  * The contents of this file are subject to the terms of the
15945  * Common Development and Distribution License, Version 1.0 only
15946  * (the "License").  You may not use this file except in compliance
15947  * with the License.
15948  *
15949  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15950  * or http://www.opensolaris.org/os/licensing.
15951  * See the License for the specific language governing permissions
15952  * and limitations under the License.
15953  *
15954  * When distributing Covered Code, include this CDDL HEADER in each
15955  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15956  * If applicable, add the following below this CDDL HEADER, with the
15957  * fields enclosed by brackets "[]" replaced with your own identifying
15958  * information: Portions Copyright [yyyy] [name of copyright owner]
15959  *
15960  * CDDL HEADER END
15961  */
15962 /*
15963  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
15964  */
15965 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
15966 /*	  All Rights Reserved  	*/
15967 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fstyp.h"
15968 /*
15969  * Opcodes for the sysfs() system call.
15970  */
15971 
15972 
15973 
15974 
15975 
15976 int sysfs(int, ...);
15977 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
15978 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mount.h" 1
15979 /*
15980  * CDDL HEADER START
15981  *
15982  * The contents of this file are subject to the terms of the
15983  * Common Development and Distribution License, Version 1.0 only
15984  * (the "License").  You may not use this file except in compliance
15985  * with the License.
15986  *
15987  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15988  * or http://www.opensolaris.org/os/licensing.
15989  * See the License for the specific language governing permissions
15990  * and limitations under the License.
15991  *
15992  * When distributing Covered Code, include this CDDL HEADER in each
15993  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15994  * If applicable, add the following below this CDDL HEADER, with the
15995  * fields enclosed by brackets "[]" replaced with your own identifying
15996  * information: Portions Copyright [yyyy] [name of copyright owner]
15997  *
15998  * CDDL HEADER END
15999  */
16000 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16001 /*	  All Rights Reserved  	*/
16002 
16003 
16004 /*
16005  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16006  *
16007  * Copyright (c) 1996, 1999 by Sun Microsystems, Inc.
16008  * All rights reserved.
16009  */
16010 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mount.h"
16011 /*
16012  * Flag bits passed to mount(2).
16013  */
16014 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mount.h"
16015 /*
16016  * Additional flag bits that domount() is prepared to interpret, but that
16017  * can't be passed through mount(2).
16018  */
16019 
16020 
16021 
16022 /*
16023  * Mask to sift out flag bits allowable from mount(2).
16024  */
16025 
16026 
16027 
16028 
16029 /*
16030  * Mask to sift out flag bits allowable from umount2(2).
16031  */
16032 
16033 
16034 
16035 /*
16036  * Maximum option string length accepted or returned by mount(2).
16037  */
16038 
16039 
16040 
16041 int mount(const char *, const char *, int, ...);
16042 int umount(const char *);
16043 int umount2(const char *, int);
16044 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16045 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/priv.h" 1
16046 /*
16047  * CDDL HEADER START
16048  *
16049  * The contents of this file are subject to the terms of the
16050  * Common Development and Distribution License (the "License").
16051  * You may not use this file except in compliance with the License.
16052  *
16053  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16054  * or http://www.opensolaris.org/os/licensing.
16055  * See the License for the specific language governing permissions
16056  * and limitations under the License.
16057  *
16058  * When distributing Covered Code, include this CDDL HEADER in each
16059  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16060  * If applicable, add the following below this CDDL HEADER, with the
16061  * fields enclosed by brackets "[]" replaced with your own identifying
16062  * information: Portions Copyright [yyyy] [name of copyright owner]
16063  *
16064  * CDDL HEADER END
16065  */
16066 /*
16067  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16068  *
16069  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
16070  * Use is subject to license terms.
16071  */
16072 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16073 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
16074 /*
16075  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16076  * Use is subject to license terms.
16077  *
16078  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
16079  */
16080 /*
16081  * Copyright (c) 1982, 1986 Regents of the University of California.
16082  * All rights reserved.
16083  *
16084  * Redistribution and use in source and binary forms are permitted
16085  * provided that this notice is preserved and that due credit is given
16086  * to the University of California at Berkeley. The name of the University
16087  * may not be used to endorse or promote products derived from this
16088  * software without specific prior written permission. This software
16089  * is provided ``as is'' without express or implied warranty.
16090  */
16091 
16092 /*
16093  * Constants and structures defined by the internet system,
16094  * according to following documents
16095  *
16096  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
16097  *	http://www.iana.org/assignments/protocol-numbers
16098  *	http://www.iana.org/assignments/port-numbers
16099  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
16100  *
16101  */
16102 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16103 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1
16104 /*
16105  * CDDL HEADER START
16106  *
16107  * The contents of this file are subject to the terms of the
16108  * Common Development and Distribution License (the "License").
16109  * You may not use this file except in compliance with the License.
16110  *
16111  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16112  * or http://www.opensolaris.org/os/licensing.
16113  * See the License for the specific language governing permissions
16114  * and limitations under the License.
16115  *
16116  * When distributing Covered Code, include this CDDL HEADER in each
16117  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16118  * If applicable, add the following below this CDDL HEADER, with the
16119  * fields enclosed by brackets "[]" replaced with your own identifying
16120  * information: Portions Copyright [yyyy] [name of copyright owner]
16121  *
16122  * CDDL HEADER END
16123  */
16124 /*
16125  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16126  *
16127  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
16128  */
16129 
16130 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
16131 /*	  All Rights Reserved	*/
16132 
16133 /*
16134  * University Copyright- Copyright (c) 1982, 1986, 1988
16135  * The Regents of the University of California
16136  * All Rights Reserved
16137  *
16138  * University Acknowledgment- Portions of this document are derived from
16139  * software developed by the University of California, Berkeley, and its
16140  * contributors.
16141  */
16142 
16143 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
16144 
16145 
16146 
16147 
16148 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16149 /*
16150  * CDDL HEADER START
16151  *
16152  * The contents of this file are subject to the terms of the
16153  * Common Development and Distribution License (the "License").
16154  * You may not use this file except in compliance with the License.
16155  *
16156  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16157  * or http://www.opensolaris.org/os/licensing.
16158  * See the License for the specific language governing permissions
16159  * and limitations under the License.
16160  *
16161  * When distributing Covered Code, include this CDDL HEADER in each
16162  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16163  * If applicable, add the following below this CDDL HEADER, with the
16164  * fields enclosed by brackets "[]" replaced with your own identifying
16165  * information: Portions Copyright [yyyy] [name of copyright owner]
16166  *
16167  * CDDL HEADER END
16168  */
16169 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16170 /*	  All Rights Reserved  	*/
16171 
16172 
16173 /*
16174  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16175  * Use is subject to license terms.
16176  *
16177  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16178  * Copyright 2016 Joyent, Inc.
16179  */
16180 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
16181 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1
16182 /*
16183  * CDDL HEADER START
16184  *
16185  * The contents of this file are subject to the terms of the
16186  * Common Development and Distribution License (the "License").
16187  * You may not use this file except in compliance with the License.
16188  *
16189  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16190  * or http://www.opensolaris.org/os/licensing.
16191  * See the License for the specific language governing permissions
16192  * and limitations under the License.
16193  *
16194  * When distributing Covered Code, include this CDDL HEADER in each
16195  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16196  * If applicable, add the following below this CDDL HEADER, with the
16197  * fields enclosed by brackets "[]" replaced with your own identifying
16198  * information: Portions Copyright [yyyy] [name of copyright owner]
16199  *
16200  * CDDL HEADER END
16201  */
16202 /*
16203  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16204  *
16205  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
16206  * Use is subject to license terms.
16207  *
16208  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16209  * Copyright (c) 2015, Joyent, Inc.  All rights reserved.
16210  */
16211 
16212 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16213 /*	  All Rights Reserved  	*/
16214 
16215 /*
16216  * University Copyright- Copyright (c) 1982, 1986, 1988
16217  * The Regents of the University of California
16218  * All Rights Reserved
16219  *
16220  * University Acknowledgment- Portions of this document are derived from
16221  * software developed by the University of California, Berkeley, and its
16222  * contributors.
16223  */
16224 
16225 
16226 
16227 
16228 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
16229 /*
16230  * CDDL HEADER START
16231  *
16232  * The contents of this file are subject to the terms of the
16233  * Common Development and Distribution License (the "License").
16234  * You may not use this file except in compliance with the License.
16235  *
16236  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16237  * or http://www.opensolaris.org/os/licensing.
16238  * See the License for the specific language governing permissions
16239  * and limitations under the License.
16240  *
16241  * When distributing Covered Code, include this CDDL HEADER in each
16242  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16243  * If applicable, add the following below this CDDL HEADER, with the
16244  * fields enclosed by brackets "[]" replaced with your own identifying
16245  * information: Portions Copyright [yyyy] [name of copyright owner]
16246  *
16247  * CDDL HEADER END
16248  */
16249 
16250 /*
16251  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
16252  * Copyright 2016 Joyent, Inc.
16253  *
16254  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
16255  * Use is subject to license terms.
16256  */
16257 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
16258 
16259 
16260 
16261 
16262 
16263 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
16264 /*
16265  * CDDL HEADER START
16266  *
16267  * The contents of this file are subject to the terms of the
16268  * Common Development and Distribution License (the "License").
16269  * You may not use this file except in compliance with the License.
16270  *
16271  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16272  * or http://www.opensolaris.org/os/licensing.
16273  * See the License for the specific language governing permissions
16274  * and limitations under the License.
16275  *
16276  * When distributing Covered Code, include this CDDL HEADER in each
16277  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16278  * If applicable, add the following below this CDDL HEADER, with the
16279  * fields enclosed by brackets "[]" replaced with your own identifying
16280  * information: Portions Copyright [yyyy] [name of copyright owner]
16281  *
16282  * CDDL HEADER END
16283  */
16284 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16285 /*	  All Rights Reserved  	*/
16286 
16287 
16288 /*
16289  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16290  * Use is subject to license terms.
16291  *
16292  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
16293  * Copyright 2016 Joyent, Inc.
16294  */
16295 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
16296 
16297 /*
16298  * I/O parameter information.  A uio structure describes the I/O which
16299  * is to be performed by an operation.  Typically the data movement will
16300  * be performed by a routine such as uiomove(), which updates the uio
16301  * structure to reflect what was done.
16302  */
16303 
16304 
16305 
16306 
16307 
16308 
16309 
16310 typedef struct iovec {
16311  caddr_t iov_base;
16312 
16313  size_t iov_len;
16314 
16315 
16316 
16317 } iovec_t;
16318 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16319 /*
16320  * Segment flag values.
16321  */
16322 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t;
16323 
16324 typedef struct uio {
16325  iovec_t *uio_iov; /* pointer to array of iovecs */
16326  int uio_iovcnt; /* number of iovecs */
16327  lloff_t _uio_offset; /* file offset */
16328  uio_seg_t uio_segflg; /* address space (kernel or user) */
16329  uint16_t uio_fmode; /* file mode flags */
16330  uint16_t uio_extflg; /* extended flags */
16331  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
16332  ssize_t uio_resid; /* residual count */
16333 } uio_t;
16334 
16335 /*
16336  * Extended uio_t uioa_t used for asynchronous uio.
16337  *
16338  * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c"
16339  *	 as there isn't a formal definition of IOV_MAX for the kernel.
16340  */
16341 
16342 
16343 typedef struct uioa_page_s { /* locked uio_iov state */
16344  int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */
16345  void **uioa_ppp; /* page_t or pfn_t arrary */
16346  caddr_t uioa_base; /* address base */
16347  size_t uioa_len; /* span length */
16348 } uioa_page_t;
16349 
16350 typedef struct uioa_s {
16351  iovec_t *uio_iov; /* pointer to array of iovecs */
16352  int uio_iovcnt; /* number of iovecs */
16353  lloff_t _uio_offset; /* file offset */
16354  uio_seg_t uio_segflg; /* address space (kernel or user) */
16355  uint16_t uio_fmode; /* file mode flags */
16356  uint16_t uio_extflg; /* extended flags */
16357  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
16358  ssize_t uio_resid; /* residual count */
16359  /*
16360 	 * uioa extended members.
16361 	 */
16362  uint32_t uioa_state; /* state of asynch i/o */
16363  ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */
16364  uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */
16365  void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */
16366  void *uioa_hwst[4]; /* opaque hardware state */
16367  uioa_page_t uioa_locked[16]; /* Per iov locked pages */
16368 } uioa_t;
16369 
16370 /*
16371  * uio extensions
16372  *
16373  * PSARC 2009/478: Copy Reduction Interfaces
16374  */
16375 typedef enum xuio_type {
16376  UIOTYPE_ASYNCIO,
16377  UIOTYPE_ZEROCOPY
16378 } xuio_type_t;
16379 
16380 typedef struct xuio {
16381  uio_t xu_uio; /* Embedded UIO structure */
16382 
16383  /* Extended uio fields */
16384  enum xuio_type xu_type; /* What kind of uio structure? */
16385  union {
16386   /* Async I/O Support, intend to replace uioa_t. */
16387   struct {
16388    uint32_t xu_a_state; /* state of async i/o */
16389    /* bytes that have been uioamove()ed */
16390    ssize_t xu_a_mbytes;
16391    uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */
16392    /* pointer into lcur->uioa_ppp[] */
16393    void **xu_a_lppp;
16394    void *xu_a_hwst[4]; /* opaque hardware state */
16395    /* Per iov locked pages */
16396    uioa_page_t xu_a_locked[16];
16397   } xu_aio;
16398 
16399   /*
16400 		 * Copy Reduction Support -- facilate loaning / returning of
16401 		 * filesystem cache buffers.
16402 		 */
16403   struct {
16404    int xu_zc_rw; /* read or write buffer */
16405    void *xu_zc_priv; /* fs specific */
16406   } xu_zc;
16407  } xu_ext;
16408 } xuio_t;
16409 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16410 /*
16411  * I/O direction.
16412  */
16413 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t;
16414 
16415 /*
16416  * uio_extflg: extended flags
16417  *
16418  * NOTE: This flag will be used in uiomove to determine if non-temporal
16419  * access, ie, access bypassing caches, should be used.  Filesystems that
16420  * don't initialize this field could experience suboptimal performance due to
16421  * the random data the field contains.
16422  *
16423  * NOTE: This flag is also used by uioasync callers to pass an extended
16424  * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all
16425  * consumers of a uioa_t require the uio_extflg to be initialized.
16426  */
16427 
16428 
16429 
16430 
16431 
16432 
16433 /*
16434  * Global uioasync capability shadow state.
16435  */
16436 typedef struct uioasync_s {
16437  boolean_t enabled; /* Is uioasync enabled? */
16438  size_t mincnt; /* Minimum byte count for use of */
16439 } uioasync_t;
16440 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16441 extern ssize_t readv(int, const struct iovec *, int);
16442 extern ssize_t writev(int, const struct iovec *, int);
16443 
16444 /*
16445  * When in the large file compilation environment,
16446  * map preadv/pwritev to their 64 bit offset versions
16447  */
16448 # 274 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16449 /* In the LP64 compilation environment, the APIs are already large file */
16450 
16451 
16452 
16453 # 277 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16454 #pragma redefine_extname preadv64 preadv
16455 # 277 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16456 
16457 
16458 # 278 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16459 #pragma redefine_extname pwritev64 pwritev
16460 # 278 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
16461 
16462 
16463 
16464 
16465 
16466 
16467 
16468 extern ssize_t preadv(int, const struct iovec *, int, off_t);
16469 extern ssize_t pwritev(int, const struct iovec *, int, off_t);
16470 
16471 /*
16472  * preadv64 and pwritev64 should be defined when:
16473  * - Using the transitional compilation environment, and not
16474  *     the large file compilation environment.
16475  */
16476 
16477 
16478 extern ssize_t preadv64(int, const struct iovec *, int, off64_t);
16479 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t);
16480 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
16481 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
16482 /*
16483  * CDDL HEADER START
16484  *
16485  * The contents of this file are subject to the terms of the
16486  * Common Development and Distribution License (the "License").
16487  * You may not use this file except in compliance with the License.
16488  *
16489  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16490  * or http://www.opensolaris.org/os/licensing.
16491  * See the License for the specific language governing permissions
16492  * and limitations under the License.
16493  *
16494  * When distributing Covered Code, include this CDDL HEADER in each
16495  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16496  * If applicable, add the following below this CDDL HEADER, with the
16497  * fields enclosed by brackets "[]" replaced with your own identifying
16498  * information: Portions Copyright [yyyy] [name of copyright owner]
16499  *
16500  * CDDL HEADER END
16501  */
16502 
16503 /*
16504  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
16505  * Copyright 2016 Joyent, Inc.
16506  *
16507  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
16508  * Use is subject to license terms.
16509  */
16510 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
16511 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
16512 /*
16513  * CDDL HEADER START
16514  *
16515  * The contents of this file are subject to the terms of the
16516  * Common Development and Distribution License (the "License").
16517  * You may not use this file except in compliance with the License.
16518  *
16519  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16520  * or http://www.opensolaris.org/os/licensing.
16521  * See the License for the specific language governing permissions
16522  * and limitations under the License.
16523  *
16524  * When distributing Covered Code, include this CDDL HEADER in each
16525  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16526  * If applicable, add the following below this CDDL HEADER, with the
16527  * fields enclosed by brackets "[]" replaced with your own identifying
16528  * information: Portions Copyright [yyyy] [name of copyright owner]
16529  *
16530  * CDDL HEADER END
16531  */
16532 /*
16533  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16534  * Use is subject to license terms.
16535  */
16536 
16537 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
16538 /*	  All Rights Reserved	*/
16539 
16540 /*
16541  * Portions of this source code were derived from Berkeley 4.3 BSD
16542  * under license from the Regents of the University of California.
16543  */
16544 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
16545 
16546 
16547 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1
16548 /*
16549  * CDDL HEADER START
16550  *
16551  * The contents of this file are subject to the terms of the
16552  * Common Development and Distribution License, Version 1.0 only
16553  * (the "License").  You may not use this file except in compliance
16554  * with the License.
16555  *
16556  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16557  * or http://www.opensolaris.org/os/licensing.
16558  * See the License for the specific language governing permissions
16559  * and limitations under the License.
16560  *
16561  * When distributing Covered Code, include this CDDL HEADER in each
16562  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16563  * If applicable, add the following below this CDDL HEADER, with the
16564  * fields enclosed by brackets "[]" replaced with your own identifying
16565  * information: Portions Copyright [yyyy] [name of copyright owner]
16566  *
16567  * CDDL HEADER END
16568  */
16569 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
16570 /*	  All Rights Reserved  	*/
16571 
16572 
16573 /*
16574  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16575  *
16576  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
16577  * Use is subject to license terms.
16578  */
16579 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
16580 struct netconfig {
16581  char *nc_netid; /* network identifier		*/
16582  unsigned int nc_semantics; /* defined below		*/
16583  unsigned int nc_flag; /* defined below		*/
16584  char *nc_protofmly; /* protocol family name		*/
16585  char *nc_proto; /* protocol name		*/
16586  char *nc_device; /* device name for network id	*/
16587  unsigned int nc_nlookups; /* # of entries in nc_lookups	*/
16588  char **nc_lookups; /* list of lookup directories	*/
16589  unsigned int nc_unused[8]; /* borrowed for lockd etc.	*/
16590 };
16591 
16592 typedef struct {
16593  struct netconfig **nc_head;
16594  struct netconfig **nc_curr;
16595 } NCONF_HANDLE;
16596 
16597 /*
16598  *	Values of nc_semantics
16599  */
16600 
16601 
16602 
16603 
16604 
16605 /*
16606  * NOT FOR PUBLIC USE, Solaris internal only.
16607  * This value of nc_semantics is strictly for use of Remote Direct
16608  * Memory Access provider interfaces in Solaris only and not for
16609  * general use. Do not use this value for general purpose user or
16610  * kernel programming. If used the behavior is undefined.
16611  * This is a PRIVATE interface to be used by Solaris kRPC only.
16612  */
16613 
16614 
16615 /*
16616  *	Values of nc_flag
16617  */
16618 
16619 
16620 
16621 
16622 
16623 /*
16624  *	Values of nc_protofmly
16625  */
16626 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
16627 /*
16628  * NOT FOR PUBLIC USE, Solaris internal only.
16629  * This value of nc_semantics is strictly for use of Remote Direct
16630  * Memory Access provider interfaces in Solaris only and not for
16631  * general use. Do not use this value for general purpose user or
16632  * kernel programming. If used the behavior is undefined.
16633  * This is a PRIVATE interface to be used by Solaris kRPC only.
16634  */
16635 
16636 
16637 /*
16638  *	Values for nc_proto
16639  */
16640 
16641 
16642 
16643 
16644 
16645 
16646 /*
16647  * 	Values for nc_proto for "rdma" protofmly
16648  */
16649 
16650 
16651 
16652 
16653 extern void *setnetconfig(void);
16654 extern int endnetconfig(void *);
16655 extern struct netconfig *getnetconfig(void *);
16656 extern struct netconfig *getnetconfigent(const char *);
16657 extern void freenetconfigent(struct netconfig *);
16658 extern void *setnetpath(void);
16659 extern int endnetpath(void *);
16660 extern struct netconfig *getnetpath(void *);
16661 extern void nc_perror(const char *);
16662 extern char *nc_sperror(void);
16663 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
16664 
16665 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
16666 /*
16667  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16668  * Use is subject to license terms.
16669  *
16670  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
16671  */
16672 /*
16673  * Copyright (c) 1982, 1986 Regents of the University of California.
16674  * All rights reserved.
16675  *
16676  * Redistribution and use in source and binary forms are permitted
16677  * provided that this notice is preserved and that due credit is given
16678  * to the University of California at Berkeley. The name of the University
16679  * may not be used to endorse or promote products derived from this
16680  * software without specific prior written permission. This software
16681  * is provided ``as is'' without express or implied warranty.
16682  */
16683 
16684 /*
16685  * Constants and structures defined by the internet system,
16686  * according to following documents
16687  *
16688  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
16689  *	http://www.iana.org/assignments/protocol-numbers
16690  *	http://www.iana.org/assignments/port-numbers
16691  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
16692  *
16693  */
16694 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
16695 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16696 /*
16697  * Definitions related to sockets: types, address families, options.
16698  */
16699 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16700 /*
16701  * Types
16702  */
16703 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16704 /*
16705  * Flags for socket() and accept4()
16706  */
16707 
16708 
16709 
16710 
16711 /*
16712  * Option flags per-socket.
16713  */
16714 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16715 /*
16716  * Socket options are passed using a signed integer, but it is also rare
16717  * for more than one to ever be passed at the same time with setsockopt
16718  * and only one at a time can be retrieved with getsockopt.
16719  *
16720  * Since the lower numbers cannot be renumbered for compatibility reasons,
16721  * it would seem that we need to start a new number space (0x40000000 -
16722  * 0x7fffffff) for those that don't need to be stored as a bit flag
16723  * somewhere. This limits the flag options to 30 but that seems to be
16724  * plenty, anyway. 0x40000000 is reserved for future use.
16725  */
16726 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16727 /*
16728  * N.B.: The following definition is present only for compatibility
16729  * with release 3.0.  It will disappear in later releases.
16730  */
16731 
16732 
16733 /*
16734  * Additional options, not kept in so_options.
16735  */
16736 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16737 /* "Socket"-level control message types: */
16738 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16739 /*
16740  * Socket filter options
16741  */
16742 
16743 
16744 
16745 
16746 
16747 /*
16748  * Structure returned by FIL_LIST
16749  */
16750 struct fil_info {
16751  int fi_flags; /* see below (FILF_*) */
16752  int fi_pos; /* position (0 is bottom) */
16753  char fi_name[32]; /* filter name */
16754 };
16755 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16756 /*
16757  * Structure used for manipulating linger option.
16758  */
16759 struct linger {
16760  int l_onoff; /* option on/off */
16761  int l_linger; /* linger time */
16762 };
16763 
16764 /*
16765  * Levels for (get/set)sockopt() that don't apply to a specific protocol.
16766  */
16767 
16768 
16769 
16770 
16771 
16772 
16773 
16774 /*
16775  * Address families.
16776  *
16777  * Some of these constant names are copied for the DTrace IP provider in
16778  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
16779  * in sync.
16780  */
16781 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16782 /*
16783  * Protocol families, same as address families for now.
16784  */
16785 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16786 /*
16787  * Maximum queue length specifiable by listen.
16788  */
16789 
16790 
16791 /*
16792  * Message header for recvmsg and sendmsg calls.
16793  */
16794 struct msghdr {
16795  void *msg_name; /* optional address */
16796  socklen_t msg_namelen; /* size of address */
16797  struct iovec *msg_iov; /* scatter/gather array */
16798  int msg_iovlen; /* # elements in msg_iov */
16799 
16800 
16801 
16802 
16803 
16804 
16805  caddr_t msg_accrights; /* access rights sent/received */
16806  int msg_accrightslen;
16807 
16808 };
16809 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16810 /* Added for XPGv2 compliance */
16811 
16812 
16813 
16814 
16815 
16816      /* with left over data */
16817 /* End of XPGv2 compliance */
16818 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16819 /* Added for XPGv2 compliance */
16820 
16821 
16822 
16823 
16824 struct cmsghdr {
16825  socklen_t cmsg_len; /* data byte count, including hdr */
16826  int cmsg_level; /* originating protocol */
16827  int cmsg_type; /* protocol-specific type */
16828 };
16829 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
16830 extern int accept(int, struct sockaddr *, Psocklen_t);
16831 extern int accept4(int, struct sockaddr *, Psocklen_t, int);
16832 extern int bind(int, const struct sockaddr *, socklen_t);
16833 extern int connect(int, const struct sockaddr *, socklen_t);
16834 extern int getpeername(int, struct sockaddr *, Psocklen_t);
16835 extern int getsockname(int, struct sockaddr *, Psocklen_t);
16836 extern int getsockopt(int, int, int, void *, Psocklen_t);
16837 extern int listen(int, int); /* XXX - fixme???  where do I go */
16838 extern int socketpair(int, int, int, int *);
16839 extern ssize_t recv(int, void *, size_t, int);
16840 extern ssize_t recvfrom(int, void *, size_t, int,
16841  struct sockaddr *, Psocklen_t);
16842 extern ssize_t recvmsg(int, struct msghdr *, int);
16843 extern ssize_t send(int, const void *, size_t, int);
16844 extern ssize_t sendmsg(int, const struct msghdr *, int);
16845 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *,
16846  socklen_t);
16847 extern int setsockopt(int, int, int, const void *, socklen_t);
16848 extern int shutdown(int, int);
16849 extern int socket(int, int, int);
16850 
16851 
16852 extern int sockatmark(int);
16853 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
16854 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 1
16855 /*
16856  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
16857  */
16858 
16859 /*
16860  * Copyright (c) 1982, 1986 Regents of the University of California.
16861  * All rights reserved.  The Berkeley software License Agreement
16862  * specifies the terms and conditions for redistribution.
16863  */
16864 
16865 
16866 
16867 
16868 /* if.h 1.26 90/05/29 SMI; from UCB 7.1 6/4/86		*/
16869 
16870 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
16871 /*
16872  * CDDL HEADER START
16873  *
16874  * The contents of this file are subject to the terms of the
16875  * Common Development and Distribution License (the "License").
16876  * You may not use this file except in compliance with the License.
16877  *
16878  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16879  * or http://www.opensolaris.org/os/licensing.
16880  * See the License for the specific language governing permissions
16881  * and limitations under the License.
16882  *
16883  * When distributing Covered Code, include this CDDL HEADER in each
16884  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16885  * If applicable, add the following below this CDDL HEADER, with the
16886  * fields enclosed by brackets "[]" replaced with your own identifying
16887  * information: Portions Copyright [yyyy] [name of copyright owner]
16888  *
16889  * CDDL HEADER END
16890  */
16891 
16892 /*
16893  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
16894  * Copyright 2016 Joyent, Inc.
16895  *
16896  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
16897  * Use is subject to license terms.
16898  */
16899 # 17 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
16900 
16901 
16902 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1
16903 /*
16904  * CDDL HEADER START
16905  *
16906  * The contents of this file are subject to the terms of the
16907  * Common Development and Distribution License (the "License").
16908  * You may not use this file except in compliance with the License.
16909  *
16910  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16911  * or http://www.opensolaris.org/os/licensing.
16912  * See the License for the specific language governing permissions
16913  * and limitations under the License.
16914  *
16915  * When distributing Covered Code, include this CDDL HEADER in each
16916  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16917  * If applicable, add the following below this CDDL HEADER, with the
16918  * fields enclosed by brackets "[]" replaced with your own identifying
16919  * information: Portions Copyright [yyyy] [name of copyright owner]
16920  *
16921  * CDDL HEADER END
16922  */
16923 /*
16924  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
16925  *
16926  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
16927  */
16928 
16929 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
16930 /*	  All Rights Reserved	*/
16931 
16932 /*
16933  * University Copyright- Copyright (c) 1982, 1986, 1988
16934  * The Regents of the University of California
16935  * All Rights Reserved
16936  *
16937  * University Acknowledgment- Portions of this document are derived from
16938  * software developed by the University of California, Berkeley, and its
16939  * contributors.
16940  */
16941 
16942 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
16943 # 20 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
16944 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
16945 /*
16946  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
16947  * Use is subject to license terms.
16948  *
16949  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
16950  */
16951 /*
16952  * Copyright (c) 1982, 1986 Regents of the University of California.
16953  * All rights reserved.
16954  *
16955  * Redistribution and use in source and binary forms are permitted
16956  * provided that this notice is preserved and that due credit is given
16957  * to the University of California at Berkeley. The name of the University
16958  * may not be used to endorse or promote products derived from this
16959  * software without specific prior written permission. This software
16960  * is provided ``as is'' without express or implied warranty.
16961  */
16962 
16963 /*
16964  * Constants and structures defined by the internet system,
16965  * according to following documents
16966  *
16967  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
16968  *	http://www.iana.org/assignments/protocol-numbers
16969  *	http://www.iana.org/assignments/port-numbers
16970  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
16971  *
16972  */
16973 # 21 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
16974 
16975 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
16976 /*
16977  * CDDL HEADER START
16978  *
16979  * The contents of this file are subject to the terms of the
16980  * Common Development and Distribution License (the "License").
16981  * You may not use this file except in compliance with the License.
16982  *
16983  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
16984  * or http://www.opensolaris.org/os/licensing.
16985  * See the License for the specific language governing permissions
16986  * and limitations under the License.
16987  *
16988  * When distributing Covered Code, include this CDDL HEADER in each
16989  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16990  * If applicable, add the following below this CDDL HEADER, with the
16991  * fields enclosed by brackets "[]" replaced with your own identifying
16992  * information: Portions Copyright [yyyy] [name of copyright owner]
16993  *
16994  * CDDL HEADER END
16995  */
16996 /*
16997  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
16998  * Use is subject to license terms.
16999  * Copyright 2015 Nexenta Systems, Inc.
17000  */
17001 # 23 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h" 2
17002 
17003 
17004 
17005 
17006 
17007 
17008 
17009 /*
17010  * Structures defining a network interface, providing a packet
17011  * transport mechanism (ala level 0 of the PUP protocols).
17012  *
17013  * Each interface accepts output datagrams of a specified maximum
17014  * length, and provides higher level routines with input datagrams
17015  * received from its medium.
17016  *
17017  * Output occurs when the routine if_output is called, with three parameters:
17018  *	(*ifp->if_output)(ifp, m, dst)
17019  * Here m is the mbuf chain to be sent and dst is the destination address.
17020  * The output routine encapsulates the supplied datagram if necessary,
17021  * and then transmits it on its medium.
17022  *
17023  * On input, each interface unwraps the data received by it, and either
17024  * places it on the input queue of a internetwork datagram routine
17025  * and posts the associated software interrupt, or passes the datagram to a raw
17026  * packet input routine.
17027  *
17028  * Routines exist for locating interfaces by their addresses
17029  * or for locating a interface on a certain network, as well as more general
17030  * routing and gateway routines maintaining information used to locate
17031  * interfaces.  These routines live in the files if.c and route.c
17032  */
17033 
17034 
17035 
17036 /*
17037  * Structure defining a queue for a network interface.
17038  *
17039  * (Would like to call this struct ``if'', but C isn't PL/1.)
17040  */
17041 struct ifnet {
17042  char *if_name; /* name, e.g. ``en'' or ``lo'' */
17043  short if_unit; /* sub-unit for lower level driver */
17044  short if_mtu; /* maximum transmission unit */
17045  short if_flags; /* up/down, broadcast, etc. */
17046  short if_timer; /* time 'til if_watchdog called */
17047  ushort_t if_promisc; /* net # of requests for promisc mode */
17048  int if_metric; /* routing metric (external only) */
17049  struct ifaddr *if_addrlist; /* linked list of addresses per if */
17050  struct ifqueue {
17051   struct mbuf *ifq_head;
17052   struct mbuf *ifq_tail;
17053   int ifq_len;
17054   int ifq_maxlen;
17055   int ifq_drops;
17056  } if_snd; /* output queue */
17057 /* procedure handles */
17058  int (*if_init)(); /* init routine */
17059  int (*if_output)(); /* output routine */
17060  int (*if_ioctl)(); /* ioctl routine */
17061  int (*if_reset)(); /* bus reset routine */
17062  int (*if_watchdog)(); /* timer routine */
17063 /* generic interface statistics */
17064  int if_ipackets; /* packets received on interface */
17065  int if_ierrors; /* input errors on interface */
17066  int if_opackets; /* packets sent on interface */
17067  int if_oerrors; /* output errors on interface */
17068  int if_collisions; /* collisions on csma interfaces */
17069 /* end statistics */
17070  struct ifnet *if_next;
17071  struct ifnet *if_upper; /* next layer up */
17072  struct ifnet *if_lower; /* next layer down */
17073  int (*if_input)(); /* input routine */
17074  int (*if_ctlin)(); /* control input routine */
17075  int (*if_ctlout)(); /* control output routine */
17076  struct map *if_memmap; /* rmap for interface specific memory */
17077 };
17078 
17079 /*
17080  * NOTE : These flags are not directly used within IP.
17081  * ip_if.h has definitions derived from this which is used within IP.
17082  * If you define a flag here, you need to define one in ip_if.h before
17083  * using the new flag in IP. Don't use these flags directly in IP.
17084  */
17085 # 119 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17086 /*
17087  * The IFF_MULTICAST flag indicates that the network can support the
17088  * transmission and reception of higher-level (e.g., IP) multicast packets.
17089  * It is independent of hardware support for multicasting; for example,
17090  * point-to-point links or pure broadcast networks may well support
17091  * higher-level multicasts.
17092  */
17093 
17094 
17095 
17096 
17097 
17098 
17099 
17100 /*
17101  * The following flags can't be grabbed or altered by SIOC[GS]IFFLAGS.
17102  * Should use SIOC[GS]LIFFLAGS which has a larger flags field.
17103  */
17104 # 157 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17105 /*
17106  * The IFF_XRESOLV flag is an evolving interface and is subject
17107  * to change without notice.
17108  */
17109 # 175 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17110 /* flags that cannot be changed by userland on any interface */
17111 
17112 
17113 
17114 
17115 
17116 
17117 
17118 /* flags that cannot be changed by userland on an IPMP interface */
17119 
17120 
17121 /* flags that can never be set on an IPMP interface */
17122 
17123 
17124 
17125 /*
17126  * Output queues (ifp->if_snd) and internetwork datagram level (pup level 1)
17127  * input routines have queues of messages stored on ifqueue structures
17128  * (defined above).  Entries are added to and deleted from these structures
17129  * by these macros, which should be called with ipl raised to splimp().
17130  */
17131 # 215 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17132 /*
17133  * Packets destined for level-1 protocol input routines
17134  * have a pointer to the receiving interface prepended to the data.
17135  * IF_DEQUEUEIF extracts and returns this pointer when dequeuing the packet.
17136  * IF_ADJ should be used otherwise to adjust for its presence.
17137  */
17138 # 254 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17139 /*
17140  * The ifaddr structure contains information about one address
17141  * of an interface.  They are maintained by the different address families,
17142  * are allocated and attached when an address is set, and are linked
17143  * together so all addresses for an interface can be located.
17144  */
17145 struct ifaddr {
17146  struct sockaddr ifa_addr; /* address of interface */
17147  union {
17148   struct sockaddr ifu_broadaddr;
17149   struct sockaddr ifu_dstaddr;
17150  } ifa_ifu;
17151 
17152 
17153  struct ifnet *ifa_ifp; /* back-pointer to interface */
17154  struct ifaddr *ifa_next; /* next address for interface */
17155 };
17156 
17157 /*
17158  * For SIOCLIF*ND ioctls.
17159  *
17160  * The lnr_state_* fields use the ND_* neighbor reachability states.
17161  * The 3 different fields are for use with SIOCLIFSETND to cover the cases
17162  * when
17163  *	A new entry is created
17164  *	The entry already exists and the link-layer address is the same
17165  *	The entry already exists and the link-layer address differs
17166  *
17167  * Use ND_UNCHANGED to not change any state.
17168  */
17169 
17170 typedef struct lif_nd_req {
17171  struct sockaddr_storage lnr_addr;
17172  uint8_t lnr_state_create; /* When creating */
17173  uint8_t lnr_state_same_lla; /* Update same addr */
17174  uint8_t lnr_state_diff_lla; /* Update w/ diff. */
17175  int lnr_hdw_len;
17176  int lnr_flags; /* See below */
17177  /* padding because ia32 "long long"s are only 4-byte aligned. */
17178  int lnr_pad0;
17179  char lnr_hdw_addr[64];
17180 } lif_nd_req_t;
17181 
17182 /*
17183  * Neighbor reachability states
17184  * Used with SIOCLIF*ND ioctls.
17185  */
17186 # 313 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17187 /*
17188  * lnr_flags value of lif_nd_req.
17189  * Used with SIOCLIF*ND ioctls.
17190  */
17191 
17192 
17193 
17194 
17195 
17196 
17197 /*
17198  * the NDF_STATIC entry ensures that an NCE will not be deleted, and is
17199  * used by non-ON applications like IPv6 test suites.
17200  */
17201 
17202 
17203 /* For SIOC[GS]LIFLNKINFO */
17204 typedef struct lif_ifinfo_req {
17205  uint8_t lir_maxhops;
17206  uint32_t lir_reachtime; /* Reachable time in msec */
17207  uint32_t lir_reachretrans; /* Retransmission timer msec */
17208  uint32_t lir_maxmtu;
17209 } lif_ifinfo_req_t;
17210 
17211 
17212 
17213 /*
17214  * Maximum lengths of interface name and IPMP group name; these are the same
17215  * for historical reasons.  Note that the actual maximum length of a name is
17216  * one byte less than these constants since the kernel always sets the final
17217  * byte of lifr_name and lifr_groupname to NUL.
17218  */
17219 
17220 
17221 
17222 
17223 
17224 
17225 
17226 /*
17227  * Interface request structure used for socket
17228  * ioctl's.  All interface ioctl's must have parameter
17229  * definitions which begin with ifr_name.  The
17230  * remainder may be interface specific.
17231  * Note: This data structure uses 64bit type uint64_t which is not
17232  *	 a valid type for strict ANSI/ISO C compilation for ILP32.
17233  *	 Applications with ioctls using this structure that insist on
17234  *	 building with strict ANSI/ISO C (-Xc) will need to be LP64.
17235  */
17236 
17237 struct lifreq {
17238  char lifr_name[32]; /* if name, e.g. "en0" */
17239  union {
17240   int lifru_addrlen; /* for subnet/token etc */
17241   uint_t lifru_ppa; /* SIOCSLIFNAME */
17242  } lifr_lifru1;
17243 
17244 
17245  uint_t lifr_type; /* IFT_ETHER, ... */
17246  union {
17247   struct sockaddr_storage lifru_addr;
17248   struct sockaddr_storage lifru_dstaddr;
17249   struct sockaddr_storage lifru_broadaddr;
17250   struct sockaddr_storage lifru_token; /* With lifr_addrlen */
17251   struct sockaddr_storage lifru_subnet; /* With lifr_addrlen */
17252   int lifru_index; /* interface index */
17253   uint64_t lifru_flags; /* Flags for SIOC?LIFFLAGS */
17254   int lifru_metric;
17255   uint_t lifru_mtu;
17256   int lif_muxid[2]; /* mux id's for arp and ip */
17257   struct lif_nd_req lifru_nd_req; /* SIOCLIF*ND */
17258   struct lif_ifinfo_req lifru_ifinfo_req;
17259   char lifru_groupname[32]; /* SIOC[GS]LIFGROUPNAME */
17260   char lifru_binding[32]; /* SIOCGLIFBINDING */
17261   zoneid_t lifru_zoneid; /* SIOC[GS]LIFZONE */
17262   uint_t lifru_dadstate; /* SIOCGLIFDADSTATE */
17263  } lifr_lifru;
17264 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17265 };
17266 
17267 
17268 /*
17269  * Argument structure for SIOCT* address testing ioctls.
17270  */
17271 struct sioc_addrreq {
17272  struct sockaddr_storage sa_addr; /* Address to test */
17273  int sa_res; /* Result - 0/1 */
17274  int sa_pad;
17275 };
17276 
17277 /*
17278  * Argument structure used by mrouted to get src-grp pkt counts using
17279  * SIOCGETLSGCNT. See <netinet/ip_mroute.h>.
17280  */
17281 struct sioc_lsg_req {
17282  struct sockaddr_storage slr_src;
17283  struct sockaddr_storage slr_grp;
17284  uint_t slr_pktcnt;
17285  uint_t slr_bytecnt;
17286  uint_t slr_wrong_if;
17287  uint_t slr_pad;
17288 };
17289 
17290 /* Argument structure for SIOCGLIFDADSTATE ioctl */
17291 typedef enum {
17292  DAD_IN_PROGRESS = 0x1,
17293  DAD_DONE = 0x2
17294 } glif_dad_state_t;
17295 
17296 /*
17297  * OBSOLETE: Replaced by struct lifreq. Supported for compatibility.
17298  *
17299  * Interface request structure used for socket
17300  * ioctl's.  All interface ioctl's must have parameter
17301  * definitions which begin with ifr_name.  The
17302  * remainder may be interface specific.
17303  */
17304 struct ifreq {
17305 
17306  char ifr_name[16]; /* if name, e.g. "en0" */
17307  union {
17308   struct sockaddr ifru_addr;
17309   struct sockaddr ifru_dstaddr;
17310   char ifru_oname[16]; /* other if name */
17311   struct sockaddr ifru_broadaddr;
17312   int ifru_index; /* interface index */
17313   uint_t ifru_mtu;
17314   short ifru_flags;
17315   int ifru_metric;
17316   char ifru_data[1]; /* interface dependent data */
17317   char ifru_enaddr[6];
17318   int if_muxid[2]; /* mux id's for arp and ip */
17319 
17320   /* Struct for flags/ppa */
17321   struct ifr_ppaflags {
17322    short ifrup_flags; /* Space of ifru_flags. */
17323    short ifrup_filler;
17324    uint_t ifrup_ppa;
17325   } ifru_ppaflags;
17326 
17327   /* Struct for FDDI ioctl's */
17328   struct ifr_dnld_reqs {
17329    uint32_t v_addr;
17330    uint32_t m_addr;
17331    uint32_t ex_addr;
17332    uint32_t size;
17333   } ifru_dnld_req;
17334 
17335   /* Struct for FDDI stats */
17336   struct ifr_fddi_stats {
17337    uint32_t stat_size;
17338    uint32_t fddi_stats;
17339   } ifru_fddi_stat;
17340 
17341   struct ifr_netmapents {
17342    uint32_t map_ent_size, /* size of netmap structure */
17343     entry_number; /* index into netmap list */
17344    uint32_t fddi_map_ent; /* pointer to user structure */
17345   } ifru_netmapent;
17346 
17347   /* Field for generic ioctl for fddi */
17348 
17349   struct ifr_fddi_gen_struct {
17350    uint32_t ifru_fddi_gioctl; /* field for gen ioctl */
17351    uint32_t ifru_fddi_gaddr; /* Generic ptr to a field */
17352   } ifru_fddi_gstruct;
17353 
17354  } ifr_ifru;
17355 # 509 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17356 /* For setting ppa */
17357 
17358 
17359 /* FDDI specific */
17360 
17361 
17362 
17363 
17364 
17365 
17366 
17367 };
17368 
17369 /* Used by SIOCGLIFNUM. Uses same flags as in struct lifconf */
17370 struct lifnum {
17371  sa_family_t lifn_family;
17372  int lifn_flags; /* request specific interfaces */
17373  int lifn_count; /* Result */
17374 };
17375 
17376 /*
17377  * Structure used in SIOCGLIFCONF request.
17378  * Used to retrieve interface configuration
17379  * for machine (useful for programs which
17380  * must know all networks accessible) for a given address family.
17381  * Using AF_UNSPEC will retrieve all address families.
17382  */
17383 struct lifconf {
17384  sa_family_t lifc_family;
17385  int lifc_flags; /* request specific interfaces */
17386  int lifc_len; /* size of associated buffer */
17387  union {
17388   caddr_t lifcu_buf;
17389   struct lifreq *lifcu_req;
17390  } lifc_lifcu;
17391 
17392 
17393 };
17394 
17395 /*
17396  * Structure used in SIOCGLIFSRCOF to get the interface
17397  * configuration list for those interfaces that use an address
17398  * hosted on the interface (set in lifs_ifindex), as the source
17399  * address.
17400  */
17401 struct lifsrcof {
17402  uint_t lifs_ifindex; /* interface of interest */
17403  size_t lifs_maxlen; /* size of buffer: input */
17404  size_t lifs_len; /* size of buffer: output */
17405  union {
17406   caddr_t lifsu_buf;
17407   struct lifreq *lifsu_req;
17408  } lifs_lifsu;
17409 
17410 
17411 };
17412 
17413 /* Flags */
17414 
17415 
17416      /* be used to communicate outside the */
17417      /* node (exclude interfaces which are */
17418      /* IFF_NOXMIT, IFF_NOLOCAL, */
17419      /* IFF_LOOPBACK, IFF_DEPRECATED, or */
17420      /* not IFF_UP). Has priority over */
17421      /* LIFC_NOXMIT. */
17422 
17423 
17424      /* (must be issued from global zone) */
17425 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17426 /*
17427  * IPMP group information, for use with SIOCGLIFGROUPINFO.
17428  */
17429 typedef struct lifgroupinfo {
17430  char gi_grname[32]; /* group name (set by caller) */
17431  char gi_grifname[32]; /* IPMP meta-interface name */
17432  char gi_m4ifname[32]; /* v4 mcast interface name */
17433  char gi_m6ifname[32]; /* v6 mcast interface name */
17434  char gi_bcifname[32]; /* v4 bcast interface name */
17435  boolean_t gi_v4; /* group is plumbed for v4 */
17436  boolean_t gi_v6; /* group is plumbed for v6 */
17437  uint_t gi_nv4; /* # of underlying v4 if's */
17438  uint_t gi_nv6; /* # of underlying v6 if's */
17439  uint_t gi_mactype; /* DLPI mac type of group */
17440 } lifgroupinfo_t;
17441 
17442 /*
17443  * OBSOLETE: Structure used in SIOCGIFCONF request.
17444  * Used to retrieve interface configuration
17445  * for machine (useful for programs which
17446  * must know all networks accessible).
17447  */
17448 struct ifconf {
17449  int ifc_len; /* size of associated buffer */
17450  union {
17451   caddr_t ifcu_buf;
17452   struct ifreq *ifcu_req;
17453  } ifc_ifcu;
17454 
17455 
17456 };
17457 # 649 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if.h"
17458 typedef struct if_data {
17459     /* generic interface information */
17460  uchar_t ifi_type; /* ethernet, tokenring, etc */
17461  uchar_t ifi_addrlen; /* media address length */
17462  uchar_t ifi_hdrlen; /* media header length */
17463  uint_t ifi_mtu; /* maximum transmission unit */
17464  uint_t ifi_metric; /* routing metric (external only) */
17465  uint_t ifi_baudrate; /* linespeed */
17466     /* volatile statistics */
17467  uint_t ifi_ipackets; /* packets received on interface */
17468  uint_t ifi_ierrors; /* input errors on interface */
17469  uint_t ifi_opackets; /* packets sent on interface */
17470  uint_t ifi_oerrors; /* output errors on interface */
17471  uint_t ifi_collisions; /* collisions on csma interfaces */
17472  uint_t ifi_ibytes; /* total number of octets received */
17473  uint_t ifi_obytes; /* total number of octets sent */
17474  uint_t ifi_imcasts; /* packets received via multicast */
17475  uint_t ifi_omcasts; /* packets sent via multicast */
17476  uint_t ifi_iqdrops; /* dropped on input, this interface */
17477  uint_t ifi_noproto; /* destined for unsupported protocol */
17478 
17479  struct timeval32 ifi_lastchange; /* last updated */
17480 
17481 
17482 
17483 } if_data_t;
17484 
17485 /*
17486  * Message format for use in obtaining information about interfaces
17487  * from the routing socket
17488  */
17489 typedef struct if_msghdr {
17490  ushort_t ifm_msglen; /* to skip over non-understood messages */
17491  uchar_t ifm_version; /* future binary compatibility */
17492  uchar_t ifm_type; /* message type */
17493  int ifm_addrs; /* like rtm_addrs */
17494  int ifm_flags; /* value of if_flags */
17495  ushort_t ifm_index; /* index for associated ifp */
17496  struct if_data ifm_data; /* statistics and other data about if */
17497 } if_msghdr_t;
17498 
17499 /*
17500  * Message format for use in obtaining information about interface addresses
17501  * from the routing socket
17502  */
17503 typedef struct ifa_msghdr {
17504  ushort_t ifam_msglen; /* to skip over non-understood messages */
17505  uchar_t ifam_version; /* future binary compatibility */
17506  uchar_t ifam_type; /* message type */
17507  int ifam_addrs; /* like rtm_addrs */
17508  int ifam_flags; /* route flags */
17509  ushort_t ifam_index; /* index for associated ifp */
17510  int ifam_metric; /* value of ipif_metric */
17511 } ifa_msghdr_t;
17512 
17513 
17514 
17515 /*
17516  * The if_nameindex structure holds the interface index value about
17517  * a single interface. An array of this structure is used to return
17518  * all interfaces and indexes.
17519  */
17520 struct if_nameindex {
17521  unsigned if_index; /* positive interface index */
17522  char *if_name; /* if name, e.g. "en0" */
17523 };
17524 
17525 /* Interface index identification API definitions */
17526 extern unsigned if_nametoindex(const char *);
17527 extern char *if_indextoname(unsigned, char *);
17528 extern struct if_nameindex *if_nameindex(void);
17529 extern void if_freenameindex(struct if_nameindex *);
17530 
17531 
17532 /*
17533  * If changing IF_MAX_INDEX to a value greater than UINT16_MAX, check if
17534  * struct sockaddr_dl needs to be modified as the interface index is placed
17535  * in this structure by the kernel.
17536  */
17537 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17538 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
17539 /*
17540  * CDDL HEADER START
17541  *
17542  * The contents of this file are subject to the terms of the
17543  * Common Development and Distribution License (the "License").
17544  * You may not use this file except in compliance with the License.
17545  *
17546  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17547  * or http://www.opensolaris.org/os/licensing.
17548  * See the License for the specific language governing permissions
17549  * and limitations under the License.
17550  *
17551  * When distributing Covered Code, include this CDDL HEADER in each
17552  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17553  * If applicable, add the following below this CDDL HEADER, with the
17554  * fields enclosed by brackets "[]" replaced with your own identifying
17555  * information: Portions Copyright [yyyy] [name of copyright owner]
17556  *
17557  * CDDL HEADER END
17558  */
17559 
17560 /*
17561  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
17562  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
17563  */
17564 
17565 /*	Copyright (c) 1988 AT&T	*/
17566 /*	  All Rights Reserved  	*/
17567 
17568 /*
17569  * User-visible pieces of the ANSI C standard I/O package.
17570  */
17571 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17572 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 1
17573 /*
17574  * CDDL HEADER START
17575  *
17576  * The contents of this file are subject to the terms of the
17577  * Common Development and Distribution License, Version 1.0 only
17578  * (the "License").  You may not use this file except in compliance
17579  * with the License.
17580  *
17581  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17582  * or http://www.opensolaris.org/os/licensing.
17583  * See the License for the specific language governing permissions
17584  * and limitations under the License.
17585  *
17586  * When distributing Covered Code, include this CDDL HEADER in each
17587  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17588  * If applicable, add the following below this CDDL HEADER, with the
17589  * fields enclosed by brackets "[]" replaced with your own identifying
17590  * information: Portions Copyright [yyyy] [name of copyright owner]
17591  *
17592  * CDDL HEADER END
17593  */
17594 /*
17595  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
17596  * Use is subject to license terms.
17597  */
17598 
17599 
17600 
17601 
17602 #pragma ident "%Z%%M%	%I%	%E% SMI"
17603 
17604 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rctl.h" 1
17605 /*
17606  * CDDL HEADER START
17607  *
17608  * The contents of this file are subject to the terms of the
17609  * Common Development and Distribution License (the "License").
17610  * You may not use this file except in compliance with the License.
17611  *
17612  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17613  * or http://www.opensolaris.org/os/licensing.
17614  * See the License for the specific language governing permissions
17615  * and limitations under the License.
17616  *
17617  * When distributing Covered Code, include this CDDL HEADER in each
17618  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17619  * If applicable, add the following below this CDDL HEADER, with the
17620  * fields enclosed by brackets "[]" replaced with your own identifying
17621  * information: Portions Copyright [yyyy] [name of copyright owner]
17622  *
17623  * CDDL HEADER END
17624  */
17625 /*
17626  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
17627  */
17628 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 2
17629 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17630 /*
17631  * CDDL HEADER START
17632  *
17633  * The contents of this file are subject to the terms of the
17634  * Common Development and Distribution License (the "License").
17635  * You may not use this file except in compliance with the License.
17636  *
17637  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17638  * or http://www.opensolaris.org/os/licensing.
17639  * See the License for the specific language governing permissions
17640  * and limitations under the License.
17641  *
17642  * When distributing Covered Code, include this CDDL HEADER in each
17643  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17644  * If applicable, add the following below this CDDL HEADER, with the
17645  * fields enclosed by brackets "[]" replaced with your own identifying
17646  * information: Portions Copyright [yyyy] [name of copyright owner]
17647  *
17648  * CDDL HEADER END
17649  */
17650 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17651 /*	  All Rights Reserved  	*/
17652 
17653 
17654 /*
17655  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17656  * Use is subject to license terms.
17657  *
17658  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17659  * Copyright 2016 Joyent, Inc.
17660  */
17661 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/rctl.h" 2
17662 
17663 
17664 
17665 
17666 
17667 int rctl_walk(int (*)(const char *, void *), void *);
17668 
17669 hrtime_t rctlblk_get_firing_time(rctlblk_t *);
17670 uint_t rctlblk_get_global_action(rctlblk_t *);
17671 uint_t rctlblk_get_global_flags(rctlblk_t *);
17672 uint_t rctlblk_get_local_action(rctlblk_t *, int *);
17673 uint_t rctlblk_get_local_flags(rctlblk_t *);
17674 id_t rctlblk_get_recipient_pid(rctlblk_t *);
17675 rctl_priv_t rctlblk_get_privilege(rctlblk_t *);
17676 rctl_qty_t rctlblk_get_value(rctlblk_t *);
17677 rctl_qty_t rctlblk_get_enforced_value(rctlblk_t *);
17678 
17679 void rctlblk_set_local_action(rctlblk_t *, uint_t, int);
17680 void rctlblk_set_local_flags(rctlblk_t *, uint_t);
17681 void rctlblk_set_recipient_pid(rctlblk_t *, id_t);
17682 void rctlblk_set_privilege(rctlblk_t *, rctl_priv_t);
17683 void rctlblk_set_value(rctlblk_t *, rctl_qty_t);
17684 
17685 size_t rctlblk_size(void);
17686 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17687 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/zone.h" 1
17688 /*
17689  * CDDL HEADER START
17690  *
17691  * The contents of this file are subject to the terms of the
17692  * Common Development and Distribution License (the "License").
17693  * You may not use this file except in compliance with the License.
17694  *
17695  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17696  * or http://www.opensolaris.org/os/licensing.
17697  * See the License for the specific language governing permissions
17698  * and limitations under the License.
17699  *
17700  * When distributing Covered Code, include this CDDL HEADER in each
17701  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17702  * If applicable, add the following below this CDDL HEADER, with the
17703  * fields enclosed by brackets "[]" replaced with your own identifying
17704  * information: Portions Copyright [yyyy] [name of copyright owner]
17705  *
17706  * CDDL HEADER END
17707  */
17708 /*
17709  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17710  * Use is subject to license terms.
17711  */
17712 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17713 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libbrand.h" 1
17714 /*
17715  * CDDL HEADER START
17716  *
17717  * The contents of this file are subject to the terms of the
17718  * Common Development and Distribution License (the "License").
17719  * You may not use this file except in compliance with the License.
17720  *
17721  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17722  * or http://www.opensolaris.org/os/licensing.
17723  * See the License for the specific language governing permissions
17724  * and limitations under the License.
17725  *
17726  * When distributing Covered Code, include this CDDL HEADER in each
17727  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17728  * If applicable, add the following below this CDDL HEADER, with the
17729  * fields enclosed by brackets "[]" replaced with your own identifying
17730  * information: Portions Copyright [yyyy] [name of copyright owner]
17731  *
17732  * CDDL HEADER END
17733  */
17734 
17735 /*
17736  * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
17737  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
17738  * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
17739  */
17740 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libbrand.h"
17741 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.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 (the "License").
17747  * You may not use this file except in compliance with the License.
17748  *
17749  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17750  * or http://www.opensolaris.org/os/licensing.
17751  * See the License for the specific language governing permissions
17752  * and limitations under the License.
17753  *
17754  * When distributing Covered Code, include this CDDL HEADER in each
17755  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17756  * If applicable, add the following below this CDDL HEADER, with the
17757  * fields enclosed by brackets "[]" replaced with your own identifying
17758  * information: Portions Copyright [yyyy] [name of copyright owner]
17759  *
17760  * CDDL HEADER END
17761  */
17762 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17763 /*	  All Rights Reserved  	*/
17764 
17765 
17766 /*
17767  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17768  * Use is subject to license terms.
17769  *
17770  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17771  * Copyright 2016 Joyent, Inc.
17772  */
17773 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libbrand.h" 2
17774 
17775 typedef struct __brand_handle *brand_handle_t;
17776 
17777 typedef struct priv_iter_s {
17778  char *pi_name;
17779  char *pi_set;
17780  char *pi_iptype;
17781 } priv_iter_t;
17782 
17783 extern brand_handle_t brand_open(const char *);
17784 extern void brand_close(brand_handle_t);
17785 
17786 extern boolean_t brand_allow_exclusive_ip(brand_handle_t);
17787 
17788 extern int brand_get_attach(brand_handle_t, const char *, const char *,
17789     char *, size_t);
17790 extern int brand_get_boot(brand_handle_t, const char *, const char *,
17791     char *, size_t);
17792 extern int brand_get_brandname(brand_handle_t, char *, size_t);
17793 extern int brand_get_clone(brand_handle_t, const char *, const char *,
17794     char *, size_t);
17795 extern int brand_get_detach(brand_handle_t, const char *, const char *,
17796     char *, size_t);
17797 extern int brand_get_shutdown(brand_handle_t, const char *, const char *,
17798     char *, size_t);
17799 extern int brand_get_halt(brand_handle_t, const char *, const char *,
17800     char *, size_t);
17801 extern int brand_get_initname(brand_handle_t, char *, size_t);
17802 extern boolean_t brand_restartinit(brand_handle_t);
17803 extern int brand_get_install(brand_handle_t, const char *, const char *,
17804     char *, size_t);
17805 extern int brand_get_installopts(brand_handle_t, char *, size_t);
17806 extern int brand_get_login_cmd(brand_handle_t, const char *, char *, size_t);
17807 extern int brand_get_forcedlogin_cmd(brand_handle_t, const char *,
17808     char *, size_t);
17809 extern int brand_get_modname(brand_handle_t, char *, size_t);
17810 extern int brand_get_postattach(brand_handle_t, const char *, const char *,
17811     char *, size_t);
17812 extern int brand_get_postclone(brand_handle_t, const char *, const char *,
17813     char *, size_t);
17814 extern int brand_get_postinstall(brand_handle_t, const char *, const char *,
17815     char *, size_t);
17816 extern int brand_get_postsnap(brand_handle_t, const char *, const char *,
17817     char *, size_t);
17818 extern int brand_get_poststatechange(brand_handle_t, const char *, const char *,
17819     char *, size_t);
17820 extern int brand_get_predetach(brand_handle_t, const char *, const char *,
17821     char *, size_t);
17822 extern int brand_get_presnap(brand_handle_t, const char *, const char *,
17823     char *, size_t);
17824 extern int brand_get_prestatechange(brand_handle_t, const char *, const char *,
17825     char *, size_t);
17826 extern int brand_get_preuninstall(brand_handle_t, const char *, const char *,
17827     char *, size_t);
17828 extern int brand_get_query(brand_handle_t, const char *, const char *,
17829     char *, size_t);
17830 extern int brand_get_uninstall(brand_handle_t, const char *, const char *,
17831     char *, size_t);
17832 extern int brand_get_validatesnap(brand_handle_t, const char *, const char *,
17833     char *, size_t);
17834 extern int brand_get_user_cmd(brand_handle_t, const char *, char *, size_t);
17835 extern int brand_get_verify_cfg(brand_handle_t, char *, size_t);
17836 extern int brand_get_verify_adm(brand_handle_t, const char *, const char *,
17837     char *, size_t);
17838 extern int brand_get_sysboot(brand_handle_t, const char *, const char *, char *,
17839     size_t);
17840 
17841 extern int brand_config_iter_privilege(brand_handle_t,
17842     int (*func)(void *, priv_iter_t *), void *);
17843 
17844 extern int brand_platform_iter_devices(brand_handle_t, const char *,
17845     int (*)(void *, const char *, const char *), void *, const char *);
17846 extern int brand_platform_iter_gmounts(brand_handle_t, const char *,
17847     int (*)(void *, const char *, const char *, const char *, const char *),
17848     void *);
17849 extern int brand_platform_iter_link(brand_handle_t, int (*)(void *,
17850     const char *, const char *), void *);
17851 extern int brand_platform_iter_mounts(brand_handle_t, int (*)(void *,
17852     const char *, const char *, const char *, const char *), void *);
17853 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
17854 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uuid.h" 1
17855 /*
17856  * CDDL HEADER START
17857  *
17858  * The contents of this file are subject to the terms of the
17859  * Common Development and Distribution License, Version 1.0 only
17860  * (the "License").  You may not use this file except in compliance
17861  * with the License.
17862  *
17863  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17864  * or http://www.opensolaris.org/os/licensing.
17865  * See the License for the specific language governing permissions
17866  * and limitations under the License.
17867  *
17868  * When distributing Covered Code, include this CDDL HEADER in each
17869  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17870  * If applicable, add the following below this CDDL HEADER, with the
17871  * fields enclosed by brackets "[]" replaced with your own identifying
17872  * information: Portions Copyright [yyyy] [name of copyright owner]
17873  *
17874  * CDDL HEADER END
17875  */
17876 /*
17877  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
17878  * Use is subject to license terms.
17879  */
17880 
17881 
17882 
17883 
17884 #pragma ident "%Z%%M%	%I%	%E% SMI"
17885 
17886 
17887 
17888 
17889 
17890 /*
17891  * The copyright in this file is taken from the original Leach
17892  * & Salz UUID specification, from which this implementation
17893  * is derived.
17894  */
17895 
17896 /*
17897  * Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
17898  * Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
17899  * Digital Equipment Corporation, Maynard, Mass.  Copyright (c) 1998
17900  * Microsoft.  To anyone who acknowledges that this file is provided
17901  * "AS IS" without any express or implied warranty: permission to use,
17902  * copy, modify, and distribute this file for any purpose is hereby
17903  * granted without fee, provided that the above copyright notices and
17904  * this notice appears in all source code copies, and that none of the
17905  * names of Open Software Foundation, Inc., Hewlett-Packard Company,
17906  * or Digital Equipment Corporation be used in advertising or
17907  * publicity pertaining to distribution of the software without
17908  * specific, written prior permission.  Neither Open Software
17909  * Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
17910  * Equipment Corporation makes any representations about the
17911  * suitability of this software for any purpose.
17912  */
17913 
17914 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
17915 /*
17916  * CDDL HEADER START
17917  *
17918  * The contents of this file are subject to the terms of the
17919  * Common Development and Distribution License (the "License").
17920  * You may not use this file except in compliance with the License.
17921  *
17922  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17923  * or http://www.opensolaris.org/os/licensing.
17924  * See the License for the specific language governing permissions
17925  * and limitations under the License.
17926  *
17927  * When distributing Covered Code, include this CDDL HEADER in each
17928  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17929  * If applicable, add the following below this CDDL HEADER, with the
17930  * fields enclosed by brackets "[]" replaced with your own identifying
17931  * information: Portions Copyright [yyyy] [name of copyright owner]
17932  *
17933  * CDDL HEADER END
17934  */
17935 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
17936 /*	  All Rights Reserved  	*/
17937 
17938 
17939 /*
17940  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17941  * Use is subject to license terms.
17942  *
17943  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
17944  * Copyright 2016 Joyent, Inc.
17945  */
17946 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uuid.h" 2
17947 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1
17948 /*
17949  * CDDL HEADER START
17950  *
17951  * The contents of this file are subject to the terms of the
17952  * Common Development and Distribution License (the "License").
17953  * You may not use this file except in compliance with the License.
17954  *
17955  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
17956  * or http://www.opensolaris.org/os/licensing.
17957  * See the License for the specific language governing permissions
17958  * and limitations under the License.
17959  *
17960  * When distributing Covered Code, include this CDDL HEADER in each
17961  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17962  * If applicable, add the following below this CDDL HEADER, with the
17963  * fields enclosed by brackets "[]" replaced with your own identifying
17964  * information: Portions Copyright [yyyy] [name of copyright owner]
17965  *
17966  * CDDL HEADER END
17967  */
17968 
17969 /*
17970  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
17971  * Use is subject to license terms.
17972  */
17973 
17974 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
17975 /*	  All Rights Reserved  	*/
17976 
17977 /*
17978  * University Copyright- Copyright (c) 1982, 1986, 1988
17979  * The Regents of the University of California
17980  * All Rights Reserved
17981  *
17982  * University Acknowledgment- Portions of this document are derived from
17983  * software developed by the University of California, Berkeley, and its
17984  * contributors.
17985  */
17986 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uuid.h" 2
17987 
17988 typedef struct {
17989  uint8_t nodeID[6];
17990 } uuid_node_t;
17991 
17992 /*
17993  * The uuid type used throughout when referencing uuids themselves
17994  */
17995 struct uuid {
17996  uint32_t time_low;
17997  uint16_t time_mid;
17998  uint16_t time_hi_and_version;
17999  uint8_t clock_seq_hi_and_reserved;
18000  uint8_t clock_seq_low;
18001  uint8_t node_addr[6];
18002 };
18003 
18004 
18005 
18006 
18007 
18008 typedef uchar_t uuid_t[16];
18009 
18010 /*
18011  * Convert a uuid to/from little-endian format
18012  */
18013 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
18014 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 1
18015 /*
18016  * CDDL HEADER START
18017  *
18018  * The contents of this file are subject to the terms of the
18019  * Common Development and Distribution License (the "License").
18020  * You may not use this file except in compliance with the License.
18021  *
18022  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18023  * or http://www.opensolaris.org/os/licensing.
18024  * See the License for the specific language governing permissions
18025  * and limitations under the License.
18026  *
18027  * When distributing Covered Code, include this CDDL HEADER in each
18028  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18029  * If applicable, add the following below this CDDL HEADER, with the
18030  * fields enclosed by brackets "[]" replaced with your own identifying
18031  * information: Portions Copyright [yyyy] [name of copyright owner]
18032  *
18033  * CDDL HEADER END
18034  */
18035 /*
18036  * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
18037  */
18038 
18039 
18040 
18041 
18042 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18043 /*
18044  * CDDL HEADER START
18045  *
18046  * The contents of this file are subject to the terms of the
18047  * Common Development and Distribution License (the "License").
18048  * You may not use this file except in compliance with the License.
18049  *
18050  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18051  * or http://www.opensolaris.org/os/licensing.
18052  * See the License for the specific language governing permissions
18053  * and limitations under the License.
18054  *
18055  * When distributing Covered Code, include this CDDL HEADER in each
18056  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18057  * If applicable, add the following below this CDDL HEADER, with the
18058  * fields enclosed by brackets "[]" replaced with your own identifying
18059  * information: Portions Copyright [yyyy] [name of copyright owner]
18060  *
18061  * CDDL HEADER END
18062  */
18063 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18064 /*	  All Rights Reserved  	*/
18065 
18066 
18067 /*
18068  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18069  * Use is subject to license terms.
18070  *
18071  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18072  * Copyright 2016 Joyent, Inc.
18073  */
18074 # 29 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 2
18075 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1
18076 /*
18077  * CDDL HEADER START
18078  *
18079  * The contents of this file are subject to the terms of the
18080  * Common Development and Distribution License, Version 1.0 only
18081  * (the "License").  You may not use this file except in compliance
18082  * with the License.
18083  *
18084  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18085  * or http://www.opensolaris.org/os/licensing.
18086  * See the License for the specific language governing permissions
18087  * and limitations under the License.
18088  *
18089  * When distributing Covered Code, include this CDDL HEADER in each
18090  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18091  * If applicable, add the following below this CDDL HEADER, with the
18092  * fields enclosed by brackets "[]" replaced with your own identifying
18093  * information: Portions Copyright [yyyy] [name of copyright owner]
18094  *
18095  * CDDL HEADER END
18096  */
18097 /*	Copyright (c) 1988 AT&T	*/
18098 /*	  All Rights Reserved	*/
18099 
18100 /*
18101  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18102  *
18103  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
18104  * Use is subject to license terms.
18105  */
18106 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 2
18107 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
18108 /*
18109  * CDDL HEADER START
18110  *
18111  * The contents of this file are subject to the terms of the
18112  * Common Development and Distribution License (the "License").
18113  * You may not use this file except in compliance with the License.
18114  *
18115  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18116  * or http://www.opensolaris.org/os/licensing.
18117  * See the License for the specific language governing permissions
18118  * and limitations under the License.
18119  *
18120  * When distributing Covered Code, include this CDDL HEADER in each
18121  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18122  * If applicable, add the following below this CDDL HEADER, with the
18123  * fields enclosed by brackets "[]" replaced with your own identifying
18124  * information: Portions Copyright [yyyy] [name of copyright owner]
18125  *
18126  * CDDL HEADER END
18127  */
18128 
18129 /*
18130  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18131  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
18132  */
18133 
18134 /*	Copyright (c) 1988 AT&T	*/
18135 /*	  All Rights Reserved  	*/
18136 
18137 /*
18138  * User-visible pieces of the ANSI C standard I/O package.
18139  */
18140 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h" 2
18141 
18142 
18143 
18144 
18145 
18146 /*
18147  * Standard flags codes.
18148  */
18149 
18150 
18151 /*
18152  * Standard error codes.
18153  */
18154 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libuutil.h"
18155 /*
18156  * Standard program exit codes.
18157  */
18158 
18159 
18160 
18161 
18162 /*
18163  * Exit status profiles.
18164  */
18165 
18166 
18167 
18168 /*
18169  * Error reporting functions.
18170  */
18171 uint32_t uu_error(void);
18172 const char *uu_strerror(uint32_t);
18173 
18174 /*
18175  * Program notification functions.
18176  */
18177 extern void uu_alt_exit(int);
18178 extern const char *uu_setpname(char *);
18179 extern const char *uu_getpname(void);
18180 /*PRINTFLIKE1*/
18181 extern void uu_warn(const char *, ...);
18182 extern void uu_vwarn(const char *, va_list);
18183 /*PRINTFLIKE1*/
18184 extern void uu_die(const char *, ...) __attribute__((__noreturn__));
18185 extern void uu_vdie(const char *, va_list) __attribute__((__noreturn__));
18186 /*PRINTFLIKE2*/
18187 extern void uu_xdie(int, const char *, ...) __attribute__((__noreturn__));
18188 extern void uu_vxdie(int, const char *, va_list) __attribute__((__noreturn__));
18189 
18190 /*
18191  * Exit status functions (not to be used directly)
18192  */
18193 extern int *uu_exit_ok(void);
18194 extern int *uu_exit_fatal(void);
18195 extern int *uu_exit_usage(void);
18196 
18197 /*
18198  * string->number conversions
18199  */
18200 extern int uu_strtoint(const char *, void *, size_t, int, int64_t, int64_t);
18201 extern int uu_strtouint(const char *, void *, size_t, int, uint64_t, uint64_t);
18202 
18203 /*
18204  * Debug print facility functions.
18205  */
18206 typedef struct uu_dprintf uu_dprintf_t;
18207 
18208 typedef enum {
18209  UU_DPRINTF_SILENT,
18210  UU_DPRINTF_FATAL,
18211  UU_DPRINTF_WARNING,
18212  UU_DPRINTF_NOTICE,
18213  UU_DPRINTF_INFO,
18214  UU_DPRINTF_DEBUG
18215 } uu_dprintf_severity_t;
18216 
18217 extern uu_dprintf_t *uu_dprintf_create(const char *, uu_dprintf_severity_t,
18218     uint_t);
18219 /*PRINTFLIKE3*/
18220 extern void uu_dprintf(uu_dprintf_t *, uu_dprintf_severity_t,
18221     const char *, ...);
18222 extern void uu_dprintf_destroy(uu_dprintf_t *);
18223 extern const char *uu_dprintf_getname(uu_dprintf_t *);
18224 
18225 /*
18226  * Identifier test flags and function.
18227  */
18228 
18229 
18230 
18231 int uu_check_name(const char *, uint_t);
18232 
18233 /*
18234  * File creation functions.
18235  */
18236 extern int uu_open_tmp(const char *dir, uint_t uflags);
18237 
18238 /*
18239  * Convenience functions.
18240  */
18241 
18242 
18243 /*PRINTFLIKE1*/
18244 extern char *uu_msprintf(const char *format, ...);
18245 extern void *uu_zalloc(size_t);
18246 extern char *uu_strdup(const char *);
18247 extern void uu_free(void *);
18248 
18249 extern boolean_t uu_strcaseeq(const char *a, const char *b);
18250 extern boolean_t uu_streq(const char *a, const char *b);
18251 extern char *uu_strndup(const char *s, size_t n);
18252 extern boolean_t uu_strbw(const char *a, const char *b);
18253 extern void *uu_memdup(const void *buf, size_t sz);
18254 extern void uu_dump(FILE *out, const char *prefix, const void *buf, size_t len);
18255 
18256 /*
18257  * Comparison function type definition.
18258  *   Developers should be careful in their use of the _private argument. If you
18259  *   break interface guarantees, you get undefined behavior.
18260  */
18261 typedef int uu_compare_fn_t(const void *__left, const void *__right,
18262     void *__private);
18263 
18264 /*
18265  * Walk variant flags.
18266  *   A data structure need not provide support for all variants and
18267  *   combinations.  Refer to the appropriate documentation.
18268  */
18269 
18270 
18271 
18272 
18273 
18274 
18275 /*
18276  * Walk callback function return codes.
18277  */
18278 
18279 
18280 
18281 
18282 /*
18283  * Walk callback function type definition.
18284  */
18285 typedef int uu_walk_fn_t(void *_elem, void *_private);
18286 
18287 /*
18288  * lists: opaque structures
18289  */
18290 typedef struct uu_list_pool uu_list_pool_t;
18291 typedef struct uu_list uu_list_t;
18292 
18293 typedef struct uu_list_node {
18294  uintptr_t uln_opaque[2];
18295 } uu_list_node_t;
18296 
18297 typedef struct uu_list_walk uu_list_walk_t;
18298 
18299 typedef uintptr_t uu_list_index_t;
18300 
18301 /*
18302  * lists: interface
18303  *
18304  * basic usage:
18305  *	typedef struct foo {
18306  *		...
18307  *		uu_list_node_t foo_node;
18308  *		...
18309  *	} foo_t;
18310  *
18311  *	static int
18312  *	foo_compare(void *l_arg, void *r_arg, void *private)
18313  *	{
18314  *		foo_t *l = l_arg;
18315  *		foo_t *r = r_arg;
18316  *
18317  *		if (... l greater than r ...)
18318  *			return (1);
18319  *		if (... l less than r ...)
18320  *			return (-1);
18321  *		return (0);
18322  *	}
18323  *
18324  *	...
18325  *		// at initialization time
18326  *		foo_pool = uu_list_pool_create("foo_pool",
18327  *		    sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
18328  *		    debugging? 0 : UU_AVL_POOL_DEBUG);
18329  *	...
18330  */
18331 uu_list_pool_t *uu_list_pool_create(const char *, size_t, size_t,
18332     uu_compare_fn_t *, uint32_t);
18333 
18334 
18335 void uu_list_pool_destroy(uu_list_pool_t *);
18336 
18337 /*
18338  * usage:
18339  *
18340  *	foo_t *a;
18341  *	a = malloc(sizeof(*a));
18342  *	uu_list_node_init(a, &a->foo_list, pool);
18343  *	...
18344  *	uu_list_node_fini(a, &a->foo_list, pool);
18345  *	free(a);
18346  */
18347 void uu_list_node_init(void *, uu_list_node_t *, uu_list_pool_t *);
18348 void uu_list_node_fini(void *, uu_list_node_t *, uu_list_pool_t *);
18349 
18350 uu_list_t *uu_list_create(uu_list_pool_t *, void *_parent, uint32_t);
18351 
18352 
18353 
18354 void uu_list_destroy(uu_list_t *); /* list must be empty */
18355 
18356 size_t uu_list_numnodes(uu_list_t *);
18357 
18358 void *uu_list_first(uu_list_t *);
18359 void *uu_list_last(uu_list_t *);
18360 
18361 void *uu_list_next(uu_list_t *, void *);
18362 void *uu_list_prev(uu_list_t *, void *);
18363 
18364 int uu_list_walk(uu_list_t *, uu_walk_fn_t *, void *, uint32_t);
18365 
18366 uu_list_walk_t *uu_list_walk_start(uu_list_t *, uint32_t);
18367 void *uu_list_walk_next(uu_list_walk_t *);
18368 void uu_list_walk_end(uu_list_walk_t *);
18369 
18370 void *uu_list_find(uu_list_t *, void *, void *, uu_list_index_t *);
18371 void uu_list_insert(uu_list_t *, void *, uu_list_index_t);
18372 
18373 void *uu_list_nearest_next(uu_list_t *, uu_list_index_t);
18374 void *uu_list_nearest_prev(uu_list_t *, uu_list_index_t);
18375 
18376 void *uu_list_teardown(uu_list_t *, void **);
18377 
18378 void uu_list_remove(uu_list_t *, void *);
18379 
18380 /*
18381  * lists: interfaces for non-sorted lists only
18382  */
18383 int uu_list_insert_before(uu_list_t *, void *_target, void *_elem);
18384 int uu_list_insert_after(uu_list_t *, void *_target, void *_elem);
18385 
18386 /*
18387  * avl trees: opaque structures
18388  */
18389 typedef struct uu_avl_pool uu_avl_pool_t;
18390 typedef struct uu_avl uu_avl_t;
18391 
18392 typedef struct uu_avl_node {
18393 
18394  uintptr_t uan_opaque[3];
18395 
18396 
18397 
18398 } uu_avl_node_t;
18399 
18400 typedef struct uu_avl_walk uu_avl_walk_t;
18401 
18402 typedef uintptr_t uu_avl_index_t;
18403 
18404 /*
18405  * avl trees: interface
18406  *
18407  * basic usage:
18408  *	typedef struct foo {
18409  *		...
18410  *		uu_avl_node_t foo_node;
18411  *		...
18412  *	} foo_t;
18413  *
18414  *	static int
18415  *	foo_compare(void *l_arg, void *r_arg, void *private)
18416  *	{
18417  *		foo_t *l = l_arg;
18418  *		foo_t *r = r_arg;
18419  *
18420  *		if (... l greater than r ...)
18421  *			return (1);
18422  *		if (... l less than r ...)
18423  *			return (-1);
18424  *		return (0);
18425  *	}
18426  *
18427  *	...
18428  *		// at initialization time
18429  *		foo_pool = uu_avl_pool_create("foo_pool",
18430  *		    sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
18431  *		    debugging? 0 : UU_AVL_POOL_DEBUG);
18432  *	...
18433  */
18434 uu_avl_pool_t *uu_avl_pool_create(const char *, size_t, size_t,
18435     uu_compare_fn_t *, uint32_t);
18436 
18437 
18438 void uu_avl_pool_destroy(uu_avl_pool_t *);
18439 
18440 /*
18441  * usage:
18442  *
18443  *	foo_t *a;
18444  *	a = malloc(sizeof(*a));
18445  *	uu_avl_node_init(a, &a->foo_avl, pool);
18446  *	...
18447  *	uu_avl_node_fini(a, &a->foo_avl, pool);
18448  *	free(a);
18449  */
18450 void uu_avl_node_init(void *, uu_avl_node_t *, uu_avl_pool_t *);
18451 void uu_avl_node_fini(void *, uu_avl_node_t *, uu_avl_pool_t *);
18452 
18453 uu_avl_t *uu_avl_create(uu_avl_pool_t *, void *_parent, uint32_t);
18454 
18455 
18456 void uu_avl_destroy(uu_avl_t *); /* list must be empty */
18457 
18458 size_t uu_avl_numnodes(uu_avl_t *);
18459 
18460 void *uu_avl_first(uu_avl_t *);
18461 void *uu_avl_last(uu_avl_t *);
18462 
18463 void *uu_avl_next(uu_avl_t *, void *);
18464 void *uu_avl_prev(uu_avl_t *, void *);
18465 
18466 int uu_avl_walk(uu_avl_t *, uu_walk_fn_t *, void *, uint32_t);
18467 
18468 uu_avl_walk_t *uu_avl_walk_start(uu_avl_t *, uint32_t);
18469 void *uu_avl_walk_next(uu_avl_walk_t *);
18470 void uu_avl_walk_end(uu_avl_walk_t *);
18471 
18472 void *uu_avl_find(uu_avl_t *, void *, void *, uu_avl_index_t *);
18473 void uu_avl_insert(uu_avl_t *, void *, uu_avl_index_t);
18474 
18475 void *uu_avl_nearest_next(uu_avl_t *, uu_avl_index_t);
18476 void *uu_avl_nearest_prev(uu_avl_t *, uu_avl_index_t);
18477 
18478 void *uu_avl_teardown(uu_avl_t *, void **);
18479 
18480 void uu_avl_remove(uu_avl_t *, void *);
18481 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
18482 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h" 1
18483 /*
18484  * CDDL HEADER START
18485  *
18486  * The contents of this file are subject to the terms of the
18487  * Common Development and Distribution License (the "License").
18488  * You may not use this file except in compliance with the License.
18489  *
18490  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18491  * or http://www.opensolaris.org/os/licensing.
18492  * See the License for the specific language governing permissions
18493  * and limitations under the License.
18494  *
18495  * When distributing Covered Code, include this CDDL HEADER in each
18496  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18497  * If applicable, add the following below this CDDL HEADER, with the
18498  * fields enclosed by brackets "[]" replaced with your own identifying
18499  * information: Portions Copyright [yyyy] [name of copyright owner]
18500  *
18501  * CDDL HEADER END
18502  */
18503 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18504 /*	  All Rights Reserved  	*/
18505 
18506 
18507 /*
18508  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18509  *
18510  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18511  * Use is subject to license terms.
18512  */
18513 
18514 
18515 
18516 
18517 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18518 /*
18519  * CDDL HEADER START
18520  *
18521  * The contents of this file are subject to the terms of the
18522  * Common Development and Distribution License (the "License").
18523  * You may not use this file except in compliance with the License.
18524  *
18525  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18526  * or http://www.opensolaris.org/os/licensing.
18527  * See the License for the specific language governing permissions
18528  * and limitations under the License.
18529  *
18530  * When distributing Covered Code, include this CDDL HEADER in each
18531  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18532  * If applicable, add the following below this CDDL HEADER, with the
18533  * fields enclosed by brackets "[]" replaced with your own identifying
18534  * information: Portions Copyright [yyyy] [name of copyright owner]
18535  *
18536  * CDDL HEADER END
18537  */
18538 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18539 /*	  All Rights Reserved  	*/
18540 
18541 
18542 /*
18543  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18544  * Use is subject to license terms.
18545  *
18546  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18547  * Copyright 2016 Joyent, Inc.
18548  */
18549 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h" 2
18550 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mnttab.h"
18551 /*
18552  * The fields in struct extmnttab should match those in struct mnttab until new
18553  * fields are encountered. This allows hasmntopt(), getmntent_common() and
18554  * mntioctl() to cast one type to the other safely.
18555  *
18556  * The fields in struct mnttab, struct extmnttab and struct mntentbuf must all
18557  * match those in the corresponding 32-bit versions defined in mntvnops.c.
18558  */
18559 struct mnttab {
18560  char *mnt_special;
18561  char *mnt_mountp;
18562  char *mnt_fstype;
18563  char *mnt_mntopts;
18564  char *mnt_time;
18565 };
18566 
18567 struct extmnttab {
18568  char *mnt_special;
18569  char *mnt_mountp;
18570  char *mnt_fstype;
18571  char *mnt_mntopts;
18572  char *mnt_time;
18573  uint_t mnt_major;
18574  uint_t mnt_minor;
18575 };
18576 
18577 struct mntentbuf {
18578  struct extmnttab *mbuf_emp;
18579  size_t mbuf_bufsize;
18580  char *mbuf_buf;
18581 };
18582 
18583 
18584 extern void resetmnttab(FILE *);
18585 extern int getmntent(FILE *, struct mnttab *);
18586 extern int getextmntent(FILE *, struct extmnttab *, size_t);
18587 extern int getmntany(FILE *, struct mnttab *, struct mnttab *);
18588 extern char *hasmntopt(struct mnttab *, char *);
18589 extern char *mntopt(char **);
18590 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
18591 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
18592 /*
18593  * CDDL HEADER START
18594  *
18595  * The contents of this file are subject to the terms of the
18596  * Common Development and Distribution License (the "License").
18597  * You may not use this file except in compliance with the License.
18598  *
18599  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18600  * or http://www.opensolaris.org/os/licensing.
18601  * See the License for the specific language governing permissions
18602  * and limitations under the License.
18603  *
18604  * When distributing Covered Code, include this CDDL HEADER in each
18605  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18606  * If applicable, add the following below this CDDL HEADER, with the
18607  * fields enclosed by brackets "[]" replaced with your own identifying
18608  * information: Portions Copyright [yyyy] [name of copyright owner]
18609  *
18610  * CDDL HEADER END
18611  */
18612 
18613 /*
18614  * Copyright (c) 2013 Gary Mills
18615  *
18616  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
18617  * Use is subject to license terms.
18618  */
18619 
18620 /*	Copyright (c) 1988 AT&T	*/
18621 /*	  All Rights Reserved  	*/
18622 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
18623 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 1
18624 /*
18625  * CDDL HEADER START
18626  *
18627  * The contents of this file are subject to the terms of the
18628  * Common Development and Distribution License, Version 1.0 only
18629  * (the "License").  You may not use this file except in compliance
18630  * with the License.
18631  *
18632  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18633  * or http://www.opensolaris.org/os/licensing.
18634  * See the License for the specific language governing permissions
18635  * and limitations under the License.
18636  *
18637  * When distributing Covered Code, include this CDDL HEADER in each
18638  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18639  * If applicable, add the following below this CDDL HEADER, with the
18640  * fields enclosed by brackets "[]" replaced with your own identifying
18641  * information: Portions Copyright [yyyy] [name of copyright owner]
18642  *
18643  * CDDL HEADER END
18644  */
18645 /*
18646  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18647  *
18648  * Copyright 1997 Sun Microsystems, Inc.  All rights reserved.
18649  * Use is subject to license terms.
18650  */
18651 
18652 /*	Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T	*/
18653 /*	  All Rights Reserved  	*/
18654 
18655 /*
18656  * Portions of this source code were derived from Berkeley 4.3 BSD
18657  * under license from the Regents of the University of California.
18658  */
18659 
18660 
18661 
18662 
18663 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
18664 /*
18665  * CDDL HEADER START
18666  *
18667  * The contents of this file are subject to the terms of the
18668  * Common Development and Distribution License (the "License").
18669  * You may not use this file except in compliance with the License.
18670  *
18671  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18672  * or http://www.opensolaris.org/os/licensing.
18673  * See the License for the specific language governing permissions
18674  * and limitations under the License.
18675  *
18676  * When distributing Covered Code, include this CDDL HEADER in each
18677  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18678  * If applicable, add the following below this CDDL HEADER, with the
18679  * fields enclosed by brackets "[]" replaced with your own identifying
18680  * information: Portions Copyright [yyyy] [name of copyright owner]
18681  *
18682  * CDDL HEADER END
18683  */
18684 
18685 /*
18686  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
18687  * Copyright 2016 Joyent, Inc.
18688  *
18689  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
18690  * Use is subject to license terms.
18691  */
18692 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
18693 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18694 /*
18695  * CDDL HEADER START
18696  *
18697  * The contents of this file are subject to the terms of the
18698  * Common Development and Distribution License (the "License").
18699  * You may not use this file except in compliance with the License.
18700  *
18701  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18702  * or http://www.opensolaris.org/os/licensing.
18703  * See the License for the specific language governing permissions
18704  * and limitations under the License.
18705  *
18706  * When distributing Covered Code, include this CDDL HEADER in each
18707  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18708  * If applicable, add the following below this CDDL HEADER, with the
18709  * fields enclosed by brackets "[]" replaced with your own identifying
18710  * information: Portions Copyright [yyyy] [name of copyright owner]
18711  *
18712  * CDDL HEADER END
18713  */
18714 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18715 /*	  All Rights Reserved  	*/
18716 
18717 
18718 /*
18719  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18720  * Use is subject to license terms.
18721  *
18722  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18723  * Copyright 2016 Joyent, Inc.
18724  */
18725 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
18726 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
18727 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18728 /*	  All Rights Reserved  	*/
18729 
18730 
18731 /*
18732  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
18733  * All rights reserved.  The Berkeley software License Agreement
18734  * specifies the terms and conditions for redistribution.
18735  */
18736 
18737 /*
18738  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18739  *
18740  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18741  * Use is subject to license terms.
18742  *
18743  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18744  */
18745 
18746 /*
18747  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
18748  */
18749 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
18750 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 1
18751 /*
18752  * CDDL HEADER START
18753  *
18754  * The contents of this file are subject to the terms of the
18755  * Common Development and Distribution License, Version 1.0 only
18756  * (the "License").  You may not use this file except in compliance
18757  * with the License.
18758  *
18759  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18760  * or http://www.opensolaris.org/os/licensing.
18761  * See the License for the specific language governing permissions
18762  * and limitations under the License.
18763  *
18764  * When distributing Covered Code, include this CDDL HEADER in each
18765  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18766  * If applicable, add the following below this CDDL HEADER, with the
18767  * fields enclosed by brackets "[]" replaced with your own identifying
18768  * information: Portions Copyright [yyyy] [name of copyright owner]
18769  *
18770  * CDDL HEADER END
18771  */
18772 /*	Copyright (c) 1988 AT&T	*/
18773 /*	  All Rights Reserved  	*/
18774 
18775 
18776 /*
18777  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18778  *
18779  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
18780  * Use is subject to license terms.
18781  */
18782 
18783 
18784 
18785 
18786 
18787 /*
18788  * Note:  The getutent(3c) family of interfaces are obsolete.
18789  * The getutxent(3c) family provide a superset of this functionality
18790  * and should be used in place of getutent(3c).
18791  */
18792 
18793 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
18794 /*
18795  * CDDL HEADER START
18796  *
18797  * The contents of this file are subject to the terms of the
18798  * Common Development and Distribution License (the "License").
18799  * You may not use this file except in compliance with the License.
18800  *
18801  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18802  * or http://www.opensolaris.org/os/licensing.
18803  * See the License for the specific language governing permissions
18804  * and limitations under the License.
18805  *
18806  * When distributing Covered Code, include this CDDL HEADER in each
18807  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18808  * If applicable, add the following below this CDDL HEADER, with the
18809  * fields enclosed by brackets "[]" replaced with your own identifying
18810  * information: Portions Copyright [yyyy] [name of copyright owner]
18811  *
18812  * CDDL HEADER END
18813  */
18814 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
18815 /*	  All Rights Reserved  	*/
18816 
18817 
18818 /*
18819  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
18820  * Use is subject to license terms.
18821  *
18822  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
18823  * Copyright 2016 Joyent, Inc.
18824  */
18825 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 2
18826 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
18827 struct exit_status {
18828  short e_termination; /* Process termination status */
18829  short e_exit; /* Process exit status */
18830 };
18831 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
18832 /*
18833  * This data structure describes the utmp entries returned by
18834  * the getutent(3c) family of APIs.  It does not (necessarily)
18835  * correspond to the contents of the utmp or wtmp files.
18836  *
18837  * Applications should only interact with this subsystem via
18838  * the getutxent(3c) family of APIs, as the getutent(3c) family
18839  * are obsolete.
18840  */
18841 struct utmp {
18842  char ut_user[8]; /* User login name */
18843  char ut_id[4]; /* /etc/inittab id(usually line #) */
18844  char ut_line[12]; /* device name (console, lnxx) */
18845  short ut_pid; /* short for compat. - process id */
18846  short ut_type; /* type of entry */
18847  struct exit_status ut_exit; /* The exit status of a process */
18848      /* marked as DEAD_PROCESS. */
18849  time_t ut_time; /* time entry was made */
18850 };
18851 
18852 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
18853 /*
18854  * CDDL HEADER START
18855  *
18856  * The contents of this file are subject to the terms of the
18857  * Common Development and Distribution License (the "License").
18858  * You may not use this file except in compliance with the License.
18859  *
18860  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18861  * or http://www.opensolaris.org/os/licensing.
18862  * See the License for the specific language governing permissions
18863  * and limitations under the License.
18864  *
18865  * When distributing Covered Code, include this CDDL HEADER in each
18866  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18867  * If applicable, add the following below this CDDL HEADER, with the
18868  * fields enclosed by brackets "[]" replaced with your own identifying
18869  * information: Portions Copyright [yyyy] [name of copyright owner]
18870  *
18871  * CDDL HEADER END
18872  */
18873 /*
18874  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
18875  * Use is subject to license terms.
18876  * Copyright 2015 Nexenta Systems, Inc.
18877  */
18878 # 91 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 2
18879 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
18880 /*
18881  * CDDL HEADER START
18882  *
18883  * The contents of this file are subject to the terms of the
18884  * Common Development and Distribution License, Version 1.0 only
18885  * (the "License").  You may not use this file except in compliance
18886  * with the License.
18887  *
18888  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18889  * or http://www.opensolaris.org/os/licensing.
18890  * See the License for the specific language governing permissions
18891  * and limitations under the License.
18892  *
18893  * When distributing Covered Code, include this CDDL HEADER in each
18894  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18895  * If applicable, add the following below this CDDL HEADER, with the
18896  * fields enclosed by brackets "[]" replaced with your own identifying
18897  * information: Portions Copyright [yyyy] [name of copyright owner]
18898  *
18899  * CDDL HEADER END
18900  */
18901 /*
18902  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
18903  *
18904  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
18905  * Use is subject to license terms.
18906  */
18907 # 92 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h" 2
18908 
18909 /*
18910  * This data structure describes the utmp *file* contents using
18911  * fixed-width data types.  It should only be used by the implementation.
18912  *
18913  * Applications should use the getutxent(3c) family of routines to interact
18914  * with this database.
18915  */
18916 
18917 struct futmp {
18918  char ut_user[8]; /* User login name */
18919  char ut_id[4]; /* /etc/inittab id */
18920  char ut_line[12]; /* device name (console, lnxx) */
18921  int16_t ut_pid; /* process id */
18922  int16_t ut_type; /* type of entry */
18923  struct {
18924   int16_t e_termination; /* Process termination status */
18925   int16_t e_exit; /* Process exit status */
18926  } ut_exit; /* The exit status of a process */
18927  time32_t ut_time; /* time entry was made */
18928 };
18929 
18930 
18931 
18932 /*	Definitions for ut_type						*/
18933 # 135 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
18934 /*	Special strings or formats used in the "ut_line" field when	*/
18935 /*	accounting for something other than a process.			*/
18936 /*	No string for the ut_line field can be more than 11 chars +	*/
18937 /*	a NULL in length.						*/
18938 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmp.h"
18939 /*	Define and macro for determing if a normal user wrote the entry */
18940 /*	 and marking the utmpx entry as a normal user */
18941 
18942 
18943 
18944 
18945 
18946 extern void endutent(void);
18947 extern struct utmp *getutent(void);
18948 extern struct utmp *getutid(const struct utmp *);
18949 extern struct utmp *getutline(const struct utmp *);
18950 extern struct utmp *pututline(const struct utmp *);
18951 extern void setutent(void);
18952 extern int utmpname(const char *);
18953 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
18954 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h"
18955 /*
18956  * This data structure describes the utmpx entries returned by
18957  * the getutxent(3c) family of APIs.  It does not (necessarily)
18958  * correspond to the contents of the utmpx or wtmpx files.
18959  *
18960  * Applications should only interact with this subsystem via
18961  * the getutxent(3c) family of APIs.
18962  */
18963 struct utmpx {
18964  char ut_user[32]; /* user login name */
18965  char ut_id[4]; /* inittab id */
18966  char ut_line[32]; /* device name (console, lnxx) */
18967  pid_t ut_pid; /* process id */
18968  short ut_type; /* type of entry */
18969 
18970  struct exit_status ut_exit; /* process termination/exit status */
18971 
18972 
18973 
18974  struct timeval ut_tv; /* time entry was made */
18975  int ut_session; /* session ID, used for windowing */
18976 
18977  int pad[5]; /* reserved for future use */
18978 
18979 
18980 
18981  short ut_syslen; /* significant length of ut_host */
18982      /*   including terminating null */
18983  char ut_host[257]; /* remote host name */
18984 };
18985 
18986 
18987 
18988 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
18989 /*
18990  * CDDL HEADER START
18991  *
18992  * The contents of this file are subject to the terms of the
18993  * Common Development and Distribution License (the "License").
18994  * You may not use this file except in compliance with the License.
18995  *
18996  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
18997  * or http://www.opensolaris.org/os/licensing.
18998  * See the License for the specific language governing permissions
18999  * and limitations under the License.
19000  *
19001  * When distributing Covered Code, include this CDDL HEADER in each
19002  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19003  * If applicable, add the following below this CDDL HEADER, with the
19004  * fields enclosed by brackets "[]" replaced with your own identifying
19005  * information: Portions Copyright [yyyy] [name of copyright owner]
19006  *
19007  * CDDL HEADER END
19008  */
19009 /*
19010  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
19011  * Use is subject to license terms.
19012  * Copyright 2015 Nexenta Systems, Inc.
19013  */
19014 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
19015 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
19016 /*
19017  * CDDL HEADER START
19018  *
19019  * The contents of this file are subject to the terms of the
19020  * Common Development and Distribution License, Version 1.0 only
19021  * (the "License").  You may not use this file except in compliance
19022  * with the License.
19023  *
19024  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19025  * or http://www.opensolaris.org/os/licensing.
19026  * See the License for the specific language governing permissions
19027  * and limitations under the License.
19028  *
19029  * When distributing Covered Code, include this CDDL HEADER in each
19030  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19031  * If applicable, add the following below this CDDL HEADER, with the
19032  * fields enclosed by brackets "[]" replaced with your own identifying
19033  * information: Portions Copyright [yyyy] [name of copyright owner]
19034  *
19035  * CDDL HEADER END
19036  */
19037 /*
19038  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19039  *
19040  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
19041  * Use is subject to license terms.
19042  */
19043 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/utmpx.h" 2
19044 
19045 /*
19046  * This data structure describes the utmp *file* contents using
19047  * fixed-width data types.  It should only be used by the implementation.
19048  *
19049  * Applications should use the getutxent(3c) family of routines to interact
19050  * with this database.
19051  */
19052 
19053 struct futmpx {
19054  char ut_user[32]; /* user login name */
19055  char ut_id[4]; /* inittab id */
19056  char ut_line[32]; /* device name (console, lnxx) */
19057  pid32_t ut_pid; /* process id */
19058  int16_t ut_type; /* type of entry */
19059  struct {
19060   int16_t e_termination; /* process termination status */
19061   int16_t e_exit; /* process exit status */
19062  } ut_exit; /* exit status of a process */
19063  struct timeval32 ut_tv; /* time entry was made */
19064  int32_t ut_session; /* session ID, user for windowing */
19065  int32_t pad[5]; /* reserved for future use */
19066  int16_t ut_syslen; /* significant length of ut_host */
19067  char ut_host[257]; /* remote host name */
19068 };
19069 
19070 
19071 
19072 /*	Define and macro for determing if a normal user wrote the entry */
19073 /*	and marking the utmpx entry as a normal user */
19074 
19075 
19076 
19077 
19078 
19079 
19080 extern void endutxent(void);
19081 extern struct utmpx *getutxent(void);
19082 extern struct utmpx *getutxid(const struct utmpx *);
19083 extern struct utmpx *getutxline(const struct utmpx *);
19084 extern struct utmpx *pututxline(const struct utmpx *);
19085 extern void setutxent(void);
19086 
19087 
19088 extern int utmpxname(const char *);
19089 extern struct utmpx *makeutx(const struct utmpx *);
19090 extern struct utmpx *modutx(const struct utmpx *);
19091 extern void getutmp(const struct utmpx *, struct utmp *);
19092 extern void getutmpx(const struct utmp *, struct utmpx *);
19093 extern void updwtmp(const char *, struct utmp *);
19094 extern void updwtmpx(const char *, struct utmpx *);
19095 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 2
19096 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h"
19097 /*
19098  * Warning: these are shared with the admin/install consolidation.
19099  * Do not insert states between any of the currently defined states,
19100  * and any new states must be evaluated for impact on range comparisons.
19101  */
19102 # 130 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h"
19103 /* Owner, group, and mode (defined by packaging) for the config directory */
19104 
19105 
19106 
19107 
19108 /* Owner, group, and mode (defined by packaging) for the index file */
19109 
19110 
19111 
19112 
19113 /* The maximum length of the VERSION string in the pkginfo(4) file. */
19114 
19115 
19116 /*
19117  * Shortened alias names for the zones rctls.
19118  */
19119 # 157 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h"
19120 /* Default name for zone detached manifest */
19121 
19122 
19123 /*
19124  * Bit flag definitions for passing into libzonecfg functions.
19125  */
19126 
19127 
19128 /*
19129  * The integer field expresses the current values on a get.
19130  * On a put, it represents the new values if >= 0 or "don't change" if < 0.
19131  */
19132 struct zoneent {
19133  char zone_name[64]; /* name of the zone */
19134  int zone_state; /* configured | incomplete | installed */
19135  char zone_path[1024]; /* path to zone storage */
19136  uuid_t zone_uuid; /* unique ID for zone */
19137  char zone_newname[64]; /* for doing renames */
19138 };
19139 
19140 typedef struct zone_dochandle *zone_dochandle_t; /* opaque handle */
19141 
19142 typedef uint_t zone_state_t;
19143 
19144 typedef struct zone_fsopt {
19145  struct zone_fsopt *zone_fsopt_next;
19146  char zone_fsopt_opt[1024];
19147 } zone_fsopt_t;
19148 
19149 struct zone_fstab {
19150  char zone_fs_special[1024]; /* special file */
19151  char zone_fs_dir[1024]; /* mount point */
19152  char zone_fs_type[16]; /* e.g. ufs */
19153  zone_fsopt_t *zone_fs_options; /* mount options */
19154  char zone_fs_raw[1024]; /* device to fsck */
19155 };
19156 
19157 struct zone_nwiftab {
19158  char zone_nwif_address[46]; /* shared-ip only */
19159  char zone_nwif_allowed_address[46]; /* excl-ip only */
19160  char zone_nwif_physical[32];
19161  char zone_nwif_defrouter[46];
19162 };
19163 
19164 struct zone_devtab {
19165  char zone_dev_match[1024];
19166 };
19167 
19168 struct zone_rctlvaltab {
19169  char zone_rctlval_priv[256];
19170  char zone_rctlval_limit[256];
19171  char zone_rctlval_action[256];
19172  struct zone_rctlvaltab *zone_rctlval_next;
19173 };
19174 
19175 struct zone_rctltab {
19176  char zone_rctl_name[256];
19177  struct zone_rctlvaltab *zone_rctl_valptr;
19178 };
19179 
19180 struct zone_attrtab {
19181  char zone_attr_name[256];
19182  char zone_attr_type[256];
19183  char zone_attr_value[2 * 1024];
19184 };
19185 
19186 struct zone_dstab {
19187  char zone_dataset_name[256];
19188 };
19189 
19190 struct zone_psettab {
19191  char zone_ncpu_min[256];
19192  char zone_ncpu_max[256];
19193  char zone_importance[256];
19194 };
19195 
19196 struct zone_mcaptab {
19197  char zone_physmem_cap[256];
19198 };
19199 
19200 struct zone_pkgtab {
19201  char zone_pkg_name[256];
19202  char zone_pkg_version[256];
19203 };
19204 
19205 struct zone_devpermtab {
19206  char zone_devperm_name[1024];
19207  uid_t zone_devperm_uid;
19208  gid_t zone_devperm_gid;
19209  mode_t zone_devperm_mode;
19210  char *zone_devperm_acl;
19211 };
19212 
19213 struct zone_admintab {
19214  char zone_admin_user[(sizeof (((struct utmpx *)0)->ut_user))];
19215  char zone_admin_auths[4096];
19216 };
19217 
19218 typedef struct zone_userauths {
19219  char user[(sizeof (((struct utmpx *)0)->ut_user))];
19220  char zonename[64];
19221  struct zone_userauths *next;
19222 } zone_userauths_t;
19223 
19224 typedef struct {
19225  uu_avl_node_t zpe_entry;
19226  char *zpe_name;
19227  char *zpe_vers;
19228 } zone_pkg_entry_t;
19229 
19230 typedef enum zone_iptype {
19231  ZS_SHARED,
19232  ZS_EXCLUSIVE
19233 } zone_iptype_t;
19234 
19235 /*
19236  * Basic configuration management routines.
19237  */
19238 extern zone_dochandle_t zonecfg_init_handle(void);
19239 extern int zonecfg_get_handle(const char *, zone_dochandle_t);
19240 extern int zonecfg_get_snapshot_handle(const char *, zone_dochandle_t);
19241 extern int zonecfg_get_template_handle(const char *, const char *,
19242     zone_dochandle_t);
19243 extern int zonecfg_get_xml_handle(const char *, zone_dochandle_t);
19244 extern int zonecfg_check_handle(zone_dochandle_t);
19245 extern void zonecfg_fini_handle(zone_dochandle_t);
19246 extern int zonecfg_destroy(const char *, boolean_t);
19247 extern int zonecfg_destroy_snapshot(const char *);
19248 extern int zonecfg_save(zone_dochandle_t);
19249 extern int zonecfg_create_snapshot(const char *);
19250 extern char *zonecfg_strerror(int);
19251 extern int zonecfg_access(const char *, int);
19252 extern void zonecfg_set_root(const char *);
19253 extern const char *zonecfg_get_root(void);
19254 extern boolean_t zonecfg_in_alt_root(void);
19255 extern int zonecfg_num_resources(zone_dochandle_t, char *);
19256 extern int zonecfg_del_all_resources(zone_dochandle_t, char *);
19257 extern boolean_t zonecfg_valid_ncpus(char *, char *);
19258 extern boolean_t zonecfg_valid_importance(char *);
19259 extern int zonecfg_str_to_bytes(char *, uint64_t *);
19260 extern boolean_t zonecfg_valid_memlimit(char *, uint64_t *);
19261 extern boolean_t zonecfg_valid_alias_limit(char *, char *, uint64_t *);
19262 
19263 /*
19264  * Zone name, path to zone directory, autoboot setting, pool, boot
19265  * arguments, and scheduling-class.
19266  */
19267 extern int zonecfg_validate_zonename(const char *);
19268 extern int zonecfg_get_name(zone_dochandle_t, char *, size_t);
19269 extern int zonecfg_set_name(zone_dochandle_t, char *);
19270 extern int zonecfg_get_zonepath(zone_dochandle_t, char *, size_t);
19271 extern int zonecfg_set_zonepath(zone_dochandle_t, char *);
19272 extern int zonecfg_get_autoboot(zone_dochandle_t, boolean_t *);
19273 extern int zonecfg_set_autoboot(zone_dochandle_t, boolean_t);
19274 extern int zonecfg_get_iptype(zone_dochandle_t, zone_iptype_t *);
19275 extern int zonecfg_set_iptype(zone_dochandle_t, zone_iptype_t);
19276 extern int zonecfg_get_pool(zone_dochandle_t, char *, size_t);
19277 extern int zonecfg_set_pool(zone_dochandle_t, char *);
19278 extern int zonecfg_get_bootargs(zone_dochandle_t, char *, size_t);
19279 extern int zonecfg_set_bootargs(zone_dochandle_t, char *);
19280 extern int zonecfg_get_sched_class(zone_dochandle_t, char *, size_t);
19281 extern int zonecfg_set_sched(zone_dochandle_t, char *);
19282 extern int zonecfg_get_dflt_sched_class(zone_dochandle_t, char *, int);
19283 
19284 /*
19285  * Set/retrieve the brand for the zone
19286  */
19287 extern int zonecfg_get_brand(zone_dochandle_t, char *, size_t);
19288 extern int zonecfg_set_brand(zone_dochandle_t, char *);
19289 
19290 /*
19291  * Filesystem configuration.
19292  */
19293 extern int zonecfg_add_filesystem(zone_dochandle_t, struct zone_fstab *);
19294 extern int zonecfg_delete_filesystem(zone_dochandle_t,
19295     struct zone_fstab *);
19296 extern int zonecfg_modify_filesystem(zone_dochandle_t,
19297     struct zone_fstab *, struct zone_fstab *);
19298 extern int zonecfg_lookup_filesystem(zone_dochandle_t,
19299     struct zone_fstab *);
19300 extern int zonecfg_add_fs_option(struct zone_fstab *, char *);
19301 extern int zonecfg_remove_fs_option(struct zone_fstab *, char *);
19302 extern void zonecfg_free_fs_option_list(zone_fsopt_t *);
19303 extern int zonecfg_find_mounts(char *, int(*)(const struct mnttab *,
19304     void *), void *);
19305 
19306 /*
19307  * Network interface configuration.
19308  */
19309 extern int zonecfg_add_nwif(zone_dochandle_t, struct zone_nwiftab *);
19310 extern int zonecfg_delete_nwif(zone_dochandle_t, struct zone_nwiftab *);
19311 extern int zonecfg_modify_nwif(zone_dochandle_t, struct zone_nwiftab *,
19312     struct zone_nwiftab *);
19313 extern int zonecfg_lookup_nwif(zone_dochandle_t, struct zone_nwiftab *);
19314 
19315 /*
19316  * Hostid emulation configuration.
19317  */
19318 extern int zonecfg_get_hostid(zone_dochandle_t, char *, size_t);
19319 extern int zonecfg_set_hostid(zone_dochandle_t, const char *);
19320 
19321 /*
19322  * Allowed FS mounts configuration.
19323  */
19324 extern int zonecfg_get_fs_allowed(zone_dochandle_t, char *, size_t);
19325 extern int zonecfg_set_fs_allowed(zone_dochandle_t, const char *);
19326 
19327 /*
19328  * Device configuration and rule matching.
19329  */
19330 extern int zonecfg_add_dev(zone_dochandle_t, struct zone_devtab *);
19331 extern int zonecfg_delete_dev(zone_dochandle_t, struct zone_devtab *);
19332 extern int zonecfg_modify_dev(zone_dochandle_t, struct zone_devtab *,
19333     struct zone_devtab *);
19334 extern int zonecfg_lookup_dev(zone_dochandle_t, struct zone_devtab *);
19335 
19336 /*
19337  * Resource control configuration.
19338  */
19339 extern int zonecfg_add_rctl(zone_dochandle_t, struct zone_rctltab *);
19340 extern int zonecfg_delete_rctl(zone_dochandle_t, struct zone_rctltab *);
19341 extern int zonecfg_modify_rctl(zone_dochandle_t, struct zone_rctltab *,
19342     struct zone_rctltab *);
19343 extern int zonecfg_lookup_rctl(zone_dochandle_t, struct zone_rctltab *);
19344 extern int zonecfg_add_rctl_value(struct zone_rctltab *,
19345     struct zone_rctlvaltab *);
19346 extern int zonecfg_remove_rctl_value(struct zone_rctltab *,
19347     struct zone_rctlvaltab *);
19348 extern void zonecfg_free_rctl_value_list(struct zone_rctlvaltab *);
19349 extern boolean_t zonecfg_aliased_rctl_ok(zone_dochandle_t, char *);
19350 extern int zonecfg_set_aliased_rctl(zone_dochandle_t, char *, uint64_t);
19351 extern int zonecfg_get_aliased_rctl(zone_dochandle_t, char *, uint64_t *);
19352 extern int zonecfg_rm_aliased_rctl(zone_dochandle_t, char *);
19353 extern int zonecfg_apply_rctls(char *, zone_dochandle_t);
19354 
19355 /*
19356  * Generic attribute configuration and type/value extraction.
19357  */
19358 extern int zonecfg_add_attr(zone_dochandle_t, struct zone_attrtab *);
19359 extern int zonecfg_delete_attr(zone_dochandle_t, struct zone_attrtab *);
19360 extern int zonecfg_modify_attr(zone_dochandle_t, struct zone_attrtab *,
19361     struct zone_attrtab *);
19362 extern int zonecfg_lookup_attr(zone_dochandle_t, struct zone_attrtab *);
19363 extern int zonecfg_get_attr_boolean(const struct zone_attrtab *,
19364     boolean_t *);
19365 extern int zonecfg_get_attr_int(const struct zone_attrtab *, int64_t *);
19366 extern int zonecfg_get_attr_string(const struct zone_attrtab *, char *,
19367     size_t);
19368 extern int zonecfg_get_attr_uint(const struct zone_attrtab *, uint64_t *);
19369 
19370 /*
19371  * ZFS configuration.
19372  */
19373 extern int zonecfg_add_ds(zone_dochandle_t, struct zone_dstab *);
19374 extern int zonecfg_delete_ds(zone_dochandle_t, struct zone_dstab *);
19375 extern int zonecfg_modify_ds(zone_dochandle_t, struct zone_dstab *,
19376     struct zone_dstab *);
19377 extern int zonecfg_lookup_ds(zone_dochandle_t, struct zone_dstab *);
19378 
19379 /*
19380  * cpu-set configuration.
19381  */
19382 extern int zonecfg_add_pset(zone_dochandle_t, struct zone_psettab *);
19383 extern int zonecfg_delete_pset(zone_dochandle_t);
19384 extern int zonecfg_modify_pset(zone_dochandle_t, struct zone_psettab *);
19385 extern int zonecfg_lookup_pset(zone_dochandle_t, struct zone_psettab *);
19386 
19387 /*
19388  * mem-cap configuration.
19389  */
19390 extern int zonecfg_delete_mcap(zone_dochandle_t);
19391 extern int zonecfg_modify_mcap(zone_dochandle_t, struct zone_mcaptab *);
19392 extern int zonecfg_lookup_mcap(zone_dochandle_t, struct zone_mcaptab *);
19393 
19394 /*
19395  * Temporary pool support functions.
19396  */
19397 extern int zonecfg_destroy_tmp_pool(char *, char *, int);
19398 extern int zonecfg_bind_tmp_pool(zone_dochandle_t, zoneid_t, char *, int);
19399 extern int zonecfg_bind_pool(zone_dochandle_t, zoneid_t, char *, int);
19400 extern boolean_t zonecfg_warn_poold(zone_dochandle_t);
19401 extern int zonecfg_get_poolname(zone_dochandle_t, char *, char *, size_t);
19402 
19403 /*
19404  * Miscellaneous utility functions.
19405  */
19406 extern int zonecfg_enable_rcapd(char *, int);
19407 
19408 /*
19409  * attach/detach support.
19410  */
19411 extern int zonecfg_get_attach_handle(const char *, const char *,
19412     const char *, boolean_t, zone_dochandle_t);
19413 extern int zonecfg_attach_manifest(int, zone_dochandle_t,
19414     zone_dochandle_t);
19415 extern int zonecfg_detach_save(zone_dochandle_t, uint_t);
19416 extern boolean_t zonecfg_detached(const char *);
19417 extern void zonecfg_rm_detached(zone_dochandle_t, boolean_t forced);
19418 extern int zonecfg_dev_manifest(zone_dochandle_t);
19419 extern int zonecfg_devperms_apply(zone_dochandle_t, const char *,
19420     uid_t, gid_t, mode_t, const char *);
19421 extern void zonecfg_set_swinv(zone_dochandle_t);
19422 extern int zonecfg_add_pkg(zone_dochandle_t, char *, char *);
19423 
19424 /*
19425  * External zone verification support.
19426  */
19427 extern int zonecfg_verify_save(zone_dochandle_t, char *);
19428 
19429 /*
19430  * '*ent' iterator routines.
19431  */
19432 extern int zonecfg_setfsent(zone_dochandle_t);
19433 extern int zonecfg_getfsent(zone_dochandle_t, struct zone_fstab *);
19434 extern int zonecfg_endfsent(zone_dochandle_t);
19435 extern int zonecfg_setnwifent(zone_dochandle_t);
19436 extern int zonecfg_getnwifent(zone_dochandle_t, struct zone_nwiftab *);
19437 extern int zonecfg_endnwifent(zone_dochandle_t);
19438 extern int zonecfg_setdevent(zone_dochandle_t);
19439 extern int zonecfg_getdevent(zone_dochandle_t, struct zone_devtab *);
19440 extern int zonecfg_enddevent(zone_dochandle_t);
19441 extern int zonecfg_setattrent(zone_dochandle_t);
19442 extern int zonecfg_getattrent(zone_dochandle_t, struct zone_attrtab *);
19443 extern int zonecfg_endattrent(zone_dochandle_t);
19444 extern int zonecfg_setrctlent(zone_dochandle_t);
19445 extern int zonecfg_getrctlent(zone_dochandle_t, struct zone_rctltab *);
19446 extern int zonecfg_endrctlent(zone_dochandle_t);
19447 extern int zonecfg_setdsent(zone_dochandle_t);
19448 extern int zonecfg_getdsent(zone_dochandle_t, struct zone_dstab *);
19449 extern int zonecfg_enddsent(zone_dochandle_t);
19450 extern int zonecfg_getpsetent(zone_dochandle_t, struct zone_psettab *);
19451 extern int zonecfg_getmcapent(zone_dochandle_t, struct zone_mcaptab *);
19452 extern int zonecfg_getpkgdata(zone_dochandle_t, uu_avl_pool_t *,
19453     uu_avl_t *);
19454 extern int zonecfg_setdevperment(zone_dochandle_t);
19455 extern int zonecfg_getdevperment(zone_dochandle_t,
19456     struct zone_devpermtab *);
19457 extern int zonecfg_enddevperment(zone_dochandle_t);
19458 extern int zonecfg_setadminent(zone_dochandle_t);
19459 extern int zonecfg_getadminent(zone_dochandle_t, struct zone_admintab *);
19460 extern int zonecfg_endadminent(zone_dochandle_t);
19461 
19462 /*
19463  * Privilege-related functions.
19464  */
19465 extern int zonecfg_default_privset(priv_set_t *, const char *);
19466 extern int zonecfg_get_privset(zone_dochandle_t, priv_set_t *,
19467     char **);
19468 extern int zonecfg_get_limitpriv(zone_dochandle_t, char **);
19469 extern int zonecfg_set_limitpriv(zone_dochandle_t, char *);
19470 
19471 /*
19472  * Higher-level routines.
19473  */
19474 extern int zone_get_brand(char *, char *, size_t);
19475 extern int zone_get_rootpath(char *, char *, size_t);
19476 extern int zone_get_devroot(char *, char *, size_t);
19477 extern int zone_get_zonepath(char *, char *, size_t);
19478 extern int zone_get_state(char *, zone_state_t *);
19479 extern int zone_set_state(char *, zone_state_t);
19480 extern char *zone_state_str(zone_state_t);
19481 extern int zonecfg_get_name_by_uuid(const uuid_t, char *, size_t);
19482 extern int zonecfg_get_uuid(const char *, uuid_t);
19483 extern int zonecfg_default_brand(char *, size_t);
19484 
19485 /*
19486  * Iterator for configured zones.
19487  */
19488 extern FILE *setzoneent(void);
19489 extern char *getzoneent(FILE *);
19490 extern struct zoneent *getzoneent_private(FILE *);
19491 extern void endzoneent(FILE *);
19492 
19493 /*
19494  * File-system-related convenience functions.
19495  */
19496 extern boolean_t zonecfg_valid_fs_type(const char *);
19497 
19498 /*
19499  * Network-related convenience functions.
19500  */
19501 extern boolean_t zonecfg_same_net_address(char *, char *);
19502 extern int zonecfg_valid_net_address(char *, struct lifreq *);
19503 extern boolean_t zonecfg_ifname_exists(sa_family_t, char *);
19504 
19505 /*
19506  * Rctl-related common functions.
19507  */
19508 extern boolean_t zonecfg_is_rctl(const char *);
19509 extern boolean_t zonecfg_valid_rctlname(const char *);
19510 extern boolean_t zonecfg_valid_rctlblk(const rctlblk_t *);
19511 extern boolean_t zonecfg_valid_rctl(const char *, const rctlblk_t *);
19512 extern int zonecfg_construct_rctlblk(const struct zone_rctlvaltab *,
19513     rctlblk_t *);
19514 
19515 /*
19516  * Live Upgrade support functions.  Shared between ON and install gate.
19517  */
19518 extern FILE *zonecfg_open_scratch(const char *, boolean_t);
19519 extern int zonecfg_lock_scratch(FILE *);
19520 extern void zonecfg_close_scratch(FILE *);
19521 extern int zonecfg_get_scratch(FILE *, char *, size_t, char *, size_t, char *,
19522     size_t);
19523 extern int zonecfg_find_scratch(FILE *, const char *, const char *, char *,
19524     size_t);
19525 extern int zonecfg_reverse_scratch(FILE *, const char *, char *, size_t,
19526     char *, size_t);
19527 extern int zonecfg_add_scratch(FILE *, const char *, const char *,
19528     const char *);
19529 extern int zonecfg_delete_scratch(FILE *, const char *);
19530 extern boolean_t zonecfg_is_scratch(const char *);
19531 
19532 /*
19533  * zoneadmd support functions.  Shared between zoneadm and brand hook code.
19534  */
19535 extern void zonecfg_init_lock_file(const char *, char **);
19536 extern void zonecfg_release_lock_file(const char *, int);
19537 extern int zonecfg_grab_lock_file(const char *, int *);
19538 extern boolean_t zonecfg_lock_file_held(int *);
19539 extern int zonecfg_ping_zoneadmd(const char *);
19540 extern int zonecfg_call_zoneadmd(const char *, zone_cmd_arg_t *, char *,
19541     boolean_t);
19542 extern int zonecfg_insert_userauths(zone_dochandle_t, char *, char *);
19543 extern int zonecfg_remove_userauths(zone_dochandle_t, char *, char *,
19544     boolean_t);
19545 extern int zonecfg_add_admin(zone_dochandle_t, struct zone_admintab *,
19546     char *);
19547 extern int zonecfg_delete_admin(zone_dochandle_t,
19548     struct zone_admintab *, char *);
19549 extern int zonecfg_modify_admin(zone_dochandle_t, struct zone_admintab *,
19550     struct zone_admintab *, char *);
19551 extern int zonecfg_delete_admins(zone_dochandle_t, char *);
19552 extern int zonecfg_lookup_admin(zone_dochandle_t, struct zone_admintab *);
19553 extern int zonecfg_authorize_users(zone_dochandle_t, char *);
19554 extern int zonecfg_update_userauths(zone_dochandle_t, char *);
19555 extern int zonecfg_deauthorize_user(zone_dochandle_t, char *, char *);
19556 extern int zonecfg_deauthorize_users(zone_dochandle_t, char *);
19557 extern boolean_t zonecfg_valid_auths(const char *, const char *);
19558 # 47 "../common/instzones_lib.h" 2
19559 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libcontract.h" 1
19560 /*
19561  * CDDL HEADER START
19562  *
19563  * The contents of this file are subject to the terms of the
19564  * Common Development and Distribution License (the "License").
19565  * You may not use this file except in compliance with the License.
19566  *
19567  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19568  * or http://www.opensolaris.org/os/licensing.
19569  * See the License for the specific language governing permissions
19570  * and limitations under the License.
19571  *
19572  * When distributing Covered Code, include this CDDL HEADER in each
19573  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19574  * If applicable, add the following below this CDDL HEADER, with the
19575  * fields enclosed by brackets "[]" replaced with your own identifying
19576  * information: Portions Copyright [yyyy] [name of copyright owner]
19577  *
19578  * CDDL HEADER END
19579  */
19580 /*
19581  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
19582  * Use is subject to license terms.
19583  */
19584 
19585 
19586 
19587 
19588 #pragma ident "%Z%%M%	%I%	%E% SMI"
19589 
19590 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19591 /*
19592  * CDDL HEADER START
19593  *
19594  * The contents of this file are subject to the terms of the
19595  * Common Development and Distribution License (the "License").
19596  * You may not use this file except in compliance with the License.
19597  *
19598  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19599  * or http://www.opensolaris.org/os/licensing.
19600  * See the License for the specific language governing permissions
19601  * and limitations under the License.
19602  *
19603  * When distributing Covered Code, include this CDDL HEADER in each
19604  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19605  * If applicable, add the following below this CDDL HEADER, with the
19606  * fields enclosed by brackets "[]" replaced with your own identifying
19607  * information: Portions Copyright [yyyy] [name of copyright owner]
19608  *
19609  * CDDL HEADER END
19610  */
19611 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19612 /*	  All Rights Reserved  	*/
19613 
19614 
19615 /*
19616  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19617  * Use is subject to license terms.
19618  *
19619  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19620  * Copyright 2016 Joyent, Inc.
19621  */
19622 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libcontract.h" 2
19623 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/contract.h" 1
19624 /*
19625  * CDDL HEADER START
19626  *
19627  * The contents of this file are subject to the terms of the
19628  * Common Development and Distribution License (the "License").
19629  * You may not use this file except in compliance with the License.
19630  *
19631  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19632  * or http://www.opensolaris.org/os/licensing.
19633  * See the License for the specific language governing permissions
19634  * and limitations under the License.
19635  *
19636  * When distributing Covered Code, include this CDDL HEADER in each
19637  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19638  * If applicable, add the following below this CDDL HEADER, with the
19639  * fields enclosed by brackets "[]" replaced with your own identifying
19640  * information: Portions Copyright [yyyy] [name of copyright owner]
19641  *
19642  * CDDL HEADER END
19643  */
19644 /*
19645  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
19646  * Use is subject to license terms.
19647  */
19648 
19649 
19650 
19651 
19652 #pragma ident "%Z%%M%	%I%	%E% SMI"
19653 
19654 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
19655 /*
19656  * CDDL HEADER START
19657  *
19658  * The contents of this file are subject to the terms of the
19659  * Common Development and Distribution License (the "License").
19660  * You may not use this file except in compliance with the License.
19661  *
19662  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19663  * or http://www.opensolaris.org/os/licensing.
19664  * See the License for the specific language governing permissions
19665  * and limitations under the License.
19666  *
19667  * When distributing Covered Code, include this CDDL HEADER in each
19668  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19669  * If applicable, add the following below this CDDL HEADER, with the
19670  * fields enclosed by brackets "[]" replaced with your own identifying
19671  * information: Portions Copyright [yyyy] [name of copyright owner]
19672  *
19673  * CDDL HEADER END
19674  */
19675 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
19676 /*	  All Rights Reserved  	*/
19677 
19678 
19679 /*
19680  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
19681  * Use is subject to license terms.
19682  *
19683  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
19684  * Copyright 2016 Joyent, Inc.
19685  */
19686 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/contract.h" 2
19687 
19688 
19689 
19690 
19691 
19692 typedef uint64_t ctevid_t;
19693 
19694 /*
19695  * Contract parameter maximum size, in bytes
19696  */
19697 
19698 
19699 /*
19700  * Common event types
19701  */
19702 
19703 
19704 /*
19705  * Level of status detail requested
19706  */
19707 
19708 
19709 
19710 
19711 /*
19712  * Values for ctev_flags.
19713  */
19714 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/contract.h"
19715 typedef enum ctstate {
19716  CTS_OWNED, /* contract is owned by a process */
19717  CTS_INHERITED, /* contract has been inherited by its parent */
19718  CTS_ORPHAN, /* contract has no parent */
19719  CTS_DEAD /* contract has been destroyed */
19720 } ctstate_t;
19721 
19722 typedef enum ct_typeid {
19723  CTT_PROCESS, /* process contract */
19724  CTT_DEVICE, /* device contract */
19725  CTT_MAXTYPE
19726 } ct_typeid_t;
19727 
19728 typedef struct ct_event {
19729  ctid_t ctev_id;
19730  uint32_t ctev_pad1;
19731  ctevid_t ctev_evid;
19732  ct_typeid_t ctev_cttype;
19733  uint32_t ctev_flags;
19734  uint32_t ctev_type;
19735  uint32_t ctev_nbytes;
19736  uint32_t ctev_goffset;
19737  uint32_t ctev_pad2;
19738  char *ctev_buffer;
19739 } ct_event_t;
19740 
19741 typedef struct ct_status {
19742  ctid_t ctst_id;
19743  zoneid_t ctst_zoneid;
19744  ct_typeid_t ctst_type;
19745  pid_t ctst_holder;
19746  ctstate_t ctst_state;
19747  int ctst_nevents;
19748  int ctst_ntime;
19749  int ctst_qtime;
19750  uint64_t ctst_nevid;
19751  uint_t ctst_detail;
19752  size_t ctst_nbytes;
19753  uint_t ctst_critical;
19754  uint_t ctst_informative;
19755  uint64_t ctst_cookie;
19756  char *ctst_buffer;
19757 } ct_status_t;
19758 
19759 typedef struct ct_param {
19760  uint32_t ctpm_id;
19761  uint32_t ctpm_size;
19762  void *ctpm_value;
19763 } ct_param_t;
19764 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libcontract.h" 2
19765 
19766 
19767 
19768 
19769 
19770 typedef void *ct_stathdl_t;
19771 typedef void *ct_evthdl_t;
19772 
19773 /*
19774  * Common routines
19775  */
19776 extern int ct_tmpl_activate(int);
19777 extern int ct_tmpl_clear(int);
19778 extern int ct_tmpl_create(int, ctid_t *);
19779 extern int ct_tmpl_set_cookie(int, uint64_t);
19780 extern int ct_tmpl_get_cookie(int, uint64_t *);
19781 extern int ct_tmpl_set_critical(int, uint_t);
19782 extern int ct_tmpl_get_critical(int, uint_t *);
19783 extern int ct_tmpl_set_informative(int, uint_t);
19784 extern int ct_tmpl_get_informative(int, uint_t *);
19785 
19786 extern int ct_ctl_adopt(int);
19787 extern int ct_ctl_abandon(int);
19788 extern int ct_ctl_ack(int, ctevid_t);
19789 extern int ct_ctl_nack(int, ctevid_t);
19790 extern int ct_ctl_qack(int, ctevid_t);
19791 extern int ct_ctl_newct(int, ctevid_t, int);
19792 
19793 extern int ct_status_read(int, int, ct_stathdl_t *);
19794 extern void ct_status_free(ct_stathdl_t);
19795 
19796 extern ctid_t ct_status_get_id(ct_stathdl_t);
19797 extern zoneid_t ct_status_get_zoneid(ct_stathdl_t);
19798 extern const char *ct_status_get_type(ct_stathdl_t);
19799 extern id_t ct_status_get_holder(ct_stathdl_t);
19800 extern ctstate_t ct_status_get_state(ct_stathdl_t);
19801 extern int ct_status_get_nevents(ct_stathdl_t);
19802 extern int ct_status_get_ntime(ct_stathdl_t);
19803 extern int ct_status_get_qtime(ct_stathdl_t);
19804 extern ctevid_t ct_status_get_nevid(ct_stathdl_t);
19805 extern uint_t ct_status_get_informative(ct_stathdl_t);
19806 extern uint_t ct_status_get_critical(ct_stathdl_t);
19807 extern uint64_t ct_status_get_cookie(ct_stathdl_t);
19808 
19809 extern int ct_event_read(int, ct_evthdl_t *);
19810 extern int ct_event_read_critical(int, ct_evthdl_t *);
19811 extern int ct_event_reset(int);
19812 extern int ct_event_reliable(int);
19813 extern void ct_event_free(ct_evthdl_t);
19814 
19815 extern uint_t ct_event_get_flags(ct_evthdl_t);
19816 extern ctid_t ct_event_get_ctid(ct_evthdl_t);
19817 extern ctevid_t ct_event_get_evid(ct_evthdl_t);
19818 extern uint_t ct_event_get_type(ct_evthdl_t);
19819 extern int ct_event_get_nevid(ct_evthdl_t, ctevid_t *);
19820 extern int ct_event_get_newct(ct_evthdl_t, ctid_t *);
19821 
19822 /*
19823  * Process contract routines
19824  */
19825 extern int ct_pr_tmpl_set_transfer(int, ctid_t);
19826 extern int ct_pr_tmpl_set_fatal(int, uint_t);
19827 extern int ct_pr_tmpl_set_param(int, uint_t);
19828 extern int ct_pr_tmpl_set_svc_fmri(int, const char *);
19829 extern int ct_pr_tmpl_set_svc_aux(int, const char *);
19830 
19831 extern int ct_pr_tmpl_get_transfer(int, ctid_t *);
19832 extern int ct_pr_tmpl_get_fatal(int, uint_t *);
19833 extern int ct_pr_tmpl_get_param(int, uint_t *);
19834 extern int ct_pr_tmpl_get_svc_fmri(int, char *, size_t);
19835 extern int ct_pr_tmpl_get_svc_aux(int, char *, size_t);
19836 
19837 extern int ct_pr_event_get_pid(ct_evthdl_t, pid_t *);
19838 extern int ct_pr_event_get_ppid(ct_evthdl_t, pid_t *);
19839 extern int ct_pr_event_get_signal(ct_evthdl_t, int *);
19840 extern int ct_pr_event_get_sender(ct_evthdl_t, pid_t *);
19841 extern int ct_pr_event_get_senderct(ct_evthdl_t, ctid_t *);
19842 extern int ct_pr_event_get_exitstatus(ct_evthdl_t, int *);
19843 extern int ct_pr_event_get_pcorefile(ct_evthdl_t, const char **);
19844 extern int ct_pr_event_get_gcorefile(ct_evthdl_t, const char **);
19845 extern int ct_pr_event_get_zcorefile(ct_evthdl_t, const char **);
19846 
19847 extern int ct_pr_status_get_param(ct_stathdl_t, uint_t *);
19848 extern int ct_pr_status_get_fatal(ct_stathdl_t, uint_t *);
19849 extern int ct_pr_status_get_members(ct_stathdl_t, pid_t **, uint_t *);
19850 extern int ct_pr_status_get_contracts(ct_stathdl_t, ctid_t **, uint_t *);
19851 extern int ct_pr_status_get_svc_fmri(ct_stathdl_t, char **);
19852 extern int ct_pr_status_get_svc_aux(ct_stathdl_t, char **);
19853 extern int ct_pr_status_get_svc_ctid(ct_stathdl_t, ctid_t *);
19854 extern int ct_pr_status_get_svc_creator(ct_stathdl_t, char **);
19855 
19856 /*
19857  * Device contract routines
19858  */
19859 int ct_dev_tmpl_set_minor(int, char *);
19860 int ct_dev_tmpl_set_aset(int, uint_t);
19861 int ct_dev_tmpl_set_noneg(int);
19862 int ct_dev_tmpl_clear_noneg(int);
19863 int ct_dev_tmpl_get_minor(int, char *, size_t *);
19864 int ct_dev_tmpl_get_aset(int, uint_t *);
19865 int ct_dev_tmpl_get_noneg(int, uint_t *);
19866 int ct_dev_status_get_aset(ct_stathdl_t, uint_t *);
19867 int ct_dev_status_get_noneg(ct_stathdl_t, uint_t *);
19868 int ct_dev_status_get_dev_state(ct_stathdl_t, uint_t *);
19869 int ct_dev_status_get_minor(ct_stathdl_t, char **);
19870 # 48 "../common/instzones_lib.h" 2
19871 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 1
19872 /*
19873  * CDDL HEADER START
19874  *
19875  * The contents of this file are subject to the terms of the
19876  * Common Development and Distribution License (the "License").
19877  * You may not use this file except in compliance with the License.
19878  *
19879  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19880  * or http://www.opensolaris.org/os/licensing.
19881  * See the License for the specific language governing permissions
19882  * and limitations under the License.
19883  *
19884  * When distributing Covered Code, include this CDDL HEADER in each
19885  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19886  * If applicable, add the following below this CDDL HEADER, with the
19887  * fields enclosed by brackets "[]" replaced with your own identifying
19888  * information: Portions Copyright [yyyy] [name of copyright owner]
19889  *
19890  * CDDL HEADER END
19891  */
19892 
19893 /*
19894  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
19895  */
19896 
19897 
19898 
19899 
19900 
19901 /*
19902  * Module:	instzones_api.h
19903  * Group:	libinstzones
19904  * Description:	This module contains the libinstzones API data structures,
19905  *		constants, and function prototypes.
19906  */
19907 
19908 /*
19909  * required includes
19910  */
19911 
19912 /* System includes */
19913 
19914 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1
19915 /*
19916  * CDDL HEADER START
19917  *
19918  * The contents of this file are subject to the terms of the
19919  * Common Development and Distribution License, Version 1.0 only
19920  * (the "License").  You may not use this file except in compliance
19921  * with the License.
19922  *
19923  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19924  * or http://www.opensolaris.org/os/licensing.
19925  * See the License for the specific language governing permissions
19926  * and limitations under the License.
19927  *
19928  * When distributing Covered Code, include this CDDL HEADER in each
19929  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19930  * If applicable, add the following below this CDDL HEADER, with the
19931  * fields enclosed by brackets "[]" replaced with your own identifying
19932  * information: Portions Copyright [yyyy] [name of copyright owner]
19933  *
19934  * CDDL HEADER END
19935  */
19936 /*	Copyright (c) 1988 AT&T	*/
19937 /*	  All Rights Reserved	*/
19938 
19939 /*
19940  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19941  *
19942  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
19943  * Use is subject to license terms.
19944  */
19945 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19946 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
19947 /*
19948  * CDDL HEADER START
19949  *
19950  * The contents of this file are subject to the terms of the
19951  * Common Development and Distribution License (the "License").
19952  * You may not use this file except in compliance with the License.
19953  *
19954  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19955  * or http://www.opensolaris.org/os/licensing.
19956  * See the License for the specific language governing permissions
19957  * and limitations under the License.
19958  *
19959  * When distributing Covered Code, include this CDDL HEADER in each
19960  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19961  * If applicable, add the following below this CDDL HEADER, with the
19962  * fields enclosed by brackets "[]" replaced with your own identifying
19963  * information: Portions Copyright [yyyy] [name of copyright owner]
19964  *
19965  * CDDL HEADER END
19966  */
19967 
19968 /*
19969  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
19970  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
19971  */
19972 
19973 /*	Copyright (c) 1988 AT&T	*/
19974 /*	  All Rights Reserved  	*/
19975 
19976 /*
19977  * User-visible pieces of the ANSI C standard I/O package.
19978  */
19979 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
19980 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
19981 /*
19982  * CDDL HEADER START
19983  *
19984  * The contents of this file are subject to the terms of the
19985  * Common Development and Distribution License (the "License").
19986  * You may not use this file except in compliance with the License.
19987  *
19988  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19989  * or http://www.opensolaris.org/os/licensing.
19990  * See the License for the specific language governing permissions
19991  * and limitations under the License.
19992  *
19993  * When distributing Covered Code, include this CDDL HEADER in each
19994  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19995  * If applicable, add the following below this CDDL HEADER, with the
19996  * fields enclosed by brackets "[]" replaced with your own identifying
19997  * information: Portions Copyright [yyyy] [name of copyright owner]
19998  *
19999  * CDDL HEADER END
20000  */
20001 
20002 /*
20003  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20004  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
20005  */
20006 
20007 /*	Copyright (c) 1988 AT&T	*/
20008 /*	  All Rights Reserved  	*/
20009 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20010 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/termios.h" 1
20011 /*
20012  * CDDL HEADER START
20013  *
20014  * The contents of this file are subject to the terms of the
20015  * Common Development and Distribution License, Version 1.0 only
20016  * (the "License").  You may not use this file except in compliance
20017  * with the License.
20018  *
20019  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20020  * or http://www.opensolaris.org/os/licensing.
20021  * See the License for the specific language governing permissions
20022  * and limitations under the License.
20023  *
20024  * When distributing Covered Code, include this CDDL HEADER in each
20025  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20026  * If applicable, add the following below this CDDL HEADER, with the
20027  * fields enclosed by brackets "[]" replaced with your own identifying
20028  * information: Portions Copyright [yyyy] [name of copyright owner]
20029  *
20030  * CDDL HEADER END
20031  */
20032 /*	Copyright (c) 1988 AT&T	*/
20033 /*	  All Rights Reserved  	*/
20034 
20035 
20036 
20037 
20038 
20039 #pragma ident "%Z%%M%	%I%	%E% SMI"
20040 
20041 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 1
20042 /*
20043  * CDDL HEADER START
20044  *
20045  * The contents of this file are subject to the terms of the
20046  * Common Development and Distribution License (the "License").
20047  * You may not use this file except in compliance with the License.
20048  *
20049  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20050  * or http://www.opensolaris.org/os/licensing.
20051  * See the License for the specific language governing permissions
20052  * and limitations under the License.
20053  *
20054  * When distributing Covered Code, include this CDDL HEADER in each
20055  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20056  * If applicable, add the following below this CDDL HEADER, with the
20057  * fields enclosed by brackets "[]" replaced with your own identifying
20058  * information: Portions Copyright [yyyy] [name of copyright owner]
20059  *
20060  * CDDL HEADER END
20061  */
20062 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20063 /*	  All Rights Reserved  	*/
20064 
20065 
20066 /*
20067  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20068  *
20069  * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
20070  */
20071 
20072 
20073 
20074 
20075 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
20076 /*
20077  * CDDL HEADER START
20078  *
20079  * The contents of this file are subject to the terms of the
20080  * Common Development and Distribution License (the "License").
20081  * You may not use this file except in compliance with the License.
20082  *
20083  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20084  * or http://www.opensolaris.org/os/licensing.
20085  * See the License for the specific language governing permissions
20086  * and limitations under the License.
20087  *
20088  * When distributing Covered Code, include this CDDL HEADER in each
20089  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20090  * If applicable, add the following below this CDDL HEADER, with the
20091  * fields enclosed by brackets "[]" replaced with your own identifying
20092  * information: Portions Copyright [yyyy] [name of copyright owner]
20093  *
20094  * CDDL HEADER END
20095  */
20096 
20097 /*
20098  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
20099  * Copyright 2016 Joyent, Inc.
20100  *
20101  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
20102  * Use is subject to license terms.
20103  */
20104 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
20105 
20106 
20107 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ttydev.h" 1
20108 /*
20109  * CDDL HEADER START
20110  *
20111  * The contents of this file are subject to the terms of the
20112  * Common Development and Distribution License, Version 1.0 only
20113  * (the "License").  You may not use this file except in compliance
20114  * with the License.
20115  *
20116  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20117  * or http://www.opensolaris.org/os/licensing.
20118  * See the License for the specific language governing permissions
20119  * and limitations under the License.
20120  *
20121  * When distributing Covered Code, include this CDDL HEADER in each
20122  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20123  * If applicable, add the following below this CDDL HEADER, with the
20124  * fields enclosed by brackets "[]" replaced with your own identifying
20125  * information: Portions Copyright [yyyy] [name of copyright owner]
20126  *
20127  * CDDL HEADER END
20128  */
20129 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20130 /*	  All Rights Reserved  	*/
20131 
20132 
20133 
20134 
20135 
20136 #pragma ident "%Z%%M%	%I%	%E% SMI"
20137 
20138 
20139 
20140 
20141 
20142 /*
20143  * Terminal definitions related to underlying hardware.
20144  */
20145 
20146 /*
20147  * Speeds
20148  */
20149 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
20150 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
20151 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20152 /*	  All Rights Reserved  	*/
20153 
20154 
20155 /*
20156  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
20157  * All rights reserved.  The Berkeley software License Agreement
20158  * specifies the terms and conditions for redistribution.
20159  */
20160 
20161 /*
20162  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20163  *
20164  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
20165  * Use is subject to license terms.
20166  *
20167  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20168  */
20169 
20170 /*
20171  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
20172  */
20173 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
20174 
20175 
20176 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
20177 /*
20178  * CDDL HEADER START
20179  *
20180  * The contents of this file are subject to the terms of the
20181  * Common Development and Distribution License (the "License").
20182  * You may not use this file except in compliance with the License.
20183  *
20184  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20185  * or http://www.opensolaris.org/os/licensing.
20186  * See the License for the specific language governing permissions
20187  * and limitations under the License.
20188  *
20189  * When distributing Covered Code, include this CDDL HEADER in each
20190  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20191  * If applicable, add the following below this CDDL HEADER, with the
20192  * fields enclosed by brackets "[]" replaced with your own identifying
20193  * information: Portions Copyright [yyyy] [name of copyright owner]
20194  *
20195  * CDDL HEADER END
20196  */
20197 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20198 /*	  All Rights Reserved  	*/
20199 
20200 
20201 /*
20202  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
20203  * Use is subject to license terms.
20204  *
20205  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20206  * Copyright 2016 Joyent, Inc.
20207  */
20208 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h" 2
20209 
20210 
20211 
20212 
20213 
20214 /*
20215  * _POSIX_VDISABLE has been defined in <sys/termios.h> since the
20216  * introduction of the header. The POSIX standard, IEEE Std.
20217  * 1003.1-1988 also required  the existence of _POSIX_VDISABLE in
20218  * this header. Subsequent versions of the IEEE Standard as well
20219  * as the X/Open specifications required that _POSIX_VDISABLE be
20220  * defined in <unistd.h> while still allowing for it's existence
20221  * here. With the introduction of XPG6, _POSIX_VDISABLE can only
20222  * be defined in <unistd.h>.
20223  */
20224 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20225 /* required by termio.h and VCEOF/VCEOL */
20226 
20227 
20228 
20229 
20230 
20231 /* some defines required by POSIX */
20232 
20233 
20234 /*
20235  * types defined by POSIX. These are better off in types.h, but
20236  * the standard says that they have to be in termios.h.
20237  */
20238 typedef unsigned int tcflag_t;
20239 typedef unsigned char cc_t;
20240 typedef unsigned int speed_t;
20241 
20242 /*
20243  * Ioctl control packet
20244  */
20245 struct termios {
20246  tcflag_t c_iflag; /* input modes */
20247  tcflag_t c_oflag; /* output modes */
20248  tcflag_t c_cflag; /* control modes */
20249  tcflag_t c_lflag; /* line discipline modes */
20250  cc_t c_cc[19]; /* control chars */
20251 };
20252 
20253 /*
20254  * POSIX termios functions
20255  * These functions get mapped into ioctls.
20256  */
20257 
20258 
20259 
20260 extern speed_t cfgetospeed(const struct termios *);
20261 extern int cfsetospeed(struct termios *, speed_t);
20262 extern speed_t cfgetispeed(const struct termios *);
20263 extern int cfsetispeed(struct termios *, speed_t);
20264 extern int tcgetattr(int, struct termios *);
20265 extern int tcsetattr(int, int, const struct termios *);
20266 extern int tcsendbreak(int, int);
20267 extern int tcdrain(int);
20268 extern int tcflush(int, int);
20269 extern int tcflow(int, int);
20270 
20271 
20272 
20273 extern pid_t tcgetsid(int);
20274 
20275 
20276 
20277 
20278 
20279 /* control characters */
20280 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20281 /* 17 through 19 reserved for future use */
20282 
20283 /*
20284  * control characters form Xenix termio.h
20285  */
20286 
20287 
20288 
20289 
20290 
20291 
20292 /* S5 default control chars */
20293 /* CINTR, CERASE and CKILL modified to SunOS traditional values */
20294 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20295 /* input modes */
20296 # 209 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20297 /* output modes */
20298 # 255 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20299 /* control modes */
20300 # 281 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20301 /*
20302  * 4.4BSD hardware flow control flags
20303  */
20304 
20305 
20306 
20307 
20308 
20309 /* line discipline 0 modes */
20310 # 327 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20311 /* Slots reserved for 386/XENIX compatibility - keyboard control */
20312 # 343 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20313 /*
20314  * Softcarrier ioctls
20315  */
20316 
20317 
20318 
20319 
20320 /* termios ioctls */
20321 # 363 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20322 /*
20323  * NTP PPS ioctls
20324  */
20325 
20326 
20327 
20328 
20329 /* Argument filled in by TIOCGPPSEV */
20330 struct ppsclockev {
20331  struct timeval tv;
20332  uint_t serial;
20333 };
20334 # 387 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20335 /* termios option flags */
20336 # 398 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20337 /* TIOC ioctls for BSD, ptys, job control and modem control */
20338 
20339 
20340 
20341 
20342 
20343 /* Slots for 386/XENIX compatibility */
20344 /* BSD includes these ioctls in ttold.h */
20345 # 421 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20346 /*
20347  * BSD ioctls that are not the same as XENIX are included here.
20348  * There are also some relevant ioctls from SUN/BSD sys/ttycom.h
20349  * BSD pty ioctls like TIOCPKT are not supported in SVR4.
20350  */
20351 # 449 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20352 /* POSIX job control ioctls */
20353 
20354 
20355 
20356 
20357 
20358 
20359 /* Miscellaneous */
20360 
20361 
20362 /* Modem control */
20363 # 476 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20364 /* pseudo-tty */
20365 
20366 
20367 
20368 
20369 
20370 /* Some more 386 xenix stuff */
20371 # 492 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20372 /* Slots for 386 compatibility */
20373 
20374 
20375 
20376 
20377 
20378 
20379 
20380 /*
20381  * These are retained for 386/XENIX compatibility.
20382  */
20383 
20384 
20385 
20386 
20387 
20388 /*
20389  * Returns a non-zero value if there
20390  * are characters in the input queue.
20391  *
20392  * XXX - somebody is confused here.  V7 had no such "ioctl", although XENIX may
20393  * have added it; 4BSD had FIONREAD, which returned the number of characters
20394  * waiting, and was supposed to work on all descriptors (i.e., every driver
20395  * should make a stab at implementing it).
20396  */
20397 
20398 
20399 
20400 /*
20401  * Speeds
20402  */
20403 # 551 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/termios.h"
20404 /* Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ */
20405 struct winsize {
20406  unsigned short ws_row; /* rows, in characters */
20407  unsigned short ws_col; /* columns, in character */
20408  unsigned short ws_xpixel; /* horizontal size, pixels */
20409  unsigned short ws_ypixel; /* vertical size, pixels */
20410 };
20411 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/termios.h" 2
20412 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20413 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 1
20414 /*
20415  * CDDL HEADER START
20416  *
20417  * The contents of this file are subject to the terms of the
20418  * Common Development and Distribution License (the "License").
20419  * You may not use this file except in compliance with the License.
20420  *
20421  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20422  * or http://www.opensolaris.org/os/licensing.
20423  * See the License for the specific language governing permissions
20424  * and limitations under the License.
20425  *
20426  * When distributing Covered Code, include this CDDL HEADER in each
20427  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20428  * If applicable, add the following below this CDDL HEADER, with the
20429  * fields enclosed by brackets "[]" replaced with your own identifying
20430  * information: Portions Copyright [yyyy] [name of copyright owner]
20431  *
20432  * CDDL HEADER END
20433  */
20434 
20435 /* Copyright 2013 OmniTI Computer Consulting, Inc. All rights reserved. */
20436 /*
20437  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20438  *
20439  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
20440  * Use is subject to license terms.
20441  * Copyright 2015 Joyent, Inc.  All rights reserved.
20442  */
20443 
20444 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
20445 /*	  All Rights Reserved	*/
20446 
20447 /*
20448  * University Copyright- Copyright (c) 1982, 1986, 1988
20449  * The Regents of the University of California
20450  * All Rights Reserved
20451  *
20452  * University Acknowledgment- Portions of this document are derived from
20453  * software developed by the University of California, Berkeley, and its
20454  * contributors.
20455  */
20456 
20457 
20458 
20459 
20460 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
20461 /*
20462  * CDDL HEADER START
20463  *
20464  * The contents of this file are subject to the terms of the
20465  * Common Development and Distribution License (the "License").
20466  * You may not use this file except in compliance with the License.
20467  *
20468  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20469  * or http://www.opensolaris.org/os/licensing.
20470  * See the License for the specific language governing permissions
20471  * and limitations under the License.
20472  *
20473  * When distributing Covered Code, include this CDDL HEADER in each
20474  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20475  * If applicable, add the following below this CDDL HEADER, with the
20476  * fields enclosed by brackets "[]" replaced with your own identifying
20477  * information: Portions Copyright [yyyy] [name of copyright owner]
20478  *
20479  * CDDL HEADER END
20480  */
20481 
20482 /*
20483  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
20484  * Copyright 2016 Joyent, Inc.
20485  *
20486  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
20487  * Use is subject to license terms.
20488  */
20489 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 2
20490 
20491 
20492 
20493 
20494 
20495 
20496 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
20497 /*
20498  * CDDL HEADER START
20499  *
20500  * The contents of this file are subject to the terms of the
20501  * Common Development and Distribution License (the "License").
20502  * You may not use this file except in compliance with the License.
20503  *
20504  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20505  * or http://www.opensolaris.org/os/licensing.
20506  * See the License for the specific language governing permissions
20507  * and limitations under the License.
20508  *
20509  * When distributing Covered Code, include this CDDL HEADER in each
20510  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20511  * If applicable, add the following below this CDDL HEADER, with the
20512  * fields enclosed by brackets "[]" replaced with your own identifying
20513  * information: Portions Copyright [yyyy] [name of copyright owner]
20514  *
20515  * CDDL HEADER END
20516  */
20517 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20518 /*	  All Rights Reserved  	*/
20519 
20520 
20521 /*
20522  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
20523  * Use is subject to license terms.
20524  *
20525  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20526  * Copyright 2016 Joyent, Inc.
20527  */
20528 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h" 2
20529 
20530 
20531 /*
20532  * Protections are chosen from these bits, or-ed together.
20533  * Note - not all implementations literally provide all possible
20534  * combinations.  PROT_WRITE is often implemented as (PROT_READ |
20535  * PROT_WRITE) and (PROT_EXECUTE as PROT_READ | PROT_EXECUTE).
20536  * However, no implementation will permit a write to succeed
20537  * where PROT_WRITE has not been set.  Also, no implementation will
20538  * allow any access to succeed where prot is specified as PROT_NONE.
20539  */
20540 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20541 /* sharing types:  must choose either SHARED or PRIVATE */
20542 
20543 
20544 
20545 
20546 /* other flags to mmap (or-ed in to MAP_SHARED or MAP_PRIVATE) */
20547 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20548 /* these flags not yet implemented */
20549 
20550 
20551 
20552 /* these flags are used by memcntl */
20553 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20554 /*
20555  * For the sake of backward object compatibility, we use the _MAP_NEW flag.
20556  * This flag will be automatically or'ed in by the C library for all
20557  * new mmap calls.  Previous binaries with old mmap calls will continue
20558  * to get 0 or -1 for return values.  New mmap calls will get the mapped
20559  * address as the return value if successful and -1 on errors.  By default,
20560  * new mmap calls automatically have the kernel assign the map address
20561  * unless the MAP_FIXED flag is given.
20562  */
20563 
20564 
20565 
20566 
20567 
20568 /* External flags for mmapobj syscall (Exclusive of MAP_* flags above) */
20569 
20570 
20571 
20572 
20573 
20574 /*
20575  * Values for mr_flags field of mmapobj_result_t below.
20576  * The bottom 16 bits are mutually exclusive and thus only one
20577  * of them can be set at a time.  Use MR_GET_TYPE below to check this value.
20578  * The top 16 bits are used for flags which are not mutually exclusive and
20579  * thus more than one of these flags can be set for a given mmapobj_result_t.
20580  *
20581  * MR_PADDING being set indicates that this memory range represents the user
20582  * requested padding.
20583  *
20584  * MR_HDR_ELF being set indicates that the ELF header of the mapped object
20585  * is mapped at mr_addr + mr_offset.
20586  *
20587  * MR_HDR_AOUT being set indicates that the AOUT (4.x) header of the mapped
20588  * object is mapped at mr_addr + mr_offset.
20589  */
20590 
20591 /*
20592  * External flags for mr_flags field below.
20593  */
20594 
20595 
20596 
20597 
20598 /*
20599  * Internal flags for mr_flags field below.
20600  */
20601 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20602 typedef struct mmapobj_result {
20603  caddr_t mr_addr; /* mapping address */
20604  size_t mr_msize; /* mapping size */
20605  size_t mr_fsize; /* file size */
20606  size_t mr_offset; /* offset into file */
20607  uint_t mr_prot; /* the protections provided */
20608  uint_t mr_flags; /* info on the mapping */
20609 } mmapobj_result_t;
20610 # 194 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20611 /*
20612  * large file compilation environment setup
20613  *
20614  * In the LP64 compilation environment, map large file interfaces
20615  * back to native versions where possible.
20616  */
20617 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20618 
20619 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20620 #pragma redefine_extname mmap64 mmap
20621 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20622 
20623 
20624 
20625 
20626 
20627 
20628 
20629 
20630 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20631 #pragma redefine_extname getpagesizes getpagesizes2
20632 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20633 
20634 
20635 
20636 
20637 
20638 /*
20639  * Except for old binaries mmap() will return the resultant
20640  * address of mapping on success and (caddr_t)-1 on error.
20641  */
20642 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20643 extern caddr_t mmap(caddr_t, size_t, int, int, int, off_t);
20644 extern int munmap(caddr_t, size_t);
20645 extern int mprotect(caddr_t, size_t, int);
20646 extern int msync(caddr_t, size_t, int);
20647 extern int mlock(caddr_t, size_t);
20648 extern int munlock(caddr_t, size_t);
20649 extern int mincore(caddr_t, size_t, char *);
20650 extern int memcntl(caddr_t, size_t, int, caddr_t, int, int);
20651 extern int madvise(caddr_t, size_t, int);
20652 
20653 extern int getpagesizes(size_t *, int);
20654 extern int getpagesizes2(size_t *, int);
20655 extern int mmapobj(int, uint_t, mmapobj_result_t *, uint_t *, void *);
20656 /* guard visibility of uint64_t */
20657 
20658 extern int meminfo(const uint64_t *, int, const uint_t *, int, uint64_t *,
20659  uint_t *);
20660 
20661 
20662 /* transitional large file interface version */
20663 
20664 extern caddr_t mmap64(caddr_t, size_t, int, int, int, off64_t);
20665 
20666 
20667 
20668 
20669 extern int mlockall(int);
20670 extern int munlockall(void);
20671 extern int shm_open(const char *, int, mode_t);
20672 extern int shm_unlink(const char *);
20673 
20674 
20675 
20676 extern int posix_madvise(void *, size_t, int);
20677 
20678 
20679 /* mmap failure value */
20680 
20681 
20682 
20683 
20684 
20685 
20686 
20687 /*
20688  * structure for memcntl hat advise operations.
20689  */
20690 struct memcntl_mha {
20691  uint_t mha_cmd; /* command(s) */
20692  uint_t mha_flags;
20693  size_t mha_pagesize;
20694 };
20695 # 306 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20696 /*
20697  * advice to madvise
20698  *
20699  * Note, if more than 4 bits worth of advice (eg. 16) are specified then
20700  * changes will be necessary to the struct vpage.
20701  */
20702 # 326 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20703 /* advice to posix_madvise */
20704 /* these values must be kept in sync with the MADV_* values, above */
20705 
20706 
20707 
20708 
20709 
20710 
20711 
20712 /* flags to msync */
20713 
20714      /* modified for UNIX98 compliance */
20715 
20716 
20717 
20718 
20719 
20720 /* functions to mctl */
20721 # 353 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20722 /* sub-commands for MC_HAT_ADVISE */
20723 
20724 
20725      /* for last bss adjacent to */
20726      /* brk area and brk area itself */
20727 
20728      /* processes main stack */
20729 
20730 
20731 
20732 
20733 /* flags to mlockall */
20734 
20735 
20736 
20737 
20738 
20739 
20740 /* definitions for meminfosys syscall */
20741 
20742 
20743 
20744 
20745 
20746 /* private structure for meminfo */
20747 typedef struct meminfo {
20748  const uint64_t *mi_inaddr; /* array of input addresses */
20749  const uint_t *mi_info_req; /* array of types of info requested */
20750  uint64_t *mi_outdata; /* array of results are placed */
20751  uint_t *mi_validity; /* array of bitwise result codes */
20752  int mi_info_count; /* number of pieces of info requested */
20753 } meminfo_t;
20754 # 399 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20755 /*
20756  * info_req request type definitions for meminfo
20757  * request types starting with MEMINFO_V are used for Virtual addresses
20758  * and should not be mixed with MEMINFO_PLGRP which is targeted for Physical
20759  * addresses
20760  */
20761 # 415 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mman.h"
20762 /* maximum number of addresses meminfo() can process at a time */
20763 
20764 
20765 /* maximum number of request types */
20766 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20767 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
20768 /*
20769  * CDDL HEADER START
20770  *
20771  * The contents of this file are subject to the terms of the
20772  * Common Development and Distribution License (the "License").
20773  * You may not use this file except in compliance with the License.
20774  *
20775  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20776  * or http://www.opensolaris.org/os/licensing.
20777  * See the License for the specific language governing permissions
20778  * and limitations under the License.
20779  *
20780  * When distributing Covered Code, include this CDDL HEADER in each
20781  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20782  * If applicable, add the following below this CDDL HEADER, with the
20783  * fields enclosed by brackets "[]" replaced with your own identifying
20784  * information: Portions Copyright [yyyy] [name of copyright owner]
20785  *
20786  * CDDL HEADER END
20787  */
20788 
20789 /*
20790  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
20791  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
20792  */
20793 
20794 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
20795 /*	  All Rights Reserved  	*/
20796 
20797 /*
20798  * University Copyright- Copyright (c) 1982, 1986, 1988
20799  * The Regents of the University of California
20800  * All Rights Reserved
20801  *
20802  * University Acknowledgment- Portions of this document are derived from
20803  * software developed by the University of California, Berkeley, and its
20804  * contributors.
20805  */
20806 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20807 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
20808 /*
20809  * CDDL HEADER START
20810  *
20811  * The contents of this file are subject to the terms of the
20812  * Common Development and Distribution License (the "License").
20813  * You may not use this file except in compliance with the License.
20814  *
20815  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20816  * or http://www.opensolaris.org/os/licensing.
20817  * See the License for the specific language governing permissions
20818  * and limitations under the License.
20819  *
20820  * When distributing Covered Code, include this CDDL HEADER in each
20821  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20822  * If applicable, add the following below this CDDL HEADER, with the
20823  * fields enclosed by brackets "[]" replaced with your own identifying
20824  * information: Portions Copyright [yyyy] [name of copyright owner]
20825  *
20826  * CDDL HEADER END
20827  */
20828 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20829 /*	  All Rights Reserved  	*/
20830 
20831 
20832 /*
20833  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
20834  * Use is subject to license terms.
20835  *
20836  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
20837  * Copyright 2016 Joyent, Inc.
20838  */
20839 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20840 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ioctl.h" 1
20841 /*
20842  * CDDL HEADER START
20843  *
20844  * The contents of this file are subject to the terms of the
20845  * Common Development and Distribution License, Version 1.0 only
20846  * (the "License").  You may not use this file except in compliance
20847  * with the License.
20848  *
20849  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20850  * or http://www.opensolaris.org/os/licensing.
20851  * See the License for the specific language governing permissions
20852  * and limitations under the License.
20853  *
20854  * When distributing Covered Code, include this CDDL HEADER in each
20855  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20856  * If applicable, add the following below this CDDL HEADER, with the
20857  * fields enclosed by brackets "[]" replaced with your own identifying
20858  * information: Portions Copyright [yyyy] [name of copyright owner]
20859  *
20860  * CDDL HEADER END
20861  */
20862 /*
20863  * Copyright 1991 Sun Microsystems, Inc.  All rights reserved.
20864  * Use is subject to license terms.
20865  */
20866 
20867 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
20868 /*	  All Rights Reserved  	*/
20869 
20870 
20871 
20872 
20873 #pragma ident "%Z%%M%	%I%	%E% SMI"
20874 
20875 
20876 
20877 
20878 
20879 /*
20880  *	There are some inherent problems in having a single file
20881  *	ioctl.h, with both System V and BSD flags. Introducing
20882  *	BSD flags into this file creates compilation problems
20883  *	with flags such as ECHO, NL1 etc., if termio.h and ioctl.h
20884  *	are included by the same file. Since these two files can
20885  *	be only included by System V applications, /usr/inclule/sys/ioctl.h
20886  *	will be System V mode and all the BSD flags will be turned off
20887  *	using #ifdef BSD_COMP. This file will also exist in
20888  *	/usr/ucbinclude/sys/ioctl.h for BSD applications but without the
20889  *	BSD flags turned off. System V appliactions can use ioctl.h without
20890  *	any changes, System V applications requiring BSD flags should
20891  *	-D BSD_COMP when compiling (and be warned about the common
20892  *	flags between System V and BSD) and BSD applications should
20893  *	use /usr/ucbinclude/sys/ioctl.h.
20894  *
20895  */
20896 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ioctl.h"
20897 /* BSD related defines */
20898 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20899 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libzonecfg.h" 1
20900 /*
20901  * CDDL HEADER START
20902  *
20903  * The contents of this file are subject to the terms of the
20904  * Common Development and Distribution License (the "License").
20905  * You may not use this file except in compliance with the License.
20906  *
20907  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20908  * or http://www.opensolaris.org/os/licensing.
20909  * See the License for the specific language governing permissions
20910  * and limitations under the License.
20911  *
20912  * When distributing Covered Code, include this CDDL HEADER in each
20913  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20914  * If applicable, add the following below this CDDL HEADER, with the
20915  * fields enclosed by brackets "[]" replaced with your own identifying
20916  * information: Portions Copyright [yyyy] [name of copyright owner]
20917  *
20918  * CDDL HEADER END
20919  */
20920 
20921 /*
20922  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
20923  */
20924 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/instzones_api.h" 2
20925 
20926 /*
20927  * C++ prefix
20928  */
20929 
20930 
20931 
20932 
20933 
20934 
20935 /* function prototypes */
20936 
20937 /* PRINTFLIKE1 */
20938 typedef void (*_z_printf_fcn_t)(char *a_format, ...);
20939 
20940 /* zone list structure */
20941 
20942 typedef struct _zoneListElement_t *zoneList_t;
20943 
20944 /* zone brand list structure */
20945 
20946 typedef struct _zoneBrandList zoneBrandList_t;
20947 
20948 /* flag for zone locking functions */
20949 
20950 typedef unsigned long ZLOCKS_T;
20951 
20952 /* flags for zone locking */
20953 
20954 
20955 
20956 
20957 
20958 
20959 /*
20960  * external function definitions
20961  */
20962 
20963 /* zones.c */
20964 
20965 extern boolean_t z_zones_are_implemented(void);
20966 extern void z_set_zone_root(const char *zroot);
20967 extern boolean_t z_zlist_is_zone_runnable(zoneList_t a_zoneList,
20968     int a_zoneIndex);
20969 extern boolean_t z_zlist_restore_zone_state(zoneList_t a_zoneList,
20970     int a_zoneIndex);
20971 extern boolean_t z_zlist_change_zone_state(zoneList_t a_zoneList,
20972     int a_zoneIndex, zone_state_t a_newState);
20973 extern char *z_get_zonename(void);
20974 extern zone_state_t z_zlist_get_current_state(zoneList_t a_zoneList,
20975     int a_zoneIndex);
20976 extern zone_state_t z_zlist_get_original_state(zoneList_t a_zoneList,
20977     int a_zoneIndex);
20978 extern int z_zoneExecCmdArray(int *r_status, char **r_results,
20979     char *a_inputFile, char *a_path, char *a_argv[],
20980     const char *a_zoneName, int *a_fds);
20981 extern int z_zone_exec(const char *zonename, const char *path,
20982     char *argv[], char *a_stdoutPath,
20983     char *a_stderrPath, int *a_fds);
20984 extern boolean_t z_create_zone_admin_file(char *a_zoneAdminFilename,
20985     char *a_userAdminFilename);
20986 extern void z_free_zone_list(zoneList_t a_zoneList);
20987 extern zoneList_t z_get_nonglobal_zone_list(void);
20988 extern zoneList_t z_get_nonglobal_zone_list_by_brand(zoneBrandList_t *);
20989 extern void z_free_brand_list(zoneBrandList_t *a_brandList);
20990 extern zoneBrandList_t *z_make_brand_list(const char *brandList,
20991     const char *delim);
20992 extern boolean_t z_lock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
20993 extern boolean_t z_non_global_zones_exist(void);
20994 extern boolean_t z_running_in_global_zone(void);
20995 extern void z_set_output_functions(_z_printf_fcn_t a_echo_fcn,
20996     _z_printf_fcn_t a_echo_debug_fcn,
20997     _z_printf_fcn_t a_progerr_fcn);
20998 extern int z_set_zone_spec(const char *zlist);
20999 extern int z_verify_zone_spec(void);
21000 extern boolean_t z_on_zone_spec(const char *zonename);
21001 extern boolean_t z_global_only(void);
21002 extern boolean_t z_unlock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
21003 extern boolean_t z_lock_this_zone(ZLOCKS_T a_lflags);
21004 extern boolean_t z_unlock_this_zone(ZLOCKS_T a_lflags);
21005 extern char *z_zlist_get_zonename(zoneList_t a_zoneList,
21006     int a_zoneId);
21007 extern char *z_zlist_get_zonepath(zoneList_t a_zoneList,
21008     int a_zoneId);
21009 extern char *z_zlist_get_scratch(zoneList_t a_zoneList,
21010     int a_zoneId);
21011 extern boolean_t z_umount_lz_mount(char *a_lzMountPoint);
21012 extern boolean_t z_mount_in_lz(char **r_lzMountPoint,
21013     char **r_lzRootPath,
21014     char *a_zoneName, char *a_gzPath,
21015     char *a_mountPointPrefix);
21016 extern boolean_t z_is_zone_branded(char *zoneName);
21017 extern boolean_t z_is_zone_brand_in_list(char *zoneName,
21018        zoneBrandList_t *brands);
21019 extern boolean_t z_zones_are_implemented(void);
21020 
21021 /* zones_exec.c */
21022 extern int z_ExecCmdArray(int *r_status, char **r_results,
21023     char *a_inputFile, char *a_cmd, char **a_args);
21024 /*VARARGS*/
21025 extern int z_ExecCmdList(int *r_status, char **r_results,
21026     char *a_inputFile, char *a_cmd, ...);
21027 
21028 /* zones_paths.c */
21029 extern char *z_make_zone_root(char *);
21030 extern void z_path_canonize(char *file);
21031 extern void z_canoninplace(char *file);
21032 
21033 /* zones_lofs.c */
21034 extern void z_destroyMountTable(void);
21035 extern int z_createMountTable(void);
21036 extern int z_isPathWritable(const char *);
21037 extern void z_resolve_lofs(char *path, size_t);
21038 
21039 /* zones_states.c */
21040 extern int UmountAllZones(char *mntpnt);
21041 
21042 /*
21043  * C++ postfix
21044  */
21045 # 49 "../common/instzones_lib.h" 2
21046 
21047 
21048 
21049 /*
21050  * C++ prefix
21051  */
21052 
21053 
21054 
21055 
21056 
21057 /* constants */
21058 
21059 
21060 /* macros */
21061 
21062 /*
21063  * argument array processing type
21064  */
21065 
21066 /*
21067  * This is the "argument array" definition that is returned by _z_new_args
21068  * and is used by _z_add_args, _z_free_args, etc.
21069  */
21070 
21071 struct _argArray_t {
21072  long _aaNumArgs; /* number of arguments set */
21073  long _aaMaxArgs; /* number of arguments allocated */
21074  char **_aaArgs; /* actual arguments */
21075 };
21076 
21077 typedef struct _argArray_t argArray_t;
21078 
21079 /*
21080  * lock objects
21081  */
21082 
21083 /*
21084  * this allows a root path to be prepended to a lock object; e.g.
21085  *   rootpath.%s/zone.%s/...
21086  */
21087 
21088 
21089 /* this locks a single zone (zone.name) */
21090 
21091 
21092 /* this locks all zones */
21093 
21094 
21095 /* this locks all packages, in all zones */
21096 
21097 
21098 
21099 
21100 
21101 /* paths to commands executed by this module */
21102 
21103 
21104 
21105 
21106 /* max message size for program output functions (echo, echo debug, progerr) */
21107 
21108 
21109 
21110 /* maximum number of retries when waiting for lock */
21111 
21112 
21113 
21114 /* delay (in seconds) between retries when waiting for lock */
21115 
21116 
21117 
21118 /* Size of buffer increments when reading from pipe */
21119 
21120 
21121 
21122 /* Maximum number of arguments to pkg_ExecCmdList */
21123 
21124 
21125 
21126 /*
21127  * These dynamic libraries are required in order to use the zones
21128  * functionality - if these libraries are not available at runtime,
21129  * then zones are assumed to NOT be available, and it is assumed that
21130  * the program is running in the global zone with no non-global zones.
21131  */
21132 # 147 "../common/instzones_lib.h"
21133 /*
21134  * Environment values used when running commands within a non-global zone
21135  */
21136 
21137 /* SHELL= */
21138 
21139 
21140 
21141 /* PATH= */
21142 
21143 
21144 
21145 /* error codes */
21146 
21147 
21148 /*
21149  * zone brand list structure
21150  */
21151 
21152 struct _zoneBrandList {
21153  char *string_ptr;
21154  struct _zoneBrandList *next;
21155 };
21156 
21157 /*
21158  * zone status structure - used to retrieve and hold status of zones
21159  */
21160 
21161 typedef unsigned long _zone_status_t;
21162 
21163 struct _zoneListElement_t {
21164  char *_zlName;
21165  char *_zlPath;
21166  char *_zlScratchName;
21167  char *_zlLockObjects;
21168  /*
21169 	 * the install "state" refers to the zone states listed in
21170 	 * /usr/include/libzonecfg.h that is stored in the zone_state_t
21171 	 * structure and returned from getzoneent_private() - such as:
21172 	 * ZONE_STATE_CONFIGURED, ZONE_STATE_INCOMPLETE,
21173 	 * ZONE_STATE_INSTALLED, ZONE_STATE_READY, ZONE_STATE_MOUNTED,
21174 	 * ZONE_STATE_SHUTTING_DOWN, ZONE_STATE_DOWN.
21175 	 */
21176  zone_state_t _zlOrigInstallState;
21177  zone_state_t _zlCurrInstallState;
21178  /*
21179 	 * the kernel "status" refers to the zone status listed in
21180 	 * /usr/include/sys/zone.h, returned by zone_get_state(),
21181 	 * and defined in the zone_status_t enum - such as:
21182 	 * ZONE_IS_UNINITIALIZED, ZONE_IS_READY, ZONE_IS_BOOTING,
21183 	 * ZONE_IS_RUNNING, ZONE_IS_SHUTTING_DOWN, ZONE_IS_EMPTY,
21184 	 * ZONE_IS_DOWN, ZONE_IS_DYING, ZONE_IS_DEAD.
21185 	 */
21186  zone_status_t _zlOrigKernelStatus;
21187  zone_status_t _zlCurrKernelStatus;
21188  /*
21189 	 * this is an internal state recorded about the zone (ZSF_xxx).
21190 	 */
21191  _zone_status_t _zlStatus;
21192 };
21193 
21194 typedef struct _zoneListElement_t zoneListElement_t;
21195 
21196 /* bits used in the _zoneListElement _zlStatus variable */
21197 
21198 
21199 
21200 
21201 /*
21202  * User-specified list of zones.
21203  */
21204 
21205 typedef struct zone_spec_s {
21206  struct zone_spec_s *zl_next;
21207  boolean_t zl_used;
21208  char zl_name[64];
21209 } zone_spec_t;
21210 
21211 /*
21212  * The global data structure used to hold all of the global (extern) data
21213  * used by this library.
21214  *
21215  * --> THESE DEFINITIONS ARE ORDER DEPENDENT BASED <--
21216  * --> ON THE ORDER OF THE STRUCTURE INITIALIZERS! <--
21217  */
21218 
21219 struct _z_global_data_t {
21220  char *_z_ObjectLocks; /* object locks held */
21221  char *_z_root_dir; /* root for zone lib fctns */
21222  int _z_SigReceived; /* received signal count */
21223  pid_t _z_ChildProcessId; /* child to propagate sigs to */
21224  zone_spec_t *_zone_spec; /* zones to operate on */
21225  _z_printf_fcn_t _z_echo; /* operational message fcn */
21226  _z_printf_fcn_t _z_echo_debug; /* debug message fcn */
21227  _z_printf_fcn_t _z_progerr; /* program error fcn */
21228 };
21229 
21230 typedef struct _z_global_data_t z_global_data_t;
21231 
21232 /*
21233  * When _INSTZONES_LIB_Z_DEFINE_GLOBAL_DATA is defined,
21234  * instzones_lib.h will define the z_global_data structure.
21235  * Otherwise an extern to the structure is inserted.
21236  *
21237  * --> THESE DEFINITIONS ARE ORDER DEPENDENT BASED ON <--
21238  * --> THE ORDER OF THE _z_global_data_t STRUCTURE!!! <--
21239  */
21240 # 272 "../common/instzones_lib.h"
21241 /* define structure extern */
21242 
21243 extern z_global_data_t _z_global_data;
21244 
21245 
21246 
21247 /* function prototypes */
21248 
21249 /*
21250  *  The following functions can be used by other libs, but not
21251  *  by applications.
21252  */
21253 
21254 /* ---> zones_states.c */
21255 
21256 boolean_t _z_make_zone_ready(zoneListElement_t *a_zlem);
21257 boolean_t _z_make_zone_down(zoneListElement_t *a_zlem);
21258 boolean_t _z_make_zone_running(zoneListElement_t *a_zlem);
21259 int UmountAllZones(char *mntpnt);
21260 void *_z_calloc(size_t size);
21261 void *_z_malloc(size_t size);
21262 void *_z_realloc(void *ptr, size_t size);
21263 void *_z_strdup(char *str);
21264 
21265 /* ---> zones_utils.c */
21266 
21267 /*PRINTFLIKE1*/
21268 void _z_program_error(char *fmt, ...);
21269 /*PRINTFLIKE1*/
21270 void _z_echo(char *fmt, ...);
21271 /*PRINTFLIKE1*/
21272 void _z_echoDebug(char *a_fmt, ...);
21273 int _z_is_directory(char *path);
21274 boolean_t _z_running_in_global_zone(void);
21275 boolean_t _z_zones_are_implemented(void);
21276 void _z_sig_trap(int a_signo);
21277 int _z_close_file_descriptors(void *a_fds, int a_fd);
21278 boolean_t _z_brands_are_implemented(void);
21279 
21280 
21281 /* ---> zones_locks.c */
21282 
21283 boolean_t _z_adjust_lock_object_for_rootpath(char **r_result,
21284    char *a_lockObject);
21285 boolean_t _z_acquire_lock(char **r_lockKey, char *a_zoneName,
21286    char *a_lock, pid_t a_pid, boolean_t a_wait);
21287 boolean_t _z_lock_zone(zoneListElement_t *a_zlst,
21288    ZLOCKS_T a_lflags);
21289 boolean_t _z_lock_zone_object(char **r_objectLocks,
21290    char *a_zoneName, char *a_lockObject,
21291    pid_t a_pid, char *a_waitingMsg,
21292    char *a_busyMsg);
21293 boolean_t _z_release_lock(char *a_zoneName, char *a_lock,
21294    char *a_key, boolean_t a_wait);
21295 boolean_t _z_unlock_zone(zoneListElement_t *a_zlst,
21296    ZLOCKS_T a_lflags);
21297 boolean_t _z_unlock_zone_object(char **r_objectLocks,
21298    char *a_zoneName, char *a_lockObject,
21299    char *a_errMsg);
21300 
21301 /* ---> zones_args.c */
21302 
21303 void _z_free_args(argArray_t *a_args);
21304 argArray_t *_z_new_args(int initialCount);
21305 /*PRINTFLIKE2*/
21306 boolean_t _z_add_arg(argArray_t *a_args, char *a_format, ...);
21307 int _z_get_argc(argArray_t *a_args);
21308 char **_z_get_argv(argArray_t *a_args);
21309 
21310 /* ---> zones_str.c */
21311 
21312 boolean_t _z_strContainsToken(char *a_string, char *a_token,
21313    char *a_separators);
21314 char *_z_strGetToken(char *r_sep, char *a_string,
21315    int a_index, char *a_separators);
21316 void _z_strRemoveLeadingWhitespace(char **a_str);
21317 void _z_strGetToken_r(char *r_sep, char *a_string,
21318    int a_index, char *a_separators, char *a_buf,
21319    int a_bufLen);
21320 void _z_strAddToken(char **a_old, char *a_new,
21321    char a_separator);
21322 void _z_strRemoveToken(char **r_string, char *a_token,
21323    char *a_separators, int a_index);
21324 /*PRINTFLIKE3*/
21325 void _z_strPrintf_r(char *a_buf, int a_bufLen,
21326    char *a_format, ...);
21327 /*PRINTFLIKE1*/
21328 char *_z_strPrintf(char *a_format, ...);
21329 
21330 /* ---> zones_exec.c */
21331 
21332 int _z_zone_exec(int *r_status, char **r_results, char *a_inputFile,
21333    char *a_path, char *a_argv[], const char *a_zoneName,
21334    int *a_fds);
21335 int _zexec(const char *a_zoneName,
21336    const char *path, char *argv[]);
21337 char *_zexec_add_env(char *name, char *value);
21338 int _zexec_init_template(void);
21339 char **_zexec_prep_env();
21340 
21341 /*
21342  * C++ postfix
21343  */
21344 # 70 "../common/zones_str.c" 2
21345 # 1 "../common/zones_strings.h" 1
21346 /*
21347  * CDDL HEADER START
21348  *
21349  * The contents of this file are subject to the terms of the
21350  * Common Development and Distribution License (the "License").
21351  * You may not use this file except in compliance with the License.
21352  *
21353  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21354  * or http://www.opensolaris.org/os/licensing.
21355  * See the License for the specific language governing permissions
21356  * and limitations under the License.
21357  *
21358  * When distributing Covered Code, include this CDDL HEADER in each
21359  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21360  * If applicable, add the following below this CDDL HEADER, with the
21361  * fields enclosed by brackets "[]" replaced with your own identifying
21362  * information: Portions Copyright [yyyy] [name of copyright owner]
21363  *
21364  * CDDL HEADER END
21365  */
21366 /*
21367  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
21368  */
21369 
21370 
21371 
21372 
21373 
21374 
21375 
21376 /*
21377  * Module:	zones_strings.h
21378  * Group:	libinstzones
21379  * Description:	This header contains strings used in libinstzones
21380  *		library modules.
21381  */
21382 
21383 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
21384 /*
21385  * CDDL HEADER START
21386  *
21387  * The contents of this file are subject to the terms of the
21388  * Common Development and Distribution License (the "License").
21389  * You may not use this file except in compliance with the License.
21390  *
21391  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
21392  * or http://www.opensolaris.org/os/licensing.
21393  * See the License for the specific language governing permissions
21394  * and limitations under the License.
21395  *
21396  * When distributing Covered Code, include this CDDL HEADER in each
21397  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
21398  * If applicable, add the following below this CDDL HEADER, with the
21399  * fields enclosed by brackets "[]" replaced with your own identifying
21400  * information: Portions Copyright [yyyy] [name of copyright owner]
21401  *
21402  * CDDL HEADER END
21403  */
21404 /*
21405  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
21406  *
21407  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
21408  * Use is subject to license terms.
21409  */
21410 # 39 "../common/zones_strings.h" 2
21411 
21412 /*
21413  * C++ prefix
21414  */
21415 
21416 
21417 
21418 
21419 
21420 /* constants */
21421 # 58 "../common/zones_strings.h"
21422 /*
21423  * message strings
21424  */
21425 
21426 /* BEGIN CSTYLED */
21427 
21428 /*
21429  * I18N: these messages are debugging message and are only displayed
21430  * when special debugging output has been enabled - these messages
21431  * will never be displayed during normal product usage
21432  */
21433 # 121 "../common/zones_strings.h"
21434 /*
21435  * I18N: these messages are error messages that can be displayed
21436  * during the normal usage of the products
21437  */
21438 # 189 "../common/zones_strings.h"
21439 /*
21440  * I18N: these are messages that can be displayed during the normal
21441  * usage of the products
21442  */
21443 
21444 
21445 
21446 
21447 
21448 
21449 
21450 /*
21451  * I18N: these messages are warning messages that can be displayed
21452  * during the normal usage of the products
21453  */
21454 
21455 
21456 
21457 
21458 /* END CSTYLED */
21459 
21460 /*
21461  * C++ postfix
21462  */
21463 # 71 "../common/zones_str.c" 2
21464 
21465 /*
21466  * Private structures
21467  */
21468 
21469 /*
21470  * Library Function Prototypes
21471  */
21472 
21473 /*
21474  * Local Function Prototypes
21475  */
21476 
21477 /*
21478  * Global internal (private) declarations
21479  */
21480 
21481 /*
21482  * *****************************************************************************
21483  * global external (public) functions
21484  * *****************************************************************************
21485  */
21486 
21487 /*
21488  * Name:	_z_strAddToken
21489  * Synopsis:	Add a token to a string
21490  * Description:	Append a token (sequence of one or more characters) to a
21491  *		string that is in allocated space - create new string if
21492  *		no string to append to exists
21493  * Arguments:	a_old - [RO, *RW] - (char **)
21494  *			- Pointer to handle to string to append token to
21495  *			  == NULL - new string is created
21496  *		a_new - [RO, *RO] - (char *)
21497  *			- Pointer to string representing token to append
21498  *			  to the end of the "a_old" string
21499  *			  == NULL - no action is performed
21500  *			  a_new[0] == '\0' - no action is performed
21501  *		a_separator - [RO, *RO] - (char)
21502  *			- One character placed between the old (existing)
21503  *			  string and the new token to be added IF the old
21504  *			  string exists and is not empty (zero length)
21505  * Returns:	void
21506  * CAUTION:	The old (existing) string must be allocated space (via lu_mem*
21507  *		or _z_str* methods) - it must not be a static or inline
21508  *		character string
21509  * NOTE:	The old (existing) string may be freed with 'free'
21510  *		if a token is appended to it
21511  * NOTE:    	Any string returned in 'a_old' is placed in new storage for the
21512  *		calling method. The caller must use 'free' to dispose
21513  *		of the storage once the token string is no longer needed.
21514  */
21515 
21516 void
21517 _z_strAddToken(char **a_old, char *a_new, char a_separator)
21518 {
21519  /* entry assertions */
21520 
21521  (void)((a_old != 0L) || (__assert("a_old != NULL", "../common/zones_str.c", 128), 0));
21522  (void)((a_separator != '\0') || (__assert("a_separator != '\\0'", "../common/zones_str.c", 129), 0));
21523 
21524  /* if token to add is null or token is zero length, just return */
21525 
21526  if (a_new == 0L || *a_new == '\0') {
21527   return;
21528  }
21529 
21530  /* make sure that new token does not contain the separator */
21531 
21532  (void)((strchr(a_new, (int)a_separator) == 0L) || (__assert("strchr(a_new, (int)a_separator) == NULL", "../common/zones_str.c", 139), 0));
21533 
21534  /* if old string is empty (zero length), deallocate */
21535 
21536  if ((*a_old != 0L) && ((*a_old)[0] == '\0')) {
21537   /* *a_old is set to NULL by free */
21538   free(*a_old);
21539   *a_old = 0L;
21540  }
21541 
21542  /* if old string exists, append separator and token */
21543 
21544  if (*a_old != 0L) {
21545   char *p;
21546   p = _z_strPrintf("%s%c%s", *a_old, a_separator, a_new);
21547   free(*a_old);
21548   *a_old = p;
21549   return;
21550  }
21551 
21552  /* old string does not exist - return duplicate of token */
21553 
21554  (void)((*a_old == 0L) || (__assert("*a_old == NULL", "../common/zones_str.c", 161), 0));
21555  *a_old = _z_strdup(a_new);
21556 }
21557 
21558 /*
21559  * Name:	_z_strContainsToken
21560  * Synopsis:	Does a given string contain a specified substring
21561  * Description:	Determine if a given substring exists in a larger string
21562  * Arguments:	a_string - [RO, *RO] - (char *)
21563  *			Pointer to string to look for substring in
21564  *		a_token - [RO, *RO] - (char *)
21565  *			Pointer to substring to look for in larger string
21566  * Results:	boolean_t
21567  *			B_TRUE - substring exists in larger string
21568  *			B_FALSE - substring does NOT exist in larger string
21569  * NOTE:	The substring must match on a "token" basis; that is, the
21570  *		substring must exist in the larger string delineated with
21571  *		either spaces or tabs to match.
21572  */
21573 
21574 boolean_t
21575 _z_strContainsToken(char *a_string, char *a_token, char *a_separators)
21576 {
21577  char *lasts;
21578  char *current;
21579  char *p;
21580 
21581  /* entry assertions */
21582 
21583  (void)((a_separators != 0L) || (__assert("a_separators != NULL", "../common/zones_str.c", 190), 0));
21584  (void)((*a_separators != '\0') || (__assert("*a_separators != '\\0'", "../common/zones_str.c", 191), 0));
21585 
21586  /*
21587 	 * if token is not supplied, no string provided,
21588 	 * or the string is an empty string, return false
21589 	 */
21590 
21591  if (a_token == 0L || a_string == 0L || *a_string == '\0') {
21592   return (B_FALSE);
21593  }
21594 
21595  /* if no string provided, return false */
21596 
21597  /* if string empty (zero length), return false */
21598 
21599  /* duplicate larger string because strtok_r changes it */
21600 
21601  p = _z_strdup(a_string);
21602 
21603  lasts = p;
21604 
21605  /* scan each token looking for a match */
21606 
21607  while ((current = strtok_r(0L, a_separators, &lasts)) !=
21608      0L) {
21609   if (strcmp(current, a_token) == 0) {
21610    free(p);
21611    return (B_TRUE);
21612   }
21613  }
21614 
21615  /* free up temporary storage */
21616 
21617  free(p);
21618 
21619  /* not found */
21620 
21621  return (B_FALSE);
21622 }
21623 
21624 /*
21625  * Name:	_z_strGetToken
21626  * Synopsis:	Get a separator delimited token from a string
21627  * Description:	Given a string and a list of one or more separators,
21628  *		return the position specified token (sequence of one or
21629  *		more characters that do not include any of the separators)
21630  * Arguments:	r_sep - [*RW] - (char *)
21631  *			- separator that ended the token returned
21632  *			- NOTE: this is a pointer to a "char", e.g.:
21633  *				- char a;
21634  *				- _z_strGetToken(&a, ...)
21635  *		a_string - [RO, *RO] - (char *)
21636  *			- pointer to string to extract token from
21637  *		a_index - [RO, *RO] - (int)
21638  *			- Index of token to return; '0' is first matching
21639  *			  token, '1' is second matching token, etc.
21640  *		a_separators - [RO, *RO] - (char *)
21641  *			- String containing one or more characters that
21642  *			  can separate one "token" from another
21643  * Returns:	char *
21644  *			== NULL - no token matching criteria found
21645  *			!= NULL - token matching criteria
21646  * NOTE:    	Any token string returned is placed in new storage for the
21647  *		calling method. The caller must use 'free' to dispose
21648  *		of the storage once the token string is no longer needed.
21649  */
21650 
21651 char *
21652 _z_strGetToken(char *r_sep, char *a_string, int a_index, char *a_separators)
21653 {
21654  char *p;
21655  char *q;
21656  char *lasts;
21657 
21658  /* entry assertions */
21659 
21660  (void)((a_string != 0L) || (__assert("a_string != NULL", "../common/zones_str.c", 267), 0));
21661  (void)((a_index >= 0) || (__assert("a_index >= 0", "../common/zones_str.c", 268), 0));
21662  (void)((a_separators != 0L) || (__assert("a_separators != NULL", "../common/zones_str.c", 269), 0));
21663  (void)((*a_separators != '\0') || (__assert("*a_separators != '\\0'", "../common/zones_str.c", 270), 0));
21664 
21665  /* if returned separator requested, reset to null until token found */
21666 
21667  if (r_sep != 0L) {
21668   *r_sep = '\0';
21669  }
21670 
21671  /* duplicate original string before breaking down into tokens */
21672 
21673  p = _z_strdup(a_string);
21674 
21675  lasts = p;
21676 
21677  /* scan for separators and return 'index'th token found */
21678 
21679  while (q = strtok_r(0L, a_separators, &lasts)) {
21680   /* retrieve separator if requested */
21681 
21682   if (r_sep != 0L) {
21683    char *x;
21684 
21685    x = strpbrk(a_string, a_separators);
21686    if (x != 0L) {
21687     *r_sep = *x;
21688    }
21689   }
21690 
21691   /* if this is the 'index'th token requested return it */
21692 
21693   if (a_index-- == 0) {
21694    char *tmp;
21695 
21696    /* duplicate token into its own storage */
21697 
21698    tmp = _z_strdup(q);
21699 
21700    /* free up copy of original input string */
21701 
21702    free(p);
21703 
21704    /* return token found */
21705 
21706    return (tmp);
21707   }
21708  }
21709 
21710  /*
21711 	 * token not found
21712 	 */
21713 
21714  /* free up copy of original input string */
21715 
21716  free(p);
21717 
21718  /* return NULL pointer (token not found) */
21719 
21720  return (0L);
21721 }
21722 
21723 /*
21724  * Name:	_z_strGetToken_r
21725  * Synopsis:	Get separator delimited token from a string into a fixed buffer
21726  * Description:	Given a string and a list of one or more separators,
21727  *		return the position specified token (sequence of one or
21728  *		more characters that do not include any of the separators)
21729  *		into a specified buffer of a fixed maximum size
21730  * Arguments:	r_sep - [*RW] - (char *)
21731  *			- separator that ended the token returned
21732  *			- NOTE: this is a pointer to a "char", e.g.:
21733  *				- char a;
21734  *				- _z_strGetToken(&a, ...)
21735  *		a_string - [RO, *RO] - (char *)
21736  *			- pointer to string to extract token from
21737  *		a_index - [RO, *RO] - (int)
21738  *			- Index of token to return; '0' is first matching
21739  *			  token, '1' is second matching token, etc.
21740  *		a_separators - [RO, *RO] - (char *)
21741  *			- String containing one or more characters that
21742  *			  can separate one "token" from another
21743  *		a_buf - [RO, *RW] - (char *)
21744  *			- Pointer to buffer used as storage space for the
21745  *			  returned token - the returned token is always
21746  *			  null terminated
21747  *			  a_buf[0] == '\0' - no token meeting criteria found
21748  *			  a_buf[0] != '\0' - token meeting criteria returned
21749  *		a_bufLen - [RO, *RO] - (int)
21750  *			- Size of 'a_buf' in bytes - a maximum of 'a_bufLen-1'
21751  *			  bytes will be placed in 'a_buf' - the returned
21752  *			  token is always null terminated
21753  * Returns:	void
21754  */
21755 
21756 void
21757 _z_strGetToken_r(char *r_sep, char *a_string, int a_index,
21758     char *a_separators, char *a_buf, int a_bufLen)
21759 {
21760  char *p;
21761  char *q;
21762  char *lasts;
21763 
21764  /* entry assertions */
21765 
21766  (void)((a_string != 0L) || (__assert("a_string != NULL", "../common/zones_str.c", 373), 0));
21767  (void)((a_index >= 0) || (__assert("a_index >= 0", "../common/zones_str.c", 374), 0));
21768  (void)((a_separators != 0L) || (__assert("a_separators != NULL", "../common/zones_str.c", 375), 0));
21769  (void)((*a_separators != '\0') || (__assert("*a_separators != '\\0'", "../common/zones_str.c", 376), 0));
21770  (void)((a_buf != 0L) || (__assert("a_buf != NULL", "../common/zones_str.c", 377), 0));
21771  (void)((a_bufLen > 0) || (__assert("a_bufLen > 0", "../common/zones_str.c", 378), 0));
21772 
21773  /* reset returned separator */
21774 
21775  if (r_sep != 0L) {
21776   *r_sep = '\0';
21777  }
21778 
21779  /* zero out contents of return buffer */
21780 
21781  bzero(a_buf, a_bufLen);
21782 
21783  /* duplicate original string before breaking down into tokens */
21784 
21785  p = _z_strdup(a_string);
21786 
21787  lasts = p;
21788 
21789  /* scan for separators and return 'index'th token found */
21790 
21791  while (q = strtok_r(0L, a_separators, &lasts)) {
21792   /* retrieve separator if requested */
21793 
21794   if (r_sep != 0L) {
21795    char *x;
21796    x = strpbrk(a_string, a_separators);
21797    if (x != 0L) {
21798     *r_sep = *x;
21799    }
21800   }
21801 
21802   /* if this is the 'index'th token requested return it */
21803 
21804   if (a_index-- == 0) {
21805    /* copy as many characters as possible to return buf */
21806 
21807    (void) strncpy(a_buf, q, a_bufLen-1);
21808    break;
21809   }
21810  }
21811 
21812  /* free up copy of original input string */
21813 
21814  free(p);
21815 }
21816 
21817 /*
21818  * Name:	_z_strPrintf
21819  * Synopsis:	Create string from printf style format and arguments
21820  * Description:	Call to convert a printf style format and arguments into a
21821  *		string of characters placed in allocated storage
21822  * Arguments:	format - [RO, RO*] (char *)
21823  *			printf-style format for string to be formatted
21824  *		VARG_LIST - [RO] (?)
21825  *			arguments as appropriate to 'format' specified
21826  * Returns:	char *
21827  *			A string representing the printf conversion results
21828  * NOTE:    	Any string returned is placed in new storage for the
21829  *		calling method. The caller must use 'free' to dispose
21830  *		of the storage once the string is no longer needed.
21831  * Errors:	If the string cannot be created, the process exits
21832  */
21833 
21834 /*PRINTFLIKE1*/
21835 char *
21836 _z_strPrintf(char *a_format, ...)
21837 {
21838  va_list ap;
21839  size_t vres = 0;
21840  char bfr[1];
21841  char *rstr = 0L;
21842 
21843  /* entry assertions */
21844 
21845  (void)((a_format != 0L) || (__assert("a_format != NULL", "../common/zones_str.c", 452), 0));
21846  (void)((*a_format != '\0') || (__assert("*a_format != '\\0'", "../common/zones_str.c", 453), 0));
21847 
21848  /* determine size of the message in bytes */
21849 
21850  __builtin_va_start(ap, a_format);
21851  vres = vsnprintf(bfr, 1, a_format, ap);
21852  __builtin_va_end(ap);
21853 
21854  (void)((vres > 0) || (__assert("vres > 0", "../common/zones_str.c", 461), 0));
21855  (void)((vres < 2048) || (__assert("vres < LINE_MAX", "../common/zones_str.c", 462), 0));
21856 
21857  /* allocate storage to hold the message */
21858 
21859  rstr = (char *)_z_calloc(vres+2);
21860 
21861  /* generate the results of the printf conversion */
21862 
21863  __builtin_va_start(ap, a_format);
21864  vres = vsnprintf(rstr, vres+1, a_format, ap);
21865  __builtin_va_end(ap);
21866 
21867  (void)((vres > 0) || (__assert("vres > 0", "../common/zones_str.c", 474), 0));
21868  (void)((vres < 2048) || (__assert("vres < LINE_MAX", "../common/zones_str.c", 475), 0));
21869  (void)((*rstr != '\0') || (__assert("*rstr != '\\0'", "../common/zones_str.c", 476), 0));
21870 
21871  /* return the results */
21872 
21873  return (rstr);
21874 }
21875 
21876 /*
21877  * Name:	_z_strPrintf_r
21878  * Synopsis:	Create string from printf style format and arguments
21879  * Description:	Call to convert a printf style format and arguments into a
21880  *		string of characters placed in allocated storage
21881  * Arguments:	a_buf - [RO, *RW] - (char *)
21882  *			- Pointer to buffer used as storage space for the
21883  *			  returned string created
21884  *		a_bufLen - [RO, *RO] - (int)
21885  *			- Size of 'a_buf' in bytes - a maximum of 'a_bufLen-1'
21886  *			  bytes will be placed in 'a_buf' - the returned
21887  *			  string is always null terminated
21888  *		a_format - [RO, RO*] (char *)
21889  *			printf-style format for string to be formatted
21890  *		VARG_LIST - [RO] (?)
21891  *			arguments as appropriate to 'format' specified
21892  * Returns:	void
21893  */
21894 
21895 /*PRINTFLIKE3*/
21896 void
21897 _z_strPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...)
21898 {
21899  va_list ap;
21900  size_t vres = 0;
21901 
21902  /* entry assertions */
21903 
21904  (void)((a_format != 0L) || (__assert("a_format != NULL", "../common/zones_str.c", 511), 0));
21905  (void)((*a_format != '\0') || (__assert("*a_format != '\\0'", "../common/zones_str.c", 512), 0));
21906  (void)((a_buf != 0L) || (__assert("a_buf != NULL", "../common/zones_str.c", 513), 0));
21907  (void)((a_bufLen > 1) || (__assert("a_bufLen > 1", "../common/zones_str.c", 514), 0));
21908 
21909  /* generate the results of the printf conversion */
21910 
21911  __builtin_va_start(ap, a_format);
21912  vres = vsnprintf(a_buf, a_bufLen-1, a_format, ap);
21913  __builtin_va_end(ap);
21914 
21915  (void)((vres > 0) || (__assert("vres > 0", "../common/zones_str.c", 522), 0));
21916  (void)((vres < a_bufLen) || (__assert("vres < a_bufLen", "../common/zones_str.c", 523), 0));
21917 
21918  a_buf[a_bufLen-1] = '\0';
21919 }
21920 
21921 /*
21922  * Name:	_z_strRemoveLeadingWhitespace
21923  * Synopsis:	Remove leading whitespace from string
21924  * Description:	Remove all leading whitespace characters from a string
21925  * Arguments:	a_str - [RO, *RW] - (char **)
21926  *			Pointer to handle to string (in allocated storage) to
21927  *			remove all leading whitespace from
21928  * Returns:	void
21929  *			The input string is modified as follows:
21930  *			== NULL:
21931  *				- input string was NULL
21932  *				- input string is all whitespace
21933  *			!= NULL:
21934  *				- copy of input string with leading
21935  *				  whitespace removed
21936  * CAUTION:	The input string must be allocated space (via mem* or
21937  *		_z_str* methods) - it must not be a static or inline
21938  *		character string
21939  * NOTE:	The input string a_str will be freed with 'free'
21940  *		if it is all whitespace, or if it contains any leading
21941  *		whitespace characters
21942  * NOTE:    	Any string returned is placed in new storage for the
21943  *		calling method. The caller must use 'free' to dispose
21944  *		of the storage once the string is no longer needed.
21945  * Errors:	If the string cannot be created, the process exits
21946  */
21947 
21948 void
21949 _z_strRemoveLeadingWhitespace(char **a_str)
21950 {
21951  char *o_str;
21952 
21953  /* entry assertions */
21954 
21955  (void)((a_str != 0L) || (__assert("a_str != NULL", "../common/zones_str.c", 562), 0));
21956 
21957  /* if string is null, just return */
21958 
21959  if (*a_str == 0L) {
21960   return;
21961  }
21962  o_str = *a_str;
21963 
21964  /* if string is empty, deallocate and return NULL */
21965 
21966  if (*o_str == '\0') {
21967   /* free string - handle is not reset to NULL by free */
21968   free(*a_str);
21969   *a_str = 0L;
21970   return;
21971  }
21972 
21973  /* if first character is not a space, just return */
21974 
21975  if (!isspace(*o_str)) {
21976   return;
21977  }
21978 
21979  /* advance past all space characters */
21980 
21981  while ((*o_str != '\0') && (isspace(*o_str))) {
21982   o_str++;
21983  }
21984 
21985  /* if string was all space characters, deallocate and return NULL */
21986 
21987  if (*o_str == '\0') {
21988   /* free string - *a_str is not reset to NULL by free */
21989   free(*a_str);
21990   *a_str = 0L;
21991   return;
21992  }
21993 
21994  /* have non-space/null byte, return dup, deallocate original */
21995 
21996  free(*a_str);
21997  *a_str = _z_strdup(o_str);
21998 }
21999 
22000 /*
22001  * Name:	_z_strRemoveToken
22002  * Synopsis:	Remove a token from a string
22003  * Description:	Remove a token (sequence of one or more characters) from a
22004  *		string that is in allocated space
22005  * Arguments:	r_string - [RO, *RW] - (char **)
22006  *			- Pointer to handle to string to remove token from
22007  *		a_token - [RO, *RO] - (char *)
22008  *			Pointer to token (substring) to look for and remove
22009  *			from r_string provided
22010  *		a_separators - [RO, *RO] - (char *)
22011  *			- String containing one or more characters that
22012  *			  separate one "token" from another in r_string
22013  *		a_index - [RO, *RO] - (int)
22014  *			- Index of token to remove; '0' is first matching
22015  *			  token, '1' is second matching token, etc.
22016  * Returns:	void
22017  * CAUTION:	The input string must be allocated space (via lu_mem* or
22018  *		_z_str* methods) - it must not be a static or inline
22019  *		character string
22020  * NOTE:	The input string r_string will be freed with 'free'
22021  *		if the token to be removed is found
22022  * NOTE:    	Any token string returned is placed in new storage for the
22023  *		calling method. The caller must use 'free' to dispose
22024  *		of the storage once the token string is no longer needed.
22025  * Errors:	If the new token string cannot be created, the process exits
22026  */
22027 
22028 void
22029 _z_strRemoveToken(char **r_string, char *a_token, char *a_separators,
22030  int a_index)
22031 {
22032  char *a_string;
22033  char *copyString;
22034  char sep = 0;
22035  int copyLength;
22036  int i;
22037 
22038  /* entry assertions */
22039 
22040  (void)((r_string != 0L) || (__assert("r_string != NULL", "../common/zones_str.c", 647), 0));
22041  (void)((a_token != 0L) || (__assert("a_token != NULL", "../common/zones_str.c", 648), 0));
22042  (void)((*a_token != '\0') || (__assert("*a_token != '\\0'", "../common/zones_str.c", 649), 0));
22043  (void)((a_separators != 0L) || (__assert("a_separators != NULL", "../common/zones_str.c", 650), 0));
22044  (void)((*a_separators != '\0') || (__assert("*a_separators != '\\0'", "../common/zones_str.c", 651), 0));
22045 
22046  /* simple case: input string is null; return empty string */
22047 
22048  a_string = *r_string;
22049  if (*a_string == '\0') {
22050   return;
22051  }
22052 
22053  /* simple case: token == input string; return empty string */
22054 
22055  if (strcmp(a_string, a_token) == 0) {
22056   /*
22057 		 * deallocate input string; free doesn't
22058 		 * set *r_string to NULL
22059 		 */
22060   free(*r_string);
22061   *r_string = 0L;
22062   return;
22063  }
22064 
22065  /* simple case: token not in input string: return */
22066 
22067  if (!_z_strContainsToken(a_string, a_token, a_separators)) {
22068   return;
22069  }
22070 
22071  /*
22072 	 * Pick apart the old string building the new one as we go along
22073 	 * removing the first occurance of the token provided
22074 	 */
22075 
22076  copyLength = (strlen(a_string)-strlen(a_token))+2;
22077  copyString = (char *)_z_calloc(copyLength);
22078 
22079  for (i = 0; ; i++) {
22080   char *p;
22081 
22082   p = _z_strGetToken(&sep, a_string, i, a_separators);
22083   if (p == 0L) {
22084    break;
22085   }
22086 
22087   if ((strcmp(p, a_token) == 0) && (a_index-- == 0)) {
22088    free(p);
22089    continue;
22090   }
22091 
22092   if (*copyString) {
22093    (void)((sep != '\0') || (__assert("sep != '\\0'", "../common/zones_str.c", 700), 0));
22094    (void) strncat(copyString, &sep, 1);
22095   }
22096 
22097   (void) strcat(copyString, p);
22098   free(p);
22099  }
22100 
22101  free(*r_string);
22102  (void)((*copyString) || (__assert("*copyString", "../common/zones_str.c", 709), 0));
22103  *r_string = copyString;
22104 }
22105