1 # 1 "nblk.c"
2 # 1 "<built-in>"
3 # 1 "<command-line>"
4 # 1 "nblk.c"
5 /*
6  * CDDL HEADER START
7  *
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License (the "License").
10  * You may not use this file except in compliance with the License.
11  *
12  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13  * or http://www.opensolaris.org/os/licensing.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19  * If applicable, add the following below this CDDL HEADER, with the
20  * fields enclosed by brackets "[]" replaced with your own identifying
21  * information: Portions Copyright [yyyy] [name of copyright owner]
22  *
23  * CDDL HEADER END
24  */
25 
26 /*
27  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
28  * Use is subject to license terms.
29  */
30 
31 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
32 /* All Rights Reserved */
33 
34 
35 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
36 /*
37  * CDDL HEADER START
38  *
39  * The contents of this file are subject to the terms of the
40  * Common Development and Distribution License (the "License").
41  * You may not use this file except in compliance with the License.
42  *
43  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
44  * or http://www.opensolaris.org/os/licensing.
45  * See the License for the specific language governing permissions
46  * and limitations under the License.
47  *
48  * When distributing Covered Code, include this CDDL HEADER in each
49  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
50  * If applicable, add the following below this CDDL HEADER, with the
51  * fields enclosed by brackets "[]" replaced with your own identifying
52  * information: Portions Copyright [yyyy] [name of copyright owner]
53  *
54  * CDDL HEADER END
55  */
56 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
57 /*	  All Rights Reserved  	*/
58 
59 
60 /*
61  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
62  * Use is subject to license terms.
63  *
64  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
65  * Copyright 2016 Joyent, Inc.
66  */
67 
68 
69 
70 
71 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
72 /*
73  * CDDL HEADER START
74  *
75  * The contents of this file are subject to the terms of the
76  * Common Development and Distribution License (the "License").
77  * You may not use this file except in compliance with the License.
78  *
79  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
80  * or http://www.opensolaris.org/os/licensing.
81  * See the License for the specific language governing permissions
82  * and limitations under the License.
83  *
84  * When distributing Covered Code, include this CDDL HEADER in each
85  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
86  * If applicable, add the following below this CDDL HEADER, with the
87  * fields enclosed by brackets "[]" replaced with your own identifying
88  * information: Portions Copyright [yyyy] [name of copyright owner]
89  *
90  * CDDL HEADER END
91  */
92 
93 /*
94  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
95  * Copyright 2016 Joyent, Inc.
96  *
97  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
98  * Use is subject to license terms.
99  */
100 
101 
102 
103 
104 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1
105 /*
106  * CDDL HEADER START
107  *
108  * The contents of this file are subject to the terms of the
109  * Common Development and Distribution License, Version 1.0 only
110  * (the "License").  You may not use this file except in compliance
111  * with the License.
112  *
113  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
114  * or http://www.opensolaris.org/os/licensing.
115  * See the License for the specific language governing permissions
116  * and limitations under the License.
117  *
118  * When distributing Covered Code, include this CDDL HEADER in each
119  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
120  * If applicable, add the following below this CDDL HEADER, with the
121  * fields enclosed by brackets "[]" replaced with your own identifying
122  * information: Portions Copyright [yyyy] [name of copyright owner]
123  *
124  * CDDL HEADER END
125  */
126 /*
127  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
128  * Use is subject to license terms.
129  */
130 /*
131  * Copyright 2015 EveryCity Ltd. All rights reserved.
132  */
133 
134 
135 
136 
137 /*
138  * This file contains definitions designed to enable different compilers
139  * to be used harmoniously on Solaris systems.
140  */
141 
142 
143 
144 
145 
146 /*
147  * Allow for version tests for compiler bugs and features.
148  */
149 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
150 /*
151  * analogous to lint's PRINTFLIKEn
152  */
153 
154 
155 
156 
157 
158 /*
159  * Handle the kernel printf routines that can take '%b' too
160  */
161 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
162 /*
163  * This one's pretty obvious -- the function never returns
164  */
165 
166 
167 /*
168  * The function is 'extern inline' and expects GNU C89 behaviour, not C99
169  * behaviour.
170  *
171  * Should only be used on 'extern inline' definitions for GCC.
172  */
173 
174 
175 
176 
177 
178 
179 /*
180  * The function has control flow such that it may return multiple times (in
181  * the manner of setjmp or vfork)
182  */
183 
184 
185 
186 
187 
188 
189 /*
190  * This is an appropriate label for functions that do not
191  * modify their arguments, e.g. strlen()
192  */
193 
194 
195 /*
196  * This is a stronger form of __pure__. Can be used for functions
197  * that do not modify their arguments and don't depend on global
198  * memory.
199  */
200 
201 
202 
203 
204 /*
205  * This attribute, attached to a variable, means that the variable is meant to
206  * be possibly unused. GCC will not produce a warning for this variable.
207  */
208 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
209 /*
210  * Shorthand versions for readability
211  */
212 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
213 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
214 /*
215  * CDDL HEADER START
216  *
217  * The contents of this file are subject to the terms of the
218  * Common Development and Distribution License (the "License").
219  * You may not use this file except in compliance with the License.
220  *
221  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
222  * or http://www.opensolaris.org/os/licensing.
223  * See the License for the specific language governing permissions
224  * and limitations under the License.
225  *
226  *
227  * When distributing Covered Code, include this CDDL HEADER in each
228  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
229  * If applicable, add the following below this CDDL HEADER, with the
230  * fields enclosed by brackets "[]" replaced with your own identifying
231  * information: Portions Copyright [yyyy] [name of copyright owner]
232  *
233  * CDDL HEADER END
234  */
235 
236 /*
237  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
238  * Use is subject to license terms.
239  * Copyright 2016 Joyent, Inc.
240  */
241 
242 
243 
244 
245 /*
246  * This header file serves to group a set of well known defines and to
247  * set these for each instruction set architecture.  These defines may
248  * be divided into two groups;  characteristics of the processor and
249  * implementation choices for Solaris on a processor.
250  *
251  * Processor Characteristics:
252  *
253  * _LITTLE_ENDIAN / _BIG_ENDIAN:
254  *	The natural byte order of the processor.  A pointer to an int points
255  *	to the least/most significant byte of that int.
256  *
257  * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
258  *	The processor specific direction of stack growth.  A push onto the
259  *	stack increases/decreases the stack pointer, so it stores data at
260  *	successively higher/lower addresses.  (Stackless machines ignored
261  *	without regrets).
262  *
263  * _LONG_LONG_HTOL / _LONG_LONG_LTOH:
264  *	A pointer to a long long points to the most/least significant long
265  *	within that long long.
266  *
267  * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
268  *	The C compiler assigns bit fields from the high/low to the low/high end
269  *	of an int (most to least significant vs. least to most significant).
270  *
271  * _IEEE_754:
272  *	The processor (or supported implementations of the processor)
273  *	supports the ieee-754 floating point standard.  No other floating
274  *	point standards are supported (or significant).  Any other supported
275  *	floating point formats are expected to be cased on the ISA processor
276  *	symbol.
277  *
278  * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
279  *	The C Compiler implements objects of type `char' as `unsigned' or
280  *	`signed' respectively.  This is really an implementation choice of
281  *	the compiler writer, but it is specified in the ABI and tends to
282  *	be uniform across compilers for an instruction set architecture.
283  *	Hence, it has the properties of a processor characteristic.
284  *
285  * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
286  * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
287  * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
288  *	The ABI defines alignment requirements of each of the primitive
289  *	object types.  Some, if not all, may be hardware requirements as
290  * 	well.  The values are expressed in "byte-alignment" units.
291  *
292  * _MAX_ALIGNMENT:
293  *	The most stringent alignment requirement as specified by the ABI.
294  *	Equal to the maximum of all the above _XXX_ALIGNMENT values.
295  *
296  * _MAX_ALIGNMENT_TYPE:
297  * 	The name of the C type that has the value descried in _MAX_ALIGNMENT.
298  *
299  * _ALIGNMENT_REQUIRED:
300  *	True or false (1 or 0) whether or not the hardware requires the ABI
301  *	alignment.
302  *
303  * _LONG_LONG_ALIGNMENT_32
304  *	The 32-bit ABI supported by a 64-bit kernel may have different
305  *	alignment requirements for primitive object types.  The value of this
306  *	identifier is expressed in "byte-alignment" units.
307  *
308  * _HAVE_CPUID_INSN
309  *	This indicates that the architecture supports the 'cpuid'
310  *	instruction as defined by Intel.  (Intel allows other vendors
311  *	to extend the instruction for their own purposes.)
312  *
313  *
314  * Implementation Choices:
315  *
316  * _ILP32 / _LP64:
317  *	This specifies the compiler data type implementation as specified in
318  *	the relevant ABI.  The choice between these is strongly influenced
319  *	by the underlying hardware, but is not absolutely tied to it.
320  *	Currently only two data type models are supported:
321  *
322  *	_ILP32:
323  *		Int/Long/Pointer are 32 bits.  This is the historical UNIX
324  *		and Solaris implementation.  Due to its historical standing,
325  *		this is the default case.
326  *
327  *	_LP64:
328  *		Long/Pointer are 64 bits, Int is 32 bits.  This is the chosen
329  *		implementation for 64-bit ABIs such as SPARC V9.
330  *
331  *	_I32LPx:
332  *		A compilation environment where 'int' is 32-bit, and
333  *		longs and pointers are simply the same size.
334  *
335  *	In all cases, Char is 8 bits and Short is 16 bits.
336  *
337  * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
338  *	This specifies the form of the disk VTOC (or label):
339  *
340  *	_SUNOS_VTOC_8:
341  *		This is a VTOC form which is upwardly compatible with the
342  *		SunOS 4.x disk label and allows 8 partitions per disk.
343  *
344  *	_SUNOS_VTOC_16:
345  *		In this format the incore vtoc image matches the ondisk
346  *		version.  It allows 16 slices per disk, and is not
347  *		compatible with the SunOS 4.x disk label.
348  *
349  *	Note that these are not the only two VTOC forms possible and
350  *	additional forms may be added.  One possible form would be the
351  *	SVr4 VTOC form.  The symbol for that is reserved now, although
352  *	it is not implemented.
353  *
354  *	_SVR4_VTOC_16:
355  *		This VTOC form is compatible with the System V Release 4
356  *		VTOC (as implemented on the SVr4 Intel and 3b ports) with
357  *		16 partitions per disk.
358  *
359  *
360  * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
361  *	This describes the type of addresses used by system DMA:
362  *
363  *	_DMA_USES_PHYSADDR:
364  *		This type of DMA, used in the x86 implementation,
365  *		requires physical addresses for DMA buffers.  The 24-bit
366  *		addresses used by some legacy boards is the source of the
367  *		"low-memory" (<16MB) requirement for some devices using DMA.
368  *
369  *	_DMA_USES_VIRTADDR:
370  *		This method of DMA allows the use of virtual addresses for
371  *		DMA transfers.
372  *
373  * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
374  *      This indicates the presence/absence of an fdisk table.
375  *
376  *      _FIRMWARE_NEEDS_FDISK
377  *              The fdisk table is required by system firmware.  If present,
378  *              it allows a disk to be subdivided into multiple fdisk
379  *              partitions, each of which is equivalent to a separate,
380  *              virtual disk.  This enables the co-existence of multiple
381  *              operating systems on a shared hard disk.
382  *
383  *      _NO_FDISK_PRESENT
384  *              If the fdisk table is absent, it is assumed that the entire
385  *              media is allocated for a single operating system.
386  *
387  * _HAVE_TEM_FIRMWARE
388  *	Defined if this architecture has the (fallback) option of
389  *	using prom_* calls for doing I/O if a suitable kernel driver
390  *	is not available to do it.
391  *
392  * _DONT_USE_1275_GENERIC_NAMES
393  *		Controls whether or not device tree node names should
394  *		comply with the IEEE 1275 "Generic Names" Recommended
395  *		Practice. With _DONT_USE_GENERIC_NAMES, device-specific
396  *		names identifying the particular device will be used.
397  *
398  * __i386_COMPAT
399  *	This indicates whether the i386 ABI is supported as a *non-native*
400  *	mode for the platform.  When this symbol is defined:
401  *	-	32-bit xstat-style system calls are enabled
402  *	-	32-bit xmknod-style system calls are enabled
403  *	-	32-bit system calls use i386 sizes -and- alignments
404  *
405  *	Note that this is NOT defined for the i386 native environment!
406  *
407  * __x86
408  *	This is ONLY a synonym for defined(__i386) || defined(__amd64)
409  *	which is useful only insofar as these two architectures share
410  *	common attributes.  Analogous to __sparc.
411  *
412  * _PSM_MODULES
413  *	This indicates whether or not the implementation uses PSM
414  *	modules for processor support, reading /etc/mach from inside
415  *	the kernel to extract a list.
416  *
417  * _RTC_CONFIG
418  *	This indicates whether or not the implementation uses /etc/rtc_config
419  *	to configure the real-time clock in the kernel.
420  *
421  * _UNIX_KRTLD
422  *	This indicates that the implementation uses a dynamically
423  *	linked unix + krtld to form the core kernel image at boot
424  *	time, or (in the absence of this symbol) a prelinked kernel image.
425  *
426  * _OBP
427  *	This indicates the firmware interface is OBP.
428  *
429  * _SOFT_HOSTID
430  *	This indicates that the implementation obtains the hostid
431  *	from the file /etc/hostid, rather than from hardware.
432  */
433 
434 
435 
436 
437 
438 /*
439  * The following set of definitions characterize Solaris on AMD's
440  * 64-bit systems.
441  */
442 # 305 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
443 /*
444  * Define the appropriate "processor characteristics"
445  */
446 # 333 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
447 /*
448  * Define the appropriate "implementation choices".
449  */
450 # 351 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
451 /*
452  * The following set of definitions characterize the Solaris on SPARC systems.
453  *
454  * The symbol __sparc indicates any of the SPARC family of processor
455  * architectures.  This includes SPARC V7, SPARC V8 and SPARC V9.
456  *
457  * The symbol __sparcv8 indicates the 32-bit SPARC V8 architecture as defined
458  * by Version 8 of the SPARC Architecture Manual.  (SPARC V7 is close enough
459  * to SPARC V8 for the former to be subsumed into the latter definition.)
460  *
461  * The symbol __sparcv9 indicates the 64-bit SPARC V9 architecture as defined
462  * by Version 9 of the SPARC Architecture Manual.
463  *
464  * The symbols __sparcv8 and __sparcv9 are mutually exclusive, and are only
465  * relevant when the symbol __sparc is defined.
466  */
467 /*
468  * XXX Due to the existence of 5110166, "defined(__sparcv9)" needs to be added
469  * to support backwards builds.  This workaround should be removed in s10_71.
470  */
471 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
472 
473 
474 
475 
476 
477 /*
478  * Values of _POSIX_C_SOURCE
479  *
480  *		undefined   not a POSIX compilation
481  *		1	    POSIX.1-1990 compilation
482  *		2	    POSIX.2-1992 compilation
483  *		199309L	    POSIX.1b-1993 compilation (Real Time)
484  *		199506L	    POSIX.1c-1995 compilation (POSIX Threads)
485  *		200112L	    POSIX.1-2001 compilation (Austin Group Revision)
486  *		200809L     POSIX.1-2008 compilation
487  */
488 
489 
490 
491 
492 /*
493  * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
494  * and _STDC_C99 are Sun implementation specific macros created in order to
495  * compress common standards specified feature test macros for easier reading.
496  * These macros should not be used by the application developer as
497  * unexpected results may occur. Instead, the user should reference
498  * standards(5) for correct usage of the standards feature test macros.
499  *
500  * __XOPEN_OR_POSIX     Used in cases where a symbol is defined by both
501  *                      X/Open or POSIX or in the negative, when neither
502  *                      X/Open or POSIX defines a symbol.
503  *
504  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
505  *                      by the compiler. For Sun compilers the value of
506  *                      __STDC__ is either 1, 0, or not defined based on the
507  *                      compilation mode (see cc(1)). When the value of
508  *                      __STDC__ is 1 and in the absence of any other feature
509  *                      test macros, the namespace available to the application
510  *                      is limited to only those symbols defined by the C
511  *                      Standard. _STRICT_STDC provides a more readable means
512  *                      of identifying symbols defined by the standard, or in
513  *                      the negative, symbols that are extensions to the C
514  *                      Standard. See additional comments for GNU C differences.
515  *
516  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
517  *                      defined by the compiler and indicates the version of
518  *                      the C standard. A value of 199901L indicates a
519  *                      compiler that complies with ISO/IEC 9899:1999, other-
520  *                      wise known as the C99 standard.
521  *
522  * _STDC_C11		Like _STDC_C99 except that the value of __STDC_VERSION__
523  *                      is 201112L indicating a compiler that compiles with
524  *                      ISO/IEXC 9899:2011, otherwise known as the C11 standard.
525  *
526  * _STRICT_SYMBOLS	Used in cases where symbol visibility is restricted
527  *                      by the standards, and the user has not explicitly
528  *                      relaxed the strictness via __EXTENSIONS__.
529  */
530 
531 
532 
533 
534 
535 /*
536  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
537  * 99899:2011 specify the following predefined macro name:
538  *
539  * __STDC__	The integer constant 1, intended to indicate a conforming
540  *		implementation.
541  *
542  * Furthermore, a strictly conforming program shall use only those features
543  * of the language and library specified in these standards. A conforming
544  * implementation shall accept any strictly conforming program.
545  *
546  * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
547  * strictly conforming environments and __STDC__ to 0 for environments that
548  * use ANSI C semantics but allow extensions to the C standard. For non-ANSI
549  * C semantics, Sun's C compiler does not define __STDC__.
550  *
551  * The GNU C project interpretation is that __STDC__ should always be defined
552  * to 1 for compilation modes that accept ANSI C syntax regardless of whether
553  * or not extensions to the C standard are used. Violations of conforming
554  * behavior are conditionally flagged as warnings via the use of the
555  * -pedantic option. In addition to defining __STDC__ to 1, the GNU C
556  * compiler also defines __STRICT_ANSI__ as a means of specifying strictly
557  * conforming environments using the -ansi or -std=<standard> options.
558  *
559  * In the absence of any other compiler options, Sun and GNU set the value
560  * of __STDC__ as follows when using the following options:
561  *
562  *				Value of __STDC__  __STRICT_ANSI__
563  *
564  * cc -Xa (default)			0	      undefined
565  * cc -Xt (transitional)		0             undefined
566  * cc -Xc (strictly conforming)		1	      undefined
567  * cc -Xs (K&R C)		    undefined	      undefined
568  *
569  * gcc (default)			1	      undefined
570  * gcc -ansi, -std={c89, c99,...)  	1              defined
571  * gcc -traditional (K&R)	    undefined	      undefined
572  *
573  * The default compilation modes for Sun C compilers versus GNU C compilers
574  * results in a differing value for __STDC__ which results in a more
575  * restricted namespace when using Sun compilers. To allow both GNU and Sun
576  * interpretations to peacefully co-exist, we use the following Sun
577  * implementation _STRICT_STDC_ macro:
578  */
579 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
580 /*
581  * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
582  */
583 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
584 /*
585  * Use strict symbol visibility.
586  */
587 
588 
589 
590 
591 
592 /*
593  * Large file interfaces:
594  *
595  *	_LARGEFILE_SOURCE
596  *		1		large file-related additions to POSIX
597  *				interfaces requested (fseeko, etc.)
598  *	_LARGEFILE64_SOURCE
599  *		1		transitional large-file-related interfaces
600  *				requested (seek64, stat64, etc.)
601  *
602  * The corresponding announcement macros are respectively:
603  *	_LFS_LARGEFILE
604  *	_LFS64_LARGEFILE
605  * (These are set in <unistd.h>.)
606  *
607  * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
608  * well.
609  *
610  * The large file interfaces are made visible regardless of the initial values
611  * of the feature test macros under certain circumstances:
612  *    -	If no explicit standards-conforming environment is requested (neither
613  *	of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
614  *	__STDC__ does not imply standards conformance).
615  *    -	Extended system interfaces are explicitly requested (__EXTENSIONS__
616  * 	is defined).
617  *    -	Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
618  *	defined).  (Note that this dependency is an artifact of the current
619  *	kernel implementation and may change in future releases.)
620  */
621 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
622 /*
623  * Large file compilation environment control:
624  *
625  * The setting of _FILE_OFFSET_BITS controls the size of various file-related
626  * types and governs the mapping between file-related source function symbol
627  * names and the corresponding binary entry points.
628  *
629  * In the 32-bit environment, the default value is 32; if not set, set it to
630  * the default here, to simplify tests in other headers.
631  *
632  * In the 64-bit compilation environment, the only value allowed is 64.
633  */
634 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
635 /*
636  * Use of _XOPEN_SOURCE
637  *
638  * The following X/Open specifications are supported:
639  *
640  * X/Open Portability Guide, Issue 3 (XPG3)
641  * X/Open CAE Specification, Issue 4 (XPG4)
642  * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
643  * X/Open CAE Specification, Issue 5 (XPG5)
644  * Open Group Technical Standard, Issue 6 (XPG6), also referred to as
645  *    IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
646  * Open Group Technical Standard, Issue 7 (XPG7), also referred to as
647  *    IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
648  *
649  * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
650  * XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
651  *     Version 2 (SUSv2)
652  * XPG6 is the result of a merge of the X/Open and POSIX specifications
653  *     and as such is also referred to as IEEE Std. 1003.1-2001 in
654  *     addition to UNIX 03 and SUSv3.
655  * XPG7 is also referred to as UNIX 08 and SUSv4.
656  *
657  * When writing a conforming X/Open application, as per the specification
658  * requirements, the appropriate feature test macros must be defined at
659  * compile time. These are as follows. For more info, see standards(5).
660  *
661  * Feature Test Macro				     Specification
662  * ------------------------------------------------  -------------
663  * _XOPEN_SOURCE                                         XPG3
664  * _XOPEN_SOURCE && _XOPEN_VERSION = 4                   XPG4
665  * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1           XPG4v2
666  * _XOPEN_SOURCE = 500                                   XPG5
667  * _XOPEN_SOURCE = 600  (or POSIX_C_SOURCE=200112L)      XPG6
668  * _XOPEN_SOURCE = 700  (or POSIX_C_SOURCE=200809L)      XPG7
669  *
670  * In order to simplify the guards within the headers, the following
671  * implementation private test macros have been created. Applications
672  * must NOT use these private test macros as unexpected results will
673  * occur.
674  *
675  * Note that in general, the use of these private macros is cumulative.
676  * For example, the use of _XPG3 with no other restrictions on the X/Open
677  * namespace will make the symbols visible for XPG3 through XPG6
678  * compilation environments. The use of _XPG4_2 with no other X/Open
679  * namespace restrictions indicates that the symbols were introduced in
680  * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
681  * environments, but not for XPG3 or XPG4 compilation environments.
682  *
683  * _XPG3    X/Open Portability Guide, Issue 3 (XPG3)
684  * _XPG4    X/Open CAE Specification, Issue 4 (XPG4)
685  * _XPG4_2  X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
686  * _XPG5    X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
687  * _XPG6    Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
688  * _XPG7    Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
689  */
690 
691 /* X/Open Portability Guide, Issue 3 */
692 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
693 /*
694  * _XOPEN_VERSION is defined by the X/Open specifications and is not
695  * normally defined by the application, except in the case of an XPG4
696  * application.  On the implementation side, _XOPEN_VERSION defined with
697  * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
698  * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
699  * _XOPEN_VERSION  defined with a value of 500 indicates an XPG5 (UNIX 98)
700  * application and with a value of 600 indicates an XPG6 (UNIX 03)
701  * application and with a value of 700 indicates an XPG7 (UNIX 08).
702  * The appropriate version is determined by the use of the
703  * feature test macros described earlier.  The value of _XOPEN_VERSION
704  * defaults to 3 otherwise indicating support for XPG3 applications.
705  */
706 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
707 /*
708  * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
709  * conforming environments.  ISO 9899:1999 says it does.
710  *
711  * The presence of _LONGLONG_TYPE says "long long exists" which is therefore
712  * defined in all but strictly conforming environments that disallow it.
713  */
714 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
715 /*
716  * The following macro defines a value for the ISO C99 restrict
717  * keyword so that _RESTRICT_KYWD resolves to "restrict" if
718  * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
719  * if any other compiler is used. This allows for the use of single
720  * prototype declarations regardless of compiler version.
721  */
722 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
723 /*
724  * The following macro defines a value for the ISO C11 _Noreturn
725  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
726  * an ISO C11 compiler is used and "" (null string) if any other
727  * compiler is used. This allows for the use of single prototype
728  * declarations regardless of compiler version.
729  */
730 
731 
732 
733 
734 
735 
736 
737 /*
738  * The following macro indicates header support for the ANSI C++
739  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
740  */
741 
742 
743 /*
744  * The following macro indicates header support for the C99 standard,
745  * ISO/IEC 9899:1999, Programming Languages - C.
746  */
747 
748 
749 /*
750  * The following macro indicates header support for the C99 standard,
751  * ISO/IEC 9899:2011, Programming Languages - C.
752  */
753 
754 
755 /*
756  * The following macro indicates header support for DTrace. The value is an
757  * integer that corresponds to the major version number for DTrace.
758  */
759 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
760 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
761 /*
762  * CDDL HEADER START
763  *
764  * The contents of this file are subject to the terms of the
765  * Common Development and Distribution License (the "License").
766  * You may not use this file except in compliance with the License.
767  *
768  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
769  * or http://www.opensolaris.org/os/licensing.
770  * See the License for the specific language governing permissions
771  * and limitations under the License.
772  *
773  *
774  * When distributing Covered Code, include this CDDL HEADER in each
775  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
776  * If applicable, add the following below this CDDL HEADER, with the
777  * fields enclosed by brackets "[]" replaced with your own identifying
778  * information: Portions Copyright [yyyy] [name of copyright owner]
779  *
780  * CDDL HEADER END
781  */
782 
783 /*
784  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
785  * Use is subject to license terms.
786  * Copyright 2016 Joyent, Inc.
787  */
788 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
789 
790 /*
791  * Machine dependent definitions moved to <sys/machtypes.h>.
792  */
793 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1
794 /*
795  * CDDL HEADER START
796  *
797  * The contents of this file are subject to the terms of the
798  * Common Development and Distribution License, Version 1.0 only
799  * (the "License").  You may not use this file except in compliance
800  * with the License.
801  *
802  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
803  * or http://www.opensolaris.org/os/licensing.
804  * See the License for the specific language governing permissions
805  * and limitations under the License.
806  *
807  * When distributing Covered Code, include this CDDL HEADER in each
808  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
809  * If applicable, add the following below this CDDL HEADER, with the
810  * fields enclosed by brackets "[]" replaced with your own identifying
811  * information: Portions Copyright [yyyy] [name of copyright owner]
812  *
813  * CDDL HEADER END
814  */
815 /*
816  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
817  * Use is subject to license terms.
818  */
819 
820 
821 
822 
823 #pragma ident "%Z%%M%	%I%	%E% SMI"
824 
825 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
826 /*
827  * CDDL HEADER START
828  *
829  * The contents of this file are subject to the terms of the
830  * Common Development and Distribution License (the "License").
831  * You may not use this file except in compliance with the License.
832  *
833  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
834  * or http://www.opensolaris.org/os/licensing.
835  * See the License for the specific language governing permissions
836  * and limitations under the License.
837  *
838  * When distributing Covered Code, include this CDDL HEADER in each
839  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
840  * If applicable, add the following below this CDDL HEADER, with the
841  * fields enclosed by brackets "[]" replaced with your own identifying
842  * information: Portions Copyright [yyyy] [name of copyright owner]
843  *
844  * CDDL HEADER END
845  */
846 
847 /*
848  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
849  * Copyright 2016 Joyent, Inc.
850  *
851  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
852  * Use is subject to license terms.
853  */
854 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
855 
856 
857 
858 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1
859 /*
860  * CDDL HEADER START
861  *
862  * The contents of this file are subject to the terms of the
863  * Common Development and Distribution License (the "License").
864  * You may not use this file except in compliance with the License.
865  *
866  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
867  * or http://www.opensolaris.org/os/licensing.
868  * See the License for the specific language governing permissions
869  * and limitations under the License.
870  *
871  * When distributing Covered Code, include this CDDL HEADER in each
872  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
873  * If applicable, add the following below this CDDL HEADER, with the
874  * fields enclosed by brackets "[]" replaced with your own identifying
875  * information: Portions Copyright [yyyy] [name of copyright owner]
876  *
877  * CDDL HEADER END
878  */
879 /*
880  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
881  * Use is subject to license terms.
882  */
883 
884 
885 
886 
887 #pragma ident "%Z%%M%	%I%	%E% SMI"
888 
889 
890 
891 
892 
893 /*
894  * Machine dependent types:
895  *
896  *	intel ia32 Version
897  */
898 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h"
899 typedef struct _label_t { long val[6]; } label_t;
900 
901 
902 
903 typedef unsigned char lock_t; /* lock work for busy wait */
904 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
905 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
906 
907 /*
908  * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
909  * committee's working draft for the revision of the current ISO C standard,
910  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
911  * required by any standard but constitute a useful, general purpose set
912  * of type definitions which is namespace clean with respect to all standards.
913  */
914 
915 
916 
917 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
918 /*
919  * CDDL HEADER START
920  *
921  * The contents of this file are subject to the terms of the
922  * Common Development and Distribution License, Version 1.0 only
923  * (the "License").  You may not use this file except in compliance
924  * with the License.
925  *
926  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
927  * or http://www.opensolaris.org/os/licensing.
928  * See the License for the specific language governing permissions
929  * and limitations under the License.
930  *
931  * When distributing Covered Code, include this CDDL HEADER in each
932  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
933  * If applicable, add the following below this CDDL HEADER, with the
934  * fields enclosed by brackets "[]" replaced with your own identifying
935  * information: Portions Copyright [yyyy] [name of copyright owner]
936  *
937  * CDDL HEADER END
938  */
939 /*
940  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
941  *
942  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
943  * Use is subject to license terms.
944  */
945 
946 
947 
948 
949 /*
950  * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
951  * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
952  * Programming language - C.
953  *
954  * Programs/Modules should not directly include this file.  Access to the
955  * types defined in this file should be through the inclusion of one of the
956  * following files:
957  *
958  *	<sys/types.h>		Provides only the "_t" types defined in this
959  *				file which is a subset of the contents of
960  *				<inttypes.h>.  (This can be appropriate for
961  *				all programs/modules except those claiming
962  *				ANSI-C conformance.)
963  *
964  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
965  *				components of <inttypes.h>.
966  *
967  *	<inttypes.h>		For use by applications.
968  *
969  * See these files for more details.
970  */
971 
972 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
973 /*
974  * CDDL HEADER START
975  *
976  * The contents of this file are subject to the terms of the
977  * Common Development and Distribution License (the "License").
978  * You may not use this file except in compliance with the License.
979  *
980  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
981  * or http://www.opensolaris.org/os/licensing.
982  * See the License for the specific language governing permissions
983  * and limitations under the License.
984  *
985  * When distributing Covered Code, include this CDDL HEADER in each
986  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
987  * If applicable, add the following below this CDDL HEADER, with the
988  * fields enclosed by brackets "[]" replaced with your own identifying
989  * information: Portions Copyright [yyyy] [name of copyright owner]
990  *
991  * CDDL HEADER END
992  */
993 
994 /*
995  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
996  * Copyright 2016 Joyent, Inc.
997  *
998  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
999  * Use is subject to license terms.
1000  */
1001 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2
1002 
1003 
1004 
1005 
1006 
1007 /*
1008  * Basic / Extended integer types
1009  *
1010  * The following defines the basic fixed-size integer types.
1011  *
1012  * Implementations are free to typedef them to Standard C integer types or
1013  * extensions that they support. If an implementation does not support one
1014  * of the particular integer data types below, then it should not define the
1015  * typedefs and macros corresponding to that data type.  Note that int8_t
1016  * is not defined in -Xs mode on ISAs for which the ABI specifies "char"
1017  * as an unsigned entity because there is no way to define an eight bit
1018  * signed integral.
1019  */
1020 
1021 typedef char int8_t;
1022 
1023 
1024 
1025 typedef short int16_t;
1026 typedef int int32_t;
1027 
1028 
1029 
1030 
1031 
1032 
1033 typedef long long int64_t;
1034 
1035 
1036 
1037 typedef unsigned char uint8_t;
1038 typedef unsigned short uint16_t;
1039 typedef unsigned int uint32_t;
1040 
1041 
1042 
1043 
1044 typedef unsigned long long uint64_t;
1045 
1046 
1047 
1048 /*
1049  * intmax_t and uintmax_t are to be the longest (in number of bits) signed
1050  * and unsigned integer types supported by the implementation.
1051  */
1052 
1053 typedef int64_t intmax_t;
1054 typedef uint64_t uintmax_t;
1055 
1056 
1057 
1058 
1059 
1060 /*
1061  * intptr_t and uintptr_t are signed and unsigned integer types large enough
1062  * to hold any data pointer; that is, data pointers can be assigned into or
1063  * from these integer types without losing precision.
1064  */
1065 
1066 
1067 
1068 
1069 typedef int intptr_t;
1070 typedef unsigned int uintptr_t;
1071 
1072 
1073 /*
1074  * The following define the fastest integer types that can hold the
1075  * specified number of bits.
1076  */
1077 
1078 typedef char int_fast8_t;
1079 
1080 
1081 
1082 typedef int int_fast16_t;
1083 typedef int int_fast32_t;
1084 
1085 
1086 
1087 
1088 typedef long long int_fast64_t;
1089 
1090 
1091 
1092 typedef unsigned char uint_fast8_t;
1093 typedef unsigned int uint_fast16_t;
1094 typedef unsigned int uint_fast32_t;
1095 
1096 
1097 
1098 
1099 typedef unsigned long long uint_fast64_t;
1100 
1101 
1102 
1103 /*
1104  * The following define the smallest integer types that can hold the
1105  * specified number of bits.
1106  */
1107 
1108 typedef char int_least8_t;
1109 
1110 
1111 
1112 typedef short int_least16_t;
1113 typedef int int_least32_t;
1114 
1115 
1116 
1117 
1118 typedef long long int_least64_t;
1119 
1120 
1121 
1122 /*
1123  * If these are changed, please update char16_t and char32_t in head/uchar.h.
1124  */
1125 typedef unsigned char uint_least8_t;
1126 typedef unsigned short uint_least16_t;
1127 typedef unsigned int uint_least32_t;
1128 
1129 
1130 
1131 
1132 typedef unsigned long long uint_least64_t;
1133 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
1134 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1135 /*
1136  * Strictly conforming ANSI C environments prior to the 1999
1137  * revision of the C Standard (ISO/IEC 9899:1999) do not have
1138  * the long long data type.
1139  */
1140 
1141 typedef long long longlong_t;
1142 typedef unsigned long long u_longlong_t;
1143 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1144 /*
1145  * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
1146  * to use them instead of int32_t and uint32_t because DEC had
1147  * shipped 64-bit wide.
1148  */
1149 
1150 
1151 
1152 
1153 typedef long t_scalar_t; /* historical versions */
1154 typedef unsigned long t_uscalar_t;
1155 
1156 
1157 /*
1158  * POSIX Extensions
1159  */
1160 typedef unsigned char uchar_t;
1161 typedef unsigned short ushort_t;
1162 typedef unsigned int uint_t;
1163 typedef unsigned long ulong_t;
1164 
1165 typedef char *caddr_t; /* ?<core address> type */
1166 typedef long daddr_t; /* <disk address> type */
1167 typedef short cnt_t; /* ?<count> type */
1168 
1169 
1170 
1171 
1172 
1173 
1174 typedef int ptrdiff_t; /* (historical version) */
1175 
1176 
1177 
1178 /*
1179  * VM-related types
1180  */
1181 typedef ulong_t pfn_t; /* page frame number */
1182 typedef ulong_t pgcnt_t; /* number of pages */
1183 typedef long spgcnt_t; /* signed number of pages */
1184 
1185 typedef uchar_t use_t; /* use count for swap.  */
1186 typedef short sysid_t;
1187 typedef short index_t;
1188 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */
1189 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */
1190 
1191 /*
1192  * The size of off_t and related types depends on the setting of
1193  * _FILE_OFFSET_BITS.  (Note that other system headers define other types
1194  * related to those defined here.)
1195  *
1196  * If _LARGEFILE64_SOURCE is defined, variants of these types that are
1197  * explicitly 64 bits wide become available.
1198  */
1199 
1200 
1201 
1202 
1203 
1204 
1205 typedef longlong_t off_t; /* offsets within files */
1206 
1207 
1208 
1209 
1210 
1211 
1212 typedef longlong_t off64_t; /* offsets within files */
1213 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1214 typedef u_longlong_t ino_t; /* expanded inode type	*/
1215 typedef longlong_t blkcnt_t; /* count of file blocks */
1216 typedef u_longlong_t fsblkcnt_t; /* count of file system blocks */
1217 typedef u_longlong_t fsfilcnt_t; /* count of files */
1218 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1219 typedef u_longlong_t ino64_t; /* expanded inode type	*/
1220 typedef longlong_t blkcnt64_t; /* count of file blocks */
1221 typedef u_longlong_t fsblkcnt64_t; /* count of file system blocks */
1222 typedef u_longlong_t fsfilcnt64_t; /* count of files */
1223 
1224 
1225 
1226 
1227 
1228 
1229 typedef long blksize_t; /* used for block sizes */
1230 
1231 
1232 
1233 
1234 
1235 typedef enum { B_FALSE, B_TRUE } boolean_t;
1236 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1237 /*
1238  * The {u,}pad64_t types can be used in structures such that those structures
1239  * may be accessed by code produced by compilation environments which don't
1240  * support a 64 bit integral datatype.  The intention is not to allow
1241  * use of these fields in such environments, but to maintain the alignment
1242  * and offsets of the structure.
1243  *
1244  * Similar comments for {u,}pad128_t.
1245  *
1246  * Note that these types do NOT generate any stronger alignment constraints
1247  * than those available in the underlying ABI.  See <sys/isa_defs.h>
1248  */
1249 
1250 typedef int64_t pad64_t;
1251 typedef uint64_t upad64_t;
1252 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1253 typedef union {
1254  long double _q;
1255  int32_t _l[4];
1256 } pad128_t;
1257 
1258 typedef union {
1259  long double _q;
1260  uint32_t _l[4];
1261 } upad128_t;
1262 
1263 typedef longlong_t offset_t;
1264 typedef u_longlong_t u_offset_t;
1265 typedef u_longlong_t len_t;
1266 typedef u_longlong_t diskaddr_t;
1267 
1268 
1269 
1270 
1271 /*
1272  * Definitions remaining from previous partial support for 64-bit file
1273  * offsets.  This partial support for devices greater than 2gb requires
1274  * compiler support for long long.
1275  */
1276 
1277 typedef union {
1278  offset_t _f; /* Full 64 bit offset value */
1279  struct {
1280   int32_t _l; /* lower 32 bits of offset value */
1281   int32_t _u; /* upper 32 bits of offset value */
1282  } _p;
1283 } lloff_t;
1284 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1285 typedef union {
1286  longlong_t _f; /* Full 64 bit disk address value */
1287  struct {
1288   int32_t _l; /* lower 32 bits of disk address value */
1289   int32_t _u; /* upper 32 bits of disk address value */
1290  } _p;
1291 } lldaddr_t;
1292 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1293 typedef uint_t k_fltset_t; /* kernel fault set type */
1294 
1295 /*
1296  * The following type is for various kinds of identifiers.  The
1297  * actual type must be the same for all since some system calls
1298  * (such as sigsend) take arguments that may be any of these
1299  * types.  The enumeration type idtype_t defined in sys/procset.h
1300  * is used to indicate what type of id is being specified --
1301  * a process id, process group id, session id, scheduling class id,
1302  * user id, group id, project id, task id or zone id.
1303  */
1304 
1305 
1306 
1307 typedef long id_t; /* (historical version) */
1308 
1309 
1310 typedef id_t lgrp_id_t; /* lgroup ID */
1311 
1312 /*
1313  * Type useconds_t is an unsigned integral type capable of storing
1314  * values at least in the range of zero to 1,000,000.
1315  */
1316 typedef uint_t useconds_t; /* Time, in microseconds */
1317 
1318 
1319 
1320 typedef long suseconds_t; /* signed # of microseconds */
1321 
1322 
1323 /*
1324  * Typedefs for dev_t components.
1325  */
1326 
1327 
1328 
1329 
1330 typedef ulong_t major_t; /* (historical version) */
1331 typedef ulong_t minor_t; /* (historical version) */
1332 
1333 
1334 /*
1335  * The data type of a thread priority.
1336  */
1337 typedef short pri_t;
1338 
1339 /*
1340  * The data type for a CPU flags field.  (Can be extended to larger unsigned
1341  * types, if needed, limited by ability to update atomically.)
1342  */
1343 typedef ushort_t cpu_flag_t;
1344 
1345 /*
1346  * For compatibility reasons the following typedefs (prefixed o_)
1347  * can't grow regardless of the EFT definition. Although,
1348  * applications should not explicitly use these typedefs
1349  * they may be included via a system header definition.
1350  * WARNING: These typedefs may be removed in a future
1351  * release.
1352  *		ex. the definitions in s5inode.h (now obsoleted)
1353  *			remained small to preserve compatibility
1354  *			in the S5 file system type.
1355  */
1356 typedef ushort_t o_mode_t; /* old file attribute type */
1357 typedef short o_dev_t; /* old device type	*/
1358 typedef ushort_t o_uid_t; /* old UID type		*/
1359 typedef o_uid_t o_gid_t; /* old GID type		*/
1360 typedef short o_nlink_t; /* old file link type	*/
1361 typedef short o_pid_t; /* old process id type	*/
1362 typedef ushort_t o_ino_t; /* old inode type	*/
1363 
1364 
1365 /*
1366  * POSIX and XOPEN Declarations
1367  */
1368 typedef int key_t; /* IPC key type		*/
1369 
1370 
1371 
1372 typedef ulong_t mode_t; /* (historical version) */
1373 
1374 
1375 
1376 
1377 typedef unsigned int uid_t; /* UID type		*/
1378 
1379 
1380 typedef uid_t gid_t; /* GID type		*/
1381 
1382 typedef uint32_t datalink_id_t;
1383 typedef uint32_t vrid_t;
1384 
1385 typedef id_t taskid_t;
1386 typedef id_t projid_t;
1387 typedef id_t poolid_t;
1388 typedef id_t zoneid_t;
1389 typedef id_t ctid_t;
1390 
1391 /*
1392  * POSIX definitions are same as defined in thread.h and synch.h.
1393  * Any changes made to here should be reflected in corresponding
1394  * files as described in comments.
1395  */
1396 typedef uint_t pthread_t; /* = thread_t in thread.h */
1397 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */
1398 
1399 /* "Magic numbers" tagging synchronization object types */
1400 
1401 
1402 
1403 
1404 
1405 typedef struct _pthread_mutex { /* = mutex_t in synch.h */
1406  struct {
1407   uint16_t __pthread_mutex_flag1;
1408   uint8_t __pthread_mutex_flag2;
1409   uint8_t __pthread_mutex_ceiling;
1410   uint16_t __pthread_mutex_type;
1411   uint16_t __pthread_mutex_magic;
1412  } __pthread_mutex_flags;
1413  union {
1414   struct {
1415    uint8_t __pthread_mutex_pad[8];
1416   } __pthread_mutex_lock64;
1417   struct {
1418    uint32_t __pthread_ownerpid;
1419    uint32_t __pthread_lockword;
1420   } __pthread_mutex_lock32;
1421   upad64_t __pthread_mutex_owner64;
1422  } __pthread_mutex_lock;
1423  upad64_t __pthread_mutex_data;
1424 } pthread_mutex_t;
1425 
1426 typedef struct _pthread_cond { /* = cond_t in synch.h */
1427  struct {
1428   uint8_t __pthread_cond_flag[4];
1429   uint16_t __pthread_cond_type;
1430   uint16_t __pthread_cond_magic;
1431  } __pthread_cond_flags;
1432  upad64_t __pthread_cond_data;
1433 } pthread_cond_t;
1434 
1435 /*
1436  * UNIX 98 Extension
1437  */
1438 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */
1439  int32_t __pthread_rwlock_readers;
1440  uint16_t __pthread_rwlock_type;
1441  uint16_t __pthread_rwlock_magic;
1442  pthread_mutex_t __pthread_rwlock_mutex;
1443  pthread_cond_t __pthread_rwlock_readercv;
1444  pthread_cond_t __pthread_rwlock_writercv;
1445 } pthread_rwlock_t;
1446 
1447 /*
1448  * SUSV3
1449  */
1450 typedef struct {
1451  uint32_t __pthread_barrier_count;
1452  uint32_t __pthread_barrier_current;
1453  upad64_t __pthread_barrier_cycle;
1454  upad64_t __pthread_barrier_reserved;
1455  pthread_mutex_t __pthread_barrier_lock;
1456  pthread_cond_t __pthread_barrier_cond;
1457 } pthread_barrier_t;
1458 
1459 typedef pthread_mutex_t pthread_spinlock_t;
1460 
1461 /*
1462  * attributes for threads, dynamically allocated by library
1463  */
1464 typedef struct _pthread_attr {
1465  void *__pthread_attrp;
1466 } pthread_attr_t;
1467 
1468 /*
1469  * attributes for mutex, dynamically allocated by library
1470  */
1471 typedef struct _pthread_mutexattr {
1472  void *__pthread_mutexattrp;
1473 } pthread_mutexattr_t;
1474 
1475 /*
1476  * attributes for cond, dynamically allocated by library
1477  */
1478 typedef struct _pthread_condattr {
1479  void *__pthread_condattrp;
1480 } pthread_condattr_t;
1481 
1482 /*
1483  * pthread_once
1484  */
1485 typedef struct _once {
1486  upad64_t __pthread_once_pad[4];
1487 } pthread_once_t;
1488 
1489 /*
1490  * UNIX 98 Extensions
1491  * attributes for rwlock, dynamically allocated by library
1492  */
1493 typedef struct _pthread_rwlockattr {
1494  void *__pthread_rwlockattrp;
1495 } pthread_rwlockattr_t;
1496 
1497 /*
1498  * SUSV3
1499  * attributes for pthread_barrier_t, dynamically allocated by library
1500  */
1501 typedef struct {
1502  void *__pthread_barrierattrp;
1503 } pthread_barrierattr_t;
1504 
1505 typedef ulong_t dev_t; /* expanded device type */
1506 
1507 
1508 
1509 
1510 
1511 typedef ulong_t nlink_t; /* (historical version) */
1512 typedef long pid_t; /* (historical version) */
1513 
1514 
1515 
1516 
1517 
1518 
1519 
1520 typedef uint_t size_t; /* (historical version) */
1521 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1522 typedef int ssize_t; /* (historical version) */
1523 
1524 
1525 
1526 
1527 
1528 typedef long time_t; /* time of day in seconds */
1529 
1530 
1531 
1532 
1533 typedef long clock_t; /* relative time in a specified resolution */
1534 
1535 
1536 
1537 
1538 typedef int clockid_t; /* clock identifier type */
1539 
1540 
1541 
1542 
1543 typedef int timer_t; /* timer identifier type */
1544 
1545 
1546 
1547 
1548 /* BEGIN CSTYLED */
1549 typedef unsigned char unchar;
1550 typedef unsigned short ushort;
1551 typedef unsigned int uint;
1552 typedef unsigned long ulong;
1553 /* END CSTYLED */
1554 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1555 /*
1556  * The following is the value of type id_t to use to indicate the
1557  * caller's current id.  See procset.h for the type idtype_t
1558  * which defines which kind of id is being specified.
1559  */
1560 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
1561 /*
1562  * The following value of type pfn_t is used to indicate
1563  * invalid page frame number.
1564  */
1565 
1566 
1567 
1568 /* BEGIN CSTYLED */
1569 typedef unsigned char u_char;
1570 typedef unsigned short u_short;
1571 typedef unsigned int u_int;
1572 typedef unsigned long u_long;
1573 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */
1574 typedef quad_t quad; /* used by UFS */
1575 /* END CSTYLED */
1576 
1577 /*
1578  * Nested include for BSD/sockets source compatibility.
1579  * (The select macros used to be defined here).
1580  */
1581 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
1582 /*
1583  * CDDL HEADER START
1584  *
1585  * The contents of this file are subject to the terms of the
1586  * Common Development and Distribution License (the "License").
1587  * You may not use this file except in compliance with the License.
1588  *
1589  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1590  * or http://www.opensolaris.org/os/licensing.
1591  * See the License for the specific language governing permissions
1592  * and limitations under the License.
1593  *
1594  * When distributing Covered Code, include this CDDL HEADER in each
1595  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1596  * If applicable, add the following below this CDDL HEADER, with the
1597  * fields enclosed by brackets "[]" replaced with your own identifying
1598  * information: Portions Copyright [yyyy] [name of copyright owner]
1599  *
1600  * CDDL HEADER END
1601  */
1602 
1603 /*
1604  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1605  *
1606  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
1607  *
1608  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
1609  * Use is subject to license terms.
1610  */
1611 
1612 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
1613 /*	  All Rights Reserved	*/
1614 
1615 /*
1616  * University Copyright- Copyright (c) 1982, 1986, 1988
1617  * The Regents of the University of California
1618  * All Rights Reserved
1619  *
1620  * University Acknowledgment- Portions of this document are derived from
1621  * software developed by the University of California, Berkeley, and its
1622  * contributors.
1623  */
1624 
1625 
1626 
1627 
1628 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1629 /*
1630  * CDDL HEADER START
1631  *
1632  * The contents of this file are subject to the terms of the
1633  * Common Development and Distribution License (the "License").
1634  * You may not use this file except in compliance with the License.
1635  *
1636  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1637  * or http://www.opensolaris.org/os/licensing.
1638  * See the License for the specific language governing permissions
1639  * and limitations under the License.
1640  *
1641  * When distributing Covered Code, include this CDDL HEADER in each
1642  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1643  * If applicable, add the following below this CDDL HEADER, with the
1644  * fields enclosed by brackets "[]" replaced with your own identifying
1645  * information: Portions Copyright [yyyy] [name of copyright owner]
1646  *
1647  * CDDL HEADER END
1648  */
1649 
1650 /*
1651  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1652  * Copyright 2016 Joyent, Inc.
1653  *
1654  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1655  * Use is subject to license terms.
1656  */
1657 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
1658 
1659 
1660 
1661 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
1662 /*
1663  * CDDL HEADER START
1664  *
1665  * The contents of this file are subject to the terms of the
1666  * Common Development and Distribution License, Version 1.0 only
1667  * (the "License").  You may not use this file except in compliance
1668  * with the License.
1669  *
1670  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1671  * or http://www.opensolaris.org/os/licensing.
1672  * See the License for the specific language governing permissions
1673  * and limitations under the License.
1674  *
1675  * When distributing Covered Code, include this CDDL HEADER in each
1676  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1677  * If applicable, add the following below this CDDL HEADER, with the
1678  * fields enclosed by brackets "[]" replaced with your own identifying
1679  * information: Portions Copyright [yyyy] [name of copyright owner]
1680  *
1681  * CDDL HEADER END
1682  */
1683 /*
1684  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
1685  * Use is subject to license terms.
1686  */
1687 
1688 /*
1689  * Implementation-private.  This header should not be included
1690  * directly by an application.  The application should instead
1691  * include <time.h> which includes this header conditionally
1692  * depending on which feature test macros are defined. By default,
1693  * this header is included by <time.h>.  X/Open and POSIX
1694  * standards requirements result in this header being included
1695  * by <time.h> only under a restricted set of conditions.
1696  */
1697 
1698 
1699 
1700 
1701 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1702 /*
1703  * CDDL HEADER START
1704  *
1705  * The contents of this file are subject to the terms of the
1706  * Common Development and Distribution License (the "License").
1707  * You may not use this file except in compliance with the License.
1708  *
1709  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1710  * or http://www.opensolaris.org/os/licensing.
1711  * See the License for the specific language governing permissions
1712  * and limitations under the License.
1713  *
1714  * When distributing Covered Code, include this CDDL HEADER in each
1715  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1716  * If applicable, add the following below this CDDL HEADER, with the
1717  * fields enclosed by brackets "[]" replaced with your own identifying
1718  * information: Portions Copyright [yyyy] [name of copyright owner]
1719  *
1720  * CDDL HEADER END
1721  */
1722 
1723 /*
1724  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1725  * Copyright 2016 Joyent, Inc.
1726  *
1727  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1728  * Use is subject to license terms.
1729  */
1730 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2
1731 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
1732 /*
1733  * Time expressed in seconds and nanoseconds
1734  */
1735 
1736 typedef struct timespec { /* definition per POSIX.4 */
1737  time_t tv_sec; /* seconds */
1738  long tv_nsec; /* and nanoseconds */
1739 } timespec_t;
1740 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
1741 typedef struct timespec timestruc_t; /* definition per SVr4 */
1742 
1743 /*
1744  * The following has been left in for backward compatibility. Portable
1745  * applications should not use the structure name timestruc.
1746  */
1747 
1748 
1749 
1750 
1751 
1752 /*
1753  * Timer specification
1754  */
1755 typedef struct itimerspec { /* definition per POSIX.4 */
1756  struct timespec it_interval; /* timer period */
1757  struct timespec it_value; /* timer expiration */
1758 } itimerspec_t;
1759 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
1760 
1761 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
1762 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
1763 /*	  All Rights Reserved  	*/
1764 
1765 
1766 /*
1767  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
1768  * All rights reserved.  The Berkeley software License Agreement
1769  * specifies the terms and conditions for redistribution.
1770  */
1771 
1772 /*
1773  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1774  *
1775  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
1776  * Use is subject to license terms.
1777  *
1778  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
1779  */
1780 
1781 /*
1782  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
1783  */
1784 
1785 
1786 
1787 
1788 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1789 /*
1790  * CDDL HEADER START
1791  *
1792  * The contents of this file are subject to the terms of the
1793  * Common Development and Distribution License (the "License").
1794  * You may not use this file except in compliance with the License.
1795  *
1796  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1797  * or http://www.opensolaris.org/os/licensing.
1798  * See the License for the specific language governing permissions
1799  * and limitations under the License.
1800  *
1801  * When distributing Covered Code, include this CDDL HEADER in each
1802  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1803  * If applicable, add the following below this CDDL HEADER, with the
1804  * fields enclosed by brackets "[]" replaced with your own identifying
1805  * information: Portions Copyright [yyyy] [name of copyright owner]
1806  *
1807  * CDDL HEADER END
1808  */
1809 
1810 /*
1811  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1812  * Copyright 2016 Joyent, Inc.
1813  *
1814  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1815  * Use is subject to license terms.
1816  */
1817 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
1818 
1819 /*
1820  * Structure returned by gettimeofday(2) system call,
1821  * and used in other calls.
1822  */
1823 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1824 struct timeval {
1825  time_t tv_sec; /* seconds */
1826  suseconds_t tv_usec; /* and microseconds */
1827 };
1828 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1829 struct timezone {
1830  int tz_minuteswest; /* minutes west of Greenwich */
1831  int tz_dsttime; /* type of dst correction */
1832 };
1833 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1834 /*
1835  * Needed for longlong_t type.  Placement of this due to <sys/types.h>
1836  * including <sys/select.h> which relies on the presense of the itimerval
1837  * structure.
1838  */
1839 
1840 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
1841 /*
1842  * CDDL HEADER START
1843  *
1844  * The contents of this file are subject to the terms of the
1845  * Common Development and Distribution License (the "License").
1846  * You may not use this file except in compliance with the License.
1847  *
1848  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1849  * or http://www.opensolaris.org/os/licensing.
1850  * See the License for the specific language governing permissions
1851  * and limitations under the License.
1852  *
1853  * When distributing Covered Code, include this CDDL HEADER in each
1854  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1855  * If applicable, add the following below this CDDL HEADER, with the
1856  * fields enclosed by brackets "[]" replaced with your own identifying
1857  * information: Portions Copyright [yyyy] [name of copyright owner]
1858  *
1859  * CDDL HEADER END
1860  */
1861 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
1862 /*	  All Rights Reserved  	*/
1863 
1864 
1865 /*
1866  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
1867  * Use is subject to license terms.
1868  *
1869  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
1870  * Copyright 2016 Joyent, Inc.
1871  */
1872 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
1873 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1874 /*
1875  * Operations on timevals.
1876  */
1877 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1878 /*
1879  * Names of the interval timers, and structure
1880  * defining a timer setting.
1881  */
1882 
1883 
1884 
1885     /* time and when system is running on */
1886     /* behalf of the process. */
1887 
1888     /* time profiling of multithreaded */
1889     /* programs. */
1890 
1891 
1892 struct itimerval {
1893  struct timeval it_interval; /* timer interval */
1894  struct timeval it_value; /* current value */
1895 };
1896 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1897 /*
1898  *	Definitions for commonly used resolutions.
1899  */
1900 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1901 /*
1902  * Time expressed as a 64-bit nanosecond counter.
1903  */
1904 typedef longlong_t hrtime_t;
1905 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1906 int adjtime(struct timeval *, struct timeval *);
1907 
1908 
1909 
1910 
1911 int futimesat(int, const char *, const struct timeval *);
1912 
1913 
1914 
1915 
1916 
1917 int getitimer(int, struct itimerval *);
1918 int utimes(const char *, const struct timeval *);
1919 
1920 
1921 
1922 
1923 int setitimer(int, struct itimerval *,
1924  struct itimerval *);
1925 
1926 
1927 
1928 
1929 /*
1930  * gettimeofday() and settimeofday() were included in SVr4 due to their
1931  * common use in BSD based applications.  They were to be included exactly
1932  * as in BSD, with two parameters.  However, AT&T/USL noted that the second
1933  * parameter was unused and deleted it, thereby making a routine included
1934  * for compatibility, incompatible.
1935  *
1936  * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two
1937  * parameters.
1938  *
1939  * This has caused general disagreement in the application community as to
1940  * the syntax of these routines.  Solaris defaults to the XSH4.2 definition.
1941  * The flag _SVID_GETTOD may be used to force the SVID version.
1942  */
1943 
1944 
1945 
1946 
1947 
1948 int settimeofday(struct timeval *, void *);
1949 
1950 hrtime_t gethrtime(void);
1951 hrtime_t gethrvtime(void);
1952 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
1953 int gettimeofday(struct timeval *, void *);
1954 
1955 
1956 
1957 
1958 /*
1959  * The inclusion of <time.h> is historical and was added for
1960  * backward compatibility in delta 1.2 when a number of definitions
1961  * were moved out of <sys/time.h>.  More recently, the timespec and
1962  * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
1963  * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
1964  * which is now included by <time.h>.  This change was due to POSIX
1965  * 1003.1b-1993 and X/Open UNIX 98 requirements.  For non-POSIX and
1966  * non-X/Open applications, including this header will still make
1967  * visible these definitions.
1968  */
1969 
1970 
1971 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
1972 /*
1973  * CDDL HEADER START
1974  *
1975  * The contents of this file are subject to the terms of the
1976  * Common Development and Distribution License (the "License").
1977  * You may not use this file except in compliance with the License.
1978  *
1979  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1980  * or http://www.opensolaris.org/os/licensing.
1981  * See the License for the specific language governing permissions
1982  * and limitations under the License.
1983  *
1984  * When distributing Covered Code, include this CDDL HEADER in each
1985  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1986  * If applicable, add the following below this CDDL HEADER, with the
1987  * fields enclosed by brackets "[]" replaced with your own identifying
1988  * information: Portions Copyright [yyyy] [name of copyright owner]
1989  *
1990  * CDDL HEADER END
1991  */
1992 /*	Copyright (c) 1988 AT&T	*/
1993 /*	  All Rights Reserved  	*/
1994 
1995 
1996 /*
1997  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1998  *
1999  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
2000  * Use is subject to license terms.
2001  */
2002 /*
2003  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
2004  * Copyright 2016 Joyent, Inc.
2005  */
2006 
2007 
2008 
2009 
2010 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2011 /*
2012  * CDDL HEADER START
2013  *
2014  * The contents of this file are subject to the terms of the
2015  * Common Development and Distribution License (the "License").
2016  * You may not use this file except in compliance with the License.
2017  *
2018  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2019  * or http://www.opensolaris.org/os/licensing.
2020  * See the License for the specific language governing permissions
2021  * and limitations under the License.
2022  *
2023  * When distributing Covered Code, include this CDDL HEADER in each
2024  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2025  * If applicable, add the following below this CDDL HEADER, with the
2026  * fields enclosed by brackets "[]" replaced with your own identifying
2027  * information: Portions Copyright [yyyy] [name of copyright owner]
2028  *
2029  * CDDL HEADER END
2030  */
2031 
2032 /*
2033  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2034  * Copyright 2016 Joyent, Inc.
2035  *
2036  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2037  * Use is subject to license terms.
2038  */
2039 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2040 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1
2041 /*
2042  * CDDL HEADER START
2043  *
2044  * The contents of this file are subject to the terms of the
2045  * Common Development and Distribution License, Version 1.0 only
2046  * (the "License").  You may not use this file except in compliance
2047  * with the License.
2048  *
2049  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2050  * or http://www.opensolaris.org/os/licensing.
2051  * See the License for the specific language governing permissions
2052  * and limitations under the License.
2053  *
2054  * When distributing Covered Code, include this CDDL HEADER in each
2055  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2056  * If applicable, add the following below this CDDL HEADER, with the
2057  * fields enclosed by brackets "[]" replaced with your own identifying
2058  * information: Portions Copyright [yyyy] [name of copyright owner]
2059  *
2060  * CDDL HEADER END
2061  */
2062 /*	Copyright (c) 1988 AT&T	*/
2063 /*	  All Rights Reserved  	*/
2064 
2065 /*
2066  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2067  * Copyright 2014 PALO, Richard.
2068  *
2069  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2070  * Use is subject to license terms.
2071  */
2072 
2073 /*
2074  * An application should not include this header directly.  Instead it
2075  * should be included only through the inclusion of other Sun headers.
2076  *
2077  * The contents of this header is limited to identifiers specified in the
2078  * C Standard.  Any new identifiers specified in future amendments to the
2079  * C Standard must be placed in this header.  If these new identifiers
2080  * are required to also be in the C++ Standard "std" namespace, then for
2081  * anything other than macro definitions, corresponding "using" directives
2082  * must also be added to <time.h.h>.
2083  */
2084 
2085 
2086 
2087 
2088 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2089 /*
2090  * CDDL HEADER START
2091  *
2092  * The contents of this file are subject to the terms of the
2093  * Common Development and Distribution License (the "License").
2094  * You may not use this file except in compliance with the License.
2095  *
2096  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2097  * or http://www.opensolaris.org/os/licensing.
2098  * See the License for the specific language governing permissions
2099  * and limitations under the License.
2100  *
2101  * When distributing Covered Code, include this CDDL HEADER in each
2102  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2103  * If applicable, add the following below this CDDL HEADER, with the
2104  * fields enclosed by brackets "[]" replaced with your own identifying
2105  * information: Portions Copyright [yyyy] [name of copyright owner]
2106  *
2107  * CDDL HEADER END
2108  */
2109 
2110 /*
2111  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2112  * Copyright 2016 Joyent, Inc.
2113  *
2114  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2115  * Use is subject to license terms.
2116  */
2117 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
2118 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
2119 /*
2120  * This file and its contents are supplied under the terms of the
2121  * Common Development and Distribution License ("CDDL"), version 1.0.
2122  * You may only use this file in accordance with the terms of version
2123  * 1.0 of the CDDL.
2124  *
2125  * A full copy of the text of the CDDL should have accompanied this
2126  * source.  A copy of the CDDL is also available via the Internet at
2127  * http://www.illumos.org/license/CDDL.
2128  */
2129 
2130 /*
2131  * Copyright 2014-2016 PALO, Richard.
2132  */
2133 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
2134 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h"
2135 struct tm { /* see ctime(3) */
2136  int tm_sec;
2137  int tm_min;
2138  int tm_hour;
2139  int tm_mday;
2140  int tm_mon;
2141  int tm_year;
2142  int tm_wday;
2143  int tm_yday;
2144  int tm_isdst;
2145 };
2146 
2147 
2148 extern char *asctime(const struct tm *);
2149 extern clock_t clock(void);
2150 extern char *ctime(const time_t *);
2151 extern double difftime(time_t, time_t);
2152 extern struct tm *gmtime(const time_t *);
2153 extern struct tm *localtime(const time_t *);
2154 extern time_t mktime(struct tm *);
2155 extern time_t time(time_t *);
2156 extern size_t strftime(char *, size_t, const char *,
2157  const struct tm *);
2158 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2159 /*
2160  * C11 requires sys/time_impl.h for the definition of the struct timespec.
2161  */
2162 
2163 
2164 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
2165 /*
2166  * CDDL HEADER START
2167  *
2168  * The contents of this file are subject to the terms of the
2169  * Common Development and Distribution License (the "License").
2170  * You may not use this file except in compliance with the License.
2171  *
2172  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2173  * or http://www.opensolaris.org/os/licensing.
2174  * See the License for the specific language governing permissions
2175  * and limitations under the License.
2176  *
2177  * When distributing Covered Code, include this CDDL HEADER in each
2178  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2179  * If applicable, add the following below this CDDL HEADER, with the
2180  * fields enclosed by brackets "[]" replaced with your own identifying
2181  * information: Portions Copyright [yyyy] [name of copyright owner]
2182  *
2183  * CDDL HEADER END
2184  */
2185 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2186 /*	  All Rights Reserved  	*/
2187 
2188 
2189 /*
2190  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
2191  * Use is subject to license terms.
2192  *
2193  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
2194  * Copyright 2016 Joyent, Inc.
2195  */
2196 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2197 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
2198 /*
2199  * CDDL HEADER START
2200  *
2201  * The contents of this file are subject to the terms of the
2202  * Common Development and Distribution License, Version 1.0 only
2203  * (the "License").  You may not use this file except in compliance
2204  * with the License.
2205  *
2206  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2207  * or http://www.opensolaris.org/os/licensing.
2208  * See the License for the specific language governing permissions
2209  * and limitations under the License.
2210  *
2211  * When distributing Covered Code, include this CDDL HEADER in each
2212  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2213  * If applicable, add the following below this CDDL HEADER, with the
2214  * fields enclosed by brackets "[]" replaced with your own identifying
2215  * information: Portions Copyright [yyyy] [name of copyright owner]
2216  *
2217  * CDDL HEADER END
2218  */
2219 /*
2220  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
2221  * Use is subject to license terms.
2222  */
2223 
2224 /*
2225  * Implementation-private.  This header should not be included
2226  * directly by an application.  The application should instead
2227  * include <time.h> which includes this header conditionally
2228  * depending on which feature test macros are defined. By default,
2229  * this header is included by <time.h>.  X/Open and POSIX
2230  * standards requirements result in this header being included
2231  * by <time.h> only under a restricted set of conditions.
2232  */
2233 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
2234 
2235 
2236 /*
2237  * Allow global visibility for symbols defined in
2238  * C++ "std" namespace in <iso/time_iso.h>.
2239  */
2240 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2241 extern struct tm *gmtime_r(const time_t *,
2242    struct tm *);
2243 extern struct tm *localtime_r(const time_t *,
2244    struct tm *);
2245 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2246 extern char *strptime(const char *, const char *,
2247   struct tm *);
2248 
2249 
2250 
2251 
2252 
2253 /*
2254  * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
2255  * definition of the sigevent structure.  Both require the inclusion
2256  * of <signal.h> and <time.h> when using the timer_create() function.
2257  * However, X/Open also specifies that the sigevent structure be defined
2258  * in <time.h> as described in the header <signal.h>.  This prevents
2259  * compiler warnings for applications that only include <time.h> and not
2260  * also <signal.h>.  The sigval union and the sigevent structure is
2261  * therefore defined both here and in <sys/siginfo.h> which gets included
2262  * via inclusion of <signal.h>.
2263  */
2264 
2265 
2266 union sigval {
2267  int sival_int; /* integer value */
2268  void *sival_ptr; /* pointer value */
2269 };
2270 
2271 
2272 
2273 
2274 struct sigevent {
2275  int sigev_notify; /* notification mode */
2276  int sigev_signo; /* signal number */
2277  union sigval sigev_value; /* signal value */
2278  void (*sigev_notify_function)(union sigval);
2279  pthread_attr_t *sigev_notify_attributes;
2280  int __sigev_pad2;
2281 };
2282 
2283 
2284 extern int clock_getres(clockid_t, struct timespec *);
2285 extern int clock_gettime(clockid_t, struct timespec *);
2286 extern int clock_settime(clockid_t, const struct timespec *);
2287 extern int timer_create(clockid_t, struct sigevent *,
2288   timer_t *);
2289 extern int timer_delete(timer_t);
2290 extern int timer_getoverrun(timer_t);
2291 extern int timer_gettime(timer_t, struct itimerspec *);
2292 extern int timer_settime(timer_t, int, const struct itimerspec *,
2293   struct itimerspec *);
2294 
2295 extern int nanosleep(const struct timespec *, struct timespec *);
2296 extern int clock_nanosleep(clockid_t, int,
2297  const struct timespec *, struct timespec *);
2298 
2299 
2300 
2301 
2302 
2303 
2304 extern void tzset(void);
2305 extern char *tzname[2];
2306 
2307 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */
2308 
2309 
2310 extern long _sysconf(int); /* System Private interface to sysconf() */
2311 
2312     /* 3 is _SC_CLK_TCK */
2313 
2314 
2315 
2316 
2317 
2318 extern long timezone;
2319 extern int daylight;
2320 
2321 
2322 
2323 
2324 
2325 
2326 extern time_t timegm(struct tm *);
2327 extern int cftime(char *, char *, const time_t *);
2328 extern int ascftime(char *, const char *, const struct tm *);
2329 extern long altzone;
2330 
2331 
2332 
2333 
2334 extern struct tm *getdate(const char *);
2335 
2336 
2337 
2338 
2339 
2340 extern int getdate_err;
2341 
2342 
2343 
2344 /*
2345  * ctime_r() & asctime_r() prototypes are defined here.
2346  */
2347 
2348 /*
2349  * Previous releases of Solaris, starting at 2.3, provided definitions of
2350  * various functions as specified in POSIX.1c, Draft 6.  For some of these
2351  * functions, the final POSIX 1003.1c standard had a different number of
2352  * arguments and return values.
2353  *
2354  * The following segment of this header provides support for the standard
2355  * interfaces while supporting applications written under earlier
2356  * releases.  The application defines appropriate values of the feature
2357  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
2358  * whether it was written to expect the Draft 6 or standard versions of
2359  * these interfaces, before including this header.  This header then
2360  * provides a mapping from the source version of the interface to an
2361  * appropriate binary interface.  Such mappings permit an application
2362  * to be built from libraries and objects which have mixed expectations
2363  * of the definitions of these functions.
2364  *
2365  * For applications using the Draft 6 definitions, the binary symbol is the
2366  * same as the source symbol, and no explicit mapping is needed.  For the
2367  * standard interface, the function func() is mapped to the binary symbol
2368  * _posix_func().  The preferred mechanism for the remapping is a compiler
2369  * #pragma.  If the compiler does not provide such a #pragma, the header file
2370  * defines a static function func() which calls the _posix_func() version;
2371  * this has to be done instead of #define since POSIX specifies that an
2372  * application can #undef the symbol and still be bound to the correct
2373  * implementation.  Unfortunately, the statics confuse lint so we fallback to
2374  * #define in that case.
2375  *
2376  * NOTE: Support for the Draft 6 definitions is provided for compatibility
2377  * only.  New applications/libraries should use the standard definitions.
2378  */
2379 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2380 extern char *asctime_r(const struct tm *, char *, int);
2381 extern char *ctime_r(const time_t *, char *, int);
2382 # 292 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
2383 typedef struct _locale *locale_t;
2384 
2385 
2386 extern size_t strftime_l(char *, size_t,
2387  const char *, const struct tm *, locale_t);
2388 
2389 
2390 
2391 
2392 
2393 /*
2394  * Note, the C11 standard requires that all the various base values that are
2395  * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one.
2396  */
2397 
2398 
2399 extern int timespec_get(struct timespec *, int);
2400 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
2401 
2402 
2403 /*
2404  * The inclusion of <sys/select.h> is needed for the FD_CLR,
2405  * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
2406  * select() prototype defined in the XOpen specifications
2407  * beginning with XSH4v2.  Placement required after definition
2408  * for itimerval.
2409  */
2410 
2411 
2412 
2413 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
2414 /*
2415  * CDDL HEADER START
2416  *
2417  * The contents of this file are subject to the terms of the
2418  * Common Development and Distribution License (the "License").
2419  * You may not use this file except in compliance with the License.
2420  *
2421  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2422  * or http://www.opensolaris.org/os/licensing.
2423  * See the License for the specific language governing permissions
2424  * and limitations under the License.
2425  *
2426  * When distributing Covered Code, include this CDDL HEADER in each
2427  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2428  * If applicable, add the following below this CDDL HEADER, with the
2429  * fields enclosed by brackets "[]" replaced with your own identifying
2430  * information: Portions Copyright [yyyy] [name of copyright owner]
2431  *
2432  * CDDL HEADER END
2433  */
2434 
2435 /*
2436  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2437  *
2438  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
2439  *
2440  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
2441  * Use is subject to license terms.
2442  */
2443 
2444 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2445 /*	  All Rights Reserved	*/
2446 
2447 /*
2448  * University Copyright- Copyright (c) 1982, 1986, 1988
2449  * The Regents of the University of California
2450  * All Rights Reserved
2451  *
2452  * University Acknowledgment- Portions of this document are derived from
2453  * software developed by the University of California, Berkeley, and its
2454  * contributors.
2455  */
2456 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
2457 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
2458 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2459 /*
2460  * The sigset_t type is defined in <sys/signal.h> and duplicated
2461  * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
2462  * now allows the visibility of signal.h in this header, however
2463  * an order of inclusion problem occurs as a result of inclusion
2464  * of <sys/select.h> in <signal.h> under certain conditions.
2465  * Rather than include <sys/signal.h> here, we've duplicated
2466  * the sigset_t type instead. This type is required for the XPG6
2467  * introduced pselect() function also declared in this header.
2468  */
2469 
2470 
2471 typedef struct { /* signal set type */
2472  unsigned int __sigbits[4];
2473 } sigset_t;
2474 
2475 
2476 
2477 
2478 /*
2479  * Select uses bit masks of file descriptors in longs.
2480  * These macros manipulate such bit fields.
2481  * FD_SETSIZE may be defined by the user, but the default here
2482  * should be >= NOFILE (param.h).
2483  */
2484 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2485 typedef long fd_mask;
2486 
2487 typedef long fds_mask;
2488 
2489 /*
2490  *  The value of _NBBY needs to be consistant with the value
2491  *  of NBBY in <sys/param.h>.
2492  */
2493 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2494 typedef struct fd_set {
2495 
2496 
2497 
2498  long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
2499 } fd_set;
2500 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
2501 extern int select(int, fd_set *, fd_set *,
2502  fd_set *, struct timeval *);
2503 
2504 
2505 extern int pselect(int, fd_set *, fd_set *,
2506  fd_set *, const struct timespec *,
2507  const sigset_t *);
2508 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
2509 
2510 
2511 
2512 /*
2513  * _VOID was defined to be either void or char but this is not
2514  * required because previous SunOS compilers have accepted the void
2515  * type. However, because many system header and source files use the
2516  * void keyword, the volatile keyword, and ANSI C function prototypes,
2517  * non-ANSI compilers cannot compile the system anyway. The _VOID macro
2518  * should therefore not be used and remains for source compatibility
2519  * only.
2520  */
2521 /* CSTYLED */
2522 # 32 "nblk.c" 2
2523 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
2524 /*
2525  * CDDL HEADER START
2526  *
2527  * The contents of this file are subject to the terms of the
2528  * Common Development and Distribution License (the "License").
2529  * You may not use this file except in compliance with the License.
2530  *
2531  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2532  * or http://www.opensolaris.org/os/licensing.
2533  * See the License for the specific language governing permissions
2534  * and limitations under the License.
2535  *
2536  * When distributing Covered Code, include this CDDL HEADER in each
2537  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2538  * If applicable, add the following below this CDDL HEADER, with the
2539  * fields enclosed by brackets "[]" replaced with your own identifying
2540  * information: Portions Copyright [yyyy] [name of copyright owner]
2541  *
2542  * CDDL HEADER END
2543  */
2544 
2545 /*
2546  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
2547  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
2548  */
2549 
2550 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
2551 /*	  All Rights Reserved  	*/
2552 
2553 /*
2554  * University Copyright- Copyright (c) 1982, 1986, 1988
2555  * The Regents of the University of California
2556  * All Rights Reserved
2557  *
2558  * University Acknowledgment- Portions of this document are derived from
2559  * software developed by the University of California, Berkeley, and its
2560  * contributors.
2561  */
2562 
2563 
2564 
2565 
2566 
2567 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
2568 /*
2569  * CDDL HEADER START
2570  *
2571  * The contents of this file are subject to the terms of the
2572  * Common Development and Distribution License (the "License").
2573  * You may not use this file except in compliance with the License.
2574  *
2575  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2576  * or http://www.opensolaris.org/os/licensing.
2577  * See the License for the specific language governing permissions
2578  * and limitations under the License.
2579  *
2580  * When distributing Covered Code, include this CDDL HEADER in each
2581  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2582  * If applicable, add the following below this CDDL HEADER, with the
2583  * fields enclosed by brackets "[]" replaced with your own identifying
2584  * information: Portions Copyright [yyyy] [name of copyright owner]
2585  *
2586  * CDDL HEADER END
2587  */
2588 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2589 /*	  All Rights Reserved  	*/
2590 
2591 
2592 /*
2593  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
2594  * Use is subject to license terms.
2595  *
2596  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
2597  * Copyright 2016 Joyent, Inc.
2598  */
2599 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
2600 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
2601 /*
2602  * CDDL HEADER START
2603  *
2604  * The contents of this file are subject to the terms of the
2605  * Common Development and Distribution License (the "License").
2606  * You may not use this file except in compliance with the License.
2607  *
2608  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2609  * or http://www.opensolaris.org/os/licensing.
2610  * See the License for the specific language governing permissions
2611  * and limitations under the License.
2612  *
2613  *
2614  * When distributing Covered Code, include this CDDL HEADER in each
2615  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2616  * If applicable, add the following below this CDDL HEADER, with the
2617  * fields enclosed by brackets "[]" replaced with your own identifying
2618  * information: Portions Copyright [yyyy] [name of copyright owner]
2619  *
2620  * CDDL HEADER END
2621  */
2622 
2623 /*
2624  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
2625  * Use is subject to license terms.
2626  * Copyright 2016 Joyent, Inc.
2627  */
2628 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
2629 
2630 
2631 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
2632 /*
2633  * This file and its contents are supplied under the terms of the
2634  * Common Development and Distribution License ("CDDL"), version 1.0.
2635  * You may only use this file in accordance with the terms of version
2636  * 1.0 of the CDDL.
2637  *
2638  * A full copy of the text of the CDDL should have accompanied this
2639  * source.  A copy of the CDDL is also available via the Internet at
2640  * http://www.illumos.org/license/CDDL.
2641  */
2642 
2643 /*
2644  * Copyright 2014-2016 PALO, Richard.
2645  */
2646 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
2647 
2648 
2649 
2650 
2651 
2652 /*
2653  * Fundamental variables; don't change too often.
2654  */
2655 
2656 /*
2657  * _POSIX_VDISABLE has historically been defined in <sys/param.h> since
2658  * an early merge with AT&T source.  It has also historically been defined
2659  * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially
2660  * required the existence of _POSIX_VDISABLE in <sys/termios.h>.
2661  * Subsequent versions of the IEEE Standard as well as the X/Open
2662  * specifications required that _POSIX_VDISABLE be defined in <unistd.h>
2663  * while still allowing for it's existence in other headers.  With the
2664  * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>.
2665  */
2666 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2667     /* compatibility purposes only	*/
2668     /* and will be removed in a	*/
2669     /* later release		*/
2670 
2671 /*
2672  * These define the maximum and minimum allowable values of the
2673  * configurable parameter NGROUPS_MAX.
2674  */
2675 
2676 
2677 
2678 
2679 /*
2680  * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h.
2681  */
2682 
2683 
2684 /*
2685  * Default process priority.  Keep it in sync with limits.h.
2686  */
2687 
2688 
2689 /*
2690  * Fundamental constants of the implementation--cannot be changed easily.
2691  */
2692 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2693 /* REMOTE -- whether machine is primary, secondary, or regular */
2694 
2695 
2696 
2697 /*
2698  * MAXPATHLEN defines the longest permissible path length,
2699  * including the terminating null, after expanding symbolic links.
2700  * TYPICALMAXPATHLEN is used in a few places as an optimization
2701  * with a local buffer on the stack to avoid kmem_alloc().
2702  * MAXSYMLINKS defines the maximum number of symbolic links
2703  * that may be expanded in a path name. It should be set high
2704  * enough to allow all legitimate uses, but halt infinite loops
2705  * reasonably quickly.
2706  * MAXNAMELEN is the length (including the terminating null) of
2707  * the longest permissible file (component) name.
2708  */
2709 
2710 
2711 
2712 
2713 
2714 /*
2715  * MAXLINKNAMELEN defines the longest possible permitted datalink name,
2716  * including the terminating NUL.  Note that this must not be larger
2717  * than related networking constants such as LIFNAMSIZ.
2718  */
2719 
2720 
2721 
2722 
2723 
2724 
2725 /*
2726  * The following are defined to be the same as
2727  * defined in /usr/include/limits.h.  They are
2728  * needed for pipe and FIFO compatibility.
2729  */
2730 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2731 /* macros replacing interleaving functions */
2732 
2733 
2734 
2735 /*
2736  * File system parameters and macros.
2737  *
2738  * The file system is made out of blocks of at most MAXBSIZE units,
2739  * with smaller units (fragments) only in the last direct block.
2740  * MAXBSIZE primarily determines the size of buffers in the buffer
2741  * pool. It may be made larger without any effect on existing
2742  * file systems; however making it smaller make make some file
2743  * systems unmountable.
2744  *
2745  * Note that the blocked devices are assumed to have DEV_BSIZE
2746  * "sectors" and that fragments must be some multiple of this size.
2747  */
2748 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2749 /*	64 bit versions of btodb and dbtob */
2750 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2751 /*
2752  * Size of arg list passed in by user.
2753  */
2754 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2755 /*
2756  * Scale factor for scaled integers used to count
2757  * %cpu time and load averages.
2758  */
2759 
2760 
2761 
2762 /*
2763  * Delay units are in microseconds.
2764  *
2765  * XXX	These macros are not part of the DDI!
2766  */
2767 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2768 /*
2769  * The following is to free utilities from machine dependencies within
2770  * an architecture. Must be included after definition of DEV_BSIZE.
2771  */
2772 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
2773 /*
2774  * The following are assorted machine dependent values which can be
2775  * obtained in a machine independent manner through sysconf(2) or
2776  * sysinfo(2). In order to guarantee that these provide the expected
2777  * value at all times, the System Private interface (leading underscore)
2778  * is used.
2779  */
2780 
2781 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
2782 /*
2783  * CDDL HEADER START
2784  *
2785  * The contents of this file are subject to the terms of the
2786  * Common Development and Distribution License (the "License").
2787  * You may not use this file except in compliance with the License.
2788  *
2789  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2790  * or http://www.opensolaris.org/os/licensing.
2791  * See the License for the specific language governing permissions
2792  * and limitations under the License.
2793  *
2794  * When distributing Covered Code, include this CDDL HEADER in each
2795  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2796  * If applicable, add the following below this CDDL HEADER, with the
2797  * fields enclosed by brackets "[]" replaced with your own identifying
2798  * information: Portions Copyright [yyyy] [name of copyright owner]
2799  *
2800  * CDDL HEADER END
2801  */
2802 
2803 /*
2804  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
2805  *	  All Rights Reserved
2806  *
2807  */
2808 
2809 /*
2810  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
2811  * Use is subject to license terms.
2812  */
2813 
2814 /*
2815  * WARNING: This is an implementation-specific header,
2816  * its contents are not guaranteed. Applications
2817  * should include <unistd.h> and not this header.
2818  */
2819 
2820 
2821 
2822 
2823 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2824 /*
2825  * CDDL HEADER START
2826  *
2827  * The contents of this file are subject to the terms of the
2828  * Common Development and Distribution License (the "License").
2829  * You may not use this file except in compliance with the License.
2830  *
2831  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2832  * or http://www.opensolaris.org/os/licensing.
2833  * See the License for the specific language governing permissions
2834  * and limitations under the License.
2835  *
2836  * When distributing Covered Code, include this CDDL HEADER in each
2837  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2838  * If applicable, add the following below this CDDL HEADER, with the
2839  * fields enclosed by brackets "[]" replaced with your own identifying
2840  * information: Portions Copyright [yyyy] [name of copyright owner]
2841  *
2842  * CDDL HEADER END
2843  */
2844 
2845 /*
2846  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2847  * Copyright 2016 Joyent, Inc.
2848  *
2849  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2850  * Use is subject to license terms.
2851  */
2852 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2
2853 
2854 
2855 
2856 
2857 
2858 /* command names for confstr */
2859 
2860 
2861 
2862 /*
2863  * command names for large file configuration information
2864  */
2865 /* large file compilation environment configuration */
2866 
2867 
2868 
2869 
2870 /* transitional large file interface configuration */
2871 
2872 
2873 
2874 
2875 
2876 /* UNIX 98 */
2877 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2878 /* UNIX 03 */
2879 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2880 /* command names for POSIX sysconf */
2881 
2882 /* POSIX.1 names */
2883 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2884 /* SVR4 names */
2885 
2886 
2887 
2888 
2889 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
2890 
2891 
2892 
2893 
2894 /* POSIX.4 names */
2895 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2896 /* XPG4 names */
2897 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2898 /* additional XSH4/XCU4 command names for sysconf */
2899 
2900 
2901 
2902 /* additional XPG4v2 (UNIX 95) command names */
2903 
2904 
2905 
2906 
2907 
2908 /* defined for XTI (XNS Issue 5) */
2909 
2910 
2911 
2912 
2913 
2914 
2915 
2916 /*
2917  * Hardware specific items
2918  * Note that not all items are supported on all architectures
2919  */
2920 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2921 /*
2922  * POSIX.1c (pthreads) names. These values are defined above
2923  * the sub-500 range. See psarc case 1995/257.
2924  */
2925 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2926 /* UNIX 98 */
2927 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2928 /* UNIX 03 */
2929 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2930 /* command names for POSIX pathconf */
2931 
2932 /* POSIX.1 names */
2933 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2934 /* POSIX.4 names */
2935 
2936 
2937 
2938 /* UNIX 03 names */
2939 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2940 /* UNIX 08 names */
2941 
2942 
2943 /*
2944  * Large File Summit names
2945  *
2946  * This value matches the MIPS ABI choice, but leaves a large gap in the
2947  * value space.
2948  */
2949 
2950 
2951 /*
2952  * Extended attributes
2953  */
2954 
2955 
2956 
2957 /*
2958  * If you add a _PC define above 101, you must change _PC_LAST (and truss).
2959  */
2960 
2961 
2962 /*
2963  * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
2964  */
2965 
2966 
2967 
2968 /*
2969  * The value of 0 is returned when
2970  * ACL's are not supported
2971  */
2972 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2973 /*
2974  * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
2975  * should not rely on this value, it has been aligned with the current
2976  * standard to avoid confusion if used.
2977  */
2978 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
2979 /* UNIX 03 names */
2980 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
2981 
2982 
2983 
2984 
2985 
2986 
2987 extern long _sysconf(int); /* System Private interface to sysconf() */
2988 # 33 "nblk.c" 2
2989 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h" 1
2990 /*
2991  * CDDL HEADER START
2992  *
2993  * The contents of this file are subject to the terms of the
2994  * Common Development and Distribution License (the "License").
2995  * You may not use this file except in compliance with the License.
2996  *
2997  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2998  * or http://www.opensolaris.org/os/licensing.
2999  * See the License for the specific language governing permissions
3000  * and limitations under the License.
3001  *
3002  * When distributing Covered Code, include this CDDL HEADER in each
3003  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3004  * If applicable, add the following below this CDDL HEADER, with the
3005  * fields enclosed by brackets "[]" replaced with your own identifying
3006  * information: Portions Copyright [yyyy] [name of copyright owner]
3007  *
3008  * CDDL HEADER END
3009  */
3010 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3011 /*	  All Rights Reserved  	*/
3012 
3013 
3014 /*
3015  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3016  * Use is subject to license terms.
3017  *
3018  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3019  *
3020  * Copyright 2018 Joyent Inc.
3021  */
3022 
3023 
3024 
3025 
3026 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
3027 /*
3028  * CDDL HEADER START
3029  *
3030  * The contents of this file are subject to the terms of the
3031  * Common Development and Distribution License (the "License").
3032  * You may not use this file except in compliance with the License.
3033  *
3034  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3035  * or http://www.opensolaris.org/os/licensing.
3036  * See the License for the specific language governing permissions
3037  * and limitations under the License.
3038  *
3039  * When distributing Covered Code, include this CDDL HEADER in each
3040  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3041  * If applicable, add the following below this CDDL HEADER, with the
3042  * fields enclosed by brackets "[]" replaced with your own identifying
3043  * information: Portions Copyright [yyyy] [name of copyright owner]
3044  *
3045  * CDDL HEADER END
3046  */
3047 
3048 /*
3049  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
3050  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
3051  */
3052 
3053 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
3054 /*	  All Rights Reserved  	*/
3055 
3056 /*
3057  * University Copyright- Copyright (c) 1982, 1986, 1988
3058  * The Regents of the University of California
3059  * All Rights Reserved
3060  *
3061  * University Acknowledgment- Portions of this document are derived from
3062  * software developed by the University of California, Berkeley, and its
3063  * contributors.
3064  */
3065 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h" 2
3066 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1
3067 /*
3068  * This file and its contents are supplied under the terms of the
3069  * Common Development and Distribution License ("CDDL"), version 1.0.
3070  * You may only use this file in accordance with the terms of version
3071  * 1.0 of the CDDL.
3072  *
3073  * A full copy of the text of the CDDL should have accompanied this
3074  * source.  A copy of the CDDL is also available via the Internet at
3075  * http://www.illumos.org/license/CDDL.
3076  */
3077 
3078 /*
3079  * Copyright 2017 Toomas Soome <tsoome@me.com>
3080  */
3081 
3082 
3083 
3084 
3085 /*
3086  * Commonly used macros and definitions.
3087  */
3088 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h"
3089 /*
3090  * We must not expose container_of() to userland, but we want it
3091  * to be available for early boot and for the kernel.
3092  */
3093 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h" 2
3094 
3095 
3096 
3097 
3098 
3099 /*
3100  * Some macros for units conversion
3101  */
3102 /*
3103  * Disk blocks (sectors) and bytes.
3104  */
3105 
3106 
3107 
3108 
3109 
3110 /* common macros */
3111 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
3112 /*
3113  * WARNING: The device number macros defined here should not be used by device
3114  * drivers or user software. Device drivers should use the device functions
3115  * defined in the DDI/DKI interface (see also ddi.h). Application software
3116  * should make use of the library routines available in makedev(3). A set of
3117  * new device macros are provided to operate on the expanded device number
3118  * format supported in SVR4. Macro versions of the DDI device functions are
3119  * provided for use by kernel proper routines only. Macro routines bmajor(),
3120  * major(), minor(), emajor(), eminor(), and makedev() will be removed or
3121  * their definitions changed at the next major release following SVR4.
3122  */
3123 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
3124     /* For 3b2 hardware devices the minor is */
3125     /* restricted to 256 (0-255) */
3126 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
3127 /* major part of a device external from the kernel (same as emajor below) */
3128 
3129 
3130 
3131 /* minor part of a device external from the kernel  (same as eminor below) */
3132 
3133 
3134 
3135 
3136 
3137 /* create old device number */
3138 
3139 
3140 
3141 /* make an new device number */
3142 
3143 
3144 
3145 
3146 /*
3147  * emajor() allows kernel/driver code to print external major numbers
3148  * eminor() allows kernel/driver code to print external minor numbers
3149  */
3150 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
3151 /*
3152  * get external major and minor device
3153  * components from expanded device number
3154  */
3155 
3156 
3157 
3158 
3159 /*
3160  * These are versions of the kernel routines for compressing and
3161  * expanding long device numbers that don't return errors.
3162  */
3163 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
3164 /* convert to old (SVR3.2) dev format */
3165 
3166 
3167 
3168 
3169 
3170 
3171 /* convert to new (SVR4) dev format */
3172 
3173 
3174 
3175 
3176 
3177 /*
3178  * Macro for checking power of 2 address alignment.
3179  */
3180 
3181 
3182 /*
3183  * Macros for counting and rounding.
3184  */
3185 
3186 
3187 
3188 /*
3189  * Macro to determine if value is a power of 2
3190  */
3191 
3192 
3193 /*
3194  * Macros for various sorts of alignment and rounding.  The "align" must
3195  * be a power of 2.  Often times it is a block, sector, or page.
3196  */
3197 
3198 /*
3199  * return x rounded down to an align boundary
3200  * eg, P2ALIGN(1200, 1024) == 1024 (1*align)
3201  * eg, P2ALIGN(1024, 1024) == 1024 (1*align)
3202  * eg, P2ALIGN(0x1234, 0x100) == 0x1200 (0x12*align)
3203  * eg, P2ALIGN(0x5600, 0x100) == 0x5600 (0x56*align)
3204  */
3205 
3206 
3207 /*
3208  * return x % (mod) align
3209  * eg, P2PHASE(0x1234, 0x100) == 0x34 (x-0x12*align)
3210  * eg, P2PHASE(0x5600, 0x100) == 0x00 (x-0x56*align)
3211  */
3212 
3213 
3214 /*
3215  * return how much space is left in this block (but if it's perfectly
3216  * aligned, return 0).
3217  * eg, P2NPHASE(0x1234, 0x100) == 0xcc (0x13*align-x)
3218  * eg, P2NPHASE(0x5600, 0x100) == 0x00 (0x56*align-x)
3219  */
3220 
3221 
3222 /*
3223  * return x rounded up to an align boundary
3224  * eg, P2ROUNDUP(0x1234, 0x100) == 0x1300 (0x13*align)
3225  * eg, P2ROUNDUP(0x5600, 0x100) == 0x5600 (0x56*align)
3226  */
3227 
3228 
3229 /*
3230  * return the ending address of the block that x is in
3231  * eg, P2END(0x1234, 0x100) == 0x12ff (0x13*align - 1)
3232  * eg, P2END(0x5600, 0x100) == 0x56ff (0x57*align - 1)
3233  */
3234 
3235 
3236 /*
3237  * return x rounded up to the next phase (offset) within align.
3238  * phase should be < align.
3239  * eg, P2PHASEUP(0x1234, 0x100, 0x10) == 0x1310 (0x13*align + phase)
3240  * eg, P2PHASEUP(0x5600, 0x100, 0x10) == 0x5610 (0x56*align + phase)
3241  */
3242 
3243 
3244 /*
3245  * return TRUE if adding len to off would cause it to cross an align
3246  * boundary.
3247  * eg, P2BOUNDARY(0x1234, 0xe0, 0x100) == TRUE (0x1234 + 0xe0 == 0x1314)
3248  * eg, P2BOUNDARY(0x1234, 0x50, 0x100) == FALSE (0x1234 + 0x50 == 0x1284)
3249  */
3250 
3251 
3252 
3253 /*
3254  * Return TRUE if they have the same highest bit set.
3255  * eg, P2SAMEHIGHBIT(0x1234, 0x1001) == TRUE (the high bit is 0x1000)
3256  * eg, P2SAMEHIGHBIT(0x1234, 0x3010) == FALSE (high bit of 0x3010 is 0x2000)
3257  */
3258 
3259 
3260 /*
3261  * Typed version of the P2* macros.  These macros should be used to ensure
3262  * that the result is correctly calculated based on the data type of (x),
3263  * which is passed in as the last argument, regardless of the data
3264  * type of the alignment.  For example, if (x) is of type uint64_t,
3265  * and we want to round it up to a page boundary using "PAGESIZE" as
3266  * the alignment, we can do either
3267  *	P2ROUNDUP(x, (uint64_t)PAGESIZE)
3268  * or
3269  *	P2ROUNDUP_TYPED(x, PAGESIZE, uint64_t)
3270  */
3271 # 325 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/sysmacros.h"
3272 /*
3273  * Macros to atomically increment/decrement a variable.  mutex and var
3274  * must be pointers.
3275  */
3276 
3277 
3278 
3279 /*
3280  * Macros to declare bitfields - the order in the parameter list is
3281  * Low to High - that is, declare bit 0 first.  We only support 8-bit bitfields
3282  * because if a field crosses a byte boundary it's not likely to be meaningful
3283  * without reassembly in its nonnative endianness.
3284  */
3285 # 34 "nblk.c" 2
3286 
3287 /*
3288  * This should not be a constant, but for ufs it is 12, not 10 like for s5.
3289  */
3290 
3291 
3292 fsblkcnt_t
3293 nblk(fsblkcnt_t size, ulong_t bsize, ulong_t frsize)
3294 {
3295  fsblkcnt_t tot, count, count1, d_indirect, t_indirect, ind;
3296  fsblkcnt_t frags = 0;
3297 
3298  if (size == 0 || bsize == 0)
3299   return (1);
3300 
3301  /*
3302 	 * Need to keep track of indirect blocks.
3303 	 */
3304 
3305  ind = (((bsize)+((sizeof (daddr_t))-1))/(sizeof (daddr_t)));
3306  d_indirect = ind + 12; /* double indirection */
3307  t_indirect = ind * (ind + 1) + 12; /* triple indirection */
3308 
3309  tot = (((size)+((bsize)-1))/(bsize));
3310 
3311  if (tot > t_indirect) {
3312   count1 = (tot - ind * ind - (12 + 1)) / ind;
3313   count = count1 + count1 / ind + ind + 3;
3314  } else if (tot > d_indirect) {
3315   count = (tot - (12 + 1)) / ind + 2;
3316  } else if (tot > 12) {
3317   count = 1;
3318  } else {
3319   count = 0;
3320   frags = (frsize > 0) ?
3321       ((((size)+((frsize)-1))/(frsize))*(frsize)) :
3322       ((((size)+((bsize)-1))/(bsize))*(bsize));
3323  }
3324 
3325  /* Accounting for the indirect blocks, the total becomes */
3326  tot += count;
3327 
3328  /*
3329 	 * calculate number of 512 byte blocks, for frag or full block cases.
3330 	 */
3331  if (!frags)
3332   tot *= (((bsize)+((512)-1))/(512));
3333  else
3334   tot = (((frags)+((512)-1))/(512));
3335  return (tot);
3336 }
3337