1 # 1 "setup_temporary_directory.c"
2 # 1 "<built-in>"
3 # 1 "<command-line>"
4 # 1 "setup_temporary_directory.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 2004 Sun Microsystems, Inc.  All rights reserved.
28  * Use is subject to license terms.
29  */
30 
31 
32 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
33 /*
34  * CDDL HEADER START
35  *
36  * The contents of this file are subject to the terms of the
37  * Common Development and Distribution License (the "License").
38  * You may not use this file except in compliance with the License.
39  *
40  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
41  * or http://www.opensolaris.org/os/licensing.
42  * See the License for the specific language governing permissions
43  * and limitations under the License.
44  *
45  * When distributing Covered Code, include this CDDL HEADER in each
46  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
47  * If applicable, add the following below this CDDL HEADER, with the
48  * fields enclosed by brackets "[]" replaced with your own identifying
49  * information: Portions Copyright [yyyy] [name of copyright owner]
50  *
51  * CDDL HEADER END
52  */
53 
54 /*
55  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
56  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
57  */
58 
59 /*	Copyright (c) 1988 AT&T	*/
60 /*	  All Rights Reserved  	*/
61 
62 /*
63  * User-visible pieces of the ANSI C standard I/O package.
64  */
65 
66 
67 
68 
69 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
70 /*
71  * CDDL HEADER START
72  *
73  * The contents of this file are subject to the terms of the
74  * Common Development and Distribution License (the "License").
75  * You may not use this file except in compliance with the License.
76  *
77  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
78  * or http://www.opensolaris.org/os/licensing.
79  * See the License for the specific language governing permissions
80  * and limitations under the License.
81  *
82  * When distributing Covered Code, include this CDDL HEADER in each
83  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
84  * If applicable, add the following below this CDDL HEADER, with the
85  * fields enclosed by brackets "[]" replaced with your own identifying
86  * information: Portions Copyright [yyyy] [name of copyright owner]
87  *
88  * CDDL HEADER END
89  */
90 
91 /*
92  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
93  * Copyright 2016 Joyent, Inc.
94  *
95  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
96  * Use is subject to license terms.
97  */
98 
99 
100 
101 
102 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1
103 /*
104  * CDDL HEADER START
105  *
106  * The contents of this file are subject to the terms of the
107  * Common Development and Distribution License, Version 1.0 only
108  * (the "License").  You may not use this file except in compliance
109  * with the License.
110  *
111  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
112  * or http://www.opensolaris.org/os/licensing.
113  * See the License for the specific language governing permissions
114  * and limitations under the License.
115  *
116  * When distributing Covered Code, include this CDDL HEADER in each
117  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
118  * If applicable, add the following below this CDDL HEADER, with the
119  * fields enclosed by brackets "[]" replaced with your own identifying
120  * information: Portions Copyright [yyyy] [name of copyright owner]
121  *
122  * CDDL HEADER END
123  */
124 /*
125  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
126  * Use is subject to license terms.
127  */
128 /*
129  * Copyright 2015 EveryCity Ltd. All rights reserved.
130  */
131 
132 
133 
134 
135 /*
136  * This file contains definitions designed to enable different compilers
137  * to be used harmoniously on Solaris systems.
138  */
139 
140 
141 
142 
143 
144 /*
145  * Allow for version tests for compiler bugs and features.
146  */
147 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
148 /*
149  * analogous to lint's PRINTFLIKEn
150  */
151 
152 
153 
154 
155 
156 /*
157  * Handle the kernel printf routines that can take '%b' too
158  */
159 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
160 /*
161  * This one's pretty obvious -- the function never returns
162  */
163 
164 
165 /*
166  * The function is 'extern inline' and expects GNU C89 behaviour, not C99
167  * behaviour.
168  *
169  * Should only be used on 'extern inline' definitions for GCC.
170  */
171 
172 
173 
174 
175 
176 
177 /*
178  * The function has control flow such that it may return multiple times (in
179  * the manner of setjmp or vfork)
180  */
181 
182 
183 
184 
185 
186 
187 /*
188  * This is an appropriate label for functions that do not
189  * modify their arguments, e.g. strlen()
190  */
191 
192 
193 /*
194  * This is a stronger form of __pure__. Can be used for functions
195  * that do not modify their arguments and don't depend on global
196  * memory.
197  */
198 
199 
200 
201 
202 /*
203  * This attribute, attached to a variable, means that the variable is meant to
204  * be possibly unused. GCC will not produce a warning for this variable.
205  */
206 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h"
207 /*
208  * Shorthand versions for readability
209  */
210 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
211 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
212 /*
213  * CDDL HEADER START
214  *
215  * The contents of this file are subject to the terms of the
216  * Common Development and Distribution License (the "License").
217  * You may not use this file except in compliance with the License.
218  *
219  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
220  * or http://www.opensolaris.org/os/licensing.
221  * See the License for the specific language governing permissions
222  * and limitations under the License.
223  *
224  *
225  * When distributing Covered Code, include this CDDL HEADER in each
226  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
227  * If applicable, add the following below this CDDL HEADER, with the
228  * fields enclosed by brackets "[]" replaced with your own identifying
229  * information: Portions Copyright [yyyy] [name of copyright owner]
230  *
231  * CDDL HEADER END
232  */
233 
234 /*
235  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
236  * Use is subject to license terms.
237  * Copyright 2016 Joyent, Inc.
238  */
239 
240 
241 
242 
243 /*
244  * This header file serves to group a set of well known defines and to
245  * set these for each instruction set architecture.  These defines may
246  * be divided into two groups;  characteristics of the processor and
247  * implementation choices for Solaris on a processor.
248  *
249  * Processor Characteristics:
250  *
251  * _LITTLE_ENDIAN / _BIG_ENDIAN:
252  *	The natural byte order of the processor.  A pointer to an int points
253  *	to the least/most significant byte of that int.
254  *
255  * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
256  *	The processor specific direction of stack growth.  A push onto the
257  *	stack increases/decreases the stack pointer, so it stores data at
258  *	successively higher/lower addresses.  (Stackless machines ignored
259  *	without regrets).
260  *
261  * _LONG_LONG_HTOL / _LONG_LONG_LTOH:
262  *	A pointer to a long long points to the most/least significant long
263  *	within that long long.
264  *
265  * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
266  *	The C compiler assigns bit fields from the high/low to the low/high end
267  *	of an int (most to least significant vs. least to most significant).
268  *
269  * _IEEE_754:
270  *	The processor (or supported implementations of the processor)
271  *	supports the ieee-754 floating point standard.  No other floating
272  *	point standards are supported (or significant).  Any other supported
273  *	floating point formats are expected to be cased on the ISA processor
274  *	symbol.
275  *
276  * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
277  *	The C Compiler implements objects of type `char' as `unsigned' or
278  *	`signed' respectively.  This is really an implementation choice of
279  *	the compiler writer, but it is specified in the ABI and tends to
280  *	be uniform across compilers for an instruction set architecture.
281  *	Hence, it has the properties of a processor characteristic.
282  *
283  * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
284  * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
285  * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
286  *	The ABI defines alignment requirements of each of the primitive
287  *	object types.  Some, if not all, may be hardware requirements as
288  * 	well.  The values are expressed in "byte-alignment" units.
289  *
290  * _MAX_ALIGNMENT:
291  *	The most stringent alignment requirement as specified by the ABI.
292  *	Equal to the maximum of all the above _XXX_ALIGNMENT values.
293  *
294  * _MAX_ALIGNMENT_TYPE:
295  * 	The name of the C type that has the value descried in _MAX_ALIGNMENT.
296  *
297  * _ALIGNMENT_REQUIRED:
298  *	True or false (1 or 0) whether or not the hardware requires the ABI
299  *	alignment.
300  *
301  * _LONG_LONG_ALIGNMENT_32
302  *	The 32-bit ABI supported by a 64-bit kernel may have different
303  *	alignment requirements for primitive object types.  The value of this
304  *	identifier is expressed in "byte-alignment" units.
305  *
306  * _HAVE_CPUID_INSN
307  *	This indicates that the architecture supports the 'cpuid'
308  *	instruction as defined by Intel.  (Intel allows other vendors
309  *	to extend the instruction for their own purposes.)
310  *
311  *
312  * Implementation Choices:
313  *
314  * _ILP32 / _LP64:
315  *	This specifies the compiler data type implementation as specified in
316  *	the relevant ABI.  The choice between these is strongly influenced
317  *	by the underlying hardware, but is not absolutely tied to it.
318  *	Currently only two data type models are supported:
319  *
320  *	_ILP32:
321  *		Int/Long/Pointer are 32 bits.  This is the historical UNIX
322  *		and Solaris implementation.  Due to its historical standing,
323  *		this is the default case.
324  *
325  *	_LP64:
326  *		Long/Pointer are 64 bits, Int is 32 bits.  This is the chosen
327  *		implementation for 64-bit ABIs such as SPARC V9.
328  *
329  *	_I32LPx:
330  *		A compilation environment where 'int' is 32-bit, and
331  *		longs and pointers are simply the same size.
332  *
333  *	In all cases, Char is 8 bits and Short is 16 bits.
334  *
335  * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
336  *	This specifies the form of the disk VTOC (or label):
337  *
338  *	_SUNOS_VTOC_8:
339  *		This is a VTOC form which is upwardly compatible with the
340  *		SunOS 4.x disk label and allows 8 partitions per disk.
341  *
342  *	_SUNOS_VTOC_16:
343  *		In this format the incore vtoc image matches the ondisk
344  *		version.  It allows 16 slices per disk, and is not
345  *		compatible with the SunOS 4.x disk label.
346  *
347  *	Note that these are not the only two VTOC forms possible and
348  *	additional forms may be added.  One possible form would be the
349  *	SVr4 VTOC form.  The symbol for that is reserved now, although
350  *	it is not implemented.
351  *
352  *	_SVR4_VTOC_16:
353  *		This VTOC form is compatible with the System V Release 4
354  *		VTOC (as implemented on the SVr4 Intel and 3b ports) with
355  *		16 partitions per disk.
356  *
357  *
358  * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
359  *	This describes the type of addresses used by system DMA:
360  *
361  *	_DMA_USES_PHYSADDR:
362  *		This type of DMA, used in the x86 implementation,
363  *		requires physical addresses for DMA buffers.  The 24-bit
364  *		addresses used by some legacy boards is the source of the
365  *		"low-memory" (<16MB) requirement for some devices using DMA.
366  *
367  *	_DMA_USES_VIRTADDR:
368  *		This method of DMA allows the use of virtual addresses for
369  *		DMA transfers.
370  *
371  * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
372  *      This indicates the presence/absence of an fdisk table.
373  *
374  *      _FIRMWARE_NEEDS_FDISK
375  *              The fdisk table is required by system firmware.  If present,
376  *              it allows a disk to be subdivided into multiple fdisk
377  *              partitions, each of which is equivalent to a separate,
378  *              virtual disk.  This enables the co-existence of multiple
379  *              operating systems on a shared hard disk.
380  *
381  *      _NO_FDISK_PRESENT
382  *              If the fdisk table is absent, it is assumed that the entire
383  *              media is allocated for a single operating system.
384  *
385  * _HAVE_TEM_FIRMWARE
386  *	Defined if this architecture has the (fallback) option of
387  *	using prom_* calls for doing I/O if a suitable kernel driver
388  *	is not available to do it.
389  *
390  * _DONT_USE_1275_GENERIC_NAMES
391  *		Controls whether or not device tree node names should
392  *		comply with the IEEE 1275 "Generic Names" Recommended
393  *		Practice. With _DONT_USE_GENERIC_NAMES, device-specific
394  *		names identifying the particular device will be used.
395  *
396  * __i386_COMPAT
397  *	This indicates whether the i386 ABI is supported as a *non-native*
398  *	mode for the platform.  When this symbol is defined:
399  *	-	32-bit xstat-style system calls are enabled
400  *	-	32-bit xmknod-style system calls are enabled
401  *	-	32-bit system calls use i386 sizes -and- alignments
402  *
403  *	Note that this is NOT defined for the i386 native environment!
404  *
405  * __x86
406  *	This is ONLY a synonym for defined(__i386) || defined(__amd64)
407  *	which is useful only insofar as these two architectures share
408  *	common attributes.  Analogous to __sparc.
409  *
410  * _PSM_MODULES
411  *	This indicates whether or not the implementation uses PSM
412  *	modules for processor support, reading /etc/mach from inside
413  *	the kernel to extract a list.
414  *
415  * _RTC_CONFIG
416  *	This indicates whether or not the implementation uses /etc/rtc_config
417  *	to configure the real-time clock in the kernel.
418  *
419  * _UNIX_KRTLD
420  *	This indicates that the implementation uses a dynamically
421  *	linked unix + krtld to form the core kernel image at boot
422  *	time, or (in the absence of this symbol) a prelinked kernel image.
423  *
424  * _OBP
425  *	This indicates the firmware interface is OBP.
426  *
427  * _SOFT_HOSTID
428  *	This indicates that the implementation obtains the hostid
429  *	from the file /etc/hostid, rather than from hardware.
430  */
431 
432 
433 
434 
435 
436 /*
437  * The following set of definitions characterize Solaris on AMD's
438  * 64-bit systems.
439  */
440 # 305 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
441 /*
442  * Define the appropriate "processor characteristics"
443  */
444 # 333 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
445 /*
446  * Define the appropriate "implementation choices".
447  */
448 # 351 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h"
449 /*
450  * The following set of definitions characterize the Solaris on SPARC systems.
451  *
452  * The symbol __sparc indicates any of the SPARC family of processor
453  * architectures.  This includes SPARC V7, SPARC V8 and SPARC V9.
454  *
455  * The symbol __sparcv8 indicates the 32-bit SPARC V8 architecture as defined
456  * by Version 8 of the SPARC Architecture Manual.  (SPARC V7 is close enough
457  * to SPARC V8 for the former to be subsumed into the latter definition.)
458  *
459  * The symbol __sparcv9 indicates the 64-bit SPARC V9 architecture as defined
460  * by Version 9 of the SPARC Architecture Manual.
461  *
462  * The symbols __sparcv8 and __sparcv9 are mutually exclusive, and are only
463  * relevant when the symbol __sparc is defined.
464  */
465 /*
466  * XXX Due to the existence of 5110166, "defined(__sparcv9)" needs to be added
467  * to support backwards builds.  This workaround should be removed in s10_71.
468  */
469 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2
470 
471 
472 
473 
474 
475 /*
476  * Values of _POSIX_C_SOURCE
477  *
478  *		undefined   not a POSIX compilation
479  *		1	    POSIX.1-1990 compilation
480  *		2	    POSIX.2-1992 compilation
481  *		199309L	    POSIX.1b-1993 compilation (Real Time)
482  *		199506L	    POSIX.1c-1995 compilation (POSIX Threads)
483  *		200112L	    POSIX.1-2001 compilation (Austin Group Revision)
484  *		200809L     POSIX.1-2008 compilation
485  */
486 
487 
488 
489 
490 /*
491  * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
492  * and _STDC_C99 are Sun implementation specific macros created in order to
493  * compress common standards specified feature test macros for easier reading.
494  * These macros should not be used by the application developer as
495  * unexpected results may occur. Instead, the user should reference
496  * standards(5) for correct usage of the standards feature test macros.
497  *
498  * __XOPEN_OR_POSIX     Used in cases where a symbol is defined by both
499  *                      X/Open or POSIX or in the negative, when neither
500  *                      X/Open or POSIX defines a symbol.
501  *
502  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
503  *                      by the compiler. For Sun compilers the value of
504  *                      __STDC__ is either 1, 0, or not defined based on the
505  *                      compilation mode (see cc(1)). When the value of
506  *                      __STDC__ is 1 and in the absence of any other feature
507  *                      test macros, the namespace available to the application
508  *                      is limited to only those symbols defined by the C
509  *                      Standard. _STRICT_STDC provides a more readable means
510  *                      of identifying symbols defined by the standard, or in
511  *                      the negative, symbols that are extensions to the C
512  *                      Standard. See additional comments for GNU C differences.
513  *
514  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
515  *                      defined by the compiler and indicates the version of
516  *                      the C standard. A value of 199901L indicates a
517  *                      compiler that complies with ISO/IEC 9899:1999, other-
518  *                      wise known as the C99 standard.
519  *
520  * _STDC_C11		Like _STDC_C99 except that the value of __STDC_VERSION__
521  *                      is 201112L indicating a compiler that compiles with
522  *                      ISO/IEXC 9899:2011, otherwise known as the C11 standard.
523  *
524  * _STRICT_SYMBOLS	Used in cases where symbol visibility is restricted
525  *                      by the standards, and the user has not explicitly
526  *                      relaxed the strictness via __EXTENSIONS__.
527  */
528 
529 
530 
531 
532 
533 /*
534  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
535  * 99899:2011 specify the following predefined macro name:
536  *
537  * __STDC__	The integer constant 1, intended to indicate a conforming
538  *		implementation.
539  *
540  * Furthermore, a strictly conforming program shall use only those features
541  * of the language and library specified in these standards. A conforming
542  * implementation shall accept any strictly conforming program.
543  *
544  * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
545  * strictly conforming environments and __STDC__ to 0 for environments that
546  * use ANSI C semantics but allow extensions to the C standard. For non-ANSI
547  * C semantics, Sun's C compiler does not define __STDC__.
548  *
549  * The GNU C project interpretation is that __STDC__ should always be defined
550  * to 1 for compilation modes that accept ANSI C syntax regardless of whether
551  * or not extensions to the C standard are used. Violations of conforming
552  * behavior are conditionally flagged as warnings via the use of the
553  * -pedantic option. In addition to defining __STDC__ to 1, the GNU C
554  * compiler also defines __STRICT_ANSI__ as a means of specifying strictly
555  * conforming environments using the -ansi or -std=<standard> options.
556  *
557  * In the absence of any other compiler options, Sun and GNU set the value
558  * of __STDC__ as follows when using the following options:
559  *
560  *				Value of __STDC__  __STRICT_ANSI__
561  *
562  * cc -Xa (default)			0	      undefined
563  * cc -Xt (transitional)		0             undefined
564  * cc -Xc (strictly conforming)		1	      undefined
565  * cc -Xs (K&R C)		    undefined	      undefined
566  *
567  * gcc (default)			1	      undefined
568  * gcc -ansi, -std={c89, c99,...)  	1              defined
569  * gcc -traditional (K&R)	    undefined	      undefined
570  *
571  * The default compilation modes for Sun C compilers versus GNU C compilers
572  * results in a differing value for __STDC__ which results in a more
573  * restricted namespace when using Sun compilers. To allow both GNU and Sun
574  * interpretations to peacefully co-exist, we use the following Sun
575  * implementation _STRICT_STDC_ macro:
576  */
577 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
578 /*
579  * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
580  */
581 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
582 /*
583  * Use strict symbol visibility.
584  */
585 
586 
587 
588 
589 
590 /*
591  * Large file interfaces:
592  *
593  *	_LARGEFILE_SOURCE
594  *		1		large file-related additions to POSIX
595  *				interfaces requested (fseeko, etc.)
596  *	_LARGEFILE64_SOURCE
597  *		1		transitional large-file-related interfaces
598  *				requested (seek64, stat64, etc.)
599  *
600  * The corresponding announcement macros are respectively:
601  *	_LFS_LARGEFILE
602  *	_LFS64_LARGEFILE
603  * (These are set in <unistd.h>.)
604  *
605  * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
606  * well.
607  *
608  * The large file interfaces are made visible regardless of the initial values
609  * of the feature test macros under certain circumstances:
610  *    -	If no explicit standards-conforming environment is requested (neither
611  *	of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
612  *	__STDC__ does not imply standards conformance).
613  *    -	Extended system interfaces are explicitly requested (__EXTENSIONS__
614  * 	is defined).
615  *    -	Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
616  *	defined).  (Note that this dependency is an artifact of the current
617  *	kernel implementation and may change in future releases.)
618  */
619 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
620 /*
621  * Large file compilation environment control:
622  *
623  * The setting of _FILE_OFFSET_BITS controls the size of various file-related
624  * types and governs the mapping between file-related source function symbol
625  * names and the corresponding binary entry points.
626  *
627  * In the 32-bit environment, the default value is 32; if not set, set it to
628  * the default here, to simplify tests in other headers.
629  *
630  * In the 64-bit compilation environment, the only value allowed is 64.
631  */
632 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
633 /*
634  * Use of _XOPEN_SOURCE
635  *
636  * The following X/Open specifications are supported:
637  *
638  * X/Open Portability Guide, Issue 3 (XPG3)
639  * X/Open CAE Specification, Issue 4 (XPG4)
640  * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
641  * X/Open CAE Specification, Issue 5 (XPG5)
642  * Open Group Technical Standard, Issue 6 (XPG6), also referred to as
643  *    IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
644  * Open Group Technical Standard, Issue 7 (XPG7), also referred to as
645  *    IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
646  *
647  * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
648  * XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
649  *     Version 2 (SUSv2)
650  * XPG6 is the result of a merge of the X/Open and POSIX specifications
651  *     and as such is also referred to as IEEE Std. 1003.1-2001 in
652  *     addition to UNIX 03 and SUSv3.
653  * XPG7 is also referred to as UNIX 08 and SUSv4.
654  *
655  * When writing a conforming X/Open application, as per the specification
656  * requirements, the appropriate feature test macros must be defined at
657  * compile time. These are as follows. For more info, see standards(5).
658  *
659  * Feature Test Macro				     Specification
660  * ------------------------------------------------  -------------
661  * _XOPEN_SOURCE                                         XPG3
662  * _XOPEN_SOURCE && _XOPEN_VERSION = 4                   XPG4
663  * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1           XPG4v2
664  * _XOPEN_SOURCE = 500                                   XPG5
665  * _XOPEN_SOURCE = 600  (or POSIX_C_SOURCE=200112L)      XPG6
666  * _XOPEN_SOURCE = 700  (or POSIX_C_SOURCE=200809L)      XPG7
667  *
668  * In order to simplify the guards within the headers, the following
669  * implementation private test macros have been created. Applications
670  * must NOT use these private test macros as unexpected results will
671  * occur.
672  *
673  * Note that in general, the use of these private macros is cumulative.
674  * For example, the use of _XPG3 with no other restrictions on the X/Open
675  * namespace will make the symbols visible for XPG3 through XPG6
676  * compilation environments. The use of _XPG4_2 with no other X/Open
677  * namespace restrictions indicates that the symbols were introduced in
678  * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
679  * environments, but not for XPG3 or XPG4 compilation environments.
680  *
681  * _XPG3    X/Open Portability Guide, Issue 3 (XPG3)
682  * _XPG4    X/Open CAE Specification, Issue 4 (XPG4)
683  * _XPG4_2  X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
684  * _XPG5    X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
685  * _XPG6    Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
686  * _XPG7    Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
687  */
688 
689 /* X/Open Portability Guide, Issue 3 */
690 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
691 /*
692  * _XOPEN_VERSION is defined by the X/Open specifications and is not
693  * normally defined by the application, except in the case of an XPG4
694  * application.  On the implementation side, _XOPEN_VERSION defined with
695  * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
696  * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
697  * _XOPEN_VERSION  defined with a value of 500 indicates an XPG5 (UNIX 98)
698  * application and with a value of 600 indicates an XPG6 (UNIX 03)
699  * application and with a value of 700 indicates an XPG7 (UNIX 08).
700  * The appropriate version is determined by the use of the
701  * feature test macros described earlier.  The value of _XOPEN_VERSION
702  * defaults to 3 otherwise indicating support for XPG3 applications.
703  */
704 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
705 /*
706  * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
707  * conforming environments.  ISO 9899:1999 says it does.
708  *
709  * The presence of _LONGLONG_TYPE says "long long exists" which is therefore
710  * defined in all but strictly conforming environments that disallow it.
711  */
712 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
713 /*
714  * The following macro defines a value for the ISO C99 restrict
715  * keyword so that _RESTRICT_KYWD resolves to "restrict" if
716  * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
717  * if any other compiler is used. This allows for the use of single
718  * prototype declarations regardless of compiler version.
719  */
720 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h"
721 /*
722  * The following macro defines a value for the ISO C11 _Noreturn
723  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
724  * an ISO C11 compiler is used and "" (null string) if any other
725  * compiler is used. This allows for the use of single prototype
726  * declarations regardless of compiler version.
727  */
728 
729 
730 
731 
732 
733 
734 
735 /*
736  * The following macro indicates header support for the ANSI C++
737  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
738  */
739 
740 
741 /*
742  * The following macro indicates header support for the C99 standard,
743  * ISO/IEC 9899:1999, Programming Languages - C.
744  */
745 
746 
747 /*
748  * The following macro indicates header support for the C99 standard,
749  * ISO/IEC 9899:2011, Programming Languages - C.
750  */
751 
752 
753 /*
754  * The following macro indicates header support for DTrace. The value is an
755  * integer that corresponds to the major version number for DTrace.
756  */
757 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
758 
759 
760 
761 
762 
763 /*
764  * Do all of our 'redefine_extname' processing before
765  * declarations of the associated functions are seen.
766  * This is necessary to keep gcc happy.
767  */
768 
769 
770 /* large file compilation environment setup */
771 
772 
773 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
774 #pragma redefine_extname fopen fopen64
775 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
776 
777 
778 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
779 #pragma redefine_extname freopen freopen64
780 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
781 
782 
783 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
784 #pragma redefine_extname tmpfile tmpfile64
785 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
786 
787 
788 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
789 #pragma redefine_extname fgetpos fgetpos64
790 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
791 
792 
793 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
794 #pragma redefine_extname fsetpos fsetpos64
795 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
796 
797 
798 
799 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
800 #pragma redefine_extname fseeko fseeko64
801 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
802 
803 
804 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
805 #pragma redefine_extname ftello ftello64
806 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
807 
808 
809 
810 
811 /* In the LP64 compilation environment, all APIs are already large file */
812 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
813 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1
814 /*
815  * CDDL HEADER START
816  *
817  * The contents of this file are subject to the terms of the
818  * Common Development and Distribution License, Version 1.0 only
819  * (the "License").  You may not use this file except in compliance
820  * with the License.
821  *
822  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
823  * or http://www.opensolaris.org/os/licensing.
824  * See the License for the specific language governing permissions
825  * and limitations under the License.
826  *
827  * When distributing Covered Code, include this CDDL HEADER in each
828  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
829  * If applicable, add the following below this CDDL HEADER, with the
830  * fields enclosed by brackets "[]" replaced with your own identifying
831  * information: Portions Copyright [yyyy] [name of copyright owner]
832  *
833  * CDDL HEADER END
834  */
835 /*
836  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
837  * Copyright 2014 PALO, Richard.
838  *
839  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
840  * Use is subject to license terms.
841  */
842 
843 /*	Copyright (c) 1988 AT&T	*/
844 /*	  All Rights Reserved  	*/
845 
846 /*
847  * An application should not include this header directly.  Instead it
848  * should be included only through the inclusion of other Sun headers.
849  *
850  * The contents of this header is limited to identifiers specified in the
851  * C Standard.  Any new identifiers specified in future amendments to the
852  * C Standard must be placed in this header.  If these new identifiers
853  * are required to also be in the C++ Standard "std" namespace, then for
854  * anything other than macro definitions, corresponding "using" directives
855  * must also be added to <stdio.h>.
856  */
857 
858 /*
859  * User-visible pieces of the ANSI C standard I/O package.
860  */
861 
862 
863 
864 
865 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
866 /*
867  * CDDL HEADER START
868  *
869  * The contents of this file are subject to the terms of the
870  * Common Development and Distribution License (the "License").
871  * You may not use this file except in compliance with the License.
872  *
873  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
874  * or http://www.opensolaris.org/os/licensing.
875  * See the License for the specific language governing permissions
876  * and limitations under the License.
877  *
878  * When distributing Covered Code, include this CDDL HEADER in each
879  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
880  * If applicable, add the following below this CDDL HEADER, with the
881  * fields enclosed by brackets "[]" replaced with your own identifying
882  * information: Portions Copyright [yyyy] [name of copyright owner]
883  *
884  * CDDL HEADER END
885  */
886 
887 /*
888  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
889  * Copyright 2016 Joyent, Inc.
890  *
891  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
892  * Use is subject to license terms.
893  */
894 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
895 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
896 /*
897  * This file and its contents are supplied under the terms of the
898  * Common Development and Distribution License ("CDDL"), version 1.0.
899  * You may only use this file in accordance with the terms of version
900  * 1.0 of the CDDL.
901  *
902  * A full copy of the text of the CDDL should have accompanied this
903  * source.  A copy of the CDDL is also available via the Internet at
904  * http://www.illumos.org/license/CDDL.
905  */
906 
907 /*
908  * Copyright 2014-2016 PALO, Richard.
909  */
910 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
911 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1
912 /*
913  * CDDL HEADER START
914  *
915  * The contents of this file are subject to the terms of the
916  * Common Development and Distribution License, Version 1.0 only
917  * (the "License").  You may not use this file except in compliance
918  * with the License.
919  *
920  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
921  * or http://www.opensolaris.org/os/licensing.
922  * See the License for the specific language governing permissions
923  * and limitations under the License.
924  *
925  * When distributing Covered Code, include this CDDL HEADER in each
926  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
927  * If applicable, add the following below this CDDL HEADER, with the
928  * fields enclosed by brackets "[]" replaced with your own identifying
929  * information: Portions Copyright [yyyy] [name of copyright owner]
930  *
931  * CDDL HEADER END
932  */
933 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
934 /*	  All Rights Reserved	*/
935 
936 
937 /*
938  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
939  *
940  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
941  * Use is subject to license terms.
942  */
943 
944 
945 
946 
947 /*
948  * An application should not include this header directly.  Instead it
949  * should be included only through the inclusion of other Sun headers.
950  *
951  * The purpose of this header is to provide the type definitions for
952  * the va_list argument used by a number of printf and printf like
953  * functions. The headers that define these various function prototypes
954  * #include this header directly. These include but are not necessarily
955  * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and
956  * <syslog.h>. The type definitions included in this header are for
957  * the benefit of consumers of va_list.
958  *
959  * Any application that accepts variable argument lists must as documented,
960  * include either <varargs.h> or the preferred <stdarg.h>. Doing so will
961  * pull in the appropriate compiler protocols defined in <sys/va_impl.h>
962  * which is in turn is included by <varargs.h> and <stdarg.h>. See comments
963  * in <sys/va_impl.h> for more detailed information regarding implementation
964  * and compiler specific protocols.
965  */
966 
967 /*
968  * The common definitions exported by this header or compilers using
969  * this header are:
970  *
971  * the identifier __builtin_va_alist for the variable list pseudo parameter
972  * the type __va_alist_type for the variable list pseudo parameter
973  * the type __va_list defining the type of the variable list iterator
974  *
975  * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros
976  * (__GNUC__) and processor macros (e.g. __amd64) are intended to be
977  * defined by the compilation system, not the user of the system.
978  */
979 
980 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
981 /*
982  * CDDL HEADER START
983  *
984  * The contents of this file are subject to the terms of the
985  * Common Development and Distribution License (the "License").
986  * You may not use this file except in compliance with the License.
987  *
988  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
989  * or http://www.opensolaris.org/os/licensing.
990  * See the License for the specific language governing permissions
991  * and limitations under the License.
992  *
993  *
994  * When distributing Covered Code, include this CDDL HEADER in each
995  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
996  * If applicable, add the following below this CDDL HEADER, with the
997  * fields enclosed by brackets "[]" replaced with your own identifying
998  * information: Portions Copyright [yyyy] [name of copyright owner]
999  *
1000  * CDDL HEADER END
1001  */
1002 
1003 /*
1004  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
1005  * Use is subject to license terms.
1006  * Copyright 2016 Joyent, Inc.
1007  */
1008 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2
1009 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h"
1010 typedef __builtin_va_list __gnuc_va_list;
1011 /*
1012  * XX64 This seems unnecessary .. but is needed because vcmn_err is
1013  *	defined with __va_list instead of plain old va_list.
1014  *	Perhaps that should be fixed!
1015  */
1016 typedef __builtin_va_list __va_list;
1017 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1018 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1
1019 /*
1020  * CDDL HEADER START
1021  *
1022  * The contents of this file are subject to the terms of the
1023  * Common Development and Distribution License, Version 1.0 only
1024  * (the "License").  You may not use this file except in compliance
1025  * with the License.
1026  *
1027  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1028  * or http://www.opensolaris.org/os/licensing.
1029  * See the License for the specific language governing permissions
1030  * and limitations under the License.
1031  *
1032  * When distributing Covered Code, include this CDDL HEADER in each
1033  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1034  * If applicable, add the following below this CDDL HEADER, with the
1035  * fields enclosed by brackets "[]" replaced with your own identifying
1036  * information: Portions Copyright [yyyy] [name of copyright owner]
1037  *
1038  * CDDL HEADER END
1039  */
1040 /*
1041  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1042  * Use is subject to license terms.
1043  */
1044 
1045 
1046 
1047 
1048 #pragma ident "%Z%%M%	%I%	%E% SMI"
1049 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h"
1050 typedef struct __FILE __FILE;
1051 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1052 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1
1053 /*
1054  * CDDL HEADER START
1055  *
1056  * The contents of this file are subject to the terms of the
1057  * Common Development and Distribution License (the "License").
1058  * You may not use this file except in compliance with the License.
1059  *
1060  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1061  * or http://www.opensolaris.org/os/licensing.
1062  * See the License for the specific language governing permissions
1063  * and limitations under the License.
1064  *
1065  * When distributing Covered Code, include this CDDL HEADER in each
1066  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1067  * If applicable, add the following below this CDDL HEADER, with the
1068  * fields enclosed by brackets "[]" replaced with your own identifying
1069  * information: Portions Copyright [yyyy] [name of copyright owner]
1070  *
1071  * CDDL HEADER END
1072  */
1073 
1074 /*
1075  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1076  * Use is subject to license terms.
1077  */
1078 
1079 
1080 
1081 
1082 #pragma ident "%Z%%M%	%I%	%E% SMI"
1083 
1084 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
1085 /*
1086  * CDDL HEADER START
1087  *
1088  * The contents of this file are subject to the terms of the
1089  * Common Development and Distribution License (the "License").
1090  * You may not use this file except in compliance with the License.
1091  *
1092  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1093  * or http://www.opensolaris.org/os/licensing.
1094  * See the License for the specific language governing permissions
1095  * and limitations under the License.
1096  *
1097  *
1098  * When distributing Covered Code, include this CDDL HEADER in each
1099  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1100  * If applicable, add the following below this CDDL HEADER, with the
1101  * fields enclosed by brackets "[]" replaced with your own identifying
1102  * information: Portions Copyright [yyyy] [name of copyright owner]
1103  *
1104  * CDDL HEADER END
1105  */
1106 
1107 /*
1108  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
1109  * Use is subject to license terms.
1110  * Copyright 2016 Joyent, Inc.
1111  */
1112 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2
1113 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h"
1114 struct __FILE /* needs to be binary-compatible with old versions */
1115 {
1116 
1117 
1118 
1119 
1120  int _cnt; /* number of available characters in buffer */
1121  unsigned char *_ptr; /* next character from/to here in buffer */
1122 
1123  unsigned char *_base; /* the buffer */
1124  unsigned char _flag; /* the state of the stream */
1125  unsigned char _magic; /* Old home of the file descriptor */
1126     /* Only fileno(3C) can retrieve the value now */
1127  unsigned __orientation:2; /* the orientation of the stream */
1128  unsigned __ionolock:1; /* turn off implicit locking */
1129  unsigned __seekable:1; /* is file seekable? */
1130  unsigned __extendedfd:1; /* enable extended FILE */
1131  unsigned __xf_nocheck:1; /* no extended FILE runtime check */
1132  unsigned __filler:10;
1133 };
1134 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2
1135 
1136 /*
1137  * If feature test macros are set that enable interfaces that use types
1138  * defined in <sys/types.h>, get those types by doing the include.
1139  *
1140  * Note that in asking for the interfaces associated with this feature test
1141  * macro one also asks for definitions of the POSIX types.
1142  */
1143 
1144 
1145 
1146 
1147 
1148 
1149 /*
1150  * The following typedefs are adopted from ones in <sys/types.h> (with leading
1151  * underscores added to avoid polluting the ANSI C name space).  See the
1152  * commentary there for further explanation.
1153  */
1154 
1155 typedef long long __longlong_t;
1156 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1157 typedef __FILE FILE;
1158 
1159 
1160 
1161 
1162 
1163 
1164 
1165 typedef unsigned int size_t; /* (historical version) */
1166 
1167 
1168 
1169 
1170 
1171 
1172 typedef __longlong_t fpos_t;
1173 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1174 /*
1175  * The value of _NFILE is defined in the Processor Specific ABI.  The value
1176  * is chosen for historical reasons rather than for truly processor related
1177  * attribute.  Note that the SPARC Processor Specific ABI uses the common
1178  * UNIX historical value of 20 so it is allowed to fall through.
1179  */
1180 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1181 extern __FILE __iob[60];
1182 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h"
1183 extern int remove(const char *);
1184 extern int rename(const char *, const char *);
1185 extern FILE *tmpfile(void);
1186 extern char *tmpnam(char *);
1187 extern int fclose(FILE *);
1188 extern int fflush(FILE *);
1189 extern FILE *fopen(const char *, const char *);
1190 extern FILE *freopen(const char *,
1191    const char *, FILE *);
1192 extern void setbuf(FILE *, char *);
1193 extern int setvbuf(FILE *, char *, int,
1194    size_t);
1195 /* PRINTFLIKE2 */
1196 extern int fprintf(FILE *, const char *, ...);
1197 /* SCANFLIKE2 */
1198 extern int fscanf(FILE *, const char *, ...);
1199 /* PRINTFLIKE1 */
1200 extern int printf(const char *, ...);
1201 /* SCANFLIKE1 */
1202 extern int scanf(const char *, ...);
1203 /* PRINTFLIKE2 */
1204 extern int sprintf(char *, const char *, ...);
1205 /* SCANFLIKE2 */
1206 extern int sscanf(const char *,
1207    const char *, ...);
1208 extern int vfprintf(FILE *, const char *,
1209    __va_list);
1210 extern int vprintf(const char *, __va_list);
1211 extern int vsprintf(char *, const char *,
1212    __va_list);
1213 extern int fgetc(FILE *);
1214 extern char *fgets(char *, int, FILE *);
1215 extern int fputc(int, FILE *);
1216 extern int fputs(const char *, FILE *);
1217 
1218 
1219 extern int getc(FILE *);
1220 extern int putc(int, FILE *);
1221 
1222 
1223 
1224 extern int getchar(void);
1225 extern int putchar(int);
1226 
1227 
1228 /*
1229  * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11
1230  * environment has been requested, we remove it.
1231  */
1232 
1233 extern char *gets(char *);
1234 
1235 extern int puts(const char *);
1236 extern int ungetc(int, FILE *);
1237 extern size_t fread(void *, size_t, size_t,
1238  FILE *);
1239 extern size_t fwrite(const void *, size_t, size_t,
1240  FILE *);
1241 
1242 extern int fgetpos(FILE *, fpos_t *);
1243 extern int fsetpos(FILE *, const fpos_t *);
1244 
1245 extern int fseek(FILE *, long, int);
1246 extern long ftell(FILE *);
1247 extern void rewind(FILE *);
1248 
1249 
1250 extern void clearerr(FILE *);
1251 extern int feof(FILE *);
1252 extern int ferror(FILE *);
1253 
1254 extern void perror(const char *);
1255 
1256 
1257 extern int __filbuf(FILE *);
1258 extern int __flsbuf(int, FILE *);
1259 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
1260 
1261 /*
1262  * If feature test macros are set that enable interfaces that use types
1263  * defined in <sys/types.h>, get those types by doing the include.
1264  *
1265  * Note that in asking for the interfaces associated with this feature test
1266  * macro one also asks for definitions of the POSIX types.
1267  */
1268 
1269 /*
1270  * Allow global visibility for symbols defined in
1271  * C++ "std" namespace in <iso/stdio_iso.h>.
1272  */
1273 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1274 /*
1275  * This header needs to be included here because it relies on the global
1276  * visibility of FILE and size_t in the C++ environment.
1277  */
1278 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1
1279 /*
1280  * CDDL HEADER START
1281  *
1282  * The contents of this file are subject to the terms of the
1283  * Common Development and Distribution License, Version 1.0 only
1284  * (the "License").  You may not use this file except in compliance
1285  * with the License.
1286  *
1287  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1288  * or http://www.opensolaris.org/os/licensing.
1289  * See the License for the specific language governing permissions
1290  * and limitations under the License.
1291  *
1292  * When distributing Covered Code, include this CDDL HEADER in each
1293  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1294  * If applicable, add the following below this CDDL HEADER, with the
1295  * fields enclosed by brackets "[]" replaced with your own identifying
1296  * information: Portions Copyright [yyyy] [name of copyright owner]
1297  *
1298  * CDDL HEADER END
1299  */
1300 /*
1301  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1302  *
1303  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1304  * Use is subject to license terms.
1305  */
1306 
1307 /*
1308  * An application should not include this header directly.  Instead it
1309  * should be included only through the inclusion of other Sun headers.
1310  *
1311  * The contents of this header is limited to identifiers specified in
1312  * the C99 standard and in conflict with the C++ implementation of the
1313  * standard header.  The C++ standard may adopt the C99 standard at
1314  * which point it is expected that the symbols included here will
1315  * become part of the C++ std namespace.
1316  */
1317 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
1318 /*
1319  * The following have been added as a result of the ISO/IEC 9899:1999
1320  * standard. For a strictly conforming C application, visibility is
1321  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1322  * For non-strictly conforming C applications, there are no restrictions
1323  * on the C namespace.
1324  */
1325 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h"
1326 extern int vfscanf(FILE *, const char *, __va_list);
1327 extern int vscanf(const char *, __va_list);
1328 extern int vsscanf(const char *, const char *,
1329   __va_list);
1330 
1331 
1332 
1333 
1334 extern int snprintf(char *, size_t, const char *,
1335  ...);
1336 extern int vsnprintf(char *, size_t, const char *,
1337  __va_list);
1338 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2
1339 # 163 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1340 typedef __longlong_t off_t;
1341 
1342 
1343 
1344 
1345 
1346 typedef __longlong_t off64_t;
1347 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1348 typedef __longlong_t fpos64_t;
1349 
1350 
1351 
1352 /*
1353  * XPG4 requires that va_list be defined in <stdio.h> "as described in
1354  * <stdarg.h>".  ANSI-C and POSIX require that the namespace of <stdio.h>
1355  * not be polluted with this name.
1356  */
1357 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1358 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1359 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1360 extern unsigned char _sibuf[], _sobuf[];
1361 
1362 
1363 /* large file compilation environment setup */
1364 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1365 extern unsigned char *_bufendtab[];
1366 extern FILE *_lastbuf;
1367 
1368 
1369 /* In the LP64 compilation environment, all APIs are already large file */
1370 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1371 typedef int ssize_t; /* (historical version) */
1372 
1373 
1374 
1375 
1376 
1377 
1378 extern char *tmpnam_r(char *);
1379 
1380 
1381 
1382 
1383 extern int fcloseall(void);
1384 extern void setbuffer(FILE *, char *, size_t);
1385 extern int setlinebuf(FILE *);
1386 /* PRINTFLIKE2 */
1387 extern int asprintf(char **, const char *, ...);
1388 /* PRINTFLIKE2 */
1389 extern int vasprintf(char **, const char *, __va_list);
1390 
1391 
1392 
1393 
1394  /* || defined(_XPG7) */
1395 extern ssize_t getdelim(char **, size_t *,
1396  int, FILE *);
1397 extern ssize_t getline(char **, size_t *,
1398  FILE *);
1399 
1400 
1401 /*
1402  * The following are known to POSIX and XOPEN, but not to ANSI-C.
1403  */
1404 
1405 
1406 
1407 extern FILE *fdopen(int, const char *);
1408 extern char *ctermid(char *);
1409 extern int fileno(FILE *);
1410 
1411 
1412 
1413 /*
1414  * The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
1415  */
1416 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h"
1417 /*
1418  * The following are known to XOPEN, but not to ANSI-C or POSIX.
1419  */
1420 
1421 
1422 extern FILE *popen(const char *, const char *);
1423 extern char *tempnam(const char *, const char *);
1424 extern int pclose(FILE *);
1425 
1426 extern int getsubopt(char **, char *const *, char **);
1427 
1428 
1429 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1430 
1431 extern char *cuserid(char *);
1432 extern int getopt(int, char *const *, const char *);
1433 extern char *optarg;
1434 extern int optind, opterr, optopt;
1435 extern int getw(FILE *);
1436 extern int putw(int, FILE *);
1437 
1438 
1439 
1440 
1441 /*
1442  * The following are defined as part of the Large File Summit interfaces.
1443  */
1444 
1445 extern int fseeko(FILE *, off_t, int);
1446 extern off_t ftello(FILE *);
1447 
1448 
1449 /*
1450  * The following are defined as part of the transitional Large File Summit
1451  * interfaces.
1452  */
1453 
1454 
1455 extern FILE *fopen64(const char *, const char *);
1456 extern FILE *freopen64(const char *, const char *, FILE *);
1457 extern FILE *tmpfile64(void);
1458 extern int fgetpos64(FILE *, fpos64_t *);
1459 extern int fsetpos64(FILE *, const fpos64_t *);
1460 extern int fseeko64(FILE *, off64_t, int);
1461 extern off64_t ftello64(FILE *);
1462 
1463 
1464 /*
1465  * XPG7 symbols
1466  */
1467 
1468 extern FILE *fmemopen(void *, size_t,
1469       const char *);
1470 extern FILE *open_memstream(char **, size_t *);
1471 # 29 "setup_temporary_directory.c" 2
1472 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1
1473 /*
1474  * CDDL HEADER START
1475  *
1476  * The contents of this file are subject to the terms of the
1477  * Common Development and Distribution License (the "License").
1478  * You may not use this file except in compliance with the License.
1479  *
1480  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1481  * or http://www.opensolaris.org/os/licensing.
1482  * See the License for the specific language governing permissions
1483  * and limitations under the License.
1484  *
1485  * When distributing Covered Code, include this CDDL HEADER in each
1486  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1487  * If applicable, add the following below this CDDL HEADER, with the
1488  * fields enclosed by brackets "[]" replaced with your own identifying
1489  * information: Portions Copyright [yyyy] [name of copyright owner]
1490  *
1491  * CDDL HEADER END
1492  */
1493 
1494 /*
1495  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1496  * Copyright (c) 2013 Gary Mills
1497  *
1498  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
1499  */
1500 
1501 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
1502 
1503 /*	Copyright (c) 1988 AT&T	*/
1504 /*	  All Rights Reserved  	*/
1505 
1506 
1507 
1508 
1509 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1
1510 /*
1511  * CDDL HEADER START
1512  *
1513  * The contents of this file are subject to the terms of the
1514  * Common Development and Distribution License, Version 1.0 only
1515  * (the "License").  You may not use this file except in compliance
1516  * with the License.
1517  *
1518  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1519  * or http://www.opensolaris.org/os/licensing.
1520  * See the License for the specific language governing permissions
1521  * and limitations under the License.
1522  *
1523  * When distributing Covered Code, include this CDDL HEADER in each
1524  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1525  * If applicable, add the following below this CDDL HEADER, with the
1526  * fields enclosed by brackets "[]" replaced with your own identifying
1527  * information: Portions Copyright [yyyy] [name of copyright owner]
1528  *
1529  * CDDL HEADER END
1530  */
1531 /*
1532  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1533  * Copyright 2014 PALO, Richard.
1534  *
1535  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
1536  * Use is subject to license terms.
1537  */
1538 
1539 /*	Copyright (c) 1988 AT&T	*/
1540 /*	  All Rights Reserved  	*/
1541 
1542 
1543 /*
1544  * An application should not include this header directly.  Instead it
1545  * should be included only through the inclusion of other Sun headers.
1546  *
1547  * The contents of this header is limited to identifiers specified in the
1548  * C Standard.  Any new identifiers specified in future amendments to the
1549  * C Standard must be placed in this header.  If these new identifiers
1550  * are required to also be in the C++ Standard "std" namespace, then for
1551  * anything other than macro definitions, corresponding "using" directives
1552  * must also be added to <locale.h>.
1553  */
1554 
1555 
1556 
1557 
1558 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1559 /*
1560  * CDDL HEADER START
1561  *
1562  * The contents of this file are subject to the terms of the
1563  * Common Development and Distribution License (the "License").
1564  * You may not use this file except in compliance with the License.
1565  *
1566  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1567  * or http://www.opensolaris.org/os/licensing.
1568  * See the License for the specific language governing permissions
1569  * and limitations under the License.
1570  *
1571  * When distributing Covered Code, include this CDDL HEADER in each
1572  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1573  * If applicable, add the following below this CDDL HEADER, with the
1574  * fields enclosed by brackets "[]" replaced with your own identifying
1575  * information: Portions Copyright [yyyy] [name of copyright owner]
1576  *
1577  * CDDL HEADER END
1578  */
1579 
1580 /*
1581  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1582  * Copyright 2016 Joyent, Inc.
1583  *
1584  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1585  * Use is subject to license terms.
1586  */
1587 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
1588 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
1589 /*
1590  * This file and its contents are supplied under the terms of the
1591  * Common Development and Distribution License ("CDDL"), version 1.0.
1592  * You may only use this file in accordance with the terms of version
1593  * 1.0 of the CDDL.
1594  *
1595  * A full copy of the text of the CDDL should have accompanied this
1596  * source.  A copy of the CDDL is also available via the Internet at
1597  * http://www.illumos.org/license/CDDL.
1598  */
1599 
1600 /*
1601  * Copyright 2014-2016 PALO, Richard.
1602  */
1603 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2
1604 
1605 
1606 
1607 
1608 
1609 unsigned char __mb_cur_max(void);
1610 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1611 typedef struct {
1612  int quot;
1613  int rem;
1614 } div_t;
1615 
1616 typedef struct {
1617  long quot;
1618  long rem;
1619 } ldiv_t;
1620 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1621 /*
1622  * wchar_t is a built-in type in standard C++ and as such is not
1623  * defined here when using standard C++. However, the GNU compiler
1624  * fixincludes utility nonetheless creates its own version of this
1625  * header for use by gcc and g++. In that version it adds a redundant
1626  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
1627  * header we need to include the following magic comment:
1628  *
1629  * we must use the C++ compiler's type
1630  *
1631  * The above comment should not be removed or changed until GNU
1632  * gcc/fixinc/inclhack.def is updated to bypass this header.
1633  */
1634 
1635 
1636 
1637 
1638 
1639 
1640 typedef long wchar_t;
1641 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h"
1642 extern void abort(void) __attribute__((__noreturn__));
1643 extern int abs(int);
1644 extern int atexit(void (*)(void));
1645 extern double atof(const char *);
1646 extern int atoi(const char *);
1647 extern long int atol(const char *);
1648 extern void *bsearch(const void *, const void *, size_t, size_t,
1649  int (*)(const void *, const void *));
1650 
1651 
1652 
1653 
1654 
1655 
1656 extern void *calloc(size_t, size_t);
1657 extern div_t div(int, int);
1658 extern void exit(int)
1659  __attribute__((__noreturn__));
1660 extern void free(void *);
1661 extern char *getenv(const char *);
1662 extern long int labs(long);
1663 extern ldiv_t ldiv(long, long);
1664 extern void *malloc(size_t);
1665 extern int mblen(const char *, size_t);
1666 extern size_t mbstowcs(wchar_t *, const char *,
1667  size_t);
1668 extern int mbtowc(wchar_t *, const char *, size_t);
1669 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
1670 
1671 
1672 
1673 
1674 
1675 extern int rand(void);
1676 extern void *realloc(void *, size_t);
1677 extern void srand(unsigned int);
1678 extern double strtod(const char *, char **);
1679 extern long int strtol(const char *, char **, int);
1680 extern unsigned long int strtoul(const char *,
1681  char **, int);
1682 extern int system(const char *);
1683 extern int wctomb(char *, wchar_t);
1684 extern size_t wcstombs(char *, const wchar_t *,
1685  size_t);
1686 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1687 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1
1688 /*
1689  * CDDL HEADER START
1690  *
1691  * The contents of this file are subject to the terms of the
1692  * Common Development and Distribution License, Version 1.0 only
1693  * (the "License").  You may not use this file except in compliance
1694  * with the License.
1695  *
1696  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1697  * or http://www.opensolaris.org/os/licensing.
1698  * See the License for the specific language governing permissions
1699  * and limitations under the License.
1700  *
1701  * When distributing Covered Code, include this CDDL HEADER in each
1702  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1703  * If applicable, add the following below this CDDL HEADER, with the
1704  * fields enclosed by brackets "[]" replaced with your own identifying
1705  * information: Portions Copyright [yyyy] [name of copyright owner]
1706  *
1707  * CDDL HEADER END
1708  */
1709 /*
1710  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
1711  *
1712  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
1713  * Use is subject to license terms.
1714  */
1715 
1716 /*
1717  * An application should not include this header directly.  Instead it
1718  * should be included only through the inclusion of other Sun headers.
1719  *
1720  * The contents of this header is limited to identifiers specified in
1721  * the C99 standard and in conflict with the C++ implementation of the
1722  * standard header.  The C++ standard may adopt the C99 standard at
1723  * which point it is expected that the symbols included here will
1724  * become part of the C++ std namespace.
1725  */
1726 
1727 
1728 
1729 
1730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1731 /*
1732  * CDDL HEADER START
1733  *
1734  * The contents of this file are subject to the terms of the
1735  * Common Development and Distribution License (the "License").
1736  * You may not use this file except in compliance with the License.
1737  *
1738  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1739  * or http://www.opensolaris.org/os/licensing.
1740  * See the License for the specific language governing permissions
1741  * and limitations under the License.
1742  *
1743  * When distributing Covered Code, include this CDDL HEADER in each
1744  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1745  * If applicable, add the following below this CDDL HEADER, with the
1746  * fields enclosed by brackets "[]" replaced with your own identifying
1747  * information: Portions Copyright [yyyy] [name of copyright owner]
1748  *
1749  * CDDL HEADER END
1750  */
1751 
1752 /*
1753  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1754  * Copyright 2016 Joyent, Inc.
1755  *
1756  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1757  * Use is subject to license terms.
1758  */
1759 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2
1760 
1761 
1762 
1763 
1764 
1765 /*
1766  * The following have been added as a result of the ISO/IEC 9899:1999
1767  * standard. For a strictly conforming C application, visibility is
1768  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1769  * For non-strictly conforming C applications, there are no restrictions
1770  * on the C namespace.
1771  */
1772 
1773 
1774 typedef struct {
1775  long long quot;
1776  long long rem;
1777 } lldiv_t;
1778 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h"
1779 extern void _Exit(int);
1780 extern float strtof(const char *, char **);
1781 extern long double strtold(const char *, char **);
1782 
1783 
1784 extern long long atoll(const char *);
1785 extern long long llabs(long long);
1786 extern lldiv_t lldiv(long long, long long);
1787 extern long long strtoll(const char *, char **,
1788  int);
1789 extern unsigned long long strtoull(const char *,
1790  char **, int);
1791 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1792 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1
1793 /*
1794  * This file and its contents are supplied under the terms of the
1795  * Common Development and Distribution License ("CDDL"), version 1.0.
1796  * You may only use this file in accordance with the terms of version
1797  * 1.0 of the CDDL.
1798  *
1799  * A full copy of the text of the CDDL should have accompanied this
1800  * source.  A copy of the CDDL is also available via the Internet at
1801  * http://www.illumos.org/license/CDDL.
1802  */
1803 
1804 /*
1805  * Copyright 2016 Joyent, Inc.
1806  */
1807 
1808 /*
1809  * An application should not include this header directly.  Instead it
1810  * should be included only through the inclusion of other illumos headers.
1811  *
1812  * The contents of this header is limited to identifiers specified in
1813  * the C11 standard and in conflict with the C++ implementation of the
1814  * standard header.  The C++ standard may adopt the C11 standard at
1815  * which point it is expected that the symbols included here will
1816  * become part of the C++ std namespace.
1817  */
1818 
1819 
1820 
1821 
1822 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
1823 /*
1824  * CDDL HEADER START
1825  *
1826  * The contents of this file are subject to the terms of the
1827  * Common Development and Distribution License (the "License").
1828  * You may not use this file except in compliance with the License.
1829  *
1830  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1831  * or http://www.opensolaris.org/os/licensing.
1832  * See the License for the specific language governing permissions
1833  * and limitations under the License.
1834  *
1835  * When distributing Covered Code, include this CDDL HEADER in each
1836  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1837  * If applicable, add the following below this CDDL HEADER, with the
1838  * fields enclosed by brackets "[]" replaced with your own identifying
1839  * information: Portions Copyright [yyyy] [name of copyright owner]
1840  *
1841  * CDDL HEADER END
1842  */
1843 
1844 /*
1845  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
1846  * Copyright 2016 Joyent, Inc.
1847  *
1848  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
1849  * Use is subject to license terms.
1850  */
1851 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2
1852 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
1853 /*
1854  * The following have been added as a result of the ISO/IEC 9899:2011
1855  * standard. For a strictly conforming C application, visibility is
1856  * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h).
1857  * For non-strictly conforming C applications, there are no restrictions
1858  * on the C namespace.
1859  */
1860 
1861 /*
1862  * Work around fix-includes and other bad actors with using multiple headers.
1863  */
1864 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h"
1865 extern void *aligned_alloc(size_t, size_t);
1866 extern int at_quick_exit(void (*)(void));
1867 extern void quick_exit(int);
1868 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
1869 
1870 
1871 
1872 
1873 
1874 /*
1875  * Allow global visibility for symbols defined in
1876  * C++ "std" namespace in <iso/stdlib_iso.h>.
1877  */
1878 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1879 /*
1880  * Allow global visibility for symbols defined in
1881  * C++ "std" namespace in <iso/stdlib_c11.h>.
1882  */
1883 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1884 typedef unsigned int uid_t; /* UID type		*/
1885 
1886 
1887 /* large file compilation environment setup */
1888 
1889 
1890 
1891 
1892 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1893 #pragma redefine_extname mkstemp mkstemp64
1894 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1895 
1896 
1897 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1898 #pragma redefine_extname mkstemps mkstemps64
1899 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1900 
1901 
1902 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1903 #pragma redefine_extname mkostemp mkostemp64
1904 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1905 
1906 
1907 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1908 #pragma redefine_extname mkostemps mkostemps64
1909 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1910 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1911 /* In the LP64 compilation environment, all APIs are already large file */
1912 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1913 extern int rand_r(unsigned int *);
1914 
1915 
1916 extern void _exithandle(void);
1917 
1918 
1919 
1920 
1921 extern double drand48(void);
1922 extern double erand48(unsigned short *);
1923 extern long jrand48(unsigned short *);
1924 extern void lcong48(unsigned short *);
1925 extern long lrand48(void);
1926 extern long mrand48(void);
1927 extern long nrand48(unsigned short *);
1928 extern unsigned short *seed48(unsigned short *);
1929 extern void srand48(long);
1930 extern int putenv(char *);
1931 extern void setkey(const char *);
1932 
1933 
1934 /*
1935  * swab() has historically been in <stdlib.h> as delivered from AT&T
1936  * and continues to be visible in the default compilation environment.
1937  * As of Issue 4 of the X/Open Portability Guides, swab() was declared
1938  * in <unistd.h>. As a result, with respect to X/Open namespace the
1939  * swab() declaration in this header is only visible for the XPG3
1940  * environment.
1941  */
1942 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
1943 extern void swab(const char *, char *, ssize_t);
1944 
1945 
1946 
1947 
1948 
1949 extern int mkstemp(char *);
1950 
1951 extern int mkstemps(char *, int);
1952 
1953 
1954 
1955 
1956 
1957 extern int mkstemp64(char *);
1958 
1959 extern int mkstemps64(char *, int);
1960 
1961 
1962 
1963 
1964 extern char *mkdtemp(char *);
1965 
1966 
1967 
1968 extern int mkostemp(char *, int);
1969 extern int mkostemps(char *, int, int);
1970 
1971 
1972 extern int mkostemp64(char *, int);
1973 extern int mkostemps64(char *, int, int);
1974 
1975 
1976 
1977 
1978 
1979 
1980 extern long a64l(const char *);
1981 extern char *ecvt(double, int, int *, int *);
1982 extern char *fcvt(double, int, int *, int *);
1983 extern char *gcvt(double, int, char *);
1984 extern int getsubopt(char **, char *const *, char **);
1985 extern int grantpt(int);
1986 extern char *initstate(unsigned, char *, size_t);
1987 extern char *l64a(long);
1988 extern char *mktemp(char *);
1989 extern char *ptsname(int);
1990 extern long random(void);
1991 extern char *realpath(const char *, char *);
1992 extern char *setstate(const char *);
1993 extern void srandom(unsigned);
1994 extern int unlockpt(int);
1995 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
1996 
1997 extern int ttyslot(void);
1998 extern void *valloc(size_t);
1999 
2000 
2001 
2002 
2003 
2004 
2005 extern int posix_memalign(void **, size_t, size_t);
2006 extern int posix_openpt(int);
2007 extern int setenv(const char *, const char *, int);
2008 extern int unsetenv(const char *);
2009 
2010 
2011 
2012 
2013 extern char *canonicalize_file_name(const char *);
2014 extern int clearenv(void);
2015 extern void closefrom(int);
2016 extern int daemon(int, int);
2017 extern int dup2(int, int);
2018 extern int dup3(int, int, int);
2019 extern int fdwalk(int (*)(void *, int), void *);
2020 extern char *qecvt(long double, int, int *, int *);
2021 extern char *qfcvt(long double, int, int *, int *);
2022 extern char *qgcvt(long double, int, char *);
2023 extern char *getcwd(char *, size_t);
2024 extern const char *getexecname(void);
2025 
2026 
2027 
2028 
2029 
2030 
2031 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
2032 #pragma redefine_extname getlogin getloginx
2033 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h"
2034 
2035 
2036 
2037 
2038 
2039 
2040 extern char *getlogin(void);
2041 
2042 
2043 extern int getopt(int, char *const *, const char *);
2044 extern char *optarg;
2045 extern int optind, opterr, optopt;
2046 extern char *getpass(const char *);
2047 extern char *getpassphrase(const char *);
2048 extern int getpw(uid_t, char *);
2049 extern int isatty(int);
2050 extern void *memalign(size_t, size_t);
2051 extern char *ttyname(int);
2052 extern char *mkdtemp(char *);
2053 extern const char *getprogname(void);
2054 extern void setprogname(const char *);
2055 
2056 
2057 extern char *lltostr(long long, char *);
2058 extern char *ulltostr(unsigned long long, char *);
2059 
2060 
2061 
2062 
2063 /* OpenBSD compatibility functions */
2064 
2065 
2066 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1
2067 /*
2068  * CDDL HEADER START
2069  *
2070  * The contents of this file are subject to the terms of the
2071  * Common Development and Distribution License, Version 1.0 only
2072  * (the "License").  You may not use this file except in compliance
2073  * with the License.
2074  *
2075  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2076  * or http://www.opensolaris.org/os/licensing.
2077  * See the License for the specific language governing permissions
2078  * and limitations under the License.
2079  *
2080  * When distributing Covered Code, include this CDDL HEADER in each
2081  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2082  * If applicable, add the following below this CDDL HEADER, with the
2083  * fields enclosed by brackets "[]" replaced with your own identifying
2084  * information: Portions Copyright [yyyy] [name of copyright owner]
2085  *
2086  * CDDL HEADER END
2087  */
2088 /*
2089  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2090  *
2091  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
2092  * Use is subject to license terms.
2093  */
2094 
2095 
2096 
2097 
2098 /*
2099  * This file, <inttypes.h>, is specified by the ISO C standard,
2100  * standard, ISO/IEC 9899:1999 Programming language - C and is
2101  * also defined by SUSv3.
2102  *
2103  * ISO	  International Organization for Standardization.
2104  * SUSv3  Single Unix Specification, Version 3
2105  */
2106 
2107 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2108 /*
2109  * CDDL HEADER START
2110  *
2111  * The contents of this file are subject to the terms of the
2112  * Common Development and Distribution License (the "License").
2113  * You may not use this file except in compliance with the License.
2114  *
2115  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2116  * or http://www.opensolaris.org/os/licensing.
2117  * See the License for the specific language governing permissions
2118  * and limitations under the License.
2119  *
2120  * When distributing Covered Code, include this CDDL HEADER in each
2121  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2122  * If applicable, add the following below this CDDL HEADER, with the
2123  * fields enclosed by brackets "[]" replaced with your own identifying
2124  * information: Portions Copyright [yyyy] [name of copyright owner]
2125  *
2126  * CDDL HEADER END
2127  */
2128 
2129 /*
2130  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2131  * Copyright 2016 Joyent, Inc.
2132  *
2133  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2134  * Use is subject to license terms.
2135  */
2136 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2137 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1
2138 /*
2139  * CDDL HEADER START
2140  *
2141  * The contents of this file are subject to the terms of the
2142  * Common Development and Distribution License, Version 1.0 only
2143  * (the "License").  You may not use this file except in compliance
2144  * with the License.
2145  *
2146  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2147  * or http://www.opensolaris.org/os/licensing.
2148  * See the License for the specific language governing permissions
2149  * and limitations under the License.
2150  *
2151  * When distributing Covered Code, include this CDDL HEADER in each
2152  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2153  * If applicable, add the following below this CDDL HEADER, with the
2154  * fields enclosed by brackets "[]" replaced with your own identifying
2155  * information: Portions Copyright [yyyy] [name of copyright owner]
2156  *
2157  * CDDL HEADER END
2158  */
2159 /*
2160  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
2161  * Use is subject to license terms.
2162  */
2163 
2164 
2165 
2166 
2167 #pragma ident "%Z%%M%	%I%	%E% SMI"
2168 
2169 /*
2170  * This header, <sys/inttypes.h>, contains (through nested inclusion) the
2171  * vast majority of the facilities specified for <inttypes.h> as defined
2172  * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
2173  *
2174  * Kernel/Driver developers are encouraged to include this file to access
2175  * the fixed size types, limits and utility macros. Application developers
2176  * should use the standard defined header <inttypes.h>.
2177  */
2178 
2179 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2180 /*
2181  * CDDL HEADER START
2182  *
2183  * The contents of this file are subject to the terms of the
2184  * Common Development and Distribution License (the "License").
2185  * You may not use this file except in compliance with the License.
2186  *
2187  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2188  * or http://www.opensolaris.org/os/licensing.
2189  * See the License for the specific language governing permissions
2190  * and limitations under the License.
2191  *
2192  * When distributing Covered Code, include this CDDL HEADER in each
2193  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2194  * If applicable, add the following below this CDDL HEADER, with the
2195  * fields enclosed by brackets "[]" replaced with your own identifying
2196  * information: Portions Copyright [yyyy] [name of copyright owner]
2197  *
2198  * CDDL HEADER END
2199  */
2200 
2201 /*
2202  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2203  * Copyright 2016 Joyent, Inc.
2204  *
2205  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2206  * Use is subject to license terms.
2207  */
2208 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2209 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
2210 /*
2211  * CDDL HEADER START
2212  *
2213  * The contents of this file are subject to the terms of the
2214  * Common Development and Distribution License, Version 1.0 only
2215  * (the "License").  You may not use this file except in compliance
2216  * with the License.
2217  *
2218  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2219  * or http://www.opensolaris.org/os/licensing.
2220  * See the License for the specific language governing permissions
2221  * and limitations under the License.
2222  *
2223  * When distributing Covered Code, include this CDDL HEADER in each
2224  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2225  * If applicable, add the following below this CDDL HEADER, with the
2226  * fields enclosed by brackets "[]" replaced with your own identifying
2227  * information: Portions Copyright [yyyy] [name of copyright owner]
2228  *
2229  * CDDL HEADER END
2230  */
2231 /*
2232  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2233  *
2234  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2235  * Use is subject to license terms.
2236  */
2237 
2238 
2239 
2240 
2241 /*
2242  * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
2243  * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
2244  * Programming language - C.
2245  *
2246  * Programs/Modules should not directly include this file.  Access to the
2247  * types defined in this file should be through the inclusion of one of the
2248  * following files:
2249  *
2250  *	<sys/types.h>		Provides only the "_t" types defined in this
2251  *				file which is a subset of the contents of
2252  *				<inttypes.h>.  (This can be appropriate for
2253  *				all programs/modules except those claiming
2254  *				ANSI-C conformance.)
2255  *
2256  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2257  *				components of <inttypes.h>.
2258  *
2259  *	<inttypes.h>		For use by applications.
2260  *
2261  * See these files for more details.
2262  */
2263 
2264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2265 /*
2266  * CDDL HEADER START
2267  *
2268  * The contents of this file are subject to the terms of the
2269  * Common Development and Distribution License (the "License").
2270  * You may not use this file except in compliance with the License.
2271  *
2272  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2273  * or http://www.opensolaris.org/os/licensing.
2274  * See the License for the specific language governing permissions
2275  * and limitations under the License.
2276  *
2277  * When distributing Covered Code, include this CDDL HEADER in each
2278  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2279  * If applicable, add the following below this CDDL HEADER, with the
2280  * fields enclosed by brackets "[]" replaced with your own identifying
2281  * information: Portions Copyright [yyyy] [name of copyright owner]
2282  *
2283  * CDDL HEADER END
2284  */
2285 
2286 /*
2287  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2288  * Copyright 2016 Joyent, Inc.
2289  *
2290  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2291  * Use is subject to license terms.
2292  */
2293 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2
2294 
2295 
2296 
2297 
2298 
2299 /*
2300  * Basic / Extended integer types
2301  *
2302  * The following defines the basic fixed-size integer types.
2303  *
2304  * Implementations are free to typedef them to Standard C integer types or
2305  * extensions that they support. If an implementation does not support one
2306  * of the particular integer data types below, then it should not define the
2307  * typedefs and macros corresponding to that data type.  Note that int8_t
2308  * is not defined in -Xs mode on ISAs for which the ABI specifies "char"
2309  * as an unsigned entity because there is no way to define an eight bit
2310  * signed integral.
2311  */
2312 
2313 typedef char int8_t;
2314 
2315 
2316 
2317 typedef short int16_t;
2318 typedef int int32_t;
2319 
2320 
2321 
2322 
2323 
2324 
2325 typedef long long int64_t;
2326 
2327 
2328 
2329 typedef unsigned char uint8_t;
2330 typedef unsigned short uint16_t;
2331 typedef unsigned int uint32_t;
2332 
2333 
2334 
2335 
2336 typedef unsigned long long uint64_t;
2337 
2338 
2339 
2340 /*
2341  * intmax_t and uintmax_t are to be the longest (in number of bits) signed
2342  * and unsigned integer types supported by the implementation.
2343  */
2344 
2345 typedef int64_t intmax_t;
2346 typedef uint64_t uintmax_t;
2347 
2348 
2349 
2350 
2351 
2352 /*
2353  * intptr_t and uintptr_t are signed and unsigned integer types large enough
2354  * to hold any data pointer; that is, data pointers can be assigned into or
2355  * from these integer types without losing precision.
2356  */
2357 
2358 
2359 
2360 
2361 typedef int intptr_t;
2362 typedef unsigned int uintptr_t;
2363 
2364 
2365 /*
2366  * The following define the fastest integer types that can hold the
2367  * specified number of bits.
2368  */
2369 
2370 typedef char int_fast8_t;
2371 
2372 
2373 
2374 typedef int int_fast16_t;
2375 typedef int int_fast32_t;
2376 
2377 
2378 
2379 
2380 typedef long long int_fast64_t;
2381 
2382 
2383 
2384 typedef unsigned char uint_fast8_t;
2385 typedef unsigned int uint_fast16_t;
2386 typedef unsigned int uint_fast32_t;
2387 
2388 
2389 
2390 
2391 typedef unsigned long long uint_fast64_t;
2392 
2393 
2394 
2395 /*
2396  * The following define the smallest integer types that can hold the
2397  * specified number of bits.
2398  */
2399 
2400 typedef char int_least8_t;
2401 
2402 
2403 
2404 typedef short int_least16_t;
2405 typedef int int_least32_t;
2406 
2407 
2408 
2409 
2410 typedef long long int_least64_t;
2411 
2412 
2413 
2414 /*
2415  * If these are changed, please update char16_t and char32_t in head/uchar.h.
2416  */
2417 typedef unsigned char uint_least8_t;
2418 typedef unsigned short uint_least16_t;
2419 typedef unsigned int uint_least32_t;
2420 
2421 
2422 
2423 
2424 typedef unsigned long long uint_least64_t;
2425 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2426 
2427 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
2428 /*
2429  * CDDL HEADER START
2430  *
2431  * The contents of this file are subject to the terms of the
2432  * Common Development and Distribution License, Version 1.0 only
2433  * (the "License").  You may not use this file except in compliance
2434  * with the License.
2435  *
2436  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2437  * or http://www.opensolaris.org/os/licensing.
2438  * See the License for the specific language governing permissions
2439  * and limitations under the License.
2440  *
2441  * When distributing Covered Code, include this CDDL HEADER in each
2442  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2443  * If applicable, add the following below this CDDL HEADER, with the
2444  * fields enclosed by brackets "[]" replaced with your own identifying
2445  * information: Portions Copyright [yyyy] [name of copyright owner]
2446  *
2447  * CDDL HEADER END
2448  */
2449 /*
2450  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2451  *
2452  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2453  * Use is subject to license terms.
2454  */
2455 
2456 
2457 
2458 
2459 /*
2460  * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation
2461  * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999
2462  * Programming language - C.
2463  *
2464  * Programs/Modules should not directly include this file.  Access to the
2465  * types defined in this file should be through the inclusion of one of the
2466  * following files:
2467  *
2468  *	<limits.h>		This nested inclusion is disabled for strictly
2469  *				ANSI-C conforming compilations.  The *_MIN
2470  *				definitions are not visible to POSIX or XPG
2471  *				conforming applications (due to what may be
2472  *				a bug in the specification - this is under
2473  *				investigation)
2474  *
2475  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2476  *				components of <inttypes.h>.
2477  *
2478  *	<inttypes.h>		For use by applications.
2479  *
2480  * See these files for more details.
2481  */
2482 
2483 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2484 /*
2485  * CDDL HEADER START
2486  *
2487  * The contents of this file are subject to the terms of the
2488  * Common Development and Distribution License (the "License").
2489  * You may not use this file except in compliance with the License.
2490  *
2491  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2492  * or http://www.opensolaris.org/os/licensing.
2493  * See the License for the specific language governing permissions
2494  * and limitations under the License.
2495  *
2496  * When distributing Covered Code, include this CDDL HEADER in each
2497  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2498  * If applicable, add the following below this CDDL HEADER, with the
2499  * fields enclosed by brackets "[]" replaced with your own identifying
2500  * information: Portions Copyright [yyyy] [name of copyright owner]
2501  *
2502  * CDDL HEADER END
2503  */
2504 
2505 /*
2506  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2507  * Copyright 2016 Joyent, Inc.
2508  *
2509  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2510  * Use is subject to license terms.
2511  */
2512 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2
2513 
2514 
2515 
2516 
2517 
2518 /*
2519  * Limits
2520  *
2521  * The following define the limits for the types defined in <sys/int_types.h>.
2522  *
2523  * INTMAX_MIN (minimum value of the largest supported signed integer type),
2524  * INTMAX_MAX (maximum value of the largest supported signed integer type),
2525  * and UINTMAX_MAX (maximum value of the largest supported unsigned integer
2526  * type) can be set to implementation defined limits.
2527  *
2528  * NOTE : A programmer can test to see whether an implementation supports
2529  * a particular size of integer by testing if the macro that gives the
2530  * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX
2531  * tests false, the implementation does not support unsigned 64 bit integers.
2532  *
2533  * The type of these macros is intentionally unspecified.
2534  *
2535  * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs
2536  * where the ABI specifies "char" as unsigned when the translation mode is
2537  * not ANSI-C.
2538  */
2539 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2540 /*
2541  * The following 2 macros are provided for testing whether the types
2542  * intptr_t and uintptr_t (integers large enough to hold a void *) are
2543  * defined in this header. They are needed in case the architecture can't
2544  * represent a pointer in any standard integral type.
2545  */
2546 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2547 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */
2548 
2549 
2550 
2551 
2552 
2553 
2554 /*
2555  * Maximum value of a "size_t".  SIZE_MAX was previously defined
2556  * in <limits.h>, however, the standards specify it be defined
2557  * in <stdint.h>. The <stdint.h> headers includes this header as
2558  * does <limits.h>. The value of SIZE_MAX should not deviate
2559  * from the value of ULONG_MAX defined <sys/types.h>.
2560  */
2561 
2562 
2563 
2564 
2565 
2566 
2567 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */
2568 
2569 
2570 
2571 
2572 /*
2573  * Maximum limit of wchar_t. The WCHAR_* macros are also
2574  * defined in <iso/wchar_iso.h>, but inclusion of that header
2575  * will break ISO/IEC C namespace.
2576  */
2577 
2578 
2579 
2580 
2581 /* Maximum limit of wint_t */
2582 
2583 
2584 
2585 
2586 /*
2587  * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that
2588  * when including <limits.h> that the suffix _MAX is reserved but not the
2589  * suffix _MIN.  However, until that issue is resolved....
2590  */
2591 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h"
2592 /* Minimum value of a pointer-holding signed integer type */
2593 
2594 
2595 
2596 
2597 
2598 
2599 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */
2600 
2601 
2602 
2603 
2604 
2605 
2606 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */
2607 
2608 
2609 
2610 
2611 /*
2612  * Minimum limit of wchar_t. The WCHAR_* macros are also
2613  * defined in <iso/wchar_iso.h>, but inclusion of that header
2614  * will break ISO/IEC C namespace.
2615  */
2616 
2617 
2618 
2619 
2620 /* Minimum limit of wint_t */
2621 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2622 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
2623 /*
2624  * CDDL HEADER START
2625  *
2626  * The contents of this file are subject to the terms of the
2627  * Common Development and Distribution License, Version 1.0 only
2628  * (the "License").  You may not use this file except in compliance
2629  * with the License.
2630  *
2631  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2632  * or http://www.opensolaris.org/os/licensing.
2633  * See the License for the specific language governing permissions
2634  * and limitations under the License.
2635  *
2636  * When distributing Covered Code, include this CDDL HEADER in each
2637  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2638  * If applicable, add the following below this CDDL HEADER, with the
2639  * fields enclosed by brackets "[]" replaced with your own identifying
2640  * information: Portions Copyright [yyyy] [name of copyright owner]
2641  *
2642  * CDDL HEADER END
2643  */
2644 /*
2645  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2646  *
2647  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2648  * Use is subject to license terms.
2649  */
2650 
2651 
2652 
2653 
2654 /*
2655  * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation
2656  * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working
2657  * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990
2658  * Programming language - C.
2659  *
2660  * Programs/Modules should not directly include this file.  Access to the
2661  * types defined in this file should be through the inclusion of one of the
2662  * following files:
2663  *
2664  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2665  *				components of <inttypes.h>.
2666  *
2667  *	<inttypes.h>		For use by applications.
2668  *
2669  * See these files for more details.
2670  *
2671  * Use at your own risk.  This file will track the evolution of the revision
2672  * of the current ISO C standard.  As of February 1996, the committee is
2673  * squarely behind the fixed sized types.
2674  */
2675 
2676 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2677 /*
2678  * CDDL HEADER START
2679  *
2680  * The contents of this file are subject to the terms of the
2681  * Common Development and Distribution License (the "License").
2682  * You may not use this file except in compliance with the License.
2683  *
2684  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2685  * or http://www.opensolaris.org/os/licensing.
2686  * See the License for the specific language governing permissions
2687  * and limitations under the License.
2688  *
2689  * When distributing Covered Code, include this CDDL HEADER in each
2690  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2691  * If applicable, add the following below this CDDL HEADER, with the
2692  * fields enclosed by brackets "[]" replaced with your own identifying
2693  * information: Portions Copyright [yyyy] [name of copyright owner]
2694  *
2695  * CDDL HEADER END
2696  */
2697 
2698 /*
2699  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2700  * Copyright 2016 Joyent, Inc.
2701  *
2702  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2703  * Use is subject to license terms.
2704  */
2705 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2
2706 
2707 
2708 
2709 
2710 
2711 /*
2712  * Constants
2713  *
2714  * The following macros create constants of the types defined in
2715  * <sys/int_types.h>. The intent is that:
2716  *	Constants defined using these macros have a specific size and
2717  *	signedness. The suffix used for int64_t and uint64_t (ll and ull)
2718  *	are for examples only. Implementations are permitted to use other
2719  *	suffixes.
2720  *
2721  * The "CSTYLED" comments are flags to an internal code style analysis tool
2722  * telling it to silently accept the line which follows.  This internal
2723  * standard requires a space between arguments, but the historical,
2724  * non-ANSI-C ``method'' of concatenation can't tolerate those spaces.
2725  */
2726 /* CSTYLED */
2727 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
2728 /* CSTYLED */
2729 
2730 
2731 
2732 
2733 /* CSTYLED */
2734 
2735 /* CSTYLED */
2736 
2737 /* CSTYLED */
2738 
2739 
2740 
2741 
2742 
2743 
2744 /* CSTYLED */
2745 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h"
2746 /* CSTYLED */
2747 
2748 /* CSTYLED */
2749 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2750 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1
2751 /*
2752  * CDDL HEADER START
2753  *
2754  * The contents of this file are subject to the terms of the
2755  * Common Development and Distribution License, Version 1.0 only
2756  * (the "License").  You may not use this file except in compliance
2757  * with the License.
2758  *
2759  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2760  * or http://www.opensolaris.org/os/licensing.
2761  * See the License for the specific language governing permissions
2762  * and limitations under the License.
2763  *
2764  * When distributing Covered Code, include this CDDL HEADER in each
2765  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2766  * If applicable, add the following below this CDDL HEADER, with the
2767  * fields enclosed by brackets "[]" replaced with your own identifying
2768  * information: Portions Copyright [yyyy] [name of copyright owner]
2769  *
2770  * CDDL HEADER END
2771  */
2772 /*
2773  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2774  *
2775  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2776  * Use is subject to license terms.
2777  */
2778 
2779 
2780 
2781 
2782 /*
2783  * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation
2784  * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999
2785  * Programming language - C.
2786  *
2787  * ISO  International Organization for Standardization.
2788  *
2789  * Programs/Modules should not directly include this file.  Access to the
2790  * types defined in this file should be through the inclusion of one of the
2791  * following files:
2792  *
2793  *	<sys/inttypes.h>	Provides the Kernel and Driver appropriate
2794  *				components of <inttypes.h>.
2795  *
2796  *	<inttypes.h>		For use by applications.
2797  *
2798  * See these files for more details.
2799  */
2800 
2801 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
2802 /*
2803  * CDDL HEADER START
2804  *
2805  * The contents of this file are subject to the terms of the
2806  * Common Development and Distribution License (the "License").
2807  * You may not use this file except in compliance with the License.
2808  *
2809  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2810  * or http://www.opensolaris.org/os/licensing.
2811  * See the License for the specific language governing permissions
2812  * and limitations under the License.
2813  *
2814  * When distributing Covered Code, include this CDDL HEADER in each
2815  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2816  * If applicable, add the following below this CDDL HEADER, with the
2817  * fields enclosed by brackets "[]" replaced with your own identifying
2818  * information: Portions Copyright [yyyy] [name of copyright owner]
2819  *
2820  * CDDL HEADER END
2821  */
2822 
2823 /*
2824  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
2825  * Copyright 2016 Joyent, Inc.
2826  *
2827  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2828  * Use is subject to license terms.
2829  */
2830 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2
2831 
2832 
2833 
2834 
2835 
2836 /*
2837  * Formatted I/O
2838  *
2839  * The following macros can be used even when an implementation has not
2840  * extended the printf/scanf family of functions.
2841  *
2842  * The form of the names of the macros is either "PRI" for printf specifiers
2843  * or "SCN" for scanf specifiers, followed by the conversion specifier letter
2844  * followed by the datatype size. For example, PRId32 is the macro for
2845  * the printf d conversion specifier with the flags for 32 bit datatype.
2846  *
2847  * An example using one of these macros:
2848  *
2849  *	uint64_t u;
2850  *	printf("u = %016" PRIx64 "\n", u);
2851  *
2852  * For the purpose of example, the definitions of the printf/scanf macros
2853  * below have the values appropriate for a machine with 8 bit shorts, 16
2854  * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation
2855  * mode, and 64 bit long longs.
2856  */
2857 
2858 /*
2859  * fprintf macros for signed integers
2860  */
2861 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2862 /*
2863  * fprintf macros for unsigned integers
2864  */
2865 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2866 /*
2867  * fprintf macros for pointers
2868  */
2869 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2870 /*
2871  * fscanf macros for signed integers
2872  */
2873 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2874 /*
2875  * fscanf macros for unsigned integers
2876  */
2877 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h"
2878 /*
2879  * The following macros define I/O formats for intmax_t and uintmax_t.
2880  */
2881 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2
2882 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
2883 
2884 
2885 
2886 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1
2887 /*
2888  * CDDL HEADER START
2889  *
2890  * The contents of this file are subject to the terms of the
2891  * Common Development and Distribution License, Version 1.0 only
2892  * (the "License").  You may not use this file except in compliance
2893  * with the License.
2894  *
2895  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2896  * or http://www.opensolaris.org/os/licensing.
2897  * See the License for the specific language governing permissions
2898  * and limitations under the License.
2899  *
2900  * When distributing Covered Code, include this CDDL HEADER in each
2901  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2902  * If applicable, add the following below this CDDL HEADER, with the
2903  * fields enclosed by brackets "[]" replaced with your own identifying
2904  * information: Portions Copyright [yyyy] [name of copyright owner]
2905  *
2906  * CDDL HEADER END
2907  */
2908 /*
2909  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
2910  * Use is subject to license terms.
2911  */
2912 
2913 
2914 
2915 
2916 #pragma ident "%Z%%M%	%I%	%E% SMI"
2917 
2918 /*
2919  * This header is included by <stdint.h> which was introduced by
2920  * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C.
2921  * The header is a subset of the <inttypes.h> header.
2922  */
2923 
2924 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
2925 /*
2926  * CDDL HEADER START
2927  *
2928  * The contents of this file are subject to the terms of the
2929  * Common Development and Distribution License, Version 1.0 only
2930  * (the "License").  You may not use this file except in compliance
2931  * with the License.
2932  *
2933  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2934  * or http://www.opensolaris.org/os/licensing.
2935  * See the License for the specific language governing permissions
2936  * and limitations under the License.
2937  *
2938  * When distributing Covered Code, include this CDDL HEADER in each
2939  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2940  * If applicable, add the following below this CDDL HEADER, with the
2941  * fields enclosed by brackets "[]" replaced with your own identifying
2942  * information: Portions Copyright [yyyy] [name of copyright owner]
2943  *
2944  * CDDL HEADER END
2945  */
2946 /*
2947  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2948  *
2949  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2950  * Use is subject to license terms.
2951  */
2952 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2953 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
2954 /*
2955  * CDDL HEADER START
2956  *
2957  * The contents of this file are subject to the terms of the
2958  * Common Development and Distribution License, Version 1.0 only
2959  * (the "License").  You may not use this file except in compliance
2960  * with the License.
2961  *
2962  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2963  * or http://www.opensolaris.org/os/licensing.
2964  * See the License for the specific language governing permissions
2965  * and limitations under the License.
2966  *
2967  * When distributing Covered Code, include this CDDL HEADER in each
2968  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2969  * If applicable, add the following below this CDDL HEADER, with the
2970  * fields enclosed by brackets "[]" replaced with your own identifying
2971  * information: Portions Copyright [yyyy] [name of copyright owner]
2972  *
2973  * CDDL HEADER END
2974  */
2975 /*
2976  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
2977  *
2978  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
2979  * Use is subject to license terms.
2980  */
2981 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
2982 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1
2983 /*
2984  * CDDL HEADER START
2985  *
2986  * The contents of this file are subject to the terms of the
2987  * Common Development and Distribution License, Version 1.0 only
2988  * (the "License").  You may not use this file except in compliance
2989  * with the License.
2990  *
2991  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2992  * or http://www.opensolaris.org/os/licensing.
2993  * See the License for the specific language governing permissions
2994  * and limitations under the License.
2995  *
2996  * When distributing Covered Code, include this CDDL HEADER in each
2997  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2998  * If applicable, add the following below this CDDL HEADER, with the
2999  * fields enclosed by brackets "[]" replaced with your own identifying
3000  * information: Portions Copyright [yyyy] [name of copyright owner]
3001  *
3002  * CDDL HEADER END
3003  */
3004 /*
3005  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3006  *
3007  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3008  * Use is subject to license terms.
3009  */
3010 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2
3011 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2
3012 
3013 
3014 
3015 
3016 
3017 
3018 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */
3019 
3020 /*
3021  * wchar_t is a built-in type in standard C++ and as such is not
3022  * defined here when using standard C++. However, the GNU compiler
3023  * fixincludes utility nonetheless creates its own version of this
3024  * header for use by gcc and g++. In that version it adds a redundant
3025  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
3026  * header we need to include the following magic comment:
3027  *
3028  * we must use the C++ compiler's type
3029  *
3030  * The above comment should not be removed or changed until GNU
3031  * gcc/fixinc/inclhack.def is updated to bypass this header.
3032  */
3033 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
3034 typedef struct {
3035  intmax_t quot;
3036  intmax_t rem;
3037 } imaxdiv_t;
3038 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h"
3039 extern intmax_t imaxabs(intmax_t);
3040 extern imaxdiv_t imaxdiv(intmax_t, intmax_t);
3041 extern intmax_t strtoimax(const char *, char **,
3042  int);
3043 extern uintmax_t strtoumax(const char *, char **,
3044  int);
3045 extern intmax_t wcstoimax(const wchar_t *,
3046  wchar_t **, int);
3047 extern uintmax_t wcstoumax(const wchar_t *,
3048  wchar_t **, int);
3049 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2
3050 extern uint32_t arc4random(void);
3051 extern void arc4random_buf(void *, size_t);
3052 extern uint32_t arc4random_uniform(uint32_t);
3053 extern void freezero(void *, size_t);
3054 extern void *recallocarray(void *, size_t, size_t, size_t);
3055 # 30 "setup_temporary_directory.c" 2
3056 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1
3057 /*
3058  * CDDL HEADER START
3059  *
3060  * The contents of this file are subject to the terms of the
3061  * Common Development and Distribution License (the "License").
3062  * You may not use this file except in compliance with the License.
3063  *
3064  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3065  * or http://www.opensolaris.org/os/licensing.
3066  * See the License for the specific language governing permissions
3067  * and limitations under the License.
3068  *
3069  * When distributing Covered Code, include this CDDL HEADER in each
3070  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3071  * If applicable, add the following below this CDDL HEADER, with the
3072  * fields enclosed by brackets "[]" replaced with your own identifying
3073  * information: Portions Copyright [yyyy] [name of copyright owner]
3074  *
3075  * CDDL HEADER END
3076  */
3077 
3078 /*
3079  * Copyright 2014 PALO, Richard.
3080  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3081  * Copyright (c) 2013 Gary Mills
3082  *
3083  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
3084  */
3085 
3086 /*	Copyright (c) 1988 AT&T	*/
3087 /*	  All Rights Reserved  	*/
3088 
3089 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
3090 
3091 
3092 
3093 
3094 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3095 /*
3096  * CDDL HEADER START
3097  *
3098  * The contents of this file are subject to the terms of the
3099  * Common Development and Distribution License (the "License").
3100  * You may not use this file except in compliance with the License.
3101  *
3102  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3103  * or http://www.opensolaris.org/os/licensing.
3104  * See the License for the specific language governing permissions
3105  * and limitations under the License.
3106  *
3107  * When distributing Covered Code, include this CDDL HEADER in each
3108  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3109  * If applicable, add the following below this CDDL HEADER, with the
3110  * fields enclosed by brackets "[]" replaced with your own identifying
3111  * information: Portions Copyright [yyyy] [name of copyright owner]
3112  *
3113  * CDDL HEADER END
3114  */
3115 
3116 /*
3117  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3118  * Copyright 2016 Joyent, Inc.
3119  *
3120  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3121  * Use is subject to license terms.
3122  */
3123 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
3124 
3125 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
3126 /*
3127  * This file and its contents are supplied under the terms of the
3128  * Common Development and Distribution License ("CDDL"), version 1.0.
3129  * You may only use this file in accordance with the terms of version
3130  * 1.0 of the CDDL.
3131  *
3132  * A full copy of the text of the CDDL should have accompanied this
3133  * source.  A copy of the CDDL is also available via the Internet at
3134  * http://www.illumos.org/license/CDDL.
3135  */
3136 
3137 /*
3138  * Copyright 2014-2016 PALO, Richard.
3139  */
3140 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
3141 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
3142 /*
3143  * CDDL HEADER START
3144  *
3145  * The contents of this file are subject to the terms of the
3146  * Common Development and Distribution License (the "License").
3147  * You may not use this file except in compliance with the License.
3148  *
3149  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3150  * or http://www.opensolaris.org/os/licensing.
3151  * See the License for the specific language governing permissions
3152  * and limitations under the License.
3153  *
3154  * When distributing Covered Code, include this CDDL HEADER in each
3155  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3156  * If applicable, add the following below this CDDL HEADER, with the
3157  * fields enclosed by brackets "[]" replaced with your own identifying
3158  * information: Portions Copyright [yyyy] [name of copyright owner]
3159  *
3160  * CDDL HEADER END
3161  */
3162 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3163 /*	  All Rights Reserved  	*/
3164 
3165 
3166 /*
3167  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3168  * Use is subject to license terms.
3169  *
3170  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3171  * Copyright 2016 Joyent, Inc.
3172  */
3173 
3174 
3175 
3176 
3177 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3178 /*
3179  * CDDL HEADER START
3180  *
3181  * The contents of this file are subject to the terms of the
3182  * Common Development and Distribution License (the "License").
3183  * You may not use this file except in compliance with the License.
3184  *
3185  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3186  * or http://www.opensolaris.org/os/licensing.
3187  * See the License for the specific language governing permissions
3188  * and limitations under the License.
3189  *
3190  * When distributing Covered Code, include this CDDL HEADER in each
3191  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3192  * If applicable, add the following below this CDDL HEADER, with the
3193  * fields enclosed by brackets "[]" replaced with your own identifying
3194  * information: Portions Copyright [yyyy] [name of copyright owner]
3195  *
3196  * CDDL HEADER END
3197  */
3198 
3199 /*
3200  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3201  * Copyright 2016 Joyent, Inc.
3202  *
3203  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3204  * Use is subject to license terms.
3205  */
3206 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3207 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
3208 /*
3209  * CDDL HEADER START
3210  *
3211  * The contents of this file are subject to the terms of the
3212  * Common Development and Distribution License (the "License").
3213  * You may not use this file except in compliance with the License.
3214  *
3215  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3216  * or http://www.opensolaris.org/os/licensing.
3217  * See the License for the specific language governing permissions
3218  * and limitations under the License.
3219  *
3220  *
3221  * When distributing Covered Code, include this CDDL HEADER in each
3222  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3223  * If applicable, add the following below this CDDL HEADER, with the
3224  * fields enclosed by brackets "[]" replaced with your own identifying
3225  * information: Portions Copyright [yyyy] [name of copyright owner]
3226  *
3227  * CDDL HEADER END
3228  */
3229 
3230 /*
3231  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3232  * Use is subject to license terms.
3233  * Copyright 2016 Joyent, Inc.
3234  */
3235 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3236 
3237 /*
3238  * Machine dependent definitions moved to <sys/machtypes.h>.
3239  */
3240 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1
3241 /*
3242  * CDDL HEADER START
3243  *
3244  * The contents of this file are subject to the terms of the
3245  * Common Development and Distribution License, Version 1.0 only
3246  * (the "License").  You may not use this file except in compliance
3247  * with the License.
3248  *
3249  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3250  * or http://www.opensolaris.org/os/licensing.
3251  * See the License for the specific language governing permissions
3252  * and limitations under the License.
3253  *
3254  * When distributing Covered Code, include this CDDL HEADER in each
3255  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3256  * If applicable, add the following below this CDDL HEADER, with the
3257  * fields enclosed by brackets "[]" replaced with your own identifying
3258  * information: Portions Copyright [yyyy] [name of copyright owner]
3259  *
3260  * CDDL HEADER END
3261  */
3262 /*
3263  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3264  * Use is subject to license terms.
3265  */
3266 
3267 
3268 
3269 
3270 #pragma ident "%Z%%M%	%I%	%E% SMI"
3271 
3272 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3273 /*
3274  * CDDL HEADER START
3275  *
3276  * The contents of this file are subject to the terms of the
3277  * Common Development and Distribution License (the "License").
3278  * You may not use this file except in compliance with the License.
3279  *
3280  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3281  * or http://www.opensolaris.org/os/licensing.
3282  * See the License for the specific language governing permissions
3283  * and limitations under the License.
3284  *
3285  * When distributing Covered Code, include this CDDL HEADER in each
3286  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3287  * If applicable, add the following below this CDDL HEADER, with the
3288  * fields enclosed by brackets "[]" replaced with your own identifying
3289  * information: Portions Copyright [yyyy] [name of copyright owner]
3290  *
3291  * CDDL HEADER END
3292  */
3293 
3294 /*
3295  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3296  * Copyright 2016 Joyent, Inc.
3297  *
3298  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3299  * Use is subject to license terms.
3300  */
3301 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
3302 
3303 
3304 
3305 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1
3306 /*
3307  * CDDL HEADER START
3308  *
3309  * The contents of this file are subject to the terms of the
3310  * Common Development and Distribution License (the "License").
3311  * You may not use this file except in compliance with the License.
3312  *
3313  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3314  * or http://www.opensolaris.org/os/licensing.
3315  * See the License for the specific language governing permissions
3316  * and limitations under the License.
3317  *
3318  * When distributing Covered Code, include this CDDL HEADER in each
3319  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3320  * If applicable, add the following below this CDDL HEADER, with the
3321  * fields enclosed by brackets "[]" replaced with your own identifying
3322  * information: Portions Copyright [yyyy] [name of copyright owner]
3323  *
3324  * CDDL HEADER END
3325  */
3326 /*
3327  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3328  * Use is subject to license terms.
3329  */
3330 
3331 
3332 
3333 
3334 #pragma ident "%Z%%M%	%I%	%E% SMI"
3335 
3336 
3337 
3338 
3339 
3340 /*
3341  * Machine dependent types:
3342  *
3343  *	intel ia32 Version
3344  */
3345 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h"
3346 typedef struct _label_t { long val[6]; } label_t;
3347 
3348 
3349 
3350 typedef unsigned char lock_t; /* lock work for busy wait */
3351 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2
3352 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3353 
3354 /*
3355  * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
3356  * committee's working draft for the revision of the current ISO C standard,
3357  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
3358  * required by any standard but constitute a useful, general purpose set
3359  * of type definitions which is namespace clean with respect to all standards.
3360  */
3361 
3362 
3363 
3364 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
3365 /*
3366  * CDDL HEADER START
3367  *
3368  * The contents of this file are subject to the terms of the
3369  * Common Development and Distribution License, Version 1.0 only
3370  * (the "License").  You may not use this file except in compliance
3371  * with the License.
3372  *
3373  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3374  * or http://www.opensolaris.org/os/licensing.
3375  * See the License for the specific language governing permissions
3376  * and limitations under the License.
3377  *
3378  * When distributing Covered Code, include this CDDL HEADER in each
3379  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3380  * If applicable, add the following below this CDDL HEADER, with the
3381  * fields enclosed by brackets "[]" replaced with your own identifying
3382  * information: Portions Copyright [yyyy] [name of copyright owner]
3383  *
3384  * CDDL HEADER END
3385  */
3386 /*
3387  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3388  *
3389  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3390  * Use is subject to license terms.
3391  */
3392 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
3393 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3394 /*
3395  * Strictly conforming ANSI C environments prior to the 1999
3396  * revision of the C Standard (ISO/IEC 9899:1999) do not have
3397  * the long long data type.
3398  */
3399 
3400 typedef long long longlong_t;
3401 typedef unsigned long long u_longlong_t;
3402 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3403 /*
3404  * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
3405  * to use them instead of int32_t and uint32_t because DEC had
3406  * shipped 64-bit wide.
3407  */
3408 
3409 
3410 
3411 
3412 typedef long t_scalar_t; /* historical versions */
3413 typedef unsigned long t_uscalar_t;
3414 
3415 
3416 /*
3417  * POSIX Extensions
3418  */
3419 typedef unsigned char uchar_t;
3420 typedef unsigned short ushort_t;
3421 typedef unsigned int uint_t;
3422 typedef unsigned long ulong_t;
3423 
3424 typedef char *caddr_t; /* ?<core address> type */
3425 typedef long daddr_t; /* <disk address> type */
3426 typedef short cnt_t; /* ?<count> type */
3427 
3428 
3429 
3430 
3431 
3432 
3433 typedef int ptrdiff_t; /* (historical version) */
3434 
3435 
3436 
3437 /*
3438  * VM-related types
3439  */
3440 typedef ulong_t pfn_t; /* page frame number */
3441 typedef ulong_t pgcnt_t; /* number of pages */
3442 typedef long spgcnt_t; /* signed number of pages */
3443 
3444 typedef uchar_t use_t; /* use count for swap.  */
3445 typedef short sysid_t;
3446 typedef short index_t;
3447 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */
3448 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */
3449 
3450 /*
3451  * The size of off_t and related types depends on the setting of
3452  * _FILE_OFFSET_BITS.  (Note that other system headers define other types
3453  * related to those defined here.)
3454  *
3455  * If _LARGEFILE64_SOURCE is defined, variants of these types that are
3456  * explicitly 64 bits wide become available.
3457  */
3458 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3459 typedef u_longlong_t ino_t; /* expanded inode type	*/
3460 typedef longlong_t blkcnt_t; /* count of file blocks */
3461 typedef u_longlong_t fsblkcnt_t; /* count of file system blocks */
3462 typedef u_longlong_t fsfilcnt_t; /* count of files */
3463 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3464 typedef u_longlong_t ino64_t; /* expanded inode type	*/
3465 typedef longlong_t blkcnt64_t; /* count of file blocks */
3466 typedef u_longlong_t fsblkcnt64_t; /* count of file system blocks */
3467 typedef u_longlong_t fsfilcnt64_t; /* count of files */
3468 
3469 
3470 
3471 
3472 
3473 
3474 typedef long blksize_t; /* used for block sizes */
3475 
3476 
3477 
3478 
3479 
3480 typedef enum { B_FALSE, B_TRUE } boolean_t;
3481 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3482 /*
3483  * The {u,}pad64_t types can be used in structures such that those structures
3484  * may be accessed by code produced by compilation environments which don't
3485  * support a 64 bit integral datatype.  The intention is not to allow
3486  * use of these fields in such environments, but to maintain the alignment
3487  * and offsets of the structure.
3488  *
3489  * Similar comments for {u,}pad128_t.
3490  *
3491  * Note that these types do NOT generate any stronger alignment constraints
3492  * than those available in the underlying ABI.  See <sys/isa_defs.h>
3493  */
3494 
3495 typedef int64_t pad64_t;
3496 typedef uint64_t upad64_t;
3497 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3498 typedef union {
3499  long double _q;
3500  int32_t _l[4];
3501 } pad128_t;
3502 
3503 typedef union {
3504  long double _q;
3505  uint32_t _l[4];
3506 } upad128_t;
3507 
3508 typedef longlong_t offset_t;
3509 typedef u_longlong_t u_offset_t;
3510 typedef u_longlong_t len_t;
3511 typedef u_longlong_t diskaddr_t;
3512 
3513 
3514 
3515 
3516 /*
3517  * Definitions remaining from previous partial support for 64-bit file
3518  * offsets.  This partial support for devices greater than 2gb requires
3519  * compiler support for long long.
3520  */
3521 
3522 typedef union {
3523  offset_t _f; /* Full 64 bit offset value */
3524  struct {
3525   int32_t _l; /* lower 32 bits of offset value */
3526   int32_t _u; /* upper 32 bits of offset value */
3527  } _p;
3528 } lloff_t;
3529 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3530 typedef union {
3531  longlong_t _f; /* Full 64 bit disk address value */
3532  struct {
3533   int32_t _l; /* lower 32 bits of disk address value */
3534   int32_t _u; /* upper 32 bits of disk address value */
3535  } _p;
3536 } lldaddr_t;
3537 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3538 typedef uint_t k_fltset_t; /* kernel fault set type */
3539 
3540 /*
3541  * The following type is for various kinds of identifiers.  The
3542  * actual type must be the same for all since some system calls
3543  * (such as sigsend) take arguments that may be any of these
3544  * types.  The enumeration type idtype_t defined in sys/procset.h
3545  * is used to indicate what type of id is being specified --
3546  * a process id, process group id, session id, scheduling class id,
3547  * user id, group id, project id, task id or zone id.
3548  */
3549 
3550 
3551 
3552 typedef long id_t; /* (historical version) */
3553 
3554 
3555 typedef id_t lgrp_id_t; /* lgroup ID */
3556 
3557 /*
3558  * Type useconds_t is an unsigned integral type capable of storing
3559  * values at least in the range of zero to 1,000,000.
3560  */
3561 typedef uint_t useconds_t; /* Time, in microseconds */
3562 
3563 
3564 
3565 typedef long suseconds_t; /* signed # of microseconds */
3566 
3567 
3568 /*
3569  * Typedefs for dev_t components.
3570  */
3571 
3572 
3573 
3574 
3575 typedef ulong_t major_t; /* (historical version) */
3576 typedef ulong_t minor_t; /* (historical version) */
3577 
3578 
3579 /*
3580  * The data type of a thread priority.
3581  */
3582 typedef short pri_t;
3583 
3584 /*
3585  * The data type for a CPU flags field.  (Can be extended to larger unsigned
3586  * types, if needed, limited by ability to update atomically.)
3587  */
3588 typedef ushort_t cpu_flag_t;
3589 
3590 /*
3591  * For compatibility reasons the following typedefs (prefixed o_)
3592  * can't grow regardless of the EFT definition. Although,
3593  * applications should not explicitly use these typedefs
3594  * they may be included via a system header definition.
3595  * WARNING: These typedefs may be removed in a future
3596  * release.
3597  *		ex. the definitions in s5inode.h (now obsoleted)
3598  *			remained small to preserve compatibility
3599  *			in the S5 file system type.
3600  */
3601 typedef ushort_t o_mode_t; /* old file attribute type */
3602 typedef short o_dev_t; /* old device type	*/
3603 typedef ushort_t o_uid_t; /* old UID type		*/
3604 typedef o_uid_t o_gid_t; /* old GID type		*/
3605 typedef short o_nlink_t; /* old file link type	*/
3606 typedef short o_pid_t; /* old process id type	*/
3607 typedef ushort_t o_ino_t; /* old inode type	*/
3608 
3609 
3610 /*
3611  * POSIX and XOPEN Declarations
3612  */
3613 typedef int key_t; /* IPC key type		*/
3614 
3615 
3616 
3617 typedef ulong_t mode_t; /* (historical version) */
3618 
3619 
3620 
3621 
3622 
3623 
3624 
3625 typedef uid_t gid_t; /* GID type		*/
3626 
3627 typedef uint32_t datalink_id_t;
3628 typedef uint32_t vrid_t;
3629 
3630 typedef id_t taskid_t;
3631 typedef id_t projid_t;
3632 typedef id_t poolid_t;
3633 typedef id_t zoneid_t;
3634 typedef id_t ctid_t;
3635 
3636 /*
3637  * POSIX definitions are same as defined in thread.h and synch.h.
3638  * Any changes made to here should be reflected in corresponding
3639  * files as described in comments.
3640  */
3641 typedef uint_t pthread_t; /* = thread_t in thread.h */
3642 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */
3643 
3644 /* "Magic numbers" tagging synchronization object types */
3645 
3646 
3647 
3648 
3649 
3650 typedef struct _pthread_mutex { /* = mutex_t in synch.h */
3651  struct {
3652   uint16_t __pthread_mutex_flag1;
3653   uint8_t __pthread_mutex_flag2;
3654   uint8_t __pthread_mutex_ceiling;
3655   uint16_t __pthread_mutex_type;
3656   uint16_t __pthread_mutex_magic;
3657  } __pthread_mutex_flags;
3658  union {
3659   struct {
3660    uint8_t __pthread_mutex_pad[8];
3661   } __pthread_mutex_lock64;
3662   struct {
3663    uint32_t __pthread_ownerpid;
3664    uint32_t __pthread_lockword;
3665   } __pthread_mutex_lock32;
3666   upad64_t __pthread_mutex_owner64;
3667  } __pthread_mutex_lock;
3668  upad64_t __pthread_mutex_data;
3669 } pthread_mutex_t;
3670 
3671 typedef struct _pthread_cond { /* = cond_t in synch.h */
3672  struct {
3673   uint8_t __pthread_cond_flag[4];
3674   uint16_t __pthread_cond_type;
3675   uint16_t __pthread_cond_magic;
3676  } __pthread_cond_flags;
3677  upad64_t __pthread_cond_data;
3678 } pthread_cond_t;
3679 
3680 /*
3681  * UNIX 98 Extension
3682  */
3683 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */
3684  int32_t __pthread_rwlock_readers;
3685  uint16_t __pthread_rwlock_type;
3686  uint16_t __pthread_rwlock_magic;
3687  pthread_mutex_t __pthread_rwlock_mutex;
3688  pthread_cond_t __pthread_rwlock_readercv;
3689  pthread_cond_t __pthread_rwlock_writercv;
3690 } pthread_rwlock_t;
3691 
3692 /*
3693  * SUSV3
3694  */
3695 typedef struct {
3696  uint32_t __pthread_barrier_count;
3697  uint32_t __pthread_barrier_current;
3698  upad64_t __pthread_barrier_cycle;
3699  upad64_t __pthread_barrier_reserved;
3700  pthread_mutex_t __pthread_barrier_lock;
3701  pthread_cond_t __pthread_barrier_cond;
3702 } pthread_barrier_t;
3703 
3704 typedef pthread_mutex_t pthread_spinlock_t;
3705 
3706 /*
3707  * attributes for threads, dynamically allocated by library
3708  */
3709 typedef struct _pthread_attr {
3710  void *__pthread_attrp;
3711 } pthread_attr_t;
3712 
3713 /*
3714  * attributes for mutex, dynamically allocated by library
3715  */
3716 typedef struct _pthread_mutexattr {
3717  void *__pthread_mutexattrp;
3718 } pthread_mutexattr_t;
3719 
3720 /*
3721  * attributes for cond, dynamically allocated by library
3722  */
3723 typedef struct _pthread_condattr {
3724  void *__pthread_condattrp;
3725 } pthread_condattr_t;
3726 
3727 /*
3728  * pthread_once
3729  */
3730 typedef struct _once {
3731  upad64_t __pthread_once_pad[4];
3732 } pthread_once_t;
3733 
3734 /*
3735  * UNIX 98 Extensions
3736  * attributes for rwlock, dynamically allocated by library
3737  */
3738 typedef struct _pthread_rwlockattr {
3739  void *__pthread_rwlockattrp;
3740 } pthread_rwlockattr_t;
3741 
3742 /*
3743  * SUSV3
3744  * attributes for pthread_barrier_t, dynamically allocated by library
3745  */
3746 typedef struct {
3747  void *__pthread_barrierattrp;
3748 } pthread_barrierattr_t;
3749 
3750 typedef ulong_t dev_t; /* expanded device type */
3751 
3752 
3753 
3754 
3755 
3756 typedef ulong_t nlink_t; /* (historical version) */
3757 typedef long pid_t; /* (historical version) */
3758 # 537 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3759 typedef long time_t; /* time of day in seconds */
3760 
3761 
3762 
3763 
3764 typedef long clock_t; /* relative time in a specified resolution */
3765 
3766 
3767 
3768 
3769 typedef int clockid_t; /* clock identifier type */
3770 
3771 
3772 
3773 
3774 typedef int timer_t; /* timer identifier type */
3775 
3776 
3777 
3778 
3779 /* BEGIN CSTYLED */
3780 typedef unsigned char unchar;
3781 typedef unsigned short ushort;
3782 typedef unsigned int uint;
3783 typedef unsigned long ulong;
3784 /* END CSTYLED */
3785 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3786 /*
3787  * The following is the value of type id_t to use to indicate the
3788  * caller's current id.  See procset.h for the type idtype_t
3789  * which defines which kind of id is being specified.
3790  */
3791 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h"
3792 /*
3793  * The following value of type pfn_t is used to indicate
3794  * invalid page frame number.
3795  */
3796 
3797 
3798 
3799 /* BEGIN CSTYLED */
3800 typedef unsigned char u_char;
3801 typedef unsigned short u_short;
3802 typedef unsigned int u_int;
3803 typedef unsigned long u_long;
3804 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */
3805 typedef quad_t quad; /* used by UFS */
3806 /* END CSTYLED */
3807 
3808 /*
3809  * Nested include for BSD/sockets source compatibility.
3810  * (The select macros used to be defined here).
3811  */
3812 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
3813 /*
3814  * CDDL HEADER START
3815  *
3816  * The contents of this file are subject to the terms of the
3817  * Common Development and Distribution License (the "License").
3818  * You may not use this file except in compliance with the License.
3819  *
3820  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3821  * or http://www.opensolaris.org/os/licensing.
3822  * See the License for the specific language governing permissions
3823  * and limitations under the License.
3824  *
3825  * When distributing Covered Code, include this CDDL HEADER in each
3826  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3827  * If applicable, add the following below this CDDL HEADER, with the
3828  * fields enclosed by brackets "[]" replaced with your own identifying
3829  * information: Portions Copyright [yyyy] [name of copyright owner]
3830  *
3831  * CDDL HEADER END
3832  */
3833 
3834 /*
3835  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3836  *
3837  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
3838  *
3839  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
3840  * Use is subject to license terms.
3841  */
3842 
3843 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3844 /*	  All Rights Reserved	*/
3845 
3846 /*
3847  * University Copyright- Copyright (c) 1982, 1986, 1988
3848  * The Regents of the University of California
3849  * All Rights Reserved
3850  *
3851  * University Acknowledgment- Portions of this document are derived from
3852  * software developed by the University of California, Berkeley, and its
3853  * contributors.
3854  */
3855 
3856 
3857 
3858 
3859 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3860 /*
3861  * CDDL HEADER START
3862  *
3863  * The contents of this file are subject to the terms of the
3864  * Common Development and Distribution License (the "License").
3865  * You may not use this file except in compliance with the License.
3866  *
3867  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3868  * or http://www.opensolaris.org/os/licensing.
3869  * See the License for the specific language governing permissions
3870  * and limitations under the License.
3871  *
3872  * When distributing Covered Code, include this CDDL HEADER in each
3873  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3874  * If applicable, add the following below this CDDL HEADER, with the
3875  * fields enclosed by brackets "[]" replaced with your own identifying
3876  * information: Portions Copyright [yyyy] [name of copyright owner]
3877  *
3878  * CDDL HEADER END
3879  */
3880 
3881 /*
3882  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3883  * Copyright 2016 Joyent, Inc.
3884  *
3885  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3886  * Use is subject to license terms.
3887  */
3888 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
3889 
3890 
3891 
3892 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
3893 /*
3894  * CDDL HEADER START
3895  *
3896  * The contents of this file are subject to the terms of the
3897  * Common Development and Distribution License, Version 1.0 only
3898  * (the "License").  You may not use this file except in compliance
3899  * with the License.
3900  *
3901  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3902  * or http://www.opensolaris.org/os/licensing.
3903  * See the License for the specific language governing permissions
3904  * and limitations under the License.
3905  *
3906  * When distributing Covered Code, include this CDDL HEADER in each
3907  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3908  * If applicable, add the following below this CDDL HEADER, with the
3909  * fields enclosed by brackets "[]" replaced with your own identifying
3910  * information: Portions Copyright [yyyy] [name of copyright owner]
3911  *
3912  * CDDL HEADER END
3913  */
3914 /*
3915  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
3916  * Use is subject to license terms.
3917  */
3918 
3919 /*
3920  * Implementation-private.  This header should not be included
3921  * directly by an application.  The application should instead
3922  * include <time.h> which includes this header conditionally
3923  * depending on which feature test macros are defined. By default,
3924  * this header is included by <time.h>.  X/Open and POSIX
3925  * standards requirements result in this header being included
3926  * by <time.h> only under a restricted set of conditions.
3927  */
3928 
3929 
3930 
3931 
3932 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
3933 /*
3934  * CDDL HEADER START
3935  *
3936  * The contents of this file are subject to the terms of the
3937  * Common Development and Distribution License (the "License").
3938  * You may not use this file except in compliance with the License.
3939  *
3940  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3941  * or http://www.opensolaris.org/os/licensing.
3942  * See the License for the specific language governing permissions
3943  * and limitations under the License.
3944  *
3945  * When distributing Covered Code, include this CDDL HEADER in each
3946  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3947  * If applicable, add the following below this CDDL HEADER, with the
3948  * fields enclosed by brackets "[]" replaced with your own identifying
3949  * information: Portions Copyright [yyyy] [name of copyright owner]
3950  *
3951  * CDDL HEADER END
3952  */
3953 
3954 /*
3955  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
3956  * Copyright 2016 Joyent, Inc.
3957  *
3958  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3959  * Use is subject to license terms.
3960  */
3961 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2
3962 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
3963 /*
3964  * Time expressed in seconds and nanoseconds
3965  */
3966 
3967 typedef struct timespec { /* definition per POSIX.4 */
3968  time_t tv_sec; /* seconds */
3969  long tv_nsec; /* and nanoseconds */
3970 } timespec_t;
3971 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h"
3972 typedef struct timespec timestruc_t; /* definition per SVr4 */
3973 
3974 /*
3975  * The following has been left in for backward compatibility. Portable
3976  * applications should not use the structure name timestruc.
3977  */
3978 
3979 
3980 
3981 
3982 
3983 /*
3984  * Timer specification
3985  */
3986 typedef struct itimerspec { /* definition per POSIX.4 */
3987  struct timespec it_interval; /* timer period */
3988  struct timespec it_value; /* timer expiration */
3989 } itimerspec_t;
3990 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
3991 
3992 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
3993 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
3994 /*	  All Rights Reserved  	*/
3995 
3996 
3997 /*
3998  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
3999  * All rights reserved.  The Berkeley software License Agreement
4000  * specifies the terms and conditions for redistribution.
4001  */
4002 
4003 /*
4004  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4005  *
4006  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4007  * Use is subject to license terms.
4008  *
4009  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4010  */
4011 
4012 /*
4013  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
4014  */
4015 
4016 
4017 
4018 
4019 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4020 /*
4021  * CDDL HEADER START
4022  *
4023  * The contents of this file are subject to the terms of the
4024  * Common Development and Distribution License (the "License").
4025  * You may not use this file except in compliance with the License.
4026  *
4027  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4028  * or http://www.opensolaris.org/os/licensing.
4029  * See the License for the specific language governing permissions
4030  * and limitations under the License.
4031  *
4032  * When distributing Covered Code, include this CDDL HEADER in each
4033  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4034  * If applicable, add the following below this CDDL HEADER, with the
4035  * fields enclosed by brackets "[]" replaced with your own identifying
4036  * information: Portions Copyright [yyyy] [name of copyright owner]
4037  *
4038  * CDDL HEADER END
4039  */
4040 
4041 /*
4042  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4043  * Copyright 2016 Joyent, Inc.
4044  *
4045  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4046  * Use is subject to license terms.
4047  */
4048 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4049 
4050 /*
4051  * Structure returned by gettimeofday(2) system call,
4052  * and used in other calls.
4053  */
4054 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4055 struct timeval {
4056  time_t tv_sec; /* seconds */
4057  suseconds_t tv_usec; /* and microseconds */
4058 };
4059 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4060 struct timezone {
4061  int tz_minuteswest; /* minutes west of Greenwich */
4062  int tz_dsttime; /* type of dst correction */
4063 };
4064 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4065 /*
4066  * Needed for longlong_t type.  Placement of this due to <sys/types.h>
4067  * including <sys/select.h> which relies on the presense of the itimerval
4068  * structure.
4069  */
4070 
4071 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4072 /*
4073  * CDDL HEADER START
4074  *
4075  * The contents of this file are subject to the terms of the
4076  * Common Development and Distribution License (the "License").
4077  * You may not use this file except in compliance with the License.
4078  *
4079  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4080  * or http://www.opensolaris.org/os/licensing.
4081  * See the License for the specific language governing permissions
4082  * and limitations under the License.
4083  *
4084  * When distributing Covered Code, include this CDDL HEADER in each
4085  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4086  * If applicable, add the following below this CDDL HEADER, with the
4087  * fields enclosed by brackets "[]" replaced with your own identifying
4088  * information: Portions Copyright [yyyy] [name of copyright owner]
4089  *
4090  * CDDL HEADER END
4091  */
4092 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4093 /*	  All Rights Reserved  	*/
4094 
4095 
4096 /*
4097  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4098  * Use is subject to license terms.
4099  *
4100  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4101  * Copyright 2016 Joyent, Inc.
4102  */
4103 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4104 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4105 /*
4106  * Operations on timevals.
4107  */
4108 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4109 /*
4110  * Names of the interval timers, and structure
4111  * defining a timer setting.
4112  */
4113 
4114 
4115 
4116     /* time and when system is running on */
4117     /* behalf of the process. */
4118 
4119     /* time profiling of multithreaded */
4120     /* programs. */
4121 
4122 
4123 struct itimerval {
4124  struct timeval it_interval; /* timer interval */
4125  struct timeval it_value; /* current value */
4126 };
4127 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4128 /*
4129  *	Definitions for commonly used resolutions.
4130  */
4131 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4132 /*
4133  * Time expressed as a 64-bit nanosecond counter.
4134  */
4135 typedef longlong_t hrtime_t;
4136 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4137 int adjtime(struct timeval *, struct timeval *);
4138 
4139 
4140 
4141 
4142 int futimesat(int, const char *, const struct timeval *);
4143 
4144 
4145 
4146 
4147 
4148 int getitimer(int, struct itimerval *);
4149 int utimes(const char *, const struct timeval *);
4150 
4151 
4152 
4153 
4154 int setitimer(int, struct itimerval *,
4155  struct itimerval *);
4156 
4157 
4158 
4159 
4160 /*
4161  * gettimeofday() and settimeofday() were included in SVr4 due to their
4162  * common use in BSD based applications.  They were to be included exactly
4163  * as in BSD, with two parameters.  However, AT&T/USL noted that the second
4164  * parameter was unused and deleted it, thereby making a routine included
4165  * for compatibility, incompatible.
4166  *
4167  * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two
4168  * parameters.
4169  *
4170  * This has caused general disagreement in the application community as to
4171  * the syntax of these routines.  Solaris defaults to the XSH4.2 definition.
4172  * The flag _SVID_GETTOD may be used to force the SVID version.
4173  */
4174 
4175 
4176 
4177 
4178 
4179 int settimeofday(struct timeval *, void *);
4180 
4181 hrtime_t gethrtime(void);
4182 hrtime_t gethrvtime(void);
4183 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h"
4184 int gettimeofday(struct timeval *, void *);
4185 
4186 
4187 
4188 
4189 /*
4190  * The inclusion of <time.h> is historical and was added for
4191  * backward compatibility in delta 1.2 when a number of definitions
4192  * were moved out of <sys/time.h>.  More recently, the timespec and
4193  * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
4194  * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
4195  * which is now included by <time.h>.  This change was due to POSIX
4196  * 1003.1b-1993 and X/Open UNIX 98 requirements.  For non-POSIX and
4197  * non-X/Open applications, including this header will still make
4198  * visible these definitions.
4199  */
4200 
4201 
4202 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
4203 /*
4204  * CDDL HEADER START
4205  *
4206  * The contents of this file are subject to the terms of the
4207  * Common Development and Distribution License (the "License").
4208  * You may not use this file except in compliance with the License.
4209  *
4210  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4211  * or http://www.opensolaris.org/os/licensing.
4212  * See the License for the specific language governing permissions
4213  * and limitations under the License.
4214  *
4215  * When distributing Covered Code, include this CDDL HEADER in each
4216  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4217  * If applicable, add the following below this CDDL HEADER, with the
4218  * fields enclosed by brackets "[]" replaced with your own identifying
4219  * information: Portions Copyright [yyyy] [name of copyright owner]
4220  *
4221  * CDDL HEADER END
4222  */
4223 /*	Copyright (c) 1988 AT&T	*/
4224 /*	  All Rights Reserved  	*/
4225 
4226 
4227 /*
4228  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4229  *
4230  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
4231  * Use is subject to license terms.
4232  */
4233 /*
4234  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
4235  * Copyright 2016 Joyent, Inc.
4236  */
4237 
4238 
4239 
4240 
4241 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4242 /*
4243  * CDDL HEADER START
4244  *
4245  * The contents of this file are subject to the terms of the
4246  * Common Development and Distribution License (the "License").
4247  * You may not use this file except in compliance with the License.
4248  *
4249  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4250  * or http://www.opensolaris.org/os/licensing.
4251  * See the License for the specific language governing permissions
4252  * and limitations under the License.
4253  *
4254  * When distributing Covered Code, include this CDDL HEADER in each
4255  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4256  * If applicable, add the following below this CDDL HEADER, with the
4257  * fields enclosed by brackets "[]" replaced with your own identifying
4258  * information: Portions Copyright [yyyy] [name of copyright owner]
4259  *
4260  * CDDL HEADER END
4261  */
4262 
4263 /*
4264  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4265  * Copyright 2016 Joyent, Inc.
4266  *
4267  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4268  * Use is subject to license terms.
4269  */
4270 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4271 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1
4272 /*
4273  * CDDL HEADER START
4274  *
4275  * The contents of this file are subject to the terms of the
4276  * Common Development and Distribution License, Version 1.0 only
4277  * (the "License").  You may not use this file except in compliance
4278  * with the License.
4279  *
4280  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4281  * or http://www.opensolaris.org/os/licensing.
4282  * See the License for the specific language governing permissions
4283  * and limitations under the License.
4284  *
4285  * When distributing Covered Code, include this CDDL HEADER in each
4286  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4287  * If applicable, add the following below this CDDL HEADER, with the
4288  * fields enclosed by brackets "[]" replaced with your own identifying
4289  * information: Portions Copyright [yyyy] [name of copyright owner]
4290  *
4291  * CDDL HEADER END
4292  */
4293 /*	Copyright (c) 1988 AT&T	*/
4294 /*	  All Rights Reserved  	*/
4295 
4296 /*
4297  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4298  * Copyright 2014 PALO, Richard.
4299  *
4300  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
4301  * Use is subject to license terms.
4302  */
4303 
4304 /*
4305  * An application should not include this header directly.  Instead it
4306  * should be included only through the inclusion of other Sun headers.
4307  *
4308  * The contents of this header is limited to identifiers specified in the
4309  * C Standard.  Any new identifiers specified in future amendments to the
4310  * C Standard must be placed in this header.  If these new identifiers
4311  * are required to also be in the C++ Standard "std" namespace, then for
4312  * anything other than macro definitions, corresponding "using" directives
4313  * must also be added to <time.h.h>.
4314  */
4315 
4316 
4317 
4318 
4319 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4320 /*
4321  * CDDL HEADER START
4322  *
4323  * The contents of this file are subject to the terms of the
4324  * Common Development and Distribution License (the "License").
4325  * You may not use this file except in compliance with the License.
4326  *
4327  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4328  * or http://www.opensolaris.org/os/licensing.
4329  * See the License for the specific language governing permissions
4330  * and limitations under the License.
4331  *
4332  * When distributing Covered Code, include this CDDL HEADER in each
4333  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4334  * If applicable, add the following below this CDDL HEADER, with the
4335  * fields enclosed by brackets "[]" replaced with your own identifying
4336  * information: Portions Copyright [yyyy] [name of copyright owner]
4337  *
4338  * CDDL HEADER END
4339  */
4340 
4341 /*
4342  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4343  * Copyright 2016 Joyent, Inc.
4344  *
4345  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4346  * Use is subject to license terms.
4347  */
4348 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
4349 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
4350 /*
4351  * This file and its contents are supplied under the terms of the
4352  * Common Development and Distribution License ("CDDL"), version 1.0.
4353  * You may only use this file in accordance with the terms of version
4354  * 1.0 of the CDDL.
4355  *
4356  * A full copy of the text of the CDDL should have accompanied this
4357  * source.  A copy of the CDDL is also available via the Internet at
4358  * http://www.illumos.org/license/CDDL.
4359  */
4360 
4361 /*
4362  * Copyright 2014-2016 PALO, Richard.
4363  */
4364 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2
4365 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h"
4366 struct tm { /* see ctime(3) */
4367  int tm_sec;
4368  int tm_min;
4369  int tm_hour;
4370  int tm_mday;
4371  int tm_mon;
4372  int tm_year;
4373  int tm_wday;
4374  int tm_yday;
4375  int tm_isdst;
4376 };
4377 
4378 
4379 extern char *asctime(const struct tm *);
4380 extern clock_t clock(void);
4381 extern char *ctime(const time_t *);
4382 extern double difftime(time_t, time_t);
4383 extern struct tm *gmtime(const time_t *);
4384 extern struct tm *localtime(const time_t *);
4385 extern time_t mktime(struct tm *);
4386 extern time_t time(time_t *);
4387 extern size_t strftime(char *, size_t, const char *,
4388  const struct tm *);
4389 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4390 /*
4391  * C11 requires sys/time_impl.h for the definition of the struct timespec.
4392  */
4393 
4394 
4395 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
4396 /*
4397  * CDDL HEADER START
4398  *
4399  * The contents of this file are subject to the terms of the
4400  * Common Development and Distribution License (the "License").
4401  * You may not use this file except in compliance with the License.
4402  *
4403  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4404  * or http://www.opensolaris.org/os/licensing.
4405  * See the License for the specific language governing permissions
4406  * and limitations under the License.
4407  *
4408  * When distributing Covered Code, include this CDDL HEADER in each
4409  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4410  * If applicable, add the following below this CDDL HEADER, with the
4411  * fields enclosed by brackets "[]" replaced with your own identifying
4412  * information: Portions Copyright [yyyy] [name of copyright owner]
4413  *
4414  * CDDL HEADER END
4415  */
4416 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4417 /*	  All Rights Reserved  	*/
4418 
4419 
4420 /*
4421  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4422  * Use is subject to license terms.
4423  *
4424  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4425  * Copyright 2016 Joyent, Inc.
4426  */
4427 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4428 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
4429 /*
4430  * CDDL HEADER START
4431  *
4432  * The contents of this file are subject to the terms of the
4433  * Common Development and Distribution License, Version 1.0 only
4434  * (the "License").  You may not use this file except in compliance
4435  * with the License.
4436  *
4437  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4438  * or http://www.opensolaris.org/os/licensing.
4439  * See the License for the specific language governing permissions
4440  * and limitations under the License.
4441  *
4442  * When distributing Covered Code, include this CDDL HEADER in each
4443  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4444  * If applicable, add the following below this CDDL HEADER, with the
4445  * fields enclosed by brackets "[]" replaced with your own identifying
4446  * information: Portions Copyright [yyyy] [name of copyright owner]
4447  *
4448  * CDDL HEADER END
4449  */
4450 /*
4451  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
4452  * Use is subject to license terms.
4453  */
4454 
4455 /*
4456  * Implementation-private.  This header should not be included
4457  * directly by an application.  The application should instead
4458  * include <time.h> which includes this header conditionally
4459  * depending on which feature test macros are defined. By default,
4460  * this header is included by <time.h>.  X/Open and POSIX
4461  * standards requirements result in this header being included
4462  * by <time.h> only under a restricted set of conditions.
4463  */
4464 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2
4465 
4466 
4467 /*
4468  * Allow global visibility for symbols defined in
4469  * C++ "std" namespace in <iso/time_iso.h>.
4470  */
4471 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4472 extern struct tm *gmtime_r(const time_t *,
4473    struct tm *);
4474 extern struct tm *localtime_r(const time_t *,
4475    struct tm *);
4476 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4477 extern char *strptime(const char *, const char *,
4478   struct tm *);
4479 
4480 
4481 
4482 
4483 
4484 /*
4485  * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
4486  * definition of the sigevent structure.  Both require the inclusion
4487  * of <signal.h> and <time.h> when using the timer_create() function.
4488  * However, X/Open also specifies that the sigevent structure be defined
4489  * in <time.h> as described in the header <signal.h>.  This prevents
4490  * compiler warnings for applications that only include <time.h> and not
4491  * also <signal.h>.  The sigval union and the sigevent structure is
4492  * therefore defined both here and in <sys/siginfo.h> which gets included
4493  * via inclusion of <signal.h>.
4494  */
4495 
4496 
4497 union sigval {
4498  int sival_int; /* integer value */
4499  void *sival_ptr; /* pointer value */
4500 };
4501 
4502 
4503 
4504 
4505 struct sigevent {
4506  int sigev_notify; /* notification mode */
4507  int sigev_signo; /* signal number */
4508  union sigval sigev_value; /* signal value */
4509  void (*sigev_notify_function)(union sigval);
4510  pthread_attr_t *sigev_notify_attributes;
4511  int __sigev_pad2;
4512 };
4513 
4514 
4515 extern int clock_getres(clockid_t, struct timespec *);
4516 extern int clock_gettime(clockid_t, struct timespec *);
4517 extern int clock_settime(clockid_t, const struct timespec *);
4518 extern int timer_create(clockid_t, struct sigevent *,
4519   timer_t *);
4520 extern int timer_delete(timer_t);
4521 extern int timer_getoverrun(timer_t);
4522 extern int timer_gettime(timer_t, struct itimerspec *);
4523 extern int timer_settime(timer_t, int, const struct itimerspec *,
4524   struct itimerspec *);
4525 
4526 extern int nanosleep(const struct timespec *, struct timespec *);
4527 extern int clock_nanosleep(clockid_t, int,
4528  const struct timespec *, struct timespec *);
4529 
4530 
4531 
4532 
4533 
4534 
4535 extern void tzset(void);
4536 extern char *tzname[2];
4537 
4538 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */
4539 
4540 
4541 extern long _sysconf(int); /* System Private interface to sysconf() */
4542 
4543     /* 3 is _SC_CLK_TCK */
4544 
4545 
4546 
4547 
4548 
4549 extern long timezone;
4550 extern int daylight;
4551 
4552 
4553 
4554 
4555 
4556 
4557 extern time_t timegm(struct tm *);
4558 extern int cftime(char *, char *, const time_t *);
4559 extern int ascftime(char *, const char *, const struct tm *);
4560 extern long altzone;
4561 
4562 
4563 
4564 
4565 extern struct tm *getdate(const char *);
4566 
4567 
4568 
4569 
4570 
4571 extern int getdate_err;
4572 
4573 
4574 
4575 /*
4576  * ctime_r() & asctime_r() prototypes are defined here.
4577  */
4578 
4579 /*
4580  * Previous releases of Solaris, starting at 2.3, provided definitions of
4581  * various functions as specified in POSIX.1c, Draft 6.  For some of these
4582  * functions, the final POSIX 1003.1c standard had a different number of
4583  * arguments and return values.
4584  *
4585  * The following segment of this header provides support for the standard
4586  * interfaces while supporting applications written under earlier
4587  * releases.  The application defines appropriate values of the feature
4588  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
4589  * whether it was written to expect the Draft 6 or standard versions of
4590  * these interfaces, before including this header.  This header then
4591  * provides a mapping from the source version of the interface to an
4592  * appropriate binary interface.  Such mappings permit an application
4593  * to be built from libraries and objects which have mixed expectations
4594  * of the definitions of these functions.
4595  *
4596  * For applications using the Draft 6 definitions, the binary symbol is the
4597  * same as the source symbol, and no explicit mapping is needed.  For the
4598  * standard interface, the function func() is mapped to the binary symbol
4599  * _posix_func().  The preferred mechanism for the remapping is a compiler
4600  * #pragma.  If the compiler does not provide such a #pragma, the header file
4601  * defines a static function func() which calls the _posix_func() version;
4602  * this has to be done instead of #define since POSIX specifies that an
4603  * application can #undef the symbol and still be bound to the correct
4604  * implementation.  Unfortunately, the statics confuse lint so we fallback to
4605  * #define in that case.
4606  *
4607  * NOTE: Support for the Draft 6 definitions is provided for compatibility
4608  * only.  New applications/libraries should use the standard definitions.
4609  */
4610 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4611 extern char *asctime_r(const struct tm *, char *, int);
4612 extern char *ctime_r(const time_t *, char *, int);
4613 # 292 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h"
4614 typedef struct _locale *locale_t;
4615 
4616 
4617 extern size_t strftime_l(char *, size_t,
4618  const char *, const struct tm *, locale_t);
4619 
4620 
4621 
4622 
4623 
4624 /*
4625  * Note, the C11 standard requires that all the various base values that are
4626  * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one.
4627  */
4628 
4629 
4630 extern int timespec_get(struct timespec *, int);
4631 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4632 
4633 
4634 /*
4635  * The inclusion of <sys/select.h> is needed for the FD_CLR,
4636  * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
4637  * select() prototype defined in the XOpen specifications
4638  * beginning with XSH4v2.  Placement required after definition
4639  * for itimerval.
4640  */
4641 
4642 
4643 
4644 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1
4645 /*
4646  * CDDL HEADER START
4647  *
4648  * The contents of this file are subject to the terms of the
4649  * Common Development and Distribution License (the "License").
4650  * You may not use this file except in compliance with the License.
4651  *
4652  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4653  * or http://www.opensolaris.org/os/licensing.
4654  * See the License for the specific language governing permissions
4655  * and limitations under the License.
4656  *
4657  * When distributing Covered Code, include this CDDL HEADER in each
4658  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4659  * If applicable, add the following below this CDDL HEADER, with the
4660  * fields enclosed by brackets "[]" replaced with your own identifying
4661  * information: Portions Copyright [yyyy] [name of copyright owner]
4662  *
4663  * CDDL HEADER END
4664  */
4665 
4666 /*
4667  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
4668  *
4669  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
4670  *
4671  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
4672  * Use is subject to license terms.
4673  */
4674 
4675 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
4676 /*	  All Rights Reserved	*/
4677 
4678 /*
4679  * University Copyright- Copyright (c) 1982, 1986, 1988
4680  * The Regents of the University of California
4681  * All Rights Reserved
4682  *
4683  * University Acknowledgment- Portions of this document are derived from
4684  * software developed by the University of California, Berkeley, and its
4685  * contributors.
4686  */
4687 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2
4688 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2
4689 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4690 /*
4691  * The sigset_t type is defined in <sys/signal.h> and duplicated
4692  * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
4693  * now allows the visibility of signal.h in this header, however
4694  * an order of inclusion problem occurs as a result of inclusion
4695  * of <sys/select.h> in <signal.h> under certain conditions.
4696  * Rather than include <sys/signal.h> here, we've duplicated
4697  * the sigset_t type instead. This type is required for the XPG6
4698  * introduced pselect() function also declared in this header.
4699  */
4700 
4701 
4702 typedef struct { /* signal set type */
4703  unsigned int __sigbits[4];
4704 } sigset_t;
4705 
4706 
4707 
4708 
4709 /*
4710  * Select uses bit masks of file descriptors in longs.
4711  * These macros manipulate such bit fields.
4712  * FD_SETSIZE may be defined by the user, but the default here
4713  * should be >= NOFILE (param.h).
4714  */
4715 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4716 typedef long fd_mask;
4717 
4718 typedef long fds_mask;
4719 
4720 /*
4721  *  The value of _NBBY needs to be consistant with the value
4722  *  of NBBY in <sys/param.h>.
4723  */
4724 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4725 typedef struct fd_set {
4726 
4727 
4728 
4729  long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
4730 } fd_set;
4731 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h"
4732 extern int select(int, fd_set *, fd_set *,
4733  fd_set *, struct timeval *);
4734 
4735 
4736 extern int pselect(int, fd_set *, fd_set *,
4737  fd_set *, const struct timespec *,
4738  const sigset_t *);
4739 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2
4740 
4741 
4742 
4743 /*
4744  * _VOID was defined to be either void or char but this is not
4745  * required because previous SunOS compilers have accepted the void
4746  * type. However, because many system header and source files use the
4747  * void keyword, the volatile keyword, and ANSI C function prototypes,
4748  * non-ANSI compilers cannot compile the system anyway. The _VOID macro
4749  * should therefore not be used and remains for source compatibility
4750  * only.
4751  */
4752 /* CSTYLED */
4753 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
4754 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
4755 /*
4756  * CDDL HEADER START
4757  *
4758  * The contents of this file are subject to the terms of the
4759  * Common Development and Distribution License (the "License").
4760  * You may not use this file except in compliance with the License.
4761  *
4762  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4763  * or http://www.opensolaris.org/os/licensing.
4764  * See the License for the specific language governing permissions
4765  * and limitations under the License.
4766  *
4767  * When distributing Covered Code, include this CDDL HEADER in each
4768  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4769  * If applicable, add the following below this CDDL HEADER, with the
4770  * fields enclosed by brackets "[]" replaced with your own identifying
4771  * information: Portions Copyright [yyyy] [name of copyright owner]
4772  *
4773  * CDDL HEADER END
4774  */
4775 
4776 /*
4777  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
4778  *	  All Rights Reserved
4779  *
4780  */
4781 
4782 /*
4783  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
4784  * Use is subject to license terms.
4785  */
4786 
4787 /*
4788  * WARNING: This is an implementation-specific header,
4789  * its contents are not guaranteed. Applications
4790  * should include <unistd.h> and not this header.
4791  */
4792 
4793 
4794 
4795 
4796 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
4797 /*
4798  * CDDL HEADER START
4799  *
4800  * The contents of this file are subject to the terms of the
4801  * Common Development and Distribution License (the "License").
4802  * You may not use this file except in compliance with the License.
4803  *
4804  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4805  * or http://www.opensolaris.org/os/licensing.
4806  * See the License for the specific language governing permissions
4807  * and limitations under the License.
4808  *
4809  * When distributing Covered Code, include this CDDL HEADER in each
4810  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4811  * If applicable, add the following below this CDDL HEADER, with the
4812  * fields enclosed by brackets "[]" replaced with your own identifying
4813  * information: Portions Copyright [yyyy] [name of copyright owner]
4814  *
4815  * CDDL HEADER END
4816  */
4817 
4818 /*
4819  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
4820  * Copyright 2016 Joyent, Inc.
4821  *
4822  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
4823  * Use is subject to license terms.
4824  */
4825 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2
4826 
4827 
4828 
4829 
4830 
4831 /* command names for confstr */
4832 
4833 
4834 
4835 /*
4836  * command names for large file configuration information
4837  */
4838 /* large file compilation environment configuration */
4839 
4840 
4841 
4842 
4843 /* transitional large file interface configuration */
4844 
4845 
4846 
4847 
4848 
4849 /* UNIX 98 */
4850 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4851 /* UNIX 03 */
4852 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4853 /* command names for POSIX sysconf */
4854 
4855 /* POSIX.1 names */
4856 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4857 /* SVR4 names */
4858 
4859 
4860 
4861 
4862 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
4863 
4864 
4865 
4866 
4867 /* POSIX.4 names */
4868 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4869 /* XPG4 names */
4870 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4871 /* additional XSH4/XCU4 command names for sysconf */
4872 
4873 
4874 
4875 /* additional XPG4v2 (UNIX 95) command names */
4876 
4877 
4878 
4879 
4880 
4881 /* defined for XTI (XNS Issue 5) */
4882 
4883 
4884 
4885 
4886 
4887 
4888 
4889 /*
4890  * Hardware specific items
4891  * Note that not all items are supported on all architectures
4892  */
4893 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4894 /*
4895  * POSIX.1c (pthreads) names. These values are defined above
4896  * the sub-500 range. See psarc case 1995/257.
4897  */
4898 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4899 /* UNIX 98 */
4900 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4901 /* UNIX 03 */
4902 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4903 /* command names for POSIX pathconf */
4904 
4905 /* POSIX.1 names */
4906 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4907 /* POSIX.4 names */
4908 
4909 
4910 
4911 /* UNIX 03 names */
4912 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4913 /* UNIX 08 names */
4914 
4915 
4916 /*
4917  * Large File Summit names
4918  *
4919  * This value matches the MIPS ABI choice, but leaves a large gap in the
4920  * value space.
4921  */
4922 
4923 
4924 /*
4925  * Extended attributes
4926  */
4927 
4928 
4929 
4930 /*
4931  * If you add a _PC define above 101, you must change _PC_LAST (and truss).
4932  */
4933 
4934 
4935 /*
4936  * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
4937  */
4938 
4939 
4940 
4941 /*
4942  * The value of 0 is returned when
4943  * ACL's are not supported
4944  */
4945 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4946 /*
4947  * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
4948  * should not rely on this value, it has been aligned with the current
4949  * standard to avoid confusion if used.
4950  */
4951 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h"
4952 /* UNIX 03 names */
4953 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2
4954 
4955 
4956 
4957 
4958 
4959 /* Symbolic constants for the "access" routine: */
4960 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4961 /* Symbolic constants for the "lseek" routine: */
4962 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4963 /* Path names: */
4964 
4965 
4966 
4967 
4968 /*
4969  * compile-time symbolic constants,
4970  * Support does not mean the feature is enabled.
4971  * Use pathconf/sysconf to obtain actual configuration value.
4972  */
4973 
4974 /* Values unchanged in UNIX 03 */
4975 
4976 
4977 
4978 
4979 
4980 /*
4981  * POSIX.1b compile-time symbolic constants.
4982  */
4983 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4984 /*
4985  * POSIX.1c compile-time symbolic constants.
4986  */
4987 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4988 /* New in UNIX 03 */
4989 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4990 /*
4991  * Support for the POSIX.1 mutex protocol attribute. For realtime applications
4992  * which need mutexes to support priority inheritance/ceiling.
4993  */
4994 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
4995 /*
4996  * Large File Summit-related announcement macros.  The system supports both
4997  * the additional and transitional Large File Summit interfaces.  (The final
4998  * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.)
4999  */
5000 
5001 
5002 
5003 
5004 
5005 /* large file compilation environment setup */
5006 
5007 
5008 
5009 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5010 #pragma redefine_extname ftruncate ftruncate64
5011 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5012 
5013 
5014 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5015 #pragma redefine_extname lseek lseek64
5016 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5017 
5018 
5019 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5020 #pragma redefine_extname pread pread64
5021 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5022 
5023 
5024 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5025 #pragma redefine_extname pwrite pwrite64
5026 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5027 
5028 
5029 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5030 #pragma redefine_extname truncate truncate64
5031 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5032 
5033 
5034 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5035 #pragma redefine_extname lockf lockf64
5036 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5037 
5038 
5039 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5040 #pragma redefine_extname tell tell64
5041 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5042 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5043 /* In the LP64 compilation environment, the APIs are already large file */
5044 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5045 extern int access(const char *, int);
5046 
5047 extern int acct(const char *);
5048 
5049 extern unsigned alarm(unsigned);
5050 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5051 
5052 
5053 extern int brk(void *);
5054 
5055 extern int chdir(const char *);
5056 extern int chown(const char *, uid_t, gid_t);
5057 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5058 
5059 
5060 extern int chroot(const char *);
5061 
5062 extern int close(int);
5063 
5064 
5065 
5066 
5067 
5068 
5069 extern char *ctermid(char *);
5070 
5071 
5072 extern char *ctermid_r(char *);
5073 
5074 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5075 
5076 extern char *cuserid(char *);
5077 
5078 extern int dup(int);
5079 extern int dup2(int, int);
5080 extern int dup3(int, int, int);
5081 
5082 
5083 
5084 
5085 extern void endusershell(void);
5086 
5087 extern int execl(const char *, const char *, ...);
5088 extern int execle(const char *, const char *, ...);
5089 extern int execlp(const char *, const char *, ...);
5090 extern int execv(const char *, char *const *);
5091 extern int execve(const char *, char *const *, char *const *);
5092 extern int execvp(const char *, char *const *);
5093 extern void _exit(int)
5094  __attribute__((__noreturn__));
5095 /*
5096  * The following fattach prototype is duplicated in <stropts.h>. The
5097  * duplication is necessitated by XPG4.2 which requires the prototype
5098  * be defined in <stropts.h>.
5099  */
5100 
5101 extern int fattach(int, const char *);
5102 
5103 
5104 extern int fchdir(int);
5105 extern int fchown(int, uid_t, gid_t);
5106 
5107 
5108 extern int fchroot(int);
5109 
5110 
5111 
5112 extern int fdatasync(int);
5113 
5114 /*
5115  * The following fdetach prototype is duplicated in <stropts.h>. The
5116  * duplication is necessitated by XPG4.2 which requires the prototype
5117  * be defined in <stropts.h>.
5118  */
5119 
5120 extern int fdetach(const char *);
5121 
5122 extern pid_t fork(void);
5123 
5124 extern pid_t fork1(void);
5125 extern pid_t forkall(void);
5126 
5127 extern long fpathconf(int, int);
5128 
5129 
5130 extern int fsync(int);
5131 
5132 
5133 
5134 
5135 extern int ftruncate(int, off_t);
5136 
5137 extern char *getcwd(char *, size_t);
5138 
5139 
5140 extern int getdtablesize(void);
5141 
5142 extern gid_t getegid(void);
5143 extern uid_t geteuid(void);
5144 extern gid_t getgid(void);
5145 extern int getgroups(int, gid_t *);
5146 
5147 extern long gethostid(void);
5148 
5149 
5150 
5151 
5152 extern int gethostname(char *, int);
5153 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5154 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */
5155 
5156 extern int getpagesize(void);
5157 
5158 extern pid_t getpgid(pid_t);
5159 
5160 extern pid_t getpid(void);
5161 extern pid_t getppid(void);
5162 extern pid_t getpgrp(void);
5163 
5164 
5165 char *gettxt(const char *, const char *);
5166 
5167 
5168 extern pid_t getsid(pid_t);
5169 
5170 extern uid_t getuid(void);
5171 
5172 extern char *getusershell(void);
5173 
5174 /*
5175  * The following ioctl prototype is duplicated in <stropts.h>. The
5176  * duplication is necessitated by XPG4.2 which requires the prototype
5177  * be defined in <stropts.h>.
5178  */
5179 
5180 extern int ioctl(int, int, ...);
5181 extern int isaexec(const char *, char *const *, char *const *);
5182 extern int issetugid(void);
5183 
5184 extern int isatty(int);
5185 
5186 extern int lchown(const char *, uid_t, gid_t);
5187 
5188 extern int link(const char *, const char *);
5189 
5190 extern offset_t llseek(int, offset_t, int);
5191 
5192 
5193 
5194 
5195 extern int lockf(int, int, off_t);
5196 
5197 extern off_t lseek(int, off_t, int);
5198 
5199 
5200 extern int nice(int);
5201 
5202 
5203 extern int mincore(caddr_t, size_t, char *);
5204 
5205 extern long pathconf(const char *, int);
5206 extern int pause(void);
5207 extern int pipe(int *);
5208 extern int pipe2(int *, int);
5209 
5210 
5211 
5212 extern ssize_t pread(int, void *, size_t, off_t);
5213 
5214 
5215 extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
5216 
5217 /*
5218  * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The
5219  * declarations are identical. A change to either one may also require
5220  * appropriate namespace updates in order to avoid redeclaration
5221  * warnings in the case where both prototypes are exposed via inclusion
5222  * of both <pthread.h> and <unistd.h>.
5223  */
5224 
5225 
5226 
5227 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
5228 
5229 
5230 
5231 extern int ptrace(int, pid_t, int, int);
5232 
5233 
5234 
5235 
5236 extern ssize_t pwrite(int, const void *, size_t, off_t);
5237 
5238 
5239 /* per RFC 3542; This is also defined in netdb.h */
5240 extern int rcmd_af(char **, unsigned short, const char *, const char *,
5241  const char *, int *, int);
5242 
5243 extern ssize_t read(int, void *, size_t);
5244 
5245 
5246 extern ssize_t readlink(const char *, char *,
5247  size_t);
5248 
5249 
5250 
5251 
5252 
5253 
5254 extern int rename(const char *, const char *);
5255 
5256 
5257 
5258 
5259 
5260 
5261 
5262 extern int resolvepath(const char *, char *, size_t);
5263 /* per RFC 3542; This is also defined in netdb.h */
5264 extern int rexec_af(char **, unsigned short, const char *, const char *,
5265  const char *, int *, int);
5266 
5267 extern int rmdir(const char *);
5268 
5269 /* per RFC 3542; This is also defined in netdb.h */
5270 extern int rresvport_af(int *, int);
5271 
5272 
5273 
5274 
5275 extern void *sbrk(intptr_t);
5276 
5277 
5278 extern int setegid(gid_t);
5279 extern int seteuid(uid_t);
5280 
5281 extern int setgid(gid_t);
5282 
5283 extern int setgroups(int, const gid_t *);
5284 extern int sethostname(char *, int);
5285 
5286 extern int setpgid(pid_t, pid_t);
5287 
5288 extern pid_t setpgrp(void);
5289 extern int setregid(gid_t, gid_t);
5290 extern int setreuid(uid_t, uid_t);
5291 
5292 extern pid_t setsid(void);
5293 extern int setuid(uid_t);
5294 
5295 extern void setusershell(void);
5296 
5297 extern unsigned sleep(unsigned);
5298 
5299 extern int stime(const time_t *);
5300 
5301 
5302 
5303 
5304 
5305 
5306 extern int symlink(const char *, const char *);
5307 extern void sync(void);
5308 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5309 extern long sysconf(int);
5310 extern pid_t tcgetpgrp(int);
5311 extern int tcsetpgrp(int, pid_t);
5312 
5313 
5314 
5315 extern off_t tell(int);
5316 
5317 
5318 
5319 
5320 extern int truncate(const char *, off_t);
5321 
5322 extern char *ttyname(int);
5323 
5324 extern useconds_t ualarm(useconds_t, useconds_t);
5325 
5326 extern int unlink(const char *);
5327 
5328 extern char *getwd(char *);
5329 extern int usleep(useconds_t);
5330 extern pid_t vfork(void) __attribute__((__returns_twice__));
5331 #pragma unknown_control_flow(vfork)
5332 
5333 
5334 extern void vhangup(void);
5335 
5336 extern ssize_t write(int, const void *, size_t);
5337 
5338 extern void yield(void);
5339 
5340 
5341 
5342 
5343  /* || defined(_XPG7) */
5344 extern int faccessat(int, const char *, int, int);
5345 extern int fchownat(int, const char *, uid_t, gid_t, int);
5346 extern int linkat(int, const char *, int, const char *, int);
5347 extern ssize_t readlinkat(int, const char *,
5348  char *, size_t);
5349 extern int renameat(int, const char *, int, const char *);
5350 extern int symlinkat(const char *, int, const char *);
5351 extern int unlinkat(int, const char *, int);
5352 
5353 
5354 extern int get_nprocs(void);
5355 extern int get_nprocs_conf(void);
5356 
5357 
5358 /* transitional large file interface versions */
5359 
5360 
5361 extern int ftruncate64(int, off64_t);
5362 extern off64_t lseek64(int, off64_t, int);
5363 extern ssize_t pread64(int, void *, size_t, off64_t);
5364 extern ssize_t pwrite64(int, const void *, size_t, off64_t);
5365 extern off64_t tell64(int);
5366 extern int truncate64(const char *, off64_t);
5367 extern int lockf64(int, int, off64_t);
5368 
5369 
5370 /*
5371  * getlogin_r() & ttyname_r() prototypes are defined here.
5372  */
5373 
5374 /*
5375  * Previous releases of Solaris, starting at 2.3, provided definitions of
5376  * various functions as specified in POSIX.1c, Draft 6.  For some of these
5377  * functions, the final POSIX 1003.1c standard had a different number of
5378  * arguments and return values.
5379  *
5380  * The following segment of this header provides support for the standard
5381  * interfaces while supporting applications written under earlier
5382  * releases.  The application defines appropriate values of the feature
5383  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
5384  * whether it was written to expect the Draft 6 or standard versions of
5385  * these interfaces, before including this header.  This header then
5386  * provides a mapping from the source version of the interface to an
5387  * appropriate binary interface.  Such mappings permit an application
5388  * to be built from libraries and objects which have mixed expectations
5389  * of the definitions of these functions.
5390  *
5391  * For applications using the Draft 6 definitions, the binary symbol is the
5392  * same as the source symbol, and no explicit mapping is needed.  For the
5393  * standard interface, the function func() is mapped to the binary symbol
5394  * _posix_func().  The preferred mechanism for the remapping is a compiler
5395  * #pragma.  If the compiler does not provide such a #pragma, the header file
5396  * defines a static function func() which calls the _posix_func() version;
5397  * this has to be done instead of #define since POSIX specifies that an
5398  * application can #undef the symbol and still be bound to the correct
5399  * implementation.  Unfortunately, the statics confuse lint so we fallback to
5400  * #define in that case.
5401  *
5402  * NOTE: Support for the Draft 6 definitions is provided for compatibility
5403  * only.  New applications/libraries should use the standard definitions.
5404  */
5405 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5406 
5407 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5408 #pragma redefine_extname getlogin_r getloginx_r
5409 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h"
5410 
5411 
5412 
5413 
5414 
5415 
5416 extern char *getlogin_r(char *, int);
5417 
5418 extern char *ttyname_r(int, char *, int);
5419 
5420 
5421 
5422 
5423 
5424 
5425 extern int getentropy(void *, size_t);
5426 # 31 "setup_temporary_directory.c" 2
5427 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1
5428 /*
5429  * CDDL HEADER START
5430  *
5431  * The contents of this file are subject to the terms of the
5432  * Common Development and Distribution License (the "License").
5433  * You may not use this file except in compliance with the License.
5434  *
5435  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5436  * or http://www.opensolaris.org/os/licensing.
5437  * See the License for the specific language governing permissions
5438  * and limitations under the License.
5439  *
5440  * When distributing Covered Code, include this CDDL HEADER in each
5441  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5442  * If applicable, add the following below this CDDL HEADER, with the
5443  * fields enclosed by brackets "[]" replaced with your own identifying
5444  * information: Portions Copyright [yyyy] [name of copyright owner]
5445  *
5446  * CDDL HEADER END
5447  */
5448 
5449 /*
5450  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5451  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
5452  */
5453 
5454 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
5455 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
5456 /*	All Rights Reserved	*/
5457 
5458 
5459 
5460 
5461 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5462 /*
5463  * CDDL HEADER START
5464  *
5465  * The contents of this file are subject to the terms of the
5466  * Common Development and Distribution License (the "License").
5467  * You may not use this file except in compliance with the License.
5468  *
5469  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5470  * or http://www.opensolaris.org/os/licensing.
5471  * See the License for the specific language governing permissions
5472  * and limitations under the License.
5473  *
5474  * When distributing Covered Code, include this CDDL HEADER in each
5475  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5476  * If applicable, add the following below this CDDL HEADER, with the
5477  * fields enclosed by brackets "[]" replaced with your own identifying
5478  * information: Portions Copyright [yyyy] [name of copyright owner]
5479  *
5480  * CDDL HEADER END
5481  */
5482 
5483 /*
5484  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5485  * Copyright 2016 Joyent, Inc.
5486  *
5487  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5488  * Use is subject to license terms.
5489  */
5490 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
5491 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5492 /*
5493  * CDDL HEADER START
5494  *
5495  * The contents of this file are subject to the terms of the
5496  * Common Development and Distribution License (the "License").
5497  * You may not use this file except in compliance with the License.
5498  *
5499  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5500  * or http://www.opensolaris.org/os/licensing.
5501  * See the License for the specific language governing permissions
5502  * and limitations under the License.
5503  *
5504  * When distributing Covered Code, include this CDDL HEADER in each
5505  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5506  * If applicable, add the following below this CDDL HEADER, with the
5507  * fields enclosed by brackets "[]" replaced with your own identifying
5508  * information: Portions Copyright [yyyy] [name of copyright owner]
5509  *
5510  * CDDL HEADER END
5511  */
5512 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5513 /*	  All Rights Reserved  	*/
5514 
5515 
5516 /*
5517  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5518  * Use is subject to license terms.
5519  *
5520  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5521  * Copyright 2016 Joyent, Inc.
5522  */
5523 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
5524 
5525 
5526 
5527 
5528 
5529 /*
5530  * The implementation specific header <sys/time_impl.h> includes a
5531  * definition for timestruc_t needed by the stat structure.  However,
5532  * including either <time.h>, which includes <sys/time_impl.h>, or
5533  * including <sys/time_impl.h> directly will break both X/Open and
5534  * POSIX namespace. Preceeding tag, structure, and structure member
5535  * names with underscores eliminates the namespace breakage and at the
5536  * same time, with unique type names, eliminates the possibility of
5537  * timespec_t or timestruct_t naming conflicts that could otherwise
5538  * result based on the order of inclusion of <sys/stat.h> and
5539  * <sys/time.h>.  The header <sys/time_std_impl.h> contains the
5540  * standards namespace safe versions of these definitions.
5541  */
5542 
5543 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1
5544 /*
5545  * CDDL HEADER START
5546  *
5547  * The contents of this file are subject to the terms of the
5548  * Common Development and Distribution License, Version 1.0 only
5549  * (the "License").  You may not use this file except in compliance
5550  * with the License.
5551  *
5552  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5553  * or http://www.opensolaris.org/os/licensing.
5554  * See the License for the specific language governing permissions
5555  * and limitations under the License.
5556  *
5557  * When distributing Covered Code, include this CDDL HEADER in each
5558  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5559  * If applicable, add the following below this CDDL HEADER, with the
5560  * fields enclosed by brackets "[]" replaced with your own identifying
5561  * information: Portions Copyright [yyyy] [name of copyright owner]
5562  *
5563  * CDDL HEADER END
5564  */
5565 /*
5566  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
5567  * Use is subject to license terms.
5568  */
5569 
5570 /*
5571  * Implementation-private.  This header should not be included
5572  * directly by an application.  The application should instead
5573  * include <time.h> which includes this header conditionally
5574  * depending on which feature test macros are defined. By default,
5575  * this header is included by <time.h>.  X/Open and POSIX
5576  * standards requirements result in this header being included
5577  * by <time.h> only under a restricted set of conditions.
5578  */
5579 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
5580 
5581 
5582 
5583 
5584 
5585 
5586 /*
5587  * stat structure, used by stat(2) and fstat(2)
5588  */
5589 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5590 /*
5591  * large file compilation environment setup
5592  */
5593 
5594 
5595 
5596 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5597 #pragma redefine_extname fstat fstat64
5598 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5599 
5600 
5601 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5602 #pragma redefine_extname stat stat64
5603 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5604 
5605 
5606 
5607 
5608 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5609 #pragma redefine_extname fstatat fstatat64
5610 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5611 
5612 
5613 
5614 
5615 
5616 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5617 #pragma redefine_extname lstat lstat64
5618 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5619 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5620 /*
5621  * In the LP64 compilation environment, map large file interfaces
5622  * back to native versions where possible.
5623  */
5624 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5625 /*
5626  * User level stat structure definitions.
5627  */
5628 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5629 struct stat {
5630  dev_t st_dev;
5631  long st_pad1[3]; /* reserved for network id */
5632  ino_t st_ino;
5633  mode_t st_mode;
5634  nlink_t st_nlink;
5635  uid_t st_uid;
5636  gid_t st_gid;
5637  dev_t st_rdev;
5638  long st_pad2[2];
5639  off_t st_size;
5640 
5641 
5642 
5643 
5644  timestruc_t st_atim;
5645  timestruc_t st_mtim;
5646  timestruc_t st_ctim;
5647 
5648 
5649 
5650 
5651 
5652  blksize_t st_blksize;
5653  blkcnt_t st_blocks;
5654  char st_fstype[16];
5655  long st_pad4[8]; /* expansion area */
5656 };
5657 
5658 
5659 
5660 /* transitional large file interface version */
5661 # 303 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5662 struct stat64 {
5663  dev_t st_dev;
5664  long st_pad1[3]; /* reserved for network id */
5665  ino64_t st_ino;
5666  mode_t st_mode;
5667  nlink_t st_nlink;
5668  uid_t st_uid;
5669  gid_t st_gid;
5670  dev_t st_rdev;
5671  long st_pad2[2];
5672  off64_t st_size;
5673 
5674  timestruc_t st_atim;
5675  timestruc_t st_mtim;
5676  timestruc_t st_ctim;
5677 
5678 
5679 
5680 
5681 
5682  blksize_t st_blksize;
5683  blkcnt64_t st_blocks;
5684  char st_fstype[16];
5685  long st_pad4[8]; /* expansion area */
5686 };
5687 # 401 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5688 /* MODE MASKS */
5689 
5690 /* de facto standard definitions */
5691 
5692 
5693 
5694 
5695 
5696 
5697 /* XENIX definitions are not relevant to Solaris */
5698 # 428 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5699 /* the following macros are for POSIX conformance */
5700 # 454 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5701 /* POSIX.4 macros */
5702 
5703 
5704 
5705 
5706 
5707 
5708 /*
5709  * A version number is included in the x86 SVR4 stat and mknod interfaces
5710  * so that SVR4 binaries can be supported.  An LP64 kernel that supports
5711  * the i386 ABI need to be aware of this too.
5712  */
5713 # 476 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5714  /* || defined(_XPG7) */
5715 /* for use with futimens() and utimensat() */
5716 # 486 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h"
5717 extern int fchmod(int, mode_t);
5718 
5719 
5720 extern int chmod(const char *, mode_t);
5721 extern int mkdir(const char *, mode_t);
5722 extern int mkfifo(const char *, mode_t);
5723 extern mode_t umask(mode_t);
5724 
5725 /* transitional large file interfaces */
5726 
5727 
5728 extern int fstat64(int, struct stat64 *);
5729 extern int stat64(const char *, struct stat64 *);
5730 extern int lstat64(const char *, struct stat64 *);
5731 
5732 
5733 extern int fstatat64(int, const char *, struct stat64 *, int);
5734 
5735 
5736 
5737 
5738 
5739  /* || defined(_XPG7) */
5740 extern int mkdirat(int, const char *, mode_t);
5741 extern int mkfifoat(int, const char *, mode_t);
5742 extern int mknodat(int, const char *, mode_t, dev_t);
5743 extern int fchmodat(int, const char *, mode_t, int);
5744 extern int futimens(int, const struct timespec[2]);
5745 extern int utimensat(int, const char *, const struct timespec[2], int);
5746 
5747 
5748 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 1
5749 /*
5750  * CDDL HEADER START
5751  *
5752  * The contents of this file are subject to the terms of the
5753  * Common Development and Distribution License (the "License").
5754  * You may not use this file except in compliance with the License.
5755  *
5756  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5757  * or http://www.opensolaris.org/os/licensing.
5758  * See the License for the specific language governing permissions
5759  * and limitations under the License.
5760  *
5761  * When distributing Covered Code, include this CDDL HEADER in each
5762  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5763  * If applicable, add the following below this CDDL HEADER, with the
5764  * fields enclosed by brackets "[]" replaced with your own identifying
5765  * information: Portions Copyright [yyyy] [name of copyright owner]
5766  *
5767  * CDDL HEADER END
5768  */
5769 
5770 /*
5771  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
5772  * Use is subject to license terms.
5773  */
5774 
5775 
5776 
5777 
5778 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5779 /*
5780  * CDDL HEADER START
5781  *
5782  * The contents of this file are subject to the terms of the
5783  * Common Development and Distribution License (the "License").
5784  * You may not use this file except in compliance with the License.
5785  *
5786  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5787  * or http://www.opensolaris.org/os/licensing.
5788  * See the License for the specific language governing permissions
5789  * and limitations under the License.
5790  *
5791  * When distributing Covered Code, include this CDDL HEADER in each
5792  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5793  * If applicable, add the following below this CDDL HEADER, with the
5794  * fields enclosed by brackets "[]" replaced with your own identifying
5795  * information: Portions Copyright [yyyy] [name of copyright owner]
5796  *
5797  * CDDL HEADER END
5798  */
5799 
5800 /*
5801  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5802  * Copyright 2016 Joyent, Inc.
5803  *
5804  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5805  * Use is subject to license terms.
5806  */
5807 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2
5808 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5809 /*
5810  * CDDL HEADER START
5811  *
5812  * The contents of this file are subject to the terms of the
5813  * Common Development and Distribution License (the "License").
5814  * You may not use this file except in compliance with the License.
5815  *
5816  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5817  * or http://www.opensolaris.org/os/licensing.
5818  * See the License for the specific language governing permissions
5819  * and limitations under the License.
5820  *
5821  * When distributing Covered Code, include this CDDL HEADER in each
5822  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5823  * If applicable, add the following below this CDDL HEADER, with the
5824  * fields enclosed by brackets "[]" replaced with your own identifying
5825  * information: Portions Copyright [yyyy] [name of copyright owner]
5826  *
5827  * CDDL HEADER END
5828  */
5829 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
5830 /*	  All Rights Reserved  	*/
5831 
5832 
5833 /*
5834  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5835  * Use is subject to license terms.
5836  *
5837  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
5838  * Copyright 2016 Joyent, Inc.
5839  */
5840 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2
5841 
5842 
5843 
5844 
5845 
5846 /*
5847  * The implementation specific header for <sys/stat.h>
5848  */
5849 
5850 
5851 
5852 
5853 
5854 extern int fstat(int, struct stat *);
5855 extern int stat(const char *, struct stat *);
5856 
5857 
5858 
5859 extern int fstatat(int, const char *, struct stat *, int);
5860 
5861 
5862 
5863 extern int lstat(const char *, struct stat *);
5864 extern int mknod(const char *, mode_t, dev_t);
5865 # 518 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2
5866 # 32 "setup_temporary_directory.c" 2
5867 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h" 1
5868 /*
5869  * CDDL HEADER START
5870  *
5871  * The contents of this file are subject to the terms of the
5872  * Common Development and Distribution License, Version 1.0 only
5873  * (the "License").  You may not use this file except in compliance
5874  * with the License.
5875  *
5876  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5877  * or http://www.opensolaris.org/os/licensing.
5878  * See the License for the specific language governing permissions
5879  * and limitations under the License.
5880  *
5881  * When distributing Covered Code, include this CDDL HEADER in each
5882  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5883  * If applicable, add the following below this CDDL HEADER, with the
5884  * fields enclosed by brackets "[]" replaced with your own identifying
5885  * information: Portions Copyright [yyyy] [name of copyright owner]
5886  *
5887  * CDDL HEADER END
5888  */
5889 /*	Copyright (c) 1988 AT&T	*/
5890 /*	  All Rights Reserved  	*/
5891 
5892 /*
5893  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5894  * Copyright 2016 Joyent, Inc.
5895  * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
5896  *
5897  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
5898  * Use is subject to license terms.
5899  */
5900 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h"
5901 extern void __assert(const char *, const char *, int);
5902 
5903 
5904 /*
5905  * In C11 the static_assert macro is always defined, unlike the assert macro.
5906  */
5907 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h"
5908 /*
5909  * Note that the ANSI C Standard requires all headers to be idempotent except
5910  * <assert.h> which is explicitly required not to be idempotent (section 4.1.2).
5911  * Therefore, it is by intent that the header guards (#ifndef _ASSERT_H) do
5912  * not span this entire file.
5913  */
5914 # 33 "setup_temporary_directory.c" 2
5915 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1
5916 /*
5917  * CDDL HEADER START
5918  *
5919  * The contents of this file are subject to the terms of the
5920  * Common Development and Distribution License (the "License").
5921  * You may not use this file except in compliance with the License.
5922  *
5923  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5924  * or http://www.opensolaris.org/os/licensing.
5925  * See the License for the specific language governing permissions
5926  * and limitations under the License.
5927  *
5928  * When distributing Covered Code, include this CDDL HEADER in each
5929  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5930  * If applicable, add the following below this CDDL HEADER, with the
5931  * fields enclosed by brackets "[]" replaced with your own identifying
5932  * information: Portions Copyright [yyyy] [name of copyright owner]
5933  *
5934  * CDDL HEADER END
5935  */
5936 
5937 /*
5938  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
5939  *
5940  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
5941  * Use is subject to license terms.
5942  */
5943 
5944 /*	Copyright (c) 1988 AT&T	*/
5945 /*	  All Rights Reserved  	*/
5946 
5947 
5948 
5949 
5950 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
5951 /*
5952  * CDDL HEADER START
5953  *
5954  * The contents of this file are subject to the terms of the
5955  * Common Development and Distribution License (the "License").
5956  * You may not use this file except in compliance with the License.
5957  *
5958  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5959  * or http://www.opensolaris.org/os/licensing.
5960  * See the License for the specific language governing permissions
5961  * and limitations under the License.
5962  *
5963  * When distributing Covered Code, include this CDDL HEADER in each
5964  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5965  * If applicable, add the following below this CDDL HEADER, with the
5966  * fields enclosed by brackets "[]" replaced with your own identifying
5967  * information: Portions Copyright [yyyy] [name of copyright owner]
5968  *
5969  * CDDL HEADER END
5970  */
5971 
5972 /*
5973  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
5974  * Copyright 2016 Joyent, Inc.
5975  *
5976  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
5977  * Use is subject to license terms.
5978  */
5979 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2
5980 
5981 
5982 
5983 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
5984 /*
5985  * CDDL HEADER START
5986  *
5987  * The contents of this file are subject to the terms of the
5988  * Common Development and Distribution License (the "License").
5989  * You may not use this file except in compliance with the License.
5990  *
5991  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5992  * or http://www.opensolaris.org/os/licensing.
5993  * See the License for the specific language governing permissions
5994  * and limitations under the License.
5995  *
5996  * When distributing Covered Code, include this CDDL HEADER in each
5997  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5998  * If applicable, add the following below this CDDL HEADER, with the
5999  * fields enclosed by brackets "[]" replaced with your own identifying
6000  * information: Portions Copyright [yyyy] [name of copyright owner]
6001  *
6002  * CDDL HEADER END
6003  */
6004 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6005 /*	  All Rights Reserved  	*/
6006 
6007 
6008 /*
6009  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6010  * Use is subject to license terms.
6011  *
6012  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6013  * Copyright 2016 Joyent, Inc.
6014  */
6015 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2
6016 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 1
6017 /*
6018  * CDDL HEADER START
6019  *
6020  * The contents of this file are subject to the terms of the
6021  * Common Development and Distribution License (the "License").
6022  * You may not use this file except in compliance with the License.
6023  *
6024  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6025  * or http://www.opensolaris.org/os/licensing.
6026  * See the License for the specific language governing permissions
6027  * and limitations under the License.
6028  *
6029  * When distributing Covered Code, include this CDDL HEADER in each
6030  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6031  * If applicable, add the following below this CDDL HEADER, with the
6032  * fields enclosed by brackets "[]" replaced with your own identifying
6033  * information: Portions Copyright [yyyy] [name of copyright owner]
6034  *
6035  * CDDL HEADER END
6036  */
6037 
6038 /*
6039  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
6040  */
6041 
6042 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6043 /*	  All Rights Reserved  	*/
6044 
6045 /*
6046  * University Copyright- Copyright (c) 1982, 1986, 1988
6047  * The Regents of the University of California
6048  * All Rights Reserved
6049  *
6050  * University Acknowledgment- Portions of this document are derived from
6051  * software developed by the University of California, Berkeley, and its
6052  * contributors.
6053  */
6054 
6055 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
6056 /* Copyright 2015, Joyent, Inc. */
6057 
6058 
6059 
6060 
6061 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6062 /*
6063  * CDDL HEADER START
6064  *
6065  * The contents of this file are subject to the terms of the
6066  * Common Development and Distribution License (the "License").
6067  * You may not use this file except in compliance with the License.
6068  *
6069  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6070  * or http://www.opensolaris.org/os/licensing.
6071  * See the License for the specific language governing permissions
6072  * and limitations under the License.
6073  *
6074  * When distributing Covered Code, include this CDDL HEADER in each
6075  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6076  * If applicable, add the following below this CDDL HEADER, with the
6077  * fields enclosed by brackets "[]" replaced with your own identifying
6078  * information: Portions Copyright [yyyy] [name of copyright owner]
6079  *
6080  * CDDL HEADER END
6081  */
6082 
6083 /*
6084  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6085  * Copyright 2016 Joyent, Inc.
6086  *
6087  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6088  * Use is subject to license terms.
6089  */
6090 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2
6091 
6092 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
6093 /*
6094  * CDDL HEADER START
6095  *
6096  * The contents of this file are subject to the terms of the
6097  * Common Development and Distribution License (the "License").
6098  * You may not use this file except in compliance with the License.
6099  *
6100  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6101  * or http://www.opensolaris.org/os/licensing.
6102  * See the License for the specific language governing permissions
6103  * and limitations under the License.
6104  *
6105  * When distributing Covered Code, include this CDDL HEADER in each
6106  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6107  * If applicable, add the following below this CDDL HEADER, with the
6108  * fields enclosed by brackets "[]" replaced with your own identifying
6109  * information: Portions Copyright [yyyy] [name of copyright owner]
6110  *
6111  * CDDL HEADER END
6112  */
6113 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
6114 /*	  All Rights Reserved  	*/
6115 
6116 
6117 /*
6118  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
6119  * Use is subject to license terms.
6120  *
6121  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
6122  * Copyright 2016 Joyent, Inc.
6123  */
6124 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2
6125 
6126 
6127 
6128 
6129 
6130 /*
6131  * Flag values accessible to open(2) and fcntl(2)
6132  * The first five can only be set (exclusively) by open(2).
6133  */
6134 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6135     /* defines read/write file integrity */
6136 
6137 
6138 
6139 
6140 
6141 
6142 /*
6143  * Flag values accessible only to open(2).
6144  */
6145 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6146 /*
6147  * fcntl(2) requests
6148  *
6149  * N.B.: values are not necessarily assigned sequentially below.
6150  */
6151 
6152 
6153 
6154 
6155 
6156 
6157 
6158 /*
6159  * Applications that read /dev/mem must be built like the kernel.  A
6160  * new symbol "_KMEMUSER" is defined for this purpose.
6161  */
6162 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6163      /* EINVAL is fildes matches arg1 */
6164 # 137 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6165 /*
6166  * Numbers 20-22 have been removed and should not be reused.
6167  */
6168 
6169 
6170 
6171 
6172 
6173     /* manager */
6174 
6175 /*
6176  * Commands that refer to flock structures.  The argument types differ between
6177  * the large and small file environments; therefore, the #defined values must
6178  * as well.
6179  * The NBMAND forms are private and should not be used.
6180  * The FLOCK forms are also private and should not be used.
6181  */
6182 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6183 /* ILP32 large file application compilation environment version */
6184 # 190 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6185 /*
6186  * transitional large file interface version
6187  * These are only valid in a 32 bit application compiled with large files
6188  * option, for source compatibility, the 64-bit versions are mapped back
6189  * to the native versions.
6190  */
6191 # 233 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6192 /*
6193  * File segment locking set data type - information passed to system by user.
6194  */
6195 
6196 /* regular version, for both small and large file compilation environment */
6197 typedef struct flock {
6198  short l_type;
6199  short l_whence;
6200  off_t l_start;
6201  off_t l_len; /* len == 0 means until end of file */
6202  int l_sysid;
6203  pid_t l_pid;
6204  long l_pad[4]; /* reserve area */
6205 } flock_t;
6206 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6207 /* transitional large file interface version */
6208 
6209 
6210 
6211 typedef struct flock64 {
6212  short l_type;
6213  short l_whence;
6214  off64_t l_start;
6215  off64_t l_len; /* len == 0 means until end of file */
6216  int l_sysid;
6217  pid_t l_pid;
6218  long l_pad[4]; /* reserve area */
6219 } flock64_t;
6220 # 328 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6221 /*
6222  * File segment locking types.
6223  */
6224 
6225 
6226 
6227 
6228 
6229 /*
6230  * POSIX constants
6231  */
6232 
6233 /* Mask for file access modes */
6234 
6235 
6236 
6237 /*
6238  * DIRECTIO
6239  */
6240 
6241 
6242 
6243 
6244 /*
6245  * File share reservation type
6246  */
6247 typedef struct fshare {
6248  short f_access;
6249  short f_deny;
6250  int f_id;
6251 } fshare_t;
6252 
6253 /*
6254  * f_access values
6255  */
6256 
6257 
6258 
6259 
6260 
6261 
6262 /*
6263  * f_deny values
6264  */
6265 # 381 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6266 /*
6267  * Special flags for functions such as openat(), fstatat()....
6268  */
6269 
6270 
6271  /* || defined(_XPG7) */
6272 # 396 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h"
6273 /* advice for posix_fadvise */
6274 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2
6275 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6276 /* large file compilation environment setup */
6277 
6278 
6279 
6280 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6281 #pragma redefine_extname open open64
6282 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6283 
6284 
6285 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6286 #pragma redefine_extname creat creat64
6287 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6288 
6289 
6290 
6291 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6292 #pragma redefine_extname posix_fadvise posix_fadvise64
6293 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6294 
6295 
6296 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6297 #pragma redefine_extname posix_fallocate posix_fallocate64
6298 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6299 
6300 
6301 
6302 
6303 
6304 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6305 #pragma redefine_extname openat openat64
6306 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6307 
6308 
6309 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6310 #pragma redefine_extname attropen attropen64
6311 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6312 # 131 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h"
6313 extern int fcntl(int, int, ...);
6314 extern int open(const char *, int, ...);
6315 extern int creat(const char *, mode_t);
6316 
6317 extern int posix_fadvise(int, off_t, off_t, int);
6318 extern int posix_fallocate(int, off_t, off_t);
6319 
6320 
6321 
6322 extern int openat(int, const char *, int, ...);
6323 extern int attropen(const char *, const char *, int, ...);
6324 
6325 
6326 extern int directio(int, int);
6327 
6328 
6329 /* transitional large file interface versions */
6330 
6331 
6332 extern int open64(const char *, int, ...);
6333 extern int creat64(const char *, mode_t);
6334 
6335 extern int posix_fadvise64(int, off64_t, off64_t, int);
6336 extern int posix_fallocate64(int, off64_t, off64_t);
6337 
6338 
6339 
6340 extern int openat64(int, const char *, int, ...);
6341 extern int attropen64(const char *, const char *, int, ...);
6342 # 34 "setup_temporary_directory.c" 2
6343 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 1
6344 /*
6345  * CDDL HEADER START
6346  *
6347  * The contents of this file are subject to the terms of the
6348  * Common Development and Distribution License, Version 1.0 only
6349  * (the "License").  You may not use this file except in compliance
6350  * with the License.
6351  *
6352  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6353  * or http://www.opensolaris.org/os/licensing.
6354  * See the License for the specific language governing permissions
6355  * and limitations under the License.
6356  *
6357  * When distributing Covered Code, include this CDDL HEADER in each
6358  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6359  * If applicable, add the following below this CDDL HEADER, with the
6360  * fields enclosed by brackets "[]" replaced with your own identifying
6361  * information: Portions Copyright [yyyy] [name of copyright owner]
6362  *
6363  * CDDL HEADER END
6364  */
6365 /*	Copyright (c) 1988 AT&T	*/
6366 /*	  All Rights Reserved  	*/
6367 
6368 
6369 /*
6370  * Copyright 1999-2003 Sun Microsystems, Inc.  All rights reserved.
6371  * Use is subject to license terms.
6372  */
6373 
6374 
6375 
6376 
6377 
6378 #pragma ident "%Z%%M%	%I%	%E% SMI"
6379 
6380 /*
6381  * Error codes
6382  */
6383 
6384 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1
6385 /*
6386  * CDDL HEADER START
6387  *
6388  * The contents of this file are subject to the terms of the
6389  * Common Development and Distribution License, Version 1.0 only
6390  * (the "License").  You may not use this file except in compliance
6391  * with the License.
6392  *
6393  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6394  * or http://www.opensolaris.org/os/licensing.
6395  * See the License for the specific language governing permissions
6396  * and limitations under the License.
6397  *
6398  * When distributing Covered Code, include this CDDL HEADER in each
6399  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6400  * If applicable, add the following below this CDDL HEADER, with the
6401  * fields enclosed by brackets "[]" replaced with your own identifying
6402  * information: Portions Copyright [yyyy] [name of copyright owner]
6403  *
6404  * CDDL HEADER END
6405  */
6406 /*
6407  * Copyright 2000 Sun Microsystems, Inc.  All rights reserved.
6408  * Use is subject to license terms.
6409  */
6410 
6411 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
6412 /*	  All Rights Reserved  	*/
6413 
6414 /*
6415  * University Copyright- Copyright (c) 1982, 1986, 1988
6416  * The Regents of the University of California
6417  * All Rights Reserved
6418  *
6419  * University Acknowledgment- Portions of this document are derived from
6420  * software developed by the University of California, Berkeley, and its
6421  * contributors.
6422  */
6423 
6424 
6425 
6426 
6427 #pragma ident "%Z%%M%	%I%	%E% SMI"
6428 
6429 
6430 
6431 
6432 
6433 /*
6434  * Error codes
6435  */
6436 # 102 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6437 /* Filesystem Quotas */
6438 
6439 
6440 /* Convergent Error Returns */
6441 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6442 /* Interprocess Robust Locks */
6443 
6444 
6445 
6446 /* stream problems */
6447 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6448 /* Interprocess Robust Locks */
6449 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6450 /* shared library problems */
6451 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6452 /* BSD Networking Software */
6453  /* argument errors */
6454 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6455     /* protocol family */
6456 
6457 
6458  /* operational errors */
6459 
6460 
6461 
6462     /* of reset */
6463 
6464 
6465 
6466 
6467 
6468 /* XENIX has 135 - 142 */
6469 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h"
6470 /* SUN Network File System */
6471 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 2
6472 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h"
6473 extern int *___errno();
6474 # 35 "setup_temporary_directory.c" 2
6475 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1
6476 /*
6477  * CDDL HEADER START
6478  *
6479  * The contents of this file are subject to the terms of the
6480  * Common Development and Distribution License, Version 1.0 only
6481  * (the "License").  You may not use this file except in compliance
6482  * with the License.
6483  *
6484  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6485  * or http://www.opensolaris.org/os/licensing.
6486  * See the License for the specific language governing permissions
6487  * and limitations under the License.
6488  *
6489  * When distributing Covered Code, include this CDDL HEADER in each
6490  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6491  * If applicable, add the following below this CDDL HEADER, with the
6492  * fields enclosed by brackets "[]" replaced with your own identifying
6493  * information: Portions Copyright [yyyy] [name of copyright owner]
6494  *
6495  * CDDL HEADER END
6496  */
6497 /*	Copyright (c) 1988 AT&T	*/
6498 /*	  All Rights Reserved  	*/
6499 
6500 
6501 /*
6502  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6503  *
6504  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6505  * Use is subject to license terms.
6506  */
6507 
6508 
6509 
6510 
6511 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 1
6512 /*
6513  * CDDL HEADER START
6514  *
6515  * The contents of this file are subject to the terms of the
6516  * Common Development and Distribution License, Version 1.0 only
6517  * (the "License").  You may not use this file except in compliance
6518  * with the License.
6519  *
6520  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6521  * or http://www.opensolaris.org/os/licensing.
6522  * See the License for the specific language governing permissions
6523  * and limitations under the License.
6524  *
6525  * When distributing Covered Code, include this CDDL HEADER in each
6526  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6527  * If applicable, add the following below this CDDL HEADER, with the
6528  * fields enclosed by brackets "[]" replaced with your own identifying
6529  * information: Portions Copyright [yyyy] [name of copyright owner]
6530  *
6531  * CDDL HEADER END
6532  */
6533 /*	Copyright (c) 1988 AT&T	*/
6534 /*	  All Rights Reserved  	*/
6535 
6536 /*
6537  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6538  *
6539  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6540  * Use is subject to license terms.
6541  */
6542 
6543 /*
6544  * An application should not include this header directly.  Instead it
6545  * should be included only through the inclusion of other Sun headers.
6546  *
6547  * The contents of this header is limited to identifiers specified in the
6548  * C Standard.  Any new identifiers specified in future amendments to the
6549  * C Standard must be placed in this header.  If these new identifiers
6550  * are required to also be in the C++ Standard "std" namespace, then for
6551  * anything other than macro definitions, corresponding "using" directives
6552  * must also be added to <ctype.h>.
6553  */
6554 
6555 
6556 
6557 
6558 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6559 /*
6560  * CDDL HEADER START
6561  *
6562  * The contents of this file are subject to the terms of the
6563  * Common Development and Distribution License (the "License").
6564  * You may not use this file except in compliance with the License.
6565  *
6566  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6567  * or http://www.opensolaris.org/os/licensing.
6568  * See the License for the specific language governing permissions
6569  * and limitations under the License.
6570  *
6571  * When distributing Covered Code, include this CDDL HEADER in each
6572  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6573  * If applicable, add the following below this CDDL HEADER, with the
6574  * fields enclosed by brackets "[]" replaced with your own identifying
6575  * information: Portions Copyright [yyyy] [name of copyright owner]
6576  *
6577  * CDDL HEADER END
6578  */
6579 
6580 /*
6581  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6582  * Copyright 2016 Joyent, Inc.
6583  *
6584  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6585  * Use is subject to license terms.
6586  */
6587 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 2
6588 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h"
6589 extern unsigned char __ctype[];
6590 extern unsigned int *__ctype_mask;
6591 extern int *__trans_upper;
6592 extern int *__trans_lower;
6593 
6594 
6595 
6596 
6597 
6598 /*
6599  * These used to be macros, which while more efficient, precludes operation
6600  * with thread specific locales.  The old macros will still work, but new
6601  * code compiles to use functions.  This is specifically permitted by the
6602  * various standards.  Only _tolower and _toupper were required to be
6603  * delivered in macro form.
6604  */
6605 extern int isalnum(int);
6606 extern int isalpha(int);
6607 extern int iscntrl(int);
6608 extern int isdigit(int);
6609 extern int isgraph(int);
6610 extern int islower(int);
6611 extern int isprint(int);
6612 extern int ispunct(int);
6613 extern int isspace(int);
6614 extern int isupper(int);
6615 extern int isxdigit(int);
6616 
6617 extern int isblank(int);
6618 
6619 
6620 extern int tolower(int);
6621 extern int toupper(int);
6622 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 2
6623 
6624 /*
6625  * Allow global visibility for symbols defined in
6626  * C++ "std" namespace in <iso/ctype_iso.h>.
6627  */
6628 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h"
6629 extern int isascii(int);
6630 extern int toascii(int);
6631 extern int _tolower(int);
6632 extern int _toupper(int);
6633 # 98 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h"
6634 extern int isalnum_l(int, locale_t);
6635 extern int isalpha_l(int, locale_t);
6636 extern int isblank_l(int, locale_t);
6637 extern int iscntrl_l(int, locale_t);
6638 extern int isdigit_l(int, locale_t);
6639 extern int isgraph_l(int, locale_t);
6640 extern int islower_l(int, locale_t);
6641 extern int isprint_l(int, locale_t);
6642 extern int ispunct_l(int, locale_t);
6643 extern int isspace_l(int, locale_t);
6644 extern int isupper_l(int, locale_t);
6645 extern int isxdigit_l(int, locale_t);
6646 extern int tolower_l(int, locale_t);
6647 extern int toupper_l(int, locale_t);
6648 # 36 "setup_temporary_directory.c" 2
6649 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1
6650 /*
6651  * CDDL HEADER START
6652  *
6653  * The contents of this file are subject to the terms of the
6654  * Common Development and Distribution License (the "License").
6655  * You may not use this file except in compliance with the License.
6656  *
6657  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6658  * or http://www.opensolaris.org/os/licensing.
6659  * See the License for the specific language governing permissions
6660  * and limitations under the License.
6661  *
6662  * When distributing Covered Code, include this CDDL HEADER in each
6663  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6664  * If applicable, add the following below this CDDL HEADER, with the
6665  * fields enclosed by brackets "[]" replaced with your own identifying
6666  * information: Portions Copyright [yyyy] [name of copyright owner]
6667  *
6668  * CDDL HEADER END
6669  */
6670 
6671 /*
6672  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6673  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
6674  */
6675 
6676 /*	Copyright (c) 1988 AT&T	*/
6677 /*	  All Rights Reserved  	*/
6678 
6679 
6680 
6681 
6682 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1
6683 /*
6684  * CDDL HEADER START
6685  *
6686  * The contents of this file are subject to the terms of the
6687  * Common Development and Distribution License, Version 1.0 only
6688  * (the "License").  You may not use this file except in compliance
6689  * with the License.
6690  *
6691  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6692  * or http://www.opensolaris.org/os/licensing.
6693  * See the License for the specific language governing permissions
6694  * and limitations under the License.
6695  *
6696  * When distributing Covered Code, include this CDDL HEADER in each
6697  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6698  * If applicable, add the following below this CDDL HEADER, with the
6699  * fields enclosed by brackets "[]" replaced with your own identifying
6700  * information: Portions Copyright [yyyy] [name of copyright owner]
6701  *
6702  * CDDL HEADER END
6703  */
6704 /*	Copyright (c) 1988 AT&T	*/
6705 /*	  All Rights Reserved  	*/
6706 
6707 
6708 /*
6709  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6710  * Copyright 2014 PALO, Richard.
6711  *
6712  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
6713  * Use is subject to license terms.
6714  */
6715 
6716 /*
6717  * An application should not include this header directly.  Instead it
6718  * should be included only through the inclusion of other Sun headers.
6719  *
6720  * The contents of this header is limited to identifiers specified in the
6721  * C Standard.  Any new identifiers specified in future amendments to the
6722  * C Standard must be placed in this header.  If these new identifiers
6723  * are required to also be in the C++ Standard "std" namespace, then for
6724  * anything other than macro definitions, corresponding "using" directives
6725  * must also be added to <string.h>.
6726  */
6727 
6728 
6729 
6730 
6731 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6732 /*
6733  * CDDL HEADER START
6734  *
6735  * The contents of this file are subject to the terms of the
6736  * Common Development and Distribution License (the "License").
6737  * You may not use this file except in compliance with the License.
6738  *
6739  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6740  * or http://www.opensolaris.org/os/licensing.
6741  * See the License for the specific language governing permissions
6742  * and limitations under the License.
6743  *
6744  * When distributing Covered Code, include this CDDL HEADER in each
6745  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6746  * If applicable, add the following below this CDDL HEADER, with the
6747  * fields enclosed by brackets "[]" replaced with your own identifying
6748  * information: Portions Copyright [yyyy] [name of copyright owner]
6749  *
6750  * CDDL HEADER END
6751  */
6752 
6753 /*
6754  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
6755  * Copyright 2016 Joyent, Inc.
6756  *
6757  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
6758  * Use is subject to license terms.
6759  */
6760 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
6761 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
6762 /*
6763  * This file and its contents are supplied under the terms of the
6764  * Common Development and Distribution License ("CDDL"), version 1.0.
6765  * You may only use this file in accordance with the terms of version
6766  * 1.0 of the CDDL.
6767  *
6768  * A full copy of the text of the CDDL should have accompanied this
6769  * source.  A copy of the CDDL is also available via the Internet at
6770  * http://www.illumos.org/license/CDDL.
6771  */
6772 
6773 /*
6774  * Copyright 2014-2016 PALO, Richard.
6775  */
6776 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2
6777 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
6778 extern int memcmp(const void *, const void *, size_t);
6779 extern void *memcpy(void *, const void *, size_t);
6780 extern void *memmove(void *, const void *, size_t);
6781 extern void *memset(void *, int, size_t);
6782 extern char *strcat(char *, const char *);
6783 extern int strcmp(const char *, const char *);
6784 extern char *strcpy(char *, const char *);
6785 extern int strcoll(const char *, const char *);
6786 extern size_t strcspn(const char *, const char *);
6787 extern char *strerror(int);
6788 extern size_t strlen(const char *);
6789 extern char *strncat(char *, const char *, size_t);
6790 extern int strncmp(const char *, const char *, size_t);
6791 extern char *strncpy(char *, const char *, size_t);
6792 extern size_t strspn(const char *, const char *);
6793 extern char *strtok(char *, const char *);
6794 extern size_t strxfrm(char *, const char *, size_t);
6795 
6796 /*
6797  * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the
6798  * function signatures for the following functions be replaced by
6799  * two declarations, both of which have the same behavior.
6800  */
6801 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h"
6802 extern void *memchr(const void *, int, size_t);
6803 extern char *strchr(const char *, int);
6804 extern char *strpbrk(const char *, const char *);
6805 extern char *strrchr(const char *, int);
6806 extern char *strstr(const char *, const char *);
6807 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2
6808 
6809 /*
6810  * Allow global visibility for symbols defined in
6811  * C++ "std" namespace in <iso/string_iso.h>.
6812  */
6813 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h"
6814 extern int strerror_r(int, char *, size_t);
6815 
6816 
6817 
6818 
6819 
6820 extern char *strtok_r(char *, const char *,
6821  char **);
6822 
6823 
6824 
6825 
6826 extern void *memccpy(void *, const void *,
6827   int, size_t);
6828 
6829 
6830 
6831 
6832 extern char *stpcpy(char *, const char *);
6833 extern char *stpncpy(char *, const char *, size_t);
6834 extern char *strndup(const char *, size_t);
6835 extern size_t strnlen(const char *, size_t);
6836 extern char *strsignal(int);
6837 
6838 
6839 
6840 
6841 
6842 
6843 extern int strcoll_l(const char *, const char *, locale_t);
6844 extern size_t strxfrm_l(char *, const char *,
6845     size_t, locale_t);
6846 extern int strcasecmp_l(const char *, const char *, locale_t);
6847 extern int strncasecmp_l(const char *, const char *, size_t, locale_t);
6848 extern char *strerror_l(int, locale_t);
6849 
6850 
6851 
6852 
6853 
6854 /* Note that some of these are also declared in strings.h for XPG4_2+ */
6855 extern void explicit_bzero(void *, size_t);
6856 extern int uucopy(const void *, void *, size_t);
6857 extern int uucopystr(const void *, void *, size_t);
6858 extern int ffs(int);
6859 extern int ffsl(long);
6860 extern int ffsll(long long);
6861 extern int fls(int);
6862 extern int flsl(long);
6863 extern int flsll(long long);
6864 extern void *memmem(const void *, size_t, const void *, size_t);
6865 extern char *strcasestr(const char *, const char *);
6866 extern char *strnstr(const char *, const char *, size_t);
6867 extern size_t strlcpy(char *, const char *, size_t);
6868 extern size_t strlcat(char *, const char *, size_t);
6869 extern char *strsep(char **stringp, const char *delim);
6870 extern char *strchrnul(const char *, int);
6871 extern char *strcasestr_l(const char *, const char *, locale_t);
6872 extern int strcasecmp(const char *, const char *);
6873 extern int strncasecmp(const char *, const char *, size_t);
6874 
6875 
6876 
6877 
6878 
6879 extern char *strdup(const char *);
6880 
6881 
6882 
6883 
6884 
6885 
6886 /*
6887  * gcc provides this inlining facility but Studio C does not.
6888  * We should use it exclusively once Studio C also provides it.
6889  */
6890 extern void *__builtin_alloca(size_t);
6891 # 37 "setup_temporary_directory.c" 2
6892 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 1
6893 /*
6894  * CDDL HEADER START
6895  *
6896  * The contents of this file are subject to the terms of the
6897  * Common Development and Distribution License, Version 1.0 only
6898  * (the "License").  You may not use this file except in compliance
6899  * with the License.
6900  *
6901  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6902  * or http://www.opensolaris.org/os/licensing.
6903  * See the License for the specific language governing permissions
6904  * and limitations under the License.
6905  *
6906  * When distributing Covered Code, include this CDDL HEADER in each
6907  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6908  * If applicable, add the following below this CDDL HEADER, with the
6909  * fields enclosed by brackets "[]" replaced with your own identifying
6910  * information: Portions Copyright [yyyy] [name of copyright owner]
6911  *
6912  * CDDL HEADER END
6913  */
6914 /*
6915  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
6916  * Use is subject to license terms.
6917  */
6918 
6919 /*
6920  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6921  *
6922  * Portions of this file developed by Garrett D'Amore are licensed
6923  * under the terms of the Common Development and Distribution License (CDDL)
6924  * version 1.0 only.  The use of subsequent versions of the License are
6925  * is specifically prohibited unless those terms are not in conflict with
6926  * version 1.0 of the License.  You can find this license on-line at
6927  * http://www.illumos.org/license/CDDL
6928  */
6929 
6930 
6931 
6932 
6933 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 1
6934 /*
6935  * CDDL HEADER START
6936  *
6937  * The contents of this file are subject to the terms of the
6938  * Common Development and Distribution License, Version 1.0 only
6939  * (the "License").  You may not use this file except in compliance
6940  * with the License.
6941  *
6942  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6943  * or http://www.opensolaris.org/os/licensing.
6944  * See the License for the specific language governing permissions
6945  * and limitations under the License.
6946  *
6947  * When distributing Covered Code, include this CDDL HEADER in each
6948  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6949  * If applicable, add the following below this CDDL HEADER, with the
6950  * fields enclosed by brackets "[]" replaced with your own identifying
6951  * information: Portions Copyright [yyyy] [name of copyright owner]
6952  *
6953  * CDDL HEADER END
6954  */
6955 /*
6956  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
6957  * Copyright 2014 PALO, Richard.
6958  *
6959  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
6960  * Use is subject to license terms.
6961  */
6962 
6963 /*	Copyright (c) 1988 AT&T	*/
6964 /*	  All Rights Reserved  	*/
6965 
6966 
6967 /*
6968  * An application should not include this header directly.  Instead it
6969  * should be included only through the inclusion of other Sun headers.
6970  *
6971  * The contents of this header is limited to identifiers specified in the
6972  * C Standard.  Any new identifiers specified in future amendments to the
6973  * C Standard must be placed in this header.  If these new identifiers
6974  * are required to also be in the C++ Standard "std" namespace, then for
6975  * anything other than macro definitions, corresponding "using" directives
6976  * must also be added to <locale.h>.
6977  */
6978 
6979 
6980 
6981 
6982 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
6983 /*
6984  * CDDL HEADER START
6985  *
6986  * The contents of this file are subject to the terms of the
6987  * Common Development and Distribution License (the "License").
6988  * You may not use this file except in compliance with the License.
6989  *
6990  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6991  * or http://www.opensolaris.org/os/licensing.
6992  * See the License for the specific language governing permissions
6993  * and limitations under the License.
6994  *
6995  * When distributing Covered Code, include this CDDL HEADER in each
6996  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6997  * If applicable, add the following below this CDDL HEADER, with the
6998  * fields enclosed by brackets "[]" replaced with your own identifying
6999  * information: Portions Copyright [yyyy] [name of copyright owner]
7000  *
7001  * CDDL HEADER END
7002  */
7003 
7004 /*
7005  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7006  * Copyright 2016 Joyent, Inc.
7007  *
7008  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7009  * Use is subject to license terms.
7010  */
7011 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2
7012 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
7013 /*
7014  * This file and its contents are supplied under the terms of the
7015  * Common Development and Distribution License ("CDDL"), version 1.0.
7016  * You may only use this file in accordance with the terms of version
7017  * 1.0 of the CDDL.
7018  *
7019  * A full copy of the text of the CDDL should have accompanied this
7020  * source.  A copy of the CDDL is also available via the Internet at
7021  * http://www.illumos.org/license/CDDL.
7022  */
7023 
7024 /*
7025  * Copyright 2014-2016 PALO, Richard.
7026  */
7027 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2
7028 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
7029 struct lconv {
7030  char *decimal_point;
7031  char *thousands_sep;
7032  char *grouping;
7033  char *int_curr_symbol;
7034  char *currency_symbol;
7035  char *mon_decimal_point;
7036  char *mon_thousands_sep;
7037  char *mon_grouping;
7038  char *positive_sign;
7039  char *negative_sign;
7040  char int_frac_digits;
7041  char frac_digits;
7042  char p_cs_precedes;
7043  char p_sep_by_space;
7044  char n_cs_precedes;
7045  char n_sep_by_space;
7046  char p_sign_posn;
7047  char n_sign_posn;
7048 
7049 /*
7050  * New in IEEE Std 1003.1-2001 for alignment with the ISO/IEC 9899:1999
7051  * standard.  Namespace and binary compatibility dictate that visibility
7052  * of these new members be limited.  Visibility is limited to a strictly
7053  * conforming ANSI C environment (-Xc) or if _LCONV_C99 is defined.
7054  */
7055 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
7056 };
7057 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h"
7058 extern char *setlocale(int, const char *);
7059 extern struct lconv *localeconv(void);
7060 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2
7061 
7062 
7063 
7064 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
7065 /*
7066  * CDDL HEADER START
7067  *
7068  * The contents of this file are subject to the terms of the
7069  * Common Development and Distribution License (the "License").
7070  * You may not use this file except in compliance with the License.
7071  *
7072  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7073  * or http://www.opensolaris.org/os/licensing.
7074  * See the License for the specific language governing permissions
7075  * and limitations under the License.
7076  *
7077  * When distributing Covered Code, include this CDDL HEADER in each
7078  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7079  * If applicable, add the following below this CDDL HEADER, with the
7080  * fields enclosed by brackets "[]" replaced with your own identifying
7081  * information: Portions Copyright [yyyy] [name of copyright owner]
7082  *
7083  * CDDL HEADER END
7084  */
7085 /*
7086  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7087  *
7088  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
7089  * Use is subject to license terms.
7090  */
7091 
7092 
7093 
7094 
7095 
7096 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
7097 /*
7098  * CDDL HEADER START
7099  *
7100  * The contents of this file are subject to the terms of the
7101  * Common Development and Distribution License (the "License").
7102  * You may not use this file except in compliance with the License.
7103  *
7104  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7105  * or http://www.opensolaris.org/os/licensing.
7106  * See the License for the specific language governing permissions
7107  * and limitations under the License.
7108  *
7109  *
7110  * When distributing Covered Code, include this CDDL HEADER in each
7111  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7112  * If applicable, add the following below this CDDL HEADER, with the
7113  * fields enclosed by brackets "[]" replaced with your own identifying
7114  * information: Portions Copyright [yyyy] [name of copyright owner]
7115  *
7116  * CDDL HEADER END
7117  */
7118 
7119 /*
7120  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
7121  * Use is subject to license terms.
7122  * Copyright 2016 Joyent, Inc.
7123  */
7124 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2
7125 
7126 
7127 
7128 
7129 
7130 /*
7131  * wchar_t is a built-in type in standard C++ and as such is not
7132  * defined here when using standard C++. However, the GNU compiler
7133  * fixincludes utility nonetheless creates its own version of this
7134  * header for use by gcc and g++. In that version it adds a redundant
7135  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
7136  * header we need to include the following magic comment:
7137  *
7138  * we must use the C++ compiler's type
7139  *
7140  * The above comment should not be removed or changed until GNU
7141  * gcc/fixinc/inclhack.def is updated to bypass this header.
7142  */
7143 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h"
7144 extern char *dcgettext(const char *, const char *, const int);
7145 extern char *dgettext(const char *, const char *);
7146 extern char *gettext(const char *);
7147 extern char *textdomain(const char *);
7148 extern char *bindtextdomain(const char *, const char *);
7149 
7150 /*
7151  * LI18NUX 2000 Globalization Specification Version 1.0
7152  * with Amendment 2
7153  */
7154 extern char *dcngettext(const char *, const char *,
7155  const char *, unsigned long int, int);
7156 extern char *dngettext(const char *, const char *,
7157  const char *, unsigned long int);
7158 extern char *ngettext(const char *, const char *, unsigned long int);
7159 extern char *bind_textdomain_codeset(const char *, const char *);
7160 
7161 /* Word handling functions --- requires dynamic linking */
7162 /* Warning: these are experimental and subject to change. */
7163 extern int wdinit(void);
7164 extern int wdchkind(wchar_t);
7165 extern int wdbindf(wchar_t, wchar_t, int);
7166 extern wchar_t *wddelim(wchar_t, wchar_t, int);
7167 extern wchar_t mcfiller(void);
7168 extern int mcwrap(void);
7169 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2
7170 
7171 
7172 /*
7173  * Allow global visibility for symbols defined in
7174  * C++ "std" namespace in <iso/locale_iso.h>.
7175  */
7176 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h"
7177 /*
7178  * These were added in POSIX 2008 as part of the newlocale() specification.
7179  */
7180 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h"
7181 extern locale_t duplocale(locale_t);
7182 extern void freelocale(locale_t);
7183 extern locale_t newlocale(int, const char *, locale_t);
7184 extern locale_t uselocale(locale_t);
7185 
7186 
7187 extern locale_t __global_locale(void);
7188 # 38 "setup_temporary_directory.c" 2
7189 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1
7190 /*
7191  * CDDL HEADER START
7192  *
7193  * The contents of this file are subject to the terms of the
7194  * Common Development and Distribution License (the "License").
7195  * You may not use this file except in compliance with the License.
7196  *
7197  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7198  * or http://www.opensolaris.org/os/licensing.
7199  * See the License for the specific language governing permissions
7200  * and limitations under the License.
7201  *
7202  * When distributing Covered Code, include this CDDL HEADER in each
7203  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7204  * If applicable, add the following below this CDDL HEADER, with the
7205  * fields enclosed by brackets "[]" replaced with your own identifying
7206  * information: Portions Copyright [yyyy] [name of copyright owner]
7207  *
7208  * CDDL HEADER END
7209  */
7210 /*
7211  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7212  *
7213  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
7214  * Use is subject to license terms.
7215  */
7216 # 39 "setup_temporary_directory.c" 2
7217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 1
7218 /*
7219  * CDDL HEADER START
7220  *
7221  * The contents of this file are subject to the terms of the
7222  * Common Development and Distribution License, Version 1.0 only
7223  * (the "License").  You may not use this file except in compliance
7224  * with the License.
7225  *
7226  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7227  * or http://www.opensolaris.org/os/licensing.
7228  * See the License for the specific language governing permissions
7229  * and limitations under the License.
7230  *
7231  * When distributing Covered Code, include this CDDL HEADER in each
7232  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7233  * If applicable, add the following below this CDDL HEADER, with the
7234  * fields enclosed by brackets "[]" replaced with your own identifying
7235  * information: Portions Copyright [yyyy] [name of copyright owner]
7236  *
7237  * CDDL HEADER END
7238  */
7239 /*	Copyright (c) 1988 AT&T	*/
7240 /*	  All Rights Reserved  	*/
7241 
7242 
7243 /*
7244  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7245  *
7246  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7247  * Use is subject to license terms.
7248  */
7249 
7250 
7251 
7252 
7253 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7254 /*
7255  * CDDL HEADER START
7256  *
7257  * The contents of this file are subject to the terms of the
7258  * Common Development and Distribution License (the "License").
7259  * You may not use this file except in compliance with the License.
7260  *
7261  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7262  * or http://www.opensolaris.org/os/licensing.
7263  * See the License for the specific language governing permissions
7264  * and limitations under the License.
7265  *
7266  * When distributing Covered Code, include this CDDL HEADER in each
7267  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7268  * If applicable, add the following below this CDDL HEADER, with the
7269  * fields enclosed by brackets "[]" replaced with your own identifying
7270  * information: Portions Copyright [yyyy] [name of copyright owner]
7271  *
7272  * CDDL HEADER END
7273  */
7274 
7275 /*
7276  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7277  * Copyright 2016 Joyent, Inc.
7278  *
7279  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7280  * Use is subject to license terms.
7281  */
7282 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 2
7283 
7284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7285 /*
7286  * CDDL HEADER START
7287  *
7288  * The contents of this file are subject to the terms of the
7289  * Common Development and Distribution License (the "License").
7290  * You may not use this file except in compliance with the License.
7291  *
7292  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7293  * or http://www.opensolaris.org/os/licensing.
7294  * See the License for the specific language governing permissions
7295  * and limitations under the License.
7296  *
7297  * When distributing Covered Code, include this CDDL HEADER in each
7298  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7299  * If applicable, add the following below this CDDL HEADER, with the
7300  * fields enclosed by brackets "[]" replaced with your own identifying
7301  * information: Portions Copyright [yyyy] [name of copyright owner]
7302  *
7303  * CDDL HEADER END
7304  */
7305 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7306 /*	  All Rights Reserved  	*/
7307 
7308 
7309 /*
7310  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7311  * Use is subject to license terms.
7312  *
7313  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7314  * Copyright 2016 Joyent, Inc.
7315  */
7316 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 2
7317 
7318 
7319 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
7320 /*
7321  * CDDL HEADER START
7322  *
7323  * The contents of this file are subject to the terms of the
7324  * Common Development and Distribution License (the "License").
7325  * You may not use this file except in compliance with the License.
7326  *
7327  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7328  * or http://www.opensolaris.org/os/licensing.
7329  * See the License for the specific language governing permissions
7330  * and limitations under the License.
7331  *
7332  * When distributing Covered Code, include this CDDL HEADER in each
7333  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7334  * If applicable, add the following below this CDDL HEADER, with the
7335  * fields enclosed by brackets "[]" replaced with your own identifying
7336  * information: Portions Copyright [yyyy] [name of copyright owner]
7337  *
7338  * CDDL HEADER END
7339  */
7340 
7341 /*
7342  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7343  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
7344  */
7345 
7346 /*	Copyright (c) 1988 AT&T	*/
7347 /*	  All Rights Reserved  	*/
7348 
7349 /*
7350  * User-visible pieces of the ANSI C standard I/O package.
7351  */
7352 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 2
7353 
7354 
7355 
7356 
7357 
7358 
7359 struct passwd {
7360  char *pw_name;
7361  char *pw_passwd;
7362  uid_t pw_uid;
7363  gid_t pw_gid;
7364  char *pw_age;
7365  char *pw_comment;
7366  char *pw_gecos;
7367  char *pw_dir;
7368  char *pw_shell;
7369 };
7370 
7371 
7372 struct comment {
7373  char *c_dept;
7374  char *c_name;
7375  char *c_acct;
7376  char *c_bin;
7377 };
7378 
7379 
7380 extern struct passwd *getpwuid(uid_t); /* MT-unsafe */
7381 extern struct passwd *getpwnam(const char *); /* MT-unsafe */
7382 
7383 
7384 extern struct passwd *getpwent_r(struct passwd *, char *, int);
7385 extern struct passwd *fgetpwent_r(FILE *, struct passwd *, char *, int);
7386 extern struct passwd *fgetpwent(FILE *); /* MT-unsafe */
7387 extern int putpwent(const struct passwd *, FILE *);
7388 
7389 
7390 
7391 
7392 extern void endpwent(void);
7393 extern struct passwd *getpwent(void); /* MT-unsafe */
7394 extern void setpwent(void);
7395 
7396 
7397 /*
7398  * getpwuid_r() & getpwnam_r() prototypes are defined here.
7399  */
7400 
7401 /*
7402  * Previous releases of Solaris, starting at 2.3, provided definitions of
7403  * various functions as specified in POSIX.1c, Draft 6.  For some of these
7404  * functions, the final POSIX 1003.1c standard had a different number of
7405  * arguments and return values.
7406  *
7407  * The following segment of this header provides support for the standard
7408  * interfaces while supporting applications written under earlier
7409  * releases.  The application defines appropriate values of the feature
7410  * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
7411  * whether it was written to expect the Draft 6 or standard versions of
7412  * these interfaces, before including this header.  This header then
7413  * provides a mapping from the source version of the interface to an
7414  * appropriate binary interface.  Such mappings permit an application
7415  * to be built from libraries and objects which have mixed expectations
7416  * of the definitions of these functions.
7417  *
7418  * For applications using the Draft 6 definitions, the binary symbol is the
7419  * same as the source symbol, and no explicit mapping is needed.  For the
7420  * standard interface, the function func() is mapped to the binary symbol
7421  * _posix_func().  The preferred mechanism for the remapping is a compiler
7422  * #pragma.  If the compiler does not provide such a #pragma, the header file
7423  * defines a static function func() which calls the _posix_func() version;
7424  * this has to be done instead of #define since POSIX specifies that an
7425  * application can #undef the symbol and still be bound to the correct
7426  * implementation.  Unfortunately, the statics confuse lint so we fallback to
7427  * #define in that case.
7428  *
7429  * NOTE: Support for the Draft 6 definitions is provided for compatibility
7430  * only.  New applications/libraries should use the standard definitions.
7431  */
7432 # 166 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h"
7433 extern struct passwd *getpwuid_r(uid_t, struct passwd *, char *, int);
7434 extern struct passwd *getpwnam_r(const char *, struct passwd *, char *, int);
7435 # 40 "setup_temporary_directory.c" 2
7436 
7437 /*
7438  * consolidation pkg command library includes
7439  */
7440 
7441 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1
7442 /*
7443  * CDDL HEADER START
7444  *
7445  * The contents of this file are subject to the terms of the
7446  * Common Development and Distribution License (the "License").
7447  * You may not use this file except in compliance with the License.
7448  *
7449  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7450  * or http://www.opensolaris.org/os/licensing.
7451  * See the License for the specific language governing permissions
7452  * and limitations under the License.
7453  *
7454  * When distributing Covered Code, include this CDDL HEADER in each
7455  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7456  * If applicable, add the following below this CDDL HEADER, with the
7457  * fields enclosed by brackets "[]" replaced with your own identifying
7458  * information: Portions Copyright [yyyy] [name of copyright owner]
7459  *
7460  * CDDL HEADER END
7461  */
7462 
7463 /*
7464  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7465  * Use is subject to license terms.
7466  */
7467 
7468 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
7469 /* All Rights Reserved */
7470 # 38 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
7471 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7472 /*
7473  * CDDL HEADER START
7474  *
7475  * The contents of this file are subject to the terms of the
7476  * Common Development and Distribution License (the "License").
7477  * You may not use this file except in compliance with the License.
7478  *
7479  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7480  * or http://www.opensolaris.org/os/licensing.
7481  * See the License for the specific language governing permissions
7482  * and limitations under the License.
7483  *
7484  * When distributing Covered Code, include this CDDL HEADER in each
7485  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7486  * If applicable, add the following below this CDDL HEADER, with the
7487  * fields enclosed by brackets "[]" replaced with your own identifying
7488  * information: Portions Copyright [yyyy] [name of copyright owner]
7489  *
7490  * CDDL HEADER END
7491  */
7492 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7493 /*	  All Rights Reserved  	*/
7494 
7495 
7496 /*
7497  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7498  * Use is subject to license terms.
7499  *
7500  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7501  * Copyright 2016 Joyent, Inc.
7502  */
7503 # 39 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
7504 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
7505 /*
7506  * CDDL HEADER START
7507  *
7508  * The contents of this file are subject to the terms of the
7509  * Common Development and Distribution License (the "License").
7510  * You may not use this file except in compliance with the License.
7511  *
7512  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7513  * or http://www.opensolaris.org/os/licensing.
7514  * See the License for the specific language governing permissions
7515  * and limitations under the License.
7516  *
7517  * When distributing Covered Code, include this CDDL HEADER in each
7518  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7519  * If applicable, add the following below this CDDL HEADER, with the
7520  * fields enclosed by brackets "[]" replaced with your own identifying
7521  * information: Portions Copyright [yyyy] [name of copyright owner]
7522  *
7523  * CDDL HEADER END
7524  */
7525 
7526 /*
7527  * Copyright (c) 2013 Gary Mills
7528  *
7529  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
7530  * Use is subject to license terms.
7531  */
7532 
7533 /*	Copyright (c) 1988 AT&T	*/
7534 /*	  All Rights Reserved  	*/
7535 
7536 
7537 
7538 
7539 
7540 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
7541 /*
7542  * CDDL HEADER START
7543  *
7544  * The contents of this file are subject to the terms of the
7545  * Common Development and Distribution License (the "License").
7546  * You may not use this file except in compliance with the License.
7547  *
7548  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7549  * or http://www.opensolaris.org/os/licensing.
7550  * See the License for the specific language governing permissions
7551  * and limitations under the License.
7552  *
7553  * When distributing Covered Code, include this CDDL HEADER in each
7554  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7555  * If applicable, add the following below this CDDL HEADER, with the
7556  * fields enclosed by brackets "[]" replaced with your own identifying
7557  * information: Portions Copyright [yyyy] [name of copyright owner]
7558  *
7559  * CDDL HEADER END
7560  */
7561 
7562 /*
7563  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
7564  * Copyright 2016 Joyent, Inc.
7565  *
7566  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
7567  * Use is subject to license terms.
7568  */
7569 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
7570 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
7571 /*
7572  * CDDL HEADER START
7573  *
7574  * The contents of this file are subject to the terms of the
7575  * Common Development and Distribution License (the "License").
7576  * You may not use this file except in compliance with the License.
7577  *
7578  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7579  * or http://www.opensolaris.org/os/licensing.
7580  * See the License for the specific language governing permissions
7581  * and limitations under the License.
7582  *
7583  *
7584  * When distributing Covered Code, include this CDDL HEADER in each
7585  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7586  * If applicable, add the following below this CDDL HEADER, with the
7587  * fields enclosed by brackets "[]" replaced with your own identifying
7588  * information: Portions Copyright [yyyy] [name of copyright owner]
7589  *
7590  * CDDL HEADER END
7591  */
7592 
7593 /*
7594  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
7595  * Use is subject to license terms.
7596  * Copyright 2016 Joyent, Inc.
7597  */
7598 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
7599 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1
7600 /*
7601  * CDDL HEADER START
7602  *
7603  * The contents of this file are subject to the terms of the
7604  * Common Development and Distribution License, Version 1.0 only
7605  * (the "License").  You may not use this file except in compliance
7606  * with the License.
7607  *
7608  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7609  * or http://www.opensolaris.org/os/licensing.
7610  * See the License for the specific language governing permissions
7611  * and limitations under the License.
7612  *
7613  * When distributing Covered Code, include this CDDL HEADER in each
7614  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7615  * If applicable, add the following below this CDDL HEADER, with the
7616  * fields enclosed by brackets "[]" replaced with your own identifying
7617  * information: Portions Copyright [yyyy] [name of copyright owner]
7618  *
7619  * CDDL HEADER END
7620  */
7621 /*
7622  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
7623  * Use is subject to license terms.
7624  */
7625 
7626 /*	Copyright (c) 1988 AT&T	*/
7627 /*	  All Rights Reserved  	*/
7628 
7629 
7630 /*
7631  * An application should not include this header directly.  Instead it
7632  * should be included only through the inclusion of other Sun headers.
7633  *
7634  * The contents of this header is limited to identifiers specified in the
7635  * C Standard.  Any new identifiers specified in future amendments to the
7636  * C Standard must be placed in this header.  If these new identifiers
7637  * are required to also be in the C++ Standard "std" namespace, then for
7638  * anything other than macro definitions, corresponding "using" directives
7639  * must also be added to <limits.h>.
7640  */
7641 
7642 
7643 
7644 
7645 #pragma ident "%Z%%M%	%I%	%E% SMI"
7646 
7647 
7648 
7649 
7650 
7651 /*
7652  * Sizes of integral types
7653  */
7654 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h"
7655      /* min value of a "long int" */
7656 
7657 
7658 
7659 
7660 
7661      /* min value of a long long */
7662 
7663      /* max value of a long long */
7664 
7665      /* max value of "unsigned long long */
7666 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
7667 
7668 /*
7669  * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C
7670  * committee's working draft for the revision of the current ISO C standard,
7671  * ISO/IEC 9899:1990 Programming language - C.  These are not currently
7672  * required by any standard but constitute a useful, general purpose set
7673  * of type definitions and limits which is namespace clean with respect to
7674  * all standards.
7675  */
7676 
7677 
7678 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1
7679 /*
7680  * CDDL HEADER START
7681  *
7682  * The contents of this file are subject to the terms of the
7683  * Common Development and Distribution License, Version 1.0 only
7684  * (the "License").  You may not use this file except in compliance
7685  * with the License.
7686  *
7687  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7688  * or http://www.opensolaris.org/os/licensing.
7689  * See the License for the specific language governing permissions
7690  * and limitations under the License.
7691  *
7692  * When distributing Covered Code, include this CDDL HEADER in each
7693  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7694  * If applicable, add the following below this CDDL HEADER, with the
7695  * fields enclosed by brackets "[]" replaced with your own identifying
7696  * information: Portions Copyright [yyyy] [name of copyright owner]
7697  *
7698  * CDDL HEADER END
7699  */
7700 /*
7701  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7702  *
7703  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
7704  * Use is subject to license terms.
7705  */
7706 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2
7707 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7708 /*
7709  * ARG_MAX is calculated as follows:
7710  * NCARGS - space for other stuff on initial stack
7711  * like aux vectors, saved registers, etc..
7712  */
7713 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7714 /*
7715  * POSIX conformant definitions - An implementation may define
7716  * other symbols which reflect the actual implementation. Alternate
7717  * definitions may not be as restrictive as the POSIX definitions.
7718  */
7719 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7720 /* POSIX.1c conformant */
7721 
7722 
7723 
7724 
7725 
7726 /* UNIX 03 conformant */
7727 
7728 
7729 
7730 
7731 
7732 /*
7733  * POSIX.2 and XPG4-XSH4 conformant definitions
7734  */
7735 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7736 /* UNIX 03 conformant */
7737 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7738 /*
7739  * For dual definitions for PASS_MAX and sysconf.c
7740  */
7741 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7742     /* NLS printf() and scanf() */
7743 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7744 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */
7745 
7746 
7747 
7748        /* of a double */
7749 
7750 
7751        /* of a "float" */
7752 
7753 
7754 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */
7755 
7756 
7757        /* of a double */
7758 
7759        /* of a float */
7760 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7761 /*
7762  * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the
7763  * related text states:
7764  *
7765  * A definition of one of the values from Table 2-5 shall be omitted from the
7766  * <limits.h> on specific implementations where the corresponding value is
7767  * equal to or greater than the stated minimum, but where the value can vary
7768  * depending on the file to which it is applied. The actual value supported for
7769  * a specific pathname shall be provided by the pathconf() (5.7.1) function.
7770  *
7771  * This is clear that any machine supporting multiple file system types
7772  * and/or a network can not include this define, regardless of protection
7773  * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags.
7774  *
7775  * #define	NAME_MAX	14
7776  */
7777 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h"
7778     /* Increased for illumos */
7779 # 40 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
7780 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
7781 /*
7782  * CDDL HEADER START
7783  *
7784  * The contents of this file are subject to the terms of the
7785  * Common Development and Distribution License (the "License").
7786  * You may not use this file except in compliance with the License.
7787  *
7788  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7789  * or http://www.opensolaris.org/os/licensing.
7790  * See the License for the specific language governing permissions
7791  * and limitations under the License.
7792  *
7793  * When distributing Covered Code, include this CDDL HEADER in each
7794  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7795  * If applicable, add the following below this CDDL HEADER, with the
7796  * fields enclosed by brackets "[]" replaced with your own identifying
7797  * information: Portions Copyright [yyyy] [name of copyright owner]
7798  *
7799  * CDDL HEADER END
7800  */
7801 
7802 /*
7803  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7804  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
7805  */
7806 
7807 /*	Copyright (c) 1988 AT&T	*/
7808 /*	  All Rights Reserved  	*/
7809 
7810 /*
7811  * User-visible pieces of the ANSI C standard I/O package.
7812  */
7813 # 41 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
7814 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 1
7815 /*
7816  * CDDL HEADER START
7817  *
7818  * The contents of this file are subject to the terms of the
7819  * Common Development and Distribution License, Version 1.0 only
7820  * (the "License").  You may not use this file except in compliance
7821  * with the License.
7822  *
7823  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7824  * or http://www.opensolaris.org/os/licensing.
7825  * See the License for the specific language governing permissions
7826  * and limitations under the License.
7827  *
7828  * When distributing Covered Code, include this CDDL HEADER in each
7829  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7830  * If applicable, add the following below this CDDL HEADER, with the
7831  * fields enclosed by brackets "[]" replaced with your own identifying
7832  * information: Portions Copyright [yyyy] [name of copyright owner]
7833  *
7834  * CDDL HEADER END
7835  */
7836 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7837 /*	  All Rights Reserved  	*/
7838 
7839 
7840 
7841 
7842 
7843 #pragma ident "%Z%%M%	%I%	%E% SMI"
7844 
7845 
7846 
7847 
7848 
7849 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
7850 /*
7851  * CDDL HEADER START
7852  *
7853  * The contents of this file are subject to the terms of the
7854  * Common Development and Distribution License (the "License").
7855  * You may not use this file except in compliance with the License.
7856  *
7857  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7858  * or http://www.opensolaris.org/os/licensing.
7859  * See the License for the specific language governing permissions
7860  * and limitations under the License.
7861  *
7862  * When distributing Covered Code, include this CDDL HEADER in each
7863  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7864  * If applicable, add the following below this CDDL HEADER, with the
7865  * fields enclosed by brackets "[]" replaced with your own identifying
7866  * information: Portions Copyright [yyyy] [name of copyright owner]
7867  *
7868  * CDDL HEADER END
7869  */
7870 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7871 /*	  All Rights Reserved  	*/
7872 
7873 
7874 /*
7875  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
7876  * Use is subject to license terms.
7877  *
7878  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
7879  * Copyright 2016 Joyent, Inc.
7880  */
7881 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 2
7882 
7883 struct pkgdev {
7884  int rdonly;
7885  int mntflg;
7886  longlong_t capacity; /* number of 512-blocks on device */
7887  char *name;
7888  char *dirname;
7889  char *pathname;
7890  char *mount;
7891  char *fstyp;
7892  char *cdevice;
7893  char *bdevice;
7894  char *norewind;
7895 };
7896 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
7897 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1
7898 /*
7899  * CDDL HEADER START
7900  *
7901  * The contents of this file are subject to the terms of the
7902  * Common Development and Distribution License (the "License").
7903  * You may not use this file except in compliance with the License.
7904  *
7905  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7906  * or http://www.opensolaris.org/os/licensing.
7907  * See the License for the specific language governing permissions
7908  * and limitations under the License.
7909  *
7910  * When distributing Covered Code, include this CDDL HEADER in each
7911  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7912  * If applicable, add the following below this CDDL HEADER, with the
7913  * fields enclosed by brackets "[]" replaced with your own identifying
7914  * information: Portions Copyright [yyyy] [name of copyright owner]
7915  *
7916  * CDDL HEADER END
7917  */
7918 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
7919 /*	  All Rights Reserved  	*/
7920 
7921 /*
7922  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
7923  * Use is subject to license terms.
7924  */
7925 
7926 
7927 
7928 
7929 #pragma ident "%Z%%M%	%I%	%E% SMI"
7930 
7931 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1
7932 /*
7933  * CDDL HEADER START
7934  *
7935  * The contents of this file are subject to the terms of the
7936  * Common Development and Distribution License (the "License").
7937  * You may not use this file except in compliance with the License.
7938  *
7939  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7940  * or http://www.opensolaris.org/os/licensing.
7941  * See the License for the specific language governing permissions
7942  * and limitations under the License.
7943  *
7944  * When distributing Covered Code, include this CDDL HEADER in each
7945  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7946  * If applicable, add the following below this CDDL HEADER, with the
7947  * fields enclosed by brackets "[]" replaced with your own identifying
7948  * information: Portions Copyright [yyyy] [name of copyright owner]
7949  *
7950  * CDDL HEADER END
7951  */
7952 /*	Copyright (c) 1988 AT&T	*/
7953 /*	  All Rights Reserved  	*/
7954 
7955 
7956 /*
7957  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
7958  *
7959  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
7960  * Use is subject to license terms.
7961  */
7962 /*
7963  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
7964  * Copyright 2016 Joyent, Inc.
7965  */
7966 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 2
7967 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h"
7968 extern char *errstr;
7969 
7970 struct ainfo {
7971  char *local;
7972  mode_t mode;
7973  char owner[64 +1];
7974  char group[64 +1];
7975  major_t major;
7976  minor_t minor;
7977 };
7978 
7979 struct cinfo {
7980  long cksum;
7981  fsblkcnt_t size;
7982  time_t modtime;
7983 };
7984 
7985 struct pinfo {
7986  char status;
7987  char pkg[64 +1];
7988  char editflag;
7989  char aclass[64 +1];
7990  struct pinfo
7991   *next;
7992 };
7993 
7994 struct cfent {
7995  short volno;
7996  char ftype;
7997  char pkg_class[64 +1];
7998  int pkg_class_idx;
7999  char *path;
8000  struct ainfo ainfo;
8001  struct cinfo cinfo;
8002  short npkgs;
8003  struct pinfo
8004   *pinfo;
8005 };
8006 
8007 /* averify() & cverify() error codes */
8008 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
8009 # 1 "/usr/include/openssl/bio.h" 1 3 4
8010 /* crypto/bio/bio.h */
8011 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
8012  * All rights reserved.
8013  *
8014  * This package is an SSL implementation written
8015  * by Eric Young (eay@cryptsoft.com).
8016  * The implementation was written so as to conform with Netscapes SSL.
8017  *
8018  * This library is free for commercial and non-commercial use as long as
8019  * the following conditions are aheared to.  The following conditions
8020  * apply to all code found in this distribution, be it the RC4, RSA,
8021  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
8022  * included with this distribution is covered by the same copyright terms
8023  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
8024  *
8025  * Copyright remains Eric Young's, and as such any Copyright notices in
8026  * the code are not to be removed.
8027  * If this package is used in a product, Eric Young should be given attribution
8028  * as the author of the parts of the library used.
8029  * This can be in the form of a textual message at program startup or
8030  * in documentation (online or textual) provided with the package.
8031  *
8032  * Redistribution and use in source and binary forms, with or without
8033  * modification, are permitted provided that the following conditions
8034  * are met:
8035  * 1. Redistributions of source code must retain the copyright
8036  *    notice, this list of conditions and the following disclaimer.
8037  * 2. Redistributions in binary form must reproduce the above copyright
8038  *    notice, this list of conditions and the following disclaimer in the
8039  *    documentation and/or other materials provided with the distribution.
8040  * 3. All advertising materials mentioning features or use of this software
8041  *    must display the following acknowledgement:
8042  *    "This product includes cryptographic software written by
8043  *     Eric Young (eay@cryptsoft.com)"
8044  *    The word 'cryptographic' can be left out if the rouines from the library
8045  *    being used are not cryptographic related :-).
8046  * 4. If you include any Windows specific code (or a derivative thereof) from
8047  *    the apps directory (application code) you must include an acknowledgement:
8048  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
8049  *
8050  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
8051  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8052  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
8053  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
8054  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
8055  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
8056  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8057  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
8058  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
8059  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
8060  * SUCH DAMAGE.
8061  *
8062  * The licence and distribution terms for any publically available version or
8063  * derivative of this code cannot be changed.  i.e. this code cannot simply be
8064  * copied and put under another distribution licence
8065  * [including the GNU Public Licence.]
8066  */
8067 
8068 
8069 
8070 
8071 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
8072 /* e_os2.h */
8073 /* ====================================================================
8074  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
8075  *
8076  * Redistribution and use in source and binary forms, with or without
8077  * modification, are permitted provided that the following conditions
8078  * are met:
8079  *
8080  * 1. Redistributions of source code must retain the above copyright
8081  *    notice, this list of conditions and the following disclaimer.
8082  *
8083  * 2. Redistributions in binary form must reproduce the above copyright
8084  *    notice, this list of conditions and the following disclaimer in
8085  *    the documentation and/or other materials provided with the
8086  *    distribution.
8087  *
8088  * 3. All advertising materials mentioning features or use of this
8089  *    software must display the following acknowledgment:
8090  *    "This product includes software developed by the OpenSSL Project
8091  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
8092  *
8093  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
8094  *    endorse or promote products derived from this software without
8095  *    prior written permission. For written permission, please contact
8096  *    openssl-core@openssl.org.
8097  *
8098  * 5. Products derived from this software may not be called "OpenSSL"
8099  *    nor may "OpenSSL" appear in their names without prior written
8100  *    permission of the OpenSSL Project.
8101  *
8102  * 6. Redistributions of any form whatsoever must retain the following
8103  *    acknowledgment:
8104  *    "This product includes software developed by the OpenSSL Project
8105  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
8106  *
8107  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
8108  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8109  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
8110  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
8111  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8112  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
8113  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
8114  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8115  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
8116  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
8117  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
8118  * OF THE POSSIBILITY OF SUCH DAMAGE.
8119  * ====================================================================
8120  *
8121  * This product includes cryptographic software written by Eric Young
8122  * (eay@cryptsoft.com).  This product includes software written by Tim
8123  * Hudson (tjh@cryptsoft.com).
8124  *
8125  */
8126 
8127 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
8128 /* opensslconf.h */
8129 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
8130 
8131 
8132 
8133 
8134 /* OpenSSL was configured with the following options: */
8135 # 108 "/usr/include/openssl/opensslconf.h" 3 4
8136 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
8137    asks for it.  This is a transient feature that is provided for those
8138    who haven't had the time to do the appropriate changes in their
8139    applications.  */
8140 # 204 "/usr/include/openssl/opensslconf.h" 3 4
8141 /* crypto/opensslconf.h.in */
8142 
8143 /* Generate 80386 code? */
8144 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
8145 # 65 "/usr/include/openssl/e_os2.h" 3 4
8146 /******************************************************************************
8147  * Detect operating systems.  This probably needs completing.
8148  * The result is that at least one OPENSSL_SYS_os macro should be defined.
8149  * However, if none is defined, Unix is assumed.
8150  **/
8151 
8152 
8153 
8154 /* ---------------------- Macintosh, before MacOS X ----------------------- */
8155 
8156 
8157 
8158 
8159 
8160 /* ---------------------- NetWare ----------------------------------------- */
8161 
8162 
8163 
8164 
8165 
8166 /* --------------------- Microsoft operating systems ---------------------- */
8167 
8168 /*
8169  * Note that MSDOS actually denotes 32-bit environments running on top of
8170  * MS-DOS, such as DJGPP one.
8171  */
8172 
8173 
8174 
8175 
8176 
8177 /*
8178  * For 32 bit environment, there seems to be the CygWin environment and then
8179  * all the others that try to do the same thing Microsoft does...
8180  */
8181 # 129 "/usr/include/openssl/e_os2.h" 3 4
8182 /* Anything that tries to look like Microsoft is "Windows" */
8183 # 138 "/usr/include/openssl/e_os2.h" 3 4
8184 /*
8185  * DLL settings.  This part is a bit tough, because it's up to the
8186  * application implementor how he or she will link the application, so it
8187  * requires some macro to be used.
8188  */
8189 # 152 "/usr/include/openssl/e_os2.h" 3 4
8190 /* ------------------------------- OpenVMS -------------------------------- */
8191 # 166 "/usr/include/openssl/e_os2.h" 3 4
8192 /* -------------------------------- OS/2 ---------------------------------- */
8193 
8194 
8195 
8196 
8197 
8198 /* -------------------------------- Unix ---------------------------------- */
8199 # 207 "/usr/include/openssl/e_os2.h" 3 4
8200 /* -------------------------------- VOS ----------------------------------- */
8201 # 218 "/usr/include/openssl/e_os2.h" 3 4
8202 /* ------------------------------ VxWorks --------------------------------- */
8203 
8204 
8205 
8206 
8207 /* -------------------------------- BeOS ---------------------------------- */
8208 # 234 "/usr/include/openssl/e_os2.h" 3 4
8209 /**
8210  * That's it for OS-specific stuff
8211  *****************************************************************************/
8212 
8213 /* Specials for I/O an exit */
8214 # 247 "/usr/include/openssl/e_os2.h" 3 4
8215 /*-
8216  * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare
8217  * certain global symbols that, with some compilers under VMS, have to be
8218  * defined and declared explicitely with globaldef and globalref.
8219  * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare
8220  * DLL exports and imports for compilers under Win32.  These are a little
8221  * more complicated to use.  Basically, for any library that exports some
8222  * global variables, the following code must be present in the header file
8223  * that declares them, before OPENSSL_EXTERN is used:
8224  *
8225  * #ifdef SOME_BUILD_FLAG_MACRO
8226  * # undef OPENSSL_EXTERN
8227  * # define OPENSSL_EXTERN OPENSSL_EXPORT
8228  * #endif
8229  *
8230  * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL
8231  * have some generally sensible values, and for OPENSSL_EXTERN to have the
8232  * value OPENSSL_IMPORT.
8233  */
8234 # 282 "/usr/include/openssl/e_os2.h" 3 4
8235 /*-
8236  * Macros to allow global variables to be reached through function calls when
8237  * required (if a shared library version requires it, for example.
8238  * The way it's done allows definitions like this:
8239  *
8240  *      // in foobar.c
8241  *      OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0)
8242  *      // in foobar.h
8243  *      OPENSSL_DECLARE_GLOBAL(int,foobar);
8244  *      #define foobar OPENSSL_GLOBAL_REF(foobar)
8245  */
8246 # 63 "/usr/include/openssl/bio.h" 2 3 4
8247 
8248 
8249 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4
8250 /*
8251  * CDDL HEADER START
8252  *
8253  * The contents of this file are subject to the terms of the
8254  * Common Development and Distribution License (the "License").
8255  * You may not use this file except in compliance with the License.
8256  *
8257  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8258  * or http://www.opensolaris.org/os/licensing.
8259  * See the License for the specific language governing permissions
8260  * and limitations under the License.
8261  *
8262  * When distributing Covered Code, include this CDDL HEADER in each
8263  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8264  * If applicable, add the following below this CDDL HEADER, with the
8265  * fields enclosed by brackets "[]" replaced with your own identifying
8266  * information: Portions Copyright [yyyy] [name of copyright owner]
8267  *
8268  * CDDL HEADER END
8269  */
8270 
8271 /*
8272  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8273  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
8274  */
8275 
8276 /*	Copyright (c) 1988 AT&T	*/
8277 /*	  All Rights Reserved  	*/
8278 
8279 /*
8280  * User-visible pieces of the ANSI C standard I/O package.
8281  */
8282 # 66 "/usr/include/openssl/bio.h" 2 3 4
8283 
8284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1 3 4
8285 /*
8286  * CDDL HEADER START
8287  *
8288  * The contents of this file are subject to the terms of the
8289  * Common Development and Distribution License, Version 1.0 only
8290  * (the "License").  You may not use this file except in compliance
8291  * with the License.
8292  *
8293  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8294  * or http://www.opensolaris.org/os/licensing.
8295  * See the License for the specific language governing permissions
8296  * and limitations under the License.
8297  *
8298  * When distributing Covered Code, include this CDDL HEADER in each
8299  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8300  * If applicable, add the following below this CDDL HEADER, with the
8301  * fields enclosed by brackets "[]" replaced with your own identifying
8302  * information: Portions Copyright [yyyy] [name of copyright owner]
8303  *
8304  * CDDL HEADER END
8305  */
8306 /*	Copyright (c) 1988 AT&T	*/
8307 /*	  All Rights Reserved	*/
8308 
8309 /*
8310  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8311  *
8312  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8313  * Use is subject to license terms.
8314  */
8315 
8316 
8317 
8318 
8319 /*
8320  * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999
8321  * variable argument definitions.  For legacy support, it also defines
8322  * the pre-standard variable argument definitions.
8323  *
8324  * The varargs definitions within this header are defined in terms of
8325  * implementation definitions.  These implementation definitions reside
8326  * in <sys/va_list.h>.  This organization enables protected use of
8327  * the implementation by other standard headers without introducing
8328  * names into the users' namespace.
8329  */
8330 
8331 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1 3 4
8332 /*
8333  * CDDL HEADER START
8334  *
8335  * The contents of this file are subject to the terms of the
8336  * Common Development and Distribution License, Version 1.0 only
8337  * (the "License").  You may not use this file except in compliance
8338  * with the License.
8339  *
8340  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8341  * or http://www.opensolaris.org/os/licensing.
8342  * See the License for the specific language governing permissions
8343  * and limitations under the License.
8344  *
8345  * When distributing Covered Code, include this CDDL HEADER in each
8346  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8347  * If applicable, add the following below this CDDL HEADER, with the
8348  * fields enclosed by brackets "[]" replaced with your own identifying
8349  * information: Portions Copyright [yyyy] [name of copyright owner]
8350  *
8351  * CDDL HEADER END
8352  */
8353 /*	Copyright (c) 1988 AT&T	*/
8354 /*	  All Rights Reserved  	*/
8355 
8356 
8357 /*
8358  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8359  * Use is subject to license terms.
8360  */
8361 
8362 /*
8363  * An application should not include this header directly.  Instead it
8364  * should be included only through the inclusion of other Sun headers.
8365  *
8366  * The contents of this header is limited to identifiers specified in the
8367  * C Standard.  Any new identifiers specified in future amendments to the
8368  * C Standard must be placed in this header.  If these new identifiers
8369  * are required to also be in the C++ Standard "std" namespace, then for
8370  * anything other than macro definitions, corresponding "using" directives
8371  * must also be added to <stdarg.h>.
8372  */
8373 
8374 
8375 
8376 
8377 #pragma ident "%Z%%M%	%I%	%E% SMI"
8378 
8379 /*
8380  * This header defines the ISO C 1989 and ISO C++ 1998 variable
8381  * argument definitions.
8382  *
8383  * The varargs definitions within this header are defined in terms of
8384  * implementation definitions.  These implementation definitions reside
8385  * in <sys/va_impl.h>.  This organization enables protected use of
8386  * the implementation by other standard headers without introducing
8387  * names into the users' namespace.
8388  */
8389 
8390 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1 3 4
8391 /*
8392  * CDDL HEADER START
8393  *
8394  * The contents of this file are subject to the terms of the
8395  * Common Development and Distribution License, Version 1.0 only
8396  * (the "License").  You may not use this file except in compliance
8397  * with the License.
8398  *
8399  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8400  * or http://www.opensolaris.org/os/licensing.
8401  * See the License for the specific language governing permissions
8402  * and limitations under the License.
8403  *
8404  * When distributing Covered Code, include this CDDL HEADER in each
8405  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8406  * If applicable, add the following below this CDDL HEADER, with the
8407  * fields enclosed by brackets "[]" replaced with your own identifying
8408  * information: Portions Copyright [yyyy] [name of copyright owner]
8409  *
8410  * CDDL HEADER END
8411  */
8412 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8413 /*	  All Rights Reserved	*/
8414 
8415 
8416 /*
8417  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8418  *
8419  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8420  * Use is subject to license terms.
8421  */
8422 
8423 
8424 
8425 
8426 /*
8427  * An application should not include this header directly.  Instead it
8428  * should be included only through the inclusion of other Sun headers,
8429  * specifically <stdarg.h> and <varargs.h>.
8430  *
8431  * This header serves two purposes.
8432  *
8433  * First, it provides a common set of definitions that implementations
8434  * of the various standards for variable argument lists may use.  These
8435  * various standards are implemented in <varargs.h>, <stdarg.h>,
8436  * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>.
8437  *
8438  * Second, it provides varying implementations of the common definitions,
8439  * depending upon the compiler.
8440  */
8441 
8442 /*
8443  * The common definitions exported by this header or compilers using
8444  * this header are:
8445  *
8446  * the macro __va_start(list, name) starting the list iteration
8447  * the macro __va_arg(list, type) getting the current arg and iterating
8448  * the macro __va_copy(to, from) to bookmark the list iteration
8449  * the macro __va_end(list) to end the iteration
8450  *
8451  * In addition, the following are exported via inclusion of <sys/va_list.h>:
8452  *
8453  * the identifier __builtin_va_alist for the variable list pseudo parameter
8454  * the type __va_alist_type for the variable list pseudo parameter
8455  * the type __va_list defining the type of the variable list iterator
8456  */
8457 
8458 /*
8459  * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and
8460  * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor
8461  * macros (e.g. __sparc) to determine the protocol appropriate to the
8462  * current compilation.  It is intended that the compilation system
8463  * define the feature, processor, and compiler macros, not the user of
8464  * the system.
8465  */
8466 
8467 /*
8468  * Many compilation systems depend upon the use of special functions
8469  * built into the the compilation system to handle variable argument
8470  * lists.  These built-in symbols may include one or more of the
8471  * following:
8472  *
8473  *      __builtin_va_alist
8474  *      __builtin_va_start
8475  *      __builtin_va_arg_incr
8476  *      __builtin_stdarg_start
8477  *      __builtin_va_end
8478  *      __builtin_va_arg
8479  *      __builtin_va_copy
8480  */
8481 
8482 /*
8483  * The following are defined in <sys/va_list.h>:
8484  *
8485  *      __va_alist_type
8486  *      __va_void()
8487  *      __va_ptr_base
8488  *      ISA definitions via inclusion of <sys/isa_defs.h>
8489  *
8490  * Inclusion of this header also makes visible the symbols in <sys/va_list.h>.
8491  * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h>
8492  * via inclusion of <iso/stdarg_iso.h>.
8493  */
8494 
8495 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 3 4
8496 /*
8497  * CDDL HEADER START
8498  *
8499  * The contents of this file are subject to the terms of the
8500  * Common Development and Distribution License, Version 1.0 only
8501  * (the "License").  You may not use this file except in compliance
8502  * with the License.
8503  *
8504  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8505  * or http://www.opensolaris.org/os/licensing.
8506  * See the License for the specific language governing permissions
8507  * and limitations under the License.
8508  *
8509  * When distributing Covered Code, include this CDDL HEADER in each
8510  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8511  * If applicable, add the following below this CDDL HEADER, with the
8512  * fields enclosed by brackets "[]" replaced with your own identifying
8513  * information: Portions Copyright [yyyy] [name of copyright owner]
8514  *
8515  * CDDL HEADER END
8516  */
8517 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
8518 /*	  All Rights Reserved	*/
8519 
8520 
8521 /*
8522  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8523  *
8524  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8525  * Use is subject to license terms.
8526  */
8527 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2 3 4
8528 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2 3 4
8529 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 3 4
8530 typedef __va_list va_list;
8531 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4
8532 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1 3 4
8533 /*
8534  * CDDL HEADER START
8535  *
8536  * The contents of this file are subject to the terms of the
8537  * Common Development and Distribution License, Version 1.0 only
8538  * (the "License").  You may not use this file except in compliance
8539  * with the License.
8540  *
8541  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8542  * or http://www.opensolaris.org/os/licensing.
8543  * See the License for the specific language governing permissions
8544  * and limitations under the License.
8545  *
8546  * When distributing Covered Code, include this CDDL HEADER in each
8547  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8548  * If applicable, add the following below this CDDL HEADER, with the
8549  * fields enclosed by brackets "[]" replaced with your own identifying
8550  * information: Portions Copyright [yyyy] [name of copyright owner]
8551  *
8552  * CDDL HEADER END
8553  */
8554 /*	Copyright (c) 1988 AT&T	*/
8555 /*	  All Rights Reserved	*/
8556 
8557 
8558 /*
8559  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
8560  * Use is subject to license terms.
8561  */
8562 
8563 
8564 
8565 
8566 #pragma ident "%Z%%M%	%I%	%E% SMI"
8567 
8568 /*
8569  * An application should not include this header directly.  Instead it
8570  * should be included only through the inclusion of other Sun headers.
8571  *
8572  * This header defines the va_copy variable argument macro, which is
8573  * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++
8574  * 1998.  Because this macro is a long-standing Solaris extension, it
8575  * is also permitted in other contexts.
8576  *
8577  * The varargs definitions within this header are defined in terms of
8578  * implementation definitions.  These implementation definitions reside
8579  * in <sys/va_list.h>.  This organization enables protected use of
8580  * the implementation by other standard headers without introducing
8581  * names into the users' namespace.
8582  */
8583 
8584 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4
8585 /*
8586  * CDDL HEADER START
8587  *
8588  * The contents of this file are subject to the terms of the
8589  * Common Development and Distribution License (the "License").
8590  * You may not use this file except in compliance with the License.
8591  *
8592  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8593  * or http://www.opensolaris.org/os/licensing.
8594  * See the License for the specific language governing permissions
8595  * and limitations under the License.
8596  *
8597  * When distributing Covered Code, include this CDDL HEADER in each
8598  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8599  * If applicable, add the following below this CDDL HEADER, with the
8600  * fields enclosed by brackets "[]" replaced with your own identifying
8601  * information: Portions Copyright [yyyy] [name of copyright owner]
8602  *
8603  * CDDL HEADER END
8604  */
8605 
8606 /*
8607  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
8608  * Copyright 2016 Joyent, Inc.
8609  *
8610  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
8611  * Use is subject to license terms.
8612  */
8613 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2 3 4
8614 
8615 
8616 
8617 
8618 
8619 /*
8620  * va_copy was initially a Solaris extension to provide a portable
8621  * way to perform a variable argument list ``bookmarking'' function.
8622  * It is now specified in the ISO/IEC 9899:1999 standard.
8623  */
8624 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4
8625 
8626 /*
8627  * Allow global visibility for symbols defined in
8628  * C++ "std" namespace in <iso/stdarg_iso.h>.
8629  */
8630 # 68 "/usr/include/openssl/bio.h" 2 3 4
8631 
8632 # 1 "/usr/include/openssl/crypto.h" 1 3 4
8633 /* crypto/crypto.h */
8634 /* ====================================================================
8635  * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
8636  *
8637  * Redistribution and use in source and binary forms, with or without
8638  * modification, are permitted provided that the following conditions
8639  * are met:
8640  *
8641  * 1. Redistributions of source code must retain the above copyright
8642  *    notice, this list of conditions and the following disclaimer.
8643  *
8644  * 2. Redistributions in binary form must reproduce the above copyright
8645  *    notice, this list of conditions and the following disclaimer in
8646  *    the documentation and/or other materials provided with the
8647  *    distribution.
8648  *
8649  * 3. All advertising materials mentioning features or use of this
8650  *    software must display the following acknowledgment:
8651  *    "This product includes software developed by the OpenSSL Project
8652  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
8653  *
8654  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
8655  *    endorse or promote products derived from this software without
8656  *    prior written permission. For written permission, please contact
8657  *    openssl-core@openssl.org.
8658  *
8659  * 5. Products derived from this software may not be called "OpenSSL"
8660  *    nor may "OpenSSL" appear in their names without prior written
8661  *    permission of the OpenSSL Project.
8662  *
8663  * 6. Redistributions of any form whatsoever must retain the following
8664  *    acknowledgment:
8665  *    "This product includes software developed by the OpenSSL Project
8666  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
8667  *
8668  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
8669  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8670  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
8671  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
8672  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8673  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
8674  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
8675  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8676  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
8677  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
8678  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
8679  * OF THE POSSIBILITY OF SUCH DAMAGE.
8680  * ====================================================================
8681  *
8682  * This product includes cryptographic software written by Eric Young
8683  * (eay@cryptsoft.com).  This product includes software written by Tim
8684  * Hudson (tjh@cryptsoft.com).
8685  *
8686  */
8687 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
8688  * All rights reserved.
8689  *
8690  * This package is an SSL implementation written
8691  * by Eric Young (eay@cryptsoft.com).
8692  * The implementation was written so as to conform with Netscapes SSL.
8693  *
8694  * This library is free for commercial and non-commercial use as long as
8695  * the following conditions are aheared to.  The following conditions
8696  * apply to all code found in this distribution, be it the RC4, RSA,
8697  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
8698  * included with this distribution is covered by the same copyright terms
8699  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
8700  *
8701  * Copyright remains Eric Young's, and as such any Copyright notices in
8702  * the code are not to be removed.
8703  * If this package is used in a product, Eric Young should be given attribution
8704  * as the author of the parts of the library used.
8705  * This can be in the form of a textual message at program startup or
8706  * in documentation (online or textual) provided with the package.
8707  *
8708  * Redistribution and use in source and binary forms, with or without
8709  * modification, are permitted provided that the following conditions
8710  * are met:
8711  * 1. Redistributions of source code must retain the copyright
8712  *    notice, this list of conditions and the following disclaimer.
8713  * 2. Redistributions in binary form must reproduce the above copyright
8714  *    notice, this list of conditions and the following disclaimer in the
8715  *    documentation and/or other materials provided with the distribution.
8716  * 3. All advertising materials mentioning features or use of this software
8717  *    must display the following acknowledgement:
8718  *    "This product includes cryptographic software written by
8719  *     Eric Young (eay@cryptsoft.com)"
8720  *    The word 'cryptographic' can be left out if the rouines from the library
8721  *    being used are not cryptographic related :-).
8722  * 4. If you include any Windows specific code (or a derivative thereof) from
8723  *    the apps directory (application code) you must include an acknowledgement:
8724  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
8725  *
8726  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
8727  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8728  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
8729  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
8730  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
8731  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
8732  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8733  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
8734  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
8735  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
8736  * SUCH DAMAGE.
8737  *
8738  * The licence and distribution terms for any publically available version or
8739  * derivative of this code cannot be changed.  i.e. this code cannot simply be
8740  * copied and put under another distribution licence
8741  * [including the GNU Public Licence.]
8742  */
8743 /* ====================================================================
8744  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
8745  * ECDH support in OpenSSL originally developed by
8746  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
8747  */
8748 
8749 
8750 
8751 
8752 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 3 4
8753 /*
8754  * CDDL HEADER START
8755  *
8756  * The contents of this file are subject to the terms of the
8757  * Common Development and Distribution License (the "License").
8758  * You may not use this file except in compliance with the License.
8759  *
8760  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8761  * or http://www.opensolaris.org/os/licensing.
8762  * See the License for the specific language governing permissions
8763  * and limitations under the License.
8764  *
8765  * When distributing Covered Code, include this CDDL HEADER in each
8766  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8767  * If applicable, add the following below this CDDL HEADER, with the
8768  * fields enclosed by brackets "[]" replaced with your own identifying
8769  * information: Portions Copyright [yyyy] [name of copyright owner]
8770  *
8771  * CDDL HEADER END
8772  */
8773 
8774 /*
8775  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8776  * Copyright (c) 2013 Gary Mills
8777  *
8778  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
8779  */
8780 
8781 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
8782 
8783 /*	Copyright (c) 1988 AT&T	*/
8784 /*	  All Rights Reserved  	*/
8785 # 121 "/usr/include/openssl/crypto.h" 2 3 4
8786 
8787 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
8788 /* e_os2.h */
8789 /* ====================================================================
8790  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
8791  *
8792  * Redistribution and use in source and binary forms, with or without
8793  * modification, are permitted provided that the following conditions
8794  * are met:
8795  *
8796  * 1. Redistributions of source code must retain the above copyright
8797  *    notice, this list of conditions and the following disclaimer.
8798  *
8799  * 2. Redistributions in binary form must reproduce the above copyright
8800  *    notice, this list of conditions and the following disclaimer in
8801  *    the documentation and/or other materials provided with the
8802  *    distribution.
8803  *
8804  * 3. All advertising materials mentioning features or use of this
8805  *    software must display the following acknowledgment:
8806  *    "This product includes software developed by the OpenSSL Project
8807  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
8808  *
8809  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
8810  *    endorse or promote products derived from this software without
8811  *    prior written permission. For written permission, please contact
8812  *    openssl-core@openssl.org.
8813  *
8814  * 5. Products derived from this software may not be called "OpenSSL"
8815  *    nor may "OpenSSL" appear in their names without prior written
8816  *    permission of the OpenSSL Project.
8817  *
8818  * 6. Redistributions of any form whatsoever must retain the following
8819  *    acknowledgment:
8820  *    "This product includes software developed by the OpenSSL Project
8821  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
8822  *
8823  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
8824  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8825  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
8826  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
8827  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8828  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
8829  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
8830  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8831  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
8832  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
8833  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
8834  * OF THE POSSIBILITY OF SUCH DAMAGE.
8835  * ====================================================================
8836  *
8837  * This product includes cryptographic software written by Eric Young
8838  * (eay@cryptsoft.com).  This product includes software written by Tim
8839  * Hudson (tjh@cryptsoft.com).
8840  *
8841  */
8842 
8843 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
8844 /* opensslconf.h */
8845 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
8846 
8847 
8848 
8849 
8850 /* OpenSSL was configured with the following options: */
8851 # 108 "/usr/include/openssl/opensslconf.h" 3 4
8852 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
8853    asks for it.  This is a transient feature that is provided for those
8854    who haven't had the time to do the appropriate changes in their
8855    applications.  */
8856 # 204 "/usr/include/openssl/opensslconf.h" 3 4
8857 /* crypto/opensslconf.h.in */
8858 
8859 /* Generate 80386 code? */
8860 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
8861 # 123 "/usr/include/openssl/crypto.h" 2 3 4
8862 
8863 
8864 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4
8865 /*
8866  * CDDL HEADER START
8867  *
8868  * The contents of this file are subject to the terms of the
8869  * Common Development and Distribution License (the "License").
8870  * You may not use this file except in compliance with the License.
8871  *
8872  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8873  * or http://www.opensolaris.org/os/licensing.
8874  * See the License for the specific language governing permissions
8875  * and limitations under the License.
8876  *
8877  * When distributing Covered Code, include this CDDL HEADER in each
8878  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8879  * If applicable, add the following below this CDDL HEADER, with the
8880  * fields enclosed by brackets "[]" replaced with your own identifying
8881  * information: Portions Copyright [yyyy] [name of copyright owner]
8882  *
8883  * CDDL HEADER END
8884  */
8885 
8886 /*
8887  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
8888  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
8889  */
8890 
8891 /*	Copyright (c) 1988 AT&T	*/
8892 /*	  All Rights Reserved  	*/
8893 
8894 /*
8895  * User-visible pieces of the ANSI C standard I/O package.
8896  */
8897 # 126 "/usr/include/openssl/crypto.h" 2 3 4
8898 
8899 
8900 # 1 "/usr/include/openssl/stack.h" 1 3 4
8901 /* crypto/stack/stack.h */
8902 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
8903  * All rights reserved.
8904  *
8905  * This package is an SSL implementation written
8906  * by Eric Young (eay@cryptsoft.com).
8907  * The implementation was written so as to conform with Netscapes SSL.
8908  *
8909  * This library is free for commercial and non-commercial use as long as
8910  * the following conditions are aheared to.  The following conditions
8911  * apply to all code found in this distribution, be it the RC4, RSA,
8912  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
8913  * included with this distribution is covered by the same copyright terms
8914  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
8915  *
8916  * Copyright remains Eric Young's, and as such any Copyright notices in
8917  * the code are not to be removed.
8918  * If this package is used in a product, Eric Young should be given attribution
8919  * as the author of the parts of the library used.
8920  * This can be in the form of a textual message at program startup or
8921  * in documentation (online or textual) provided with the package.
8922  *
8923  * Redistribution and use in source and binary forms, with or without
8924  * modification, are permitted provided that the following conditions
8925  * are met:
8926  * 1. Redistributions of source code must retain the copyright
8927  *    notice, this list of conditions and the following disclaimer.
8928  * 2. Redistributions in binary form must reproduce the above copyright
8929  *    notice, this list of conditions and the following disclaimer in the
8930  *    documentation and/or other materials provided with the distribution.
8931  * 3. All advertising materials mentioning features or use of this software
8932  *    must display the following acknowledgement:
8933  *    "This product includes cryptographic software written by
8934  *     Eric Young (eay@cryptsoft.com)"
8935  *    The word 'cryptographic' can be left out if the rouines from the library
8936  *    being used are not cryptographic related :-).
8937  * 4. If you include any Windows specific code (or a derivative thereof) from
8938  *    the apps directory (application code) you must include an acknowledgement:
8939  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
8940  *
8941  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
8942  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8943  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
8944  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
8945  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
8946  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
8947  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8948  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
8949  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
8950  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
8951  * SUCH DAMAGE.
8952  *
8953  * The licence and distribution terms for any publically available version or
8954  * derivative of this code cannot be changed.  i.e. this code cannot simply be
8955  * copied and put under another distribution licence
8956  * [including the GNU Public Licence.]
8957  */
8958 # 66 "/usr/include/openssl/stack.h" 3 4
8959 typedef struct stack_st {
8960     int num;
8961     char **data;
8962     int sorted;
8963     int num_alloc;
8964     int (*comp) (const void *, const void *);
8965 } _STACK; /* Use STACK_OF(...) instead */
8966 
8967 
8968 
8969 
8970 int sk_num(const _STACK *);
8971 void *sk_value(const _STACK *, int);
8972 
8973 void *sk_set(_STACK *, int, void *);
8974 
8975 _STACK *sk_new(int (*cmp) (const void *, const void *));
8976 _STACK *sk_new_null(void);
8977 void sk_free(_STACK *);
8978 void sk_pop_free(_STACK *st, void (*func) (void *));
8979 _STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *));
8980 int sk_insert(_STACK *sk, void *data, int where);
8981 void *sk_delete(_STACK *st, int loc);
8982 void *sk_delete_ptr(_STACK *st, void *p);
8983 int sk_find(_STACK *st, void *data);
8984 int sk_find_ex(_STACK *st, void *data);
8985 int sk_push(_STACK *st, void *data);
8986 int sk_unshift(_STACK *st, void *data);
8987 void *sk_shift(_STACK *st);
8988 void *sk_pop(_STACK *st);
8989 void sk_zero(_STACK *st);
8990 int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *)))
8991  (const void *, const void *);
8992 _STACK *sk_dup(_STACK *st);
8993 void sk_sort(_STACK *st);
8994 int sk_is_sorted(const _STACK *st);
8995 # 129 "/usr/include/openssl/crypto.h" 2 3 4
8996 # 1 "/usr/include/openssl/safestack.h" 1 3 4
8997 /* ====================================================================
8998  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
8999  *
9000  * Redistribution and use in source and binary forms, with or without
9001  * modification, are permitted provided that the following conditions
9002  * are met:
9003  *
9004  * 1. Redistributions of source code must retain the above copyright
9005  *    notice, this list of conditions and the following disclaimer.
9006  *
9007  * 2. Redistributions in binary form must reproduce the above copyright
9008  *    notice, this list of conditions and the following disclaimer in
9009  *    the documentation and/or other materials provided with the
9010  *    distribution.
9011  *
9012  * 3. All advertising materials mentioning features or use of this
9013  *    software must display the following acknowledgment:
9014  *    "This product includes software developed by the OpenSSL Project
9015  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
9016  *
9017  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
9018  *    endorse or promote products derived from this software without
9019  *    prior written permission. For written permission, please contact
9020  *    openssl-core@openssl.org.
9021  *
9022  * 5. Products derived from this software may not be called "OpenSSL"
9023  *    nor may "OpenSSL" appear in their names without prior written
9024  *    permission of the OpenSSL Project.
9025  *
9026  * 6. Redistributions of any form whatsoever must retain the following
9027  *    acknowledgment:
9028  *    "This product includes software developed by the OpenSSL Project
9029  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
9030  *
9031  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
9032  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9033  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
9034  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
9035  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9036  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
9037  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
9038  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
9039  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
9040  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9041  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
9042  * OF THE POSSIBILITY OF SUCH DAMAGE.
9043  * ====================================================================
9044  *
9045  * This product includes cryptographic software written by Eric Young
9046  * (eay@cryptsoft.com).  This product includes software written by Tim
9047  * Hudson (tjh@cryptsoft.com).
9048  *
9049  */
9050 
9051 
9052 
9053 
9054 # 1 "/usr/include/openssl/stack.h" 1 3 4
9055 /* crypto/stack/stack.h */
9056 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
9057  * All rights reserved.
9058  *
9059  * This package is an SSL implementation written
9060  * by Eric Young (eay@cryptsoft.com).
9061  * The implementation was written so as to conform with Netscapes SSL.
9062  *
9063  * This library is free for commercial and non-commercial use as long as
9064  * the following conditions are aheared to.  The following conditions
9065  * apply to all code found in this distribution, be it the RC4, RSA,
9066  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
9067  * included with this distribution is covered by the same copyright terms
9068  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
9069  *
9070  * Copyright remains Eric Young's, and as such any Copyright notices in
9071  * the code are not to be removed.
9072  * If this package is used in a product, Eric Young should be given attribution
9073  * as the author of the parts of the library used.
9074  * This can be in the form of a textual message at program startup or
9075  * in documentation (online or textual) provided with the package.
9076  *
9077  * Redistribution and use in source and binary forms, with or without
9078  * modification, are permitted provided that the following conditions
9079  * are met:
9080  * 1. Redistributions of source code must retain the copyright
9081  *    notice, this list of conditions and the following disclaimer.
9082  * 2. Redistributions in binary form must reproduce the above copyright
9083  *    notice, this list of conditions and the following disclaimer in the
9084  *    documentation and/or other materials provided with the distribution.
9085  * 3. All advertising materials mentioning features or use of this software
9086  *    must display the following acknowledgement:
9087  *    "This product includes cryptographic software written by
9088  *     Eric Young (eay@cryptsoft.com)"
9089  *    The word 'cryptographic' can be left out if the rouines from the library
9090  *    being used are not cryptographic related :-).
9091  * 4. If you include any Windows specific code (or a derivative thereof) from
9092  *    the apps directory (application code) you must include an acknowledgement:
9093  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
9094  *
9095  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
9096  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9097  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
9098  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
9099  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
9100  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
9101  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
9102  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
9103  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
9104  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
9105  * SUCH DAMAGE.
9106  *
9107  * The licence and distribution terms for any publically available version or
9108  * derivative of this code cannot be changed.  i.e. this code cannot simply be
9109  * copied and put under another distribution licence
9110  * [including the GNU Public Licence.]
9111  */
9112 # 59 "/usr/include/openssl/safestack.h" 2 3 4
9113 # 69 "/usr/include/openssl/safestack.h" 3 4
9114 /*
9115  * In C++ we get problems because an explicit cast is needed from (void *) we
9116  * use CHECKED_STACK_OF to ensure the correct type is passed in the macros
9117  * below.
9118  */
9119 # 102 "/usr/include/openssl/safestack.h" 3 4
9120 /* nada (obsolete in new safestack approach)*/
9121 
9122 
9123 /*-
9124  * Strings are special: normally an lhash entry will point to a single
9125  * (somewhat) mutable object. In the case of strings:
9126  *
9127  * a) Instead of a single char, there is an array of chars, NUL-terminated.
9128  * b) The string may have be immutable.
9129  *
9130  * So, they need their own declarations. Especially important for
9131  * type-checking tools, such as Deputy.
9132  *
9133  * In practice, however, it appears to be hard to have a const
9134  * string. For now, I'm settling for dealing with the fact it is a
9135  * string at all.
9136  */
9137 typedef char *OPENSSL_STRING;
9138 
9139 typedef const char *OPENSSL_CSTRING;
9140 
9141 /*
9142  * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but
9143  * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned
9144  * above, instead of a single char each entry is a NUL-terminated array of
9145  * chars. So, we have to implement STRING specially for STACK_OF. This is
9146  * dealt with in the autogenerated macros below.
9147  */
9148 
9149 struct stack_st_OPENSSL_STRING { _STACK stack; };
9150 
9151 /*
9152  * Similarly, we sometimes use a block of characters, NOT nul-terminated.
9153  * These should also be distinguished from "normal" stacks.
9154  */
9155 typedef void *OPENSSL_BLOCK;
9156 struct stack_st_OPENSSL_BLOCK { _STACK stack; };
9157 
9158 /*
9159  * SKM_sk_... stack macros are internal to safestack.h: never use them
9160  * directly, use sk_<type>_... instead
9161  */
9162 # 211 "/usr/include/openssl/safestack.h" 3 4
9163 /*
9164  * This block of defines is updated by util/mkstack.pl, please do not touch!
9165  */
9166 # 130 "/usr/include/openssl/crypto.h" 2 3 4
9167 # 1 "/usr/include/openssl/opensslv.h" 1 3 4
9168 
9169 
9170 
9171 
9172 
9173 
9174 
9175 /*-
9176  * Numeric release version identifier:
9177  * MNNFFPPS: major minor fix patch status
9178  * The status nibble has one of the values 0 for development, 1 to e for betas
9179  * 1 to 14, and f for release.  The patch level is exactly that.
9180  * For example:
9181  * 0.9.3-dev      0x00903000
9182  * 0.9.3-beta1    0x00903001
9183  * 0.9.3-beta2-dev 0x00903002
9184  * 0.9.3-beta2    0x00903002 (same as ...beta2-dev)
9185  * 0.9.3          0x0090300f
9186  * 0.9.3a         0x0090301f
9187  * 0.9.4          0x0090400f
9188  * 1.2.3z         0x102031af
9189  *
9190  * For continuity reasons (because 0.9.5 is already out, and is coded
9191  * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level
9192  * part is slightly different, by setting the highest bit.  This means
9193  * that 0.9.5a looks like this: 0x0090581f.  At 0.9.6, we can start
9194  * with 0x0090600S...
9195  *
9196  * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.)
9197  * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
9198  *  major minor fix final patch/beta)
9199  */
9200 # 41 "/usr/include/openssl/opensslv.h" 3 4
9201 /*-
9202  * The macros below are to be used for shared library (.so, .dll, ...)
9203  * versioning.  That kind of versioning works a bit differently between
9204  * operating systems.  The most usual scheme is to set a major and a minor
9205  * number, and have the runtime loader check that the major number is equal
9206  * to what it was at application link time, while the minor number has to
9207  * be greater or equal to what it was at application link time.  With this
9208  * scheme, the version number is usually part of the file name, like this:
9209  *
9210  *      libcrypto.so.0.9
9211  *
9212  * Some unixen also make a softlink with the major verson number only:
9213  *
9214  *      libcrypto.so.0
9215  *
9216  * On Tru64 and IRIX 6.x it works a little bit differently.  There, the
9217  * shared library version is stored in the file, and is actually a series
9218  * of versions, separated by colons.  The rightmost version present in the
9219  * library when linking an application is stored in the application to be
9220  * matched at run time.  When the application is run, a check is done to
9221  * see if the library version stored in the application matches any of the
9222  * versions in the version string of the library itself.
9223  * This version string can be constructed in any way, depending on what
9224  * kind of matching is desired.  However, to implement the same scheme as
9225  * the one used in the other unixen, all compatible versions, from lowest
9226  * to highest, should be part of the string.  Consecutive builds would
9227  * give the following versions strings:
9228  *
9229  *      3.0
9230  *      3.0:3.1
9231  *      3.0:3.1:3.2
9232  *      4.0
9233  *      4.0:4.1
9234  *
9235  * Notice how version 4 is completely incompatible with version, and
9236  * therefore give the breach you can see.
9237  *
9238  * There may be other schemes as well that I haven't yet discovered.
9239  *
9240  * So, here's the way it works here: first of all, the library version
9241  * number doesn't need at all to match the overall OpenSSL version.
9242  * However, it's nice and more understandable if it actually does.
9243  * The current library version is stored in the macro SHLIB_VERSION_NUMBER,
9244  * which is just a piece of text in the format "M.m.e" (Major, minor, edit).
9245  * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways,
9246  * we need to keep a history of version numbers, which is done in the
9247  * macro SHLIB_VERSION_HISTORY.  The numbers are separated by colons and
9248  * should only keep the versions that are binary compatible with the current.
9249  */
9250 # 131 "/usr/include/openssl/crypto.h" 2 3 4
9251 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
9252 /* ====================================================================
9253  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
9254  *
9255  * Redistribution and use in source and binary forms, with or without
9256  * modification, are permitted provided that the following conditions
9257  * are met:
9258  *
9259  * 1. Redistributions of source code must retain the above copyright
9260  *    notice, this list of conditions and the following disclaimer.
9261  *
9262  * 2. Redistributions in binary form must reproduce the above copyright
9263  *    notice, this list of conditions and the following disclaimer in
9264  *    the documentation and/or other materials provided with the
9265  *    distribution.
9266  *
9267  * 3. All advertising materials mentioning features or use of this
9268  *    software must display the following acknowledgment:
9269  *    "This product includes software developed by the OpenSSL Project
9270  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
9271  *
9272  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
9273  *    endorse or promote products derived from this software without
9274  *    prior written permission. For written permission, please contact
9275  *    openssl-core@openssl.org.
9276  *
9277  * 5. Products derived from this software may not be called "OpenSSL"
9278  *    nor may "OpenSSL" appear in their names without prior written
9279  *    permission of the OpenSSL Project.
9280  *
9281  * 6. Redistributions of any form whatsoever must retain the following
9282  *    acknowledgment:
9283  *    "This product includes software developed by the OpenSSL Project
9284  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
9285  *
9286  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
9287  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9288  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
9289  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
9290  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9291  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
9292  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
9293  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
9294  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
9295  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9296  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
9297  * OF THE POSSIBILITY OF SUCH DAMAGE.
9298  * ====================================================================
9299  *
9300  * This product includes cryptographic software written by Eric Young
9301  * (eay@cryptsoft.com).  This product includes software written by Tim
9302  * Hudson (tjh@cryptsoft.com).
9303  *
9304  */
9305 # 62 "/usr/include/openssl/ossl_typ.h" 3 4
9306 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
9307 /* e_os2.h */
9308 /* ====================================================================
9309  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
9310  *
9311  * Redistribution and use in source and binary forms, with or without
9312  * modification, are permitted provided that the following conditions
9313  * are met:
9314  *
9315  * 1. Redistributions of source code must retain the above copyright
9316  *    notice, this list of conditions and the following disclaimer.
9317  *
9318  * 2. Redistributions in binary form must reproduce the above copyright
9319  *    notice, this list of conditions and the following disclaimer in
9320  *    the documentation and/or other materials provided with the
9321  *    distribution.
9322  *
9323  * 3. All advertising materials mentioning features or use of this
9324  *    software must display the following acknowledgment:
9325  *    "This product includes software developed by the OpenSSL Project
9326  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
9327  *
9328  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
9329  *    endorse or promote products derived from this software without
9330  *    prior written permission. For written permission, please contact
9331  *    openssl-core@openssl.org.
9332  *
9333  * 5. Products derived from this software may not be called "OpenSSL"
9334  *    nor may "OpenSSL" appear in their names without prior written
9335  *    permission of the OpenSSL Project.
9336  *
9337  * 6. Redistributions of any form whatsoever must retain the following
9338  *    acknowledgment:
9339  *    "This product includes software developed by the OpenSSL Project
9340  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
9341  *
9342  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
9343  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9344  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
9345  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
9346  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9347  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
9348  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
9349  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
9350  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
9351  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9352  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
9353  * OF THE POSSIBILITY OF SUCH DAMAGE.
9354  * ====================================================================
9355  *
9356  * This product includes cryptographic software written by Eric Young
9357  * (eay@cryptsoft.com).  This product includes software written by Tim
9358  * Hudson (tjh@cryptsoft.com).
9359  *
9360  */
9361 
9362 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
9363 /* opensslconf.h */
9364 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
9365 
9366 
9367 
9368 
9369 /* OpenSSL was configured with the following options: */
9370 # 108 "/usr/include/openssl/opensslconf.h" 3 4
9371 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
9372    asks for it.  This is a transient feature that is provided for those
9373    who haven't had the time to do the appropriate changes in their
9374    applications.  */
9375 # 204 "/usr/include/openssl/opensslconf.h" 3 4
9376 /* crypto/opensslconf.h.in */
9377 
9378 /* Generate 80386 code? */
9379 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
9380 # 63 "/usr/include/openssl/ossl_typ.h" 2 3 4
9381 # 83 "/usr/include/openssl/ossl_typ.h" 3 4
9382 typedef struct asn1_string_st ASN1_INTEGER;
9383 typedef struct asn1_string_st ASN1_ENUMERATED;
9384 typedef struct asn1_string_st ASN1_BIT_STRING;
9385 typedef struct asn1_string_st ASN1_OCTET_STRING;
9386 typedef struct asn1_string_st ASN1_PRINTABLESTRING;
9387 typedef struct asn1_string_st ASN1_T61STRING;
9388 typedef struct asn1_string_st ASN1_IA5STRING;
9389 typedef struct asn1_string_st ASN1_GENERALSTRING;
9390 typedef struct asn1_string_st ASN1_UNIVERSALSTRING;
9391 typedef struct asn1_string_st ASN1_BMPSTRING;
9392 typedef struct asn1_string_st ASN1_UTCTIME;
9393 typedef struct asn1_string_st ASN1_TIME;
9394 typedef struct asn1_string_st ASN1_GENERALIZEDTIME;
9395 typedef struct asn1_string_st ASN1_VISIBLESTRING;
9396 typedef struct asn1_string_st ASN1_UTF8STRING;
9397 typedef struct asn1_string_st ASN1_STRING;
9398 typedef int ASN1_BOOLEAN;
9399 typedef int ASN1_NULL;
9400 
9401 
9402 typedef struct asn1_object_st ASN1_OBJECT;
9403 
9404 typedef struct ASN1_ITEM_st ASN1_ITEM;
9405 typedef struct asn1_pctx_st ASN1_PCTX;
9406 # 120 "/usr/include/openssl/ossl_typ.h" 3 4
9407 typedef struct bignum_st BIGNUM;
9408 typedef struct bignum_ctx BN_CTX;
9409 typedef struct bn_blinding_st BN_BLINDING;
9410 typedef struct bn_mont_ctx_st BN_MONT_CTX;
9411 typedef struct bn_recp_ctx_st BN_RECP_CTX;
9412 typedef struct bn_gencb_st BN_GENCB;
9413 
9414 typedef struct buf_mem_st BUF_MEM;
9415 
9416 typedef struct evp_cipher_st EVP_CIPHER;
9417 typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
9418 typedef struct env_md_st EVP_MD;
9419 typedef struct env_md_ctx_st EVP_MD_CTX;
9420 typedef struct evp_pkey_st EVP_PKEY;
9421 
9422 typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD;
9423 
9424 typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
9425 typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
9426 
9427 typedef struct dh_st DH;
9428 typedef struct dh_method DH_METHOD;
9429 
9430 typedef struct dsa_st DSA;
9431 typedef struct dsa_method DSA_METHOD;
9432 
9433 typedef struct rsa_st RSA;
9434 typedef struct rsa_meth_st RSA_METHOD;
9435 
9436 typedef struct rand_meth_st RAND_METHOD;
9437 
9438 typedef struct ecdh_method ECDH_METHOD;
9439 typedef struct ecdsa_method ECDSA_METHOD;
9440 
9441 typedef struct x509_st X509;
9442 typedef struct X509_algor_st X509_ALGOR;
9443 typedef struct X509_crl_st X509_CRL;
9444 typedef struct x509_crl_method_st X509_CRL_METHOD;
9445 typedef struct x509_revoked_st X509_REVOKED;
9446 typedef struct X509_name_st X509_NAME;
9447 typedef struct X509_pubkey_st X509_PUBKEY;
9448 typedef struct x509_store_st X509_STORE;
9449 typedef struct x509_store_ctx_st X509_STORE_CTX;
9450 
9451 typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
9452 
9453 typedef struct v3_ext_ctx X509V3_CTX;
9454 typedef struct conf_st CONF;
9455 
9456 typedef struct store_st STORE;
9457 typedef struct store_method_st STORE_METHOD;
9458 
9459 typedef struct ui_st UI;
9460 typedef struct ui_method_st UI_METHOD;
9461 
9462 typedef struct st_ERR_FNS ERR_FNS;
9463 
9464 typedef struct engine_st ENGINE;
9465 typedef struct ssl_st SSL;
9466 typedef struct ssl_ctx_st SSL_CTX;
9467 
9468 typedef struct comp_method_st COMP_METHOD;
9469 
9470 typedef struct X509_POLICY_NODE_st X509_POLICY_NODE;
9471 typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL;
9472 typedef struct X509_POLICY_TREE_st X509_POLICY_TREE;
9473 typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE;
9474 
9475 typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID;
9476 typedef struct DIST_POINT_st DIST_POINT;
9477 typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT;
9478 typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
9479 
9480   /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */
9481 
9482 
9483 
9484 typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
9485 /* Callback types for crypto.h */
9486 typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
9487                            int idx, long argl, void *argp);
9488 typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
9489                              int idx, long argl, void *argp);
9490 typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from,
9491                            void *from_d, int idx, long argl, void *argp);
9492 
9493 typedef struct ocsp_req_ctx_st OCSP_REQ_CTX;
9494 typedef struct ocsp_response_st OCSP_RESPONSE;
9495 typedef struct ocsp_responder_id_st OCSP_RESPID;
9496 # 132 "/usr/include/openssl/crypto.h" 2 3 4
9497 
9498 
9499 
9500 
9501 
9502 /*
9503  * Resolve problems on some operating systems with symbol names that clash
9504  * one way or another
9505  */
9506 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
9507 /* ====================================================================
9508  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
9509  *
9510  * Redistribution and use in source and binary forms, with or without
9511  * modification, are permitted provided that the following conditions
9512  * are met:
9513  *
9514  * 1. Redistributions of source code must retain the above copyright
9515  *    notice, this list of conditions and the following disclaimer.
9516  *
9517  * 2. Redistributions in binary form must reproduce the above copyright
9518  *    notice, this list of conditions and the following disclaimer in
9519  *    the documentation and/or other materials provided with the
9520  *    distribution.
9521  *
9522  * 3. All advertising materials mentioning features or use of this
9523  *    software must display the following acknowledgment:
9524  *    "This product includes software developed by the OpenSSL Project
9525  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
9526  *
9527  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
9528  *    endorse or promote products derived from this software without
9529  *    prior written permission. For written permission, please contact
9530  *    openssl-core@openssl.org.
9531  *
9532  * 5. Products derived from this software may not be called "OpenSSL"
9533  *    nor may "OpenSSL" appear in their names without prior written
9534  *    permission of the OpenSSL Project.
9535  *
9536  * 6. Redistributions of any form whatsoever must retain the following
9537  *    acknowledgment:
9538  *    "This product includes software developed by the OpenSSL Project
9539  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
9540  *
9541  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
9542  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9543  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
9544  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
9545  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9546  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
9547  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
9548  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
9549  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
9550  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9551  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
9552  * OF THE POSSIBILITY OF SUCH DAMAGE.
9553  * ====================================================================
9554  *
9555  * This product includes cryptographic software written by Eric Young
9556  * (eay@cryptsoft.com).  This product includes software written by Tim
9557  * Hudson (tjh@cryptsoft.com).
9558  *
9559  */
9560 
9561 
9562 
9563 
9564 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
9565 /* e_os2.h */
9566 /* ====================================================================
9567  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
9568  *
9569  * Redistribution and use in source and binary forms, with or without
9570  * modification, are permitted provided that the following conditions
9571  * are met:
9572  *
9573  * 1. Redistributions of source code must retain the above copyright
9574  *    notice, this list of conditions and the following disclaimer.
9575  *
9576  * 2. Redistributions in binary form must reproduce the above copyright
9577  *    notice, this list of conditions and the following disclaimer in
9578  *    the documentation and/or other materials provided with the
9579  *    distribution.
9580  *
9581  * 3. All advertising materials mentioning features or use of this
9582  *    software must display the following acknowledgment:
9583  *    "This product includes software developed by the OpenSSL Project
9584  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
9585  *
9586  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
9587  *    endorse or promote products derived from this software without
9588  *    prior written permission. For written permission, please contact
9589  *    openssl-core@openssl.org.
9590  *
9591  * 5. Products derived from this software may not be called "OpenSSL"
9592  *    nor may "OpenSSL" appear in their names without prior written
9593  *    permission of the OpenSSL Project.
9594  *
9595  * 6. Redistributions of any form whatsoever must retain the following
9596  *    acknowledgment:
9597  *    "This product includes software developed by the OpenSSL Project
9598  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
9599  *
9600  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
9601  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9602  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
9603  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
9604  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9605  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
9606  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
9607  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
9608  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
9609  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9610  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
9611  * OF THE POSSIBILITY OF SUCH DAMAGE.
9612  * ====================================================================
9613  *
9614  * This product includes cryptographic software written by Eric Young
9615  * (eay@cryptsoft.com).  This product includes software written by Tim
9616  * Hudson (tjh@cryptsoft.com).
9617  *
9618  */
9619 
9620 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
9621 /* opensslconf.h */
9622 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
9623 
9624 
9625 
9626 
9627 /* OpenSSL was configured with the following options: */
9628 # 108 "/usr/include/openssl/opensslconf.h" 3 4
9629 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
9630    asks for it.  This is a transient feature that is provided for those
9631    who haven't had the time to do the appropriate changes in their
9632    applications.  */
9633 # 204 "/usr/include/openssl/opensslconf.h" 3 4
9634 /* crypto/opensslconf.h.in */
9635 
9636 /* Generate 80386 code? */
9637 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
9638 # 59 "/usr/include/openssl/symhacks.h" 2 3 4
9639 
9640 /*
9641  * Hacks to solve the problem with linkers incapable of handling very long
9642  * symbol names.  In the case of VMS, the limit is 31 characters on VMS for
9643  * VAX.
9644  */
9645 /*
9646  * Note that this affects util/libeay.num and util/ssleay.num...  you may
9647  * change those manually, but that's not recommended, as those files are
9648  * controlled centrally and updated on Unix, and the central definition may
9649  * disagree with yours, which in turn may come with shareable library
9650  * incompatibilities.
9651  */
9652 # 481 "/usr/include/openssl/symhacks.h" 3 4
9653 /* Case insensitive linking causes problems.... */
9654 # 142 "/usr/include/openssl/crypto.h" 2 3 4
9655 
9656 
9657 
9658 
9659 
9660 /* Backward compatibility to SSLeay */
9661 /*
9662  * This is more to be used to check the correct DLL is being used in the MS
9663  * world.
9664  */
9665 
9666 
9667 /* #define SSLEAY_OPTIONS       1 no longer supported */
9668 
9669 
9670 
9671 
9672 
9673 /* Already declared in ossl_typ.h */
9674 # 174 "/usr/include/openssl/crypto.h" 3 4
9675 /* A generic structure to pass assorted data in a expandable way */
9676 typedef struct openssl_item_st {
9677     int code;
9678     void *value; /* Not used for flag attributes */
9679     size_t value_size; /* Max size of value for output, length for
9680                                  * input */
9681     size_t *value_length; /* Returned length of value for output */
9682 } OPENSSL_ITEM;
9683 
9684 /*
9685  * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock
9686  * names in cryptlib.c
9687  */
9688 # 256 "/usr/include/openssl/crypto.h" 3 4
9689 /*
9690  * Some applications as well as some parts of OpenSSL need to allocate and
9691  * deallocate locks in a dynamic fashion.  The following typedef makes this
9692  * possible in a type-safe manner.
9693  */
9694 /* struct CRYPTO_dynlock_value has to be defined by the application. */
9695 typedef struct {
9696     int references;
9697     struct CRYPTO_dynlock_value *data;
9698 } CRYPTO_dynlock;
9699 
9700 /*
9701  * The following can be used to detect memory leaks in the SSLeay library. It
9702  * used, it turns on malloc checking
9703  */
9704 
9705 
9706 
9707 
9708 
9709 
9710 /*
9711  * The following are bit values to turn on or off options connected to the
9712  * malloc checking functionality
9713  */
9714 
9715 /* Adds time to the memory checking information */
9716 
9717 /* Adds thread number to the memory checking information */
9718 
9719 
9720 
9721 
9722 /* predec of the BIO type */
9723 typedef struct bio_st BIO_dummy;
9724 
9725 struct crypto_ex_data_st {
9726     struct stack_st_void *sk;
9727     /* gcc is screwing up this data structure :-( */
9728     int dummy;
9729 };
9730 struct stack_st_void { _STACK stack; };
9731 
9732 /*
9733  * This stuff is basically class callback functions The current classes are
9734  * SSL_CTX, SSL, SSL_SESSION, and a few more
9735  */
9736 
9737 typedef struct crypto_ex_data_func_st {
9738     long argl; /* Arbitary long */
9739     void *argp; /* Arbitary void * */
9740     CRYPTO_EX_new *new_func;
9741     CRYPTO_EX_free *free_func;
9742     CRYPTO_EX_dup *dup_func;
9743 } CRYPTO_EX_DATA_FUNCS;
9744 
9745 struct stack_st_CRYPTO_EX_DATA_FUNCS { _STACK stack; };
9746 
9747 /*
9748  * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA
9749  * entry.
9750  */
9751 # 336 "/usr/include/openssl/crypto.h" 3 4
9752 /*
9753  * Dynamically assigned indexes start from this value (don't use directly,
9754  * use via CRYPTO_ex_data_new_class).
9755  */
9756 
9757 
9758 /*
9759  * This is the default callbacks, but we can have others as well: this is
9760  * needed in Win32 where the application malloc and the library malloc may
9761  * not be the same.
9762  */
9763 # 356 "/usr/include/openssl/crypto.h" 3 4
9764 /*
9765  * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG
9766  * is defined)
9767  */
9768 # 369 "/usr/include/openssl/crypto.h" 3 4
9769 int CRYPTO_mem_ctrl(int mode);
9770 int CRYPTO_is_mem_check_on(void);
9771 
9772 /* for applications */
9773 
9774 
9775 
9776 /* for library-internal use */
9777 # 396 "/usr/include/openssl/crypto.h" 3 4
9778 const char *SSLeay_version(int type);
9779 unsigned long SSLeay(void);
9780 
9781 int OPENSSL_issetugid(void);
9782 
9783 /* An opaque type representing an implementation of "ex_data" support */
9784 typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL;
9785 /* Return an opaque pointer to the current "ex_data" implementation */
9786 const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void);
9787 /* Sets the "ex_data" implementation to be used (if it's not too late) */
9788 int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i);
9789 /* Get a new "ex_data" class, and return the corresponding "class_index" */
9790 int CRYPTO_ex_data_new_class(void);
9791 /* Within a given class, get/register a new index */
9792 int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,
9793                             CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func,
9794                             CRYPTO_EX_free *free_func);
9795 /*
9796  * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a
9797  * given class (invokes whatever per-class callbacks are applicable)
9798  */
9799 int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
9800 int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,
9801                        CRYPTO_EX_DATA *from);
9802 void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
9803 /*
9804  * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular
9805  * index (relative to the class type involved)
9806  */
9807 int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
9808 void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx);
9809 /*
9810  * This function cleans up all "ex_data" state. It mustn't be called under
9811  * potential race-conditions.
9812  */
9813 void CRYPTO_cleanup_all_ex_data(void);
9814 
9815 int CRYPTO_get_new_lockid(char *name);
9816 
9817 int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */
9818 void CRYPTO_lock(int mode, int type, const char *file, int line);
9819 void CRYPTO_set_locking_callback(void (*func) (int mode, int type,
9820                                                const char *file, int line));
9821 void (*CRYPTO_get_locking_callback(void)) (int mode, int type,
9822                                            const char *file, int line);
9823 void CRYPTO_set_add_lock_callback(int (*func)
9824                                    (int *num, int mount, int type,
9825                                     const char *file, int line));
9826 int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type,
9827                                            const char *file, int line);
9828 
9829 /* Don't use this structure directly. */
9830 typedef struct crypto_threadid_st {
9831     void *ptr;
9832     unsigned long val;
9833 } CRYPTO_THREADID;
9834 /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
9835 void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
9836 void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
9837 int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *));
9838 void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *);
9839 void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
9840 int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b);
9841 void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src);
9842 unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
9843 
9844 void CRYPTO_set_id_callback(unsigned long (*func) (void));
9845 unsigned long (*CRYPTO_get_id_callback(void)) (void);
9846 unsigned long CRYPTO_thread_id(void);
9847 
9848 
9849 const char *CRYPTO_get_lock_name(int type);
9850 int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file,
9851                     int line);
9852 
9853 int CRYPTO_get_new_dynlockid(void);
9854 void CRYPTO_destroy_dynlockid(int i);
9855 struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i);
9856 void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value
9857                                         *(*dyn_create_function) (const char
9858                                                                  *file,
9859                                                                  int line));
9860 void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
9861                                        (int mode,
9862                                         struct CRYPTO_dynlock_value *l,
9863                                         const char *file, int line));
9864 void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
9865                                           (struct CRYPTO_dynlock_value *l,
9866                                            const char *file, int line));
9867 struct CRYPTO_dynlock_value
9868 *(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line);
9869 void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode,
9870                                                 struct CRYPTO_dynlock_value
9871                                                 *l, const char *file,
9872                                                 int line);
9873 void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value
9874                                                    *l, const char *file,
9875                                                    int line);
9876 
9877 /*
9878  * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call
9879  * the latter last if you need different functions
9880  */
9881 int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t),
9882                              void (*f) (void *));
9883 int CRYPTO_set_locked_mem_functions(void *(*m) (size_t),
9884                                     void (*free_func) (void *));
9885 int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int),
9886                                 void *(*r) (void *, size_t, const char *,
9887                                             int), void (*f) (void *));
9888 int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int),
9889                                        void (*free_func) (void *));
9890 int CRYPTO_set_mem_debug_functions(void (*m)
9891                                     (void *, int, const char *, int, int),
9892                                    void (*r) (void *, void *, int,
9893                                               const char *, int, int),
9894                                    void (*f) (void *, int), void (*so) (long),
9895                                    long (*go) (void));
9896 void CRYPTO_get_mem_functions(void *(**m) (size_t),
9897                               void *(**r) (void *, size_t),
9898                               void (**f) (void *));
9899 void CRYPTO_get_locked_mem_functions(void *(**m) (size_t),
9900                                      void (**f) (void *));
9901 void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int),
9902                                  void *(**r) (void *, size_t, const char *,
9903                                               int), void (**f) (void *));
9904 void CRYPTO_get_locked_mem_ex_functions(void
9905                                         *(**m) (size_t, const char *, int),
9906                                         void (**f) (void *));
9907 void CRYPTO_get_mem_debug_functions(void (**m)
9908                                      (void *, int, const char *, int, int),
9909                                     void (**r) (void *, void *, int,
9910                                                 const char *, int, int),
9911                                     void (**f) (void *, int),
9912                                     void (**so) (long), long (**go) (void));
9913 
9914 void *CRYPTO_malloc_locked(int num, const char *file, int line);
9915 void CRYPTO_free_locked(void *ptr);
9916 void *CRYPTO_malloc(int num, const char *file, int line);
9917 char *CRYPTO_strdup(const char *str, const char *file, int line);
9918 void CRYPTO_free(void *ptr);
9919 void *CRYPTO_realloc(void *addr, int num, const char *file, int line);
9920 void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file,
9921                            int line);
9922 void *CRYPTO_remalloc(void *addr, int num, const char *file, int line);
9923 
9924 void OPENSSL_cleanse(void *ptr, size_t len);
9925 
9926 void CRYPTO_set_mem_debug_options(long bits);
9927 long CRYPTO_get_mem_debug_options(void);
9928 
9929 
9930 
9931 int CRYPTO_push_info_(const char *info, const char *file, int line);
9932 int CRYPTO_pop_info(void);
9933 int CRYPTO_remove_all_info(void);
9934 
9935 /*
9936  * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro;
9937  * used as default in CRYPTO_MDEBUG compilations):
9938  */
9939 /*-
9940  * The last argument has the following significance:
9941  *
9942  * 0:   called before the actual memory allocation has taken place
9943  * 1:   called after the actual memory allocation has taken place
9944  */
9945 void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line,
9946                        int before_p);
9947 void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file,
9948                         int line, int before_p);
9949 void CRYPTO_dbg_free(void *addr, int before_p);
9950 /*-
9951  * Tell the debugging code about options.  By default, the following values
9952  * apply:
9953  *
9954  * 0:                           Clear all options.
9955  * V_CRYPTO_MDEBUG_TIME (1):    Set the "Show Time" option.
9956  * V_CRYPTO_MDEBUG_THREAD (2):  Set the "Show Thread Number" option.
9957  * V_CRYPTO_MDEBUG_ALL (3):     1 + 2
9958  */
9959 void CRYPTO_dbg_set_options(long bits);
9960 long CRYPTO_dbg_get_options(void);
9961 
9962 
9963 void CRYPTO_mem_leaks_fp(FILE *);
9964 
9965 void CRYPTO_mem_leaks(struct bio_st *bio);
9966 /* unsigned long order, char *file, int line, int num_bytes, char *addr */
9967 typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int,
9968                                   void *);
9969 void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb);
9970 
9971 /* die if we have to */
9972 void OpenSSLDie(const char *file, int line, const char *assertion);
9973 
9974 
9975 unsigned long *OPENSSL_ia32cap_loc(void);
9976 
9977 int OPENSSL_isservice(void);
9978 
9979 int FIPS_mode(void);
9980 int FIPS_mode_set(int r);
9981 
9982 void OPENSSL_init(void);
9983 # 624 "/usr/include/openssl/crypto.h" 3 4
9984 /*
9985  * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal.
9986  * It takes an amount of time dependent on |len|, but independent of the
9987  * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements
9988  * into a defined order as the return value when a != b is undefined, other
9989  * than to be non-zero.
9990  */
9991 int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len);
9992 
9993 /* BEGIN ERROR CODES */
9994 /*
9995  * The following lines are auto generated by the script mkerr.pl. Any changes
9996  * made after this point may be overwritten when the script is next run.
9997  */
9998 void ERR_load_CRYPTO_strings(void);
9999 
10000 /* Error codes for the CRYPTO functions. */
10001 
10002 /* Function codes. */
10003 # 654 "/usr/include/openssl/crypto.h" 3 4
10004 /* Reason codes. */
10005 # 70 "/usr/include/openssl/bio.h" 2 3 4
10006 # 83 "/usr/include/openssl/bio.h" 3 4
10007 /* These are the 'types' of BIOs */
10008 # 116 "/usr/include/openssl/bio.h" 3 4
10009 /*
10010  * BIO_FILENAME_READ|BIO_CLOSE to open or close on free.
10011  * BIO_set_fp(in,stdin,BIO_NOCLOSE);
10012  */
10013 
10014 
10015 
10016 /*
10017  * These are used in the following macros and are passed to BIO_ctrl()
10018  */
10019 # 139 "/usr/include/openssl/bio.h" 3 4
10020 /* callback is int cb(BIO *bio,state,ret); */
10021 
10022 
10023 
10024 
10025 
10026 /* dgram BIO stuff */
10027 # 157 "/usr/include/openssl/bio.h" 3 4
10028 /* #ifdef IP_MTU_DISCOVER */
10029 
10030 /* #endif */
10031 # 196 "/usr/include/openssl/bio.h" 3 4
10032 /* modifiers */
10033 # 208 "/usr/include/openssl/bio.h" 3 4
10034 /*
10035  * "UPLINK" flag denotes file descriptors provided by application. It
10036  * defaults to 0, as most platforms don't require UPLINK interface.
10037  */
10038 
10039 
10040 
10041 /* Used in BIO_gethostbyname() */
10042 
10043 
10044 
10045 
10046 
10047 
10048 /* Mostly used in the SSL BIO */
10049 /*-
10050  * Not used anymore
10051  * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10
10052  * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20
10053  * #define BIO_FLAGS_PROTOCOL_STARTUP   0x40
10054  */
10055 
10056 
10057 
10058 /*
10059  * This is used with memory BIOs: it means we shouldn't free up or change the
10060  * data in any way.
10061  */
10062 
10063 
10064 typedef struct bio_st BIO;
10065 
10066 void BIO_set_flags(BIO *b, int flags);
10067 int BIO_test_flags(const BIO *b, int flags);
10068 void BIO_clear_flags(BIO *b, int flags);
10069 # 252 "/usr/include/openssl/bio.h" 3 4
10070 /* These are normally used internally in BIOs */
10071 
10072 
10073 
10074 
10075 
10076 /* These should be used by the application to tell why we should retry */
10077 
10078 
10079 
10080 
10081 
10082 
10083 /*
10084  * The next three are used in conjunction with the BIO_should_io_special()
10085  * condition.  After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int
10086  * *reason); will walk the BIO stack and return the 'reason' for the special
10087  * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return
10088  * the code.
10089  */
10090 /*
10091  * Returned from the SSL bio when the certificate retrieval code had an error
10092  */
10093 
10094 /* Returned from the connect BIO when a connect would have blocked */
10095 
10096 /* Returned from the accept BIO when an accept would have blocked */
10097 
10098 
10099 /* These are passed by the BIO callback */
10100 
10101 
10102 
10103 
10104 
10105 
10106 
10107 /*
10108  * The callback is called before and after the underling operation, The
10109  * BIO_CB_RETURN flag indicates if it is after the call
10110  */
10111 
10112 
10113 
10114 
10115 
10116 long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *,
10117                                         int, long, long);
10118 void BIO_set_callback(BIO *b,
10119                       long (*callback) (struct bio_st *, int, const char *,
10120                                         int, long, long));
10121 char *BIO_get_callback_arg(const BIO *b);
10122 void BIO_set_callback_arg(BIO *b, char *arg);
10123 
10124 const char *BIO_method_name(const BIO *b);
10125 int BIO_method_type(const BIO *b);
10126 
10127 typedef void bio_info_cb (struct bio_st *, int, const char *, int, long,
10128                           long);
10129 
10130 typedef struct bio_method_st {
10131     int type;
10132     const char *name;
10133     int (*bwrite) (BIO *, const char *, int);
10134     int (*bread) (BIO *, char *, int);
10135     int (*bputs) (BIO *, const char *);
10136     int (*bgets) (BIO *, char *, int);
10137     long (*ctrl) (BIO *, int, long, void *);
10138     int (*create) (BIO *);
10139     int (*destroy) (BIO *);
10140     long (*callback_ctrl) (BIO *, int, bio_info_cb *);
10141 } BIO_METHOD;
10142 
10143 struct bio_st {
10144     BIO_METHOD *method;
10145     /* bio, mode, argp, argi, argl, ret */
10146     long (*callback) (struct bio_st *, int, const char *, int, long, long);
10147     char *cb_arg; /* first argument for the callback */
10148     int init;
10149     int shutdown;
10150     int flags; /* extra storage */
10151     int retry_reason;
10152     int num;
10153     void *ptr;
10154     struct bio_st *next_bio; /* used by filter BIOs */
10155     struct bio_st *prev_bio; /* used by filter BIOs */
10156     int references;
10157     unsigned long num_read;
10158     unsigned long num_write;
10159     CRYPTO_EX_DATA ex_data;
10160 };
10161 
10162 struct stack_st_BIO { _STACK stack; };
10163 
10164 typedef struct bio_f_buffer_ctx_struct {
10165     /*-
10166      * Buffers are setup like this:
10167      *
10168      * <---------------------- size ----------------------->
10169      * +---------------------------------------------------+
10170      * | consumed | remaining          | free space        |
10171      * +---------------------------------------------------+
10172      * <-- off --><------- len ------->
10173      */
10174     /*- BIO *bio; *//*
10175      * this is now in the BIO struct
10176      */
10177     int ibuf_size; /* how big is the input buffer */
10178     int obuf_size; /* how big is the output buffer */
10179     char *ibuf; /* the char array */
10180     int ibuf_len; /* how many bytes are in it */
10181     int ibuf_off; /* write/read offset */
10182     char *obuf; /* the char array */
10183     int obuf_len; /* how many bytes are in it */
10184     int obuf_off; /* write/read offset */
10185 } BIO_F_BUFFER_CTX;
10186 
10187 /* Prefix and suffix callback in ASN1 BIO */
10188 typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen,
10189                           void *parg);
10190 # 398 "/usr/include/openssl/bio.h" 3 4
10191 /* connect BIO stuff */
10192 # 407 "/usr/include/openssl/bio.h" 3 4
10193 /*
10194  * #define BIO_CONN_get_param_hostname BIO_ctrl
10195  */
10196 # 474 "/usr/include/openssl/bio.h" 3 4
10197 /* BIO_s_connect() and BIO_s_socks4a_connect() */
10198 # 486 "/usr/include/openssl/bio.h" 3 4
10199 /* BIO_s_accept() */
10200 
10201 
10202 /* #define BIO_set_nbio(b,n)    BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */
10203 # 499 "/usr/include/openssl/bio.h" 3 4
10204 /* BIO_s_accept() and BIO_s_connect() */
10205 
10206 
10207 
10208 
10209 /* BIO_s_proxy_client() */
10210 
10211 
10212 /* BIO_set_nbio(b,n) */
10213 
10214 /* BIO *BIO_get_filter_bio(BIO *bio); */
10215 # 519 "/usr/include/openssl/bio.h" 3 4
10216 /* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */
10217 
10218 
10219 
10220 /* BIO_s_file() */
10221 
10222 
10223 
10224 /* BIO_s_fd() and BIO_s_file() */
10225 
10226 
10227 
10228 /*
10229  * name is cast to lose const, but might be better to route through a
10230  * function so we can do it safely
10231  */
10232 # 552 "/usr/include/openssl/bio.h" 3 4
10233 /*
10234  * WARNING WARNING, this ups the reference count on the read bio of the SSL
10235  * structure.  This is because the ssl read BIO is now pointed to by the
10236  * next_bio field in the bio.  So when you free the BIO, make sure you are
10237  * doing a BIO_free_all() to catch the underlying BIO.
10238  */
10239 # 568 "/usr/include/openssl/bio.h" 3 4
10240 /* defined in evp.h */
10241 /* #define BIO_set_md(b,md)     BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */
10242 
10243 
10244 
10245 
10246 
10247 
10248 
10249 /* For the BIO_f_buffer() type */
10250 
10251 
10252 
10253 
10254 
10255 
10256 /* Don't use the next one unless you know what you are doing :-) */
10257 # 593 "/usr/include/openssl/bio.h" 3 4
10258 /* ...pending macros have inappropriate return type */
10259 size_t BIO_ctrl_pending(BIO *b);
10260 size_t BIO_ctrl_wpending(BIO *b);
10261 
10262 
10263 
10264 
10265 
10266 /* For the BIO_f_buffer() type */
10267 
10268 
10269 /* For BIO_s_bio() */
10270 
10271 
10272 
10273 
10274 
10275 /* macros with inappropriate type -- but ...pending macros use int too: */
10276 
10277 
10278 size_t BIO_ctrl_get_write_guarantee(BIO *b);
10279 size_t BIO_ctrl_get_read_request(BIO *b);
10280 int BIO_ctrl_reset_read_request(BIO *b);
10281 
10282 /* ctrl macros for dgram */
10283 # 633 "/usr/include/openssl/bio.h" 3 4
10284 /* These two aren't currently implemented */
10285 /* int BIO_get_ex_num(BIO *bio); */
10286 /* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */
10287 int BIO_set_ex_data(BIO *bio, int idx, void *data);
10288 void *BIO_get_ex_data(BIO *bio, int idx);
10289 int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
10290                          CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
10291 unsigned long BIO_number_read(BIO *bio);
10292 unsigned long BIO_number_written(BIO *bio);
10293 
10294 /* For BIO_f_asn1() */
10295 int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix,
10296                         asn1_ps_func *prefix_free);
10297 int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix,
10298                         asn1_ps_func **pprefix_free);
10299 int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,
10300                         asn1_ps_func *suffix_free);
10301 int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,
10302                         asn1_ps_func **psuffix_free);
10303 
10304 
10305 BIO_METHOD *BIO_s_file(void);
10306 BIO *BIO_new_file(const char *filename, const char *mode);
10307 BIO *BIO_new_fp(FILE *stream, int close_flag);
10308 
10309 
10310 BIO *BIO_new(BIO_METHOD *type);
10311 int BIO_set(BIO *a, BIO_METHOD *type);
10312 int BIO_free(BIO *a);
10313 void BIO_vfree(BIO *a);
10314 int BIO_read(BIO *b, void *data, int len);
10315 int BIO_gets(BIO *bp, char *buf, int size);
10316 int BIO_write(BIO *b, const void *data, int len);
10317 int BIO_puts(BIO *bp, const char *buf);
10318 int BIO_indent(BIO *b, int indent, int max);
10319 long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg);
10320 long BIO_callback_ctrl(BIO *b, int cmd,
10321                        void (*fp) (struct bio_st *, int, const char *, int,
10322                                    long, long));
10323 char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg);
10324 long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg);
10325 BIO *BIO_push(BIO *b, BIO *append);
10326 BIO *BIO_pop(BIO *b);
10327 void BIO_free_all(BIO *a);
10328 BIO *BIO_find_type(BIO *b, int bio_type);
10329 BIO *BIO_next(BIO *b);
10330 BIO *BIO_get_retry_BIO(BIO *bio, int *reason);
10331 int BIO_get_retry_reason(BIO *bio);
10332 BIO *BIO_dup_chain(BIO *in);
10333 
10334 int BIO_nread0(BIO *bio, char **buf);
10335 int BIO_nread(BIO *bio, char **buf, int num);
10336 int BIO_nwrite0(BIO *bio, char **buf);
10337 int BIO_nwrite(BIO *bio, char **buf, int num);
10338 
10339 long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi,
10340                         long argl, long ret);
10341 
10342 BIO_METHOD *BIO_s_mem(void);
10343 BIO *BIO_new_mem_buf(const void *buf, int len);
10344 BIO_METHOD *BIO_s_socket(void);
10345 BIO_METHOD *BIO_s_connect(void);
10346 BIO_METHOD *BIO_s_accept(void);
10347 BIO_METHOD *BIO_s_fd(void);
10348 
10349 BIO_METHOD *BIO_s_log(void);
10350 
10351 BIO_METHOD *BIO_s_bio(void);
10352 BIO_METHOD *BIO_s_null(void);
10353 BIO_METHOD *BIO_f_null(void);
10354 BIO_METHOD *BIO_f_buffer(void);
10355 
10356 
10357 
10358 BIO_METHOD *BIO_f_nbio_test(void);
10359 
10360 BIO_METHOD *BIO_s_datagram(void);
10361 
10362 
10363 
10364 
10365 
10366 /* BIO_METHOD *BIO_f_ber(void); */
10367 
10368 int BIO_sock_should_retry(int i);
10369 int BIO_sock_non_fatal_error(int error);
10370 int BIO_dgram_non_fatal_error(int error);
10371 
10372 int BIO_fd_should_retry(int i);
10373 int BIO_fd_non_fatal_error(int error);
10374 int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u),
10375                 void *u, const char *s, int len);
10376 int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),
10377                        void *u, const char *s, int len, int indent);
10378 int BIO_dump(BIO *b, const char *bytes, int len);
10379 int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent);
10380 
10381 int BIO_dump_fp(FILE *fp, const char *s, int len);
10382 int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent);
10383 
10384 int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data,
10385                    int datalen);
10386 
10387 struct hostent *BIO_gethostbyname(const char *name);
10388 /*-
10389  * We might want a thread-safe interface too:
10390  * struct hostent *BIO_gethostbyname_r(const char *name,
10391  *     struct hostent *result, void *buffer, size_t buflen);
10392  * or something similar (caller allocates a struct hostent,
10393  * pointed to by "result", and additional buffer space for the various
10394  * substructures; if the buffer does not suffice, NULL is returned
10395  * and an appropriate error code is set).
10396  */
10397 int BIO_sock_error(int sock);
10398 int BIO_socket_ioctl(int fd, long type, void *arg);
10399 int BIO_socket_nbio(int fd, int mode);
10400 int BIO_get_port(const char *str, unsigned short *port_ptr);
10401 int BIO_get_host_ip(const char *str, unsigned char *ip);
10402 int BIO_get_accept_socket(char *host_port, int mode);
10403 int BIO_accept(int sock, char **ip_port);
10404 int BIO_sock_init(void);
10405 void BIO_sock_cleanup(void);
10406 int BIO_set_tcp_ndelay(int sock, int turn_on);
10407 
10408 BIO *BIO_new_socket(int sock, int close_flag);
10409 BIO *BIO_new_dgram(int fd, int close_flag);
10410 # 771 "/usr/include/openssl/bio.h" 3 4
10411 BIO *BIO_new_fd(int fd, int close_flag);
10412 BIO *BIO_new_connect(const char *host_port);
10413 BIO *BIO_new_accept(const char *host_port);
10414 
10415 int BIO_new_bio_pair(BIO **bio1, size_t writebuf1,
10416                      BIO **bio2, size_t writebuf2);
10417 /*
10418  * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints.
10419  * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default
10420  * value.
10421  */
10422 
10423 void BIO_copy_next_retry(BIO *b);
10424 
10425 /*
10426  * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg);
10427  */
10428 
10429 
10430 
10431 
10432 
10433 
10434 int BIO_printf(BIO *bio, const char *format, ...)
10435 __attribute__((__format__(__printf__, 2, 3)));
10436 int BIO_vprintf(BIO *bio, const char *format, va_list args)
10437 __attribute__((__format__(__printf__, 2, 0)));
10438 int BIO_snprintf(char *buf, size_t n, const char *format, ...)
10439 __attribute__((__format__(__printf__, 3, 4)));
10440 int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
10441 __attribute__((__format__(__printf__, 3, 0)));
10442 
10443 
10444 /* BEGIN ERROR CODES */
10445 /*
10446  * The following lines are auto generated by the script mkerr.pl. Any changes
10447  * made after this point may be overwritten when the script is next run.
10448  */
10449 void ERR_load_BIO_strings(void);
10450 
10451 /* Error codes for the BIO functions. */
10452 
10453 /* Function codes. */
10454 # 849 "/usr/include/openssl/bio.h" 3 4
10455 /* Reason codes. */
10456 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
10457 # 1 "/usr/include/openssl/x509.h" 1 3 4
10458 /* crypto/x509/x509.h */
10459 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
10460  * All rights reserved.
10461  *
10462  * This package is an SSL implementation written
10463  * by Eric Young (eay@cryptsoft.com).
10464  * The implementation was written so as to conform with Netscapes SSL.
10465  *
10466  * This library is free for commercial and non-commercial use as long as
10467  * the following conditions are aheared to.  The following conditions
10468  * apply to all code found in this distribution, be it the RC4, RSA,
10469  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
10470  * included with this distribution is covered by the same copyright terms
10471  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
10472  *
10473  * Copyright remains Eric Young's, and as such any Copyright notices in
10474  * the code are not to be removed.
10475  * If this package is used in a product, Eric Young should be given attribution
10476  * as the author of the parts of the library used.
10477  * This can be in the form of a textual message at program startup or
10478  * in documentation (online or textual) provided with the package.
10479  *
10480  * Redistribution and use in source and binary forms, with or without
10481  * modification, are permitted provided that the following conditions
10482  * are met:
10483  * 1. Redistributions of source code must retain the copyright
10484  *    notice, this list of conditions and the following disclaimer.
10485  * 2. Redistributions in binary form must reproduce the above copyright
10486  *    notice, this list of conditions and the following disclaimer in the
10487  *    documentation and/or other materials provided with the distribution.
10488  * 3. All advertising materials mentioning features or use of this software
10489  *    must display the following acknowledgement:
10490  *    "This product includes cryptographic software written by
10491  *     Eric Young (eay@cryptsoft.com)"
10492  *    The word 'cryptographic' can be left out if the rouines from the library
10493  *    being used are not cryptographic related :-).
10494  * 4. If you include any Windows specific code (or a derivative thereof) from
10495  *    the apps directory (application code) you must include an acknowledgement:
10496  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
10497  *
10498  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
10499  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
10500  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
10501  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
10502  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
10503  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
10504  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
10505  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
10506  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
10507  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
10508  * SUCH DAMAGE.
10509  *
10510  * The licence and distribution terms for any publically available version or
10511  * derivative of this code cannot be changed.  i.e. this code cannot simply be
10512  * copied and put under another distribution licence
10513  * [including the GNU Public Licence.]
10514  */
10515 /* ====================================================================
10516  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
10517  * ECDH support in OpenSSL originally developed by
10518  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
10519  */
10520 
10521 
10522 
10523 
10524 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
10525 /* e_os2.h */
10526 /* ====================================================================
10527  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
10528  *
10529  * Redistribution and use in source and binary forms, with or without
10530  * modification, are permitted provided that the following conditions
10531  * are met:
10532  *
10533  * 1. Redistributions of source code must retain the above copyright
10534  *    notice, this list of conditions and the following disclaimer.
10535  *
10536  * 2. Redistributions in binary form must reproduce the above copyright
10537  *    notice, this list of conditions and the following disclaimer in
10538  *    the documentation and/or other materials provided with the
10539  *    distribution.
10540  *
10541  * 3. All advertising materials mentioning features or use of this
10542  *    software must display the following acknowledgment:
10543  *    "This product includes software developed by the OpenSSL Project
10544  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
10545  *
10546  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
10547  *    endorse or promote products derived from this software without
10548  *    prior written permission. For written permission, please contact
10549  *    openssl-core@openssl.org.
10550  *
10551  * 5. Products derived from this software may not be called "OpenSSL"
10552  *    nor may "OpenSSL" appear in their names without prior written
10553  *    permission of the OpenSSL Project.
10554  *
10555  * 6. Redistributions of any form whatsoever must retain the following
10556  *    acknowledgment:
10557  *    "This product includes software developed by the OpenSSL Project
10558  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
10559  *
10560  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
10561  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
10562  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
10563  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
10564  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10565  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
10566  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
10567  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
10568  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
10569  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
10570  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
10571  * OF THE POSSIBILITY OF SUCH DAMAGE.
10572  * ====================================================================
10573  *
10574  * This product includes cryptographic software written by Eric Young
10575  * (eay@cryptsoft.com).  This product includes software written by Tim
10576  * Hudson (tjh@cryptsoft.com).
10577  *
10578  */
10579 
10580 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
10581 /* opensslconf.h */
10582 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
10583 
10584 
10585 
10586 
10587 /* OpenSSL was configured with the following options: */
10588 # 108 "/usr/include/openssl/opensslconf.h" 3 4
10589 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
10590    asks for it.  This is a transient feature that is provided for those
10591    who haven't had the time to do the appropriate changes in their
10592    applications.  */
10593 # 204 "/usr/include/openssl/opensslconf.h" 3 4
10594 /* crypto/opensslconf.h.in */
10595 
10596 /* Generate 80386 code? */
10597 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
10598 # 68 "/usr/include/openssl/x509.h" 2 3 4
10599 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
10600 /* ====================================================================
10601  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
10602  *
10603  * Redistribution and use in source and binary forms, with or without
10604  * modification, are permitted provided that the following conditions
10605  * are met:
10606  *
10607  * 1. Redistributions of source code must retain the above copyright
10608  *    notice, this list of conditions and the following disclaimer.
10609  *
10610  * 2. Redistributions in binary form must reproduce the above copyright
10611  *    notice, this list of conditions and the following disclaimer in
10612  *    the documentation and/or other materials provided with the
10613  *    distribution.
10614  *
10615  * 3. All advertising materials mentioning features or use of this
10616  *    software must display the following acknowledgment:
10617  *    "This product includes software developed by the OpenSSL Project
10618  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
10619  *
10620  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
10621  *    endorse or promote products derived from this software without
10622  *    prior written permission. For written permission, please contact
10623  *    openssl-core@openssl.org.
10624  *
10625  * 5. Products derived from this software may not be called "OpenSSL"
10626  *    nor may "OpenSSL" appear in their names without prior written
10627  *    permission of the OpenSSL Project.
10628  *
10629  * 6. Redistributions of any form whatsoever must retain the following
10630  *    acknowledgment:
10631  *    "This product includes software developed by the OpenSSL Project
10632  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
10633  *
10634  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
10635  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
10636  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
10637  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
10638  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10639  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
10640  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
10641  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
10642  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
10643  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
10644  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
10645  * OF THE POSSIBILITY OF SUCH DAMAGE.
10646  * ====================================================================
10647  *
10648  * This product includes cryptographic software written by Eric Young
10649  * (eay@cryptsoft.com).  This product includes software written by Tim
10650  * Hudson (tjh@cryptsoft.com).
10651  *
10652  */
10653 # 69 "/usr/include/openssl/x509.h" 2 3 4
10654 
10655 # 1 "/usr/include/openssl/buffer.h" 1 3 4
10656 /* crypto/buffer/buffer.h */
10657 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
10658  * All rights reserved.
10659  *
10660  * This package is an SSL implementation written
10661  * by Eric Young (eay@cryptsoft.com).
10662  * The implementation was written so as to conform with Netscapes SSL.
10663  *
10664  * This library is free for commercial and non-commercial use as long as
10665  * the following conditions are aheared to.  The following conditions
10666  * apply to all code found in this distribution, be it the RC4, RSA,
10667  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
10668  * included with this distribution is covered by the same copyright terms
10669  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
10670  *
10671  * Copyright remains Eric Young's, and as such any Copyright notices in
10672  * the code are not to be removed.
10673  * If this package is used in a product, Eric Young should be given attribution
10674  * as the author of the parts of the library used.
10675  * This can be in the form of a textual message at program startup or
10676  * in documentation (online or textual) provided with the package.
10677  *
10678  * Redistribution and use in source and binary forms, with or without
10679  * modification, are permitted provided that the following conditions
10680  * are met:
10681  * 1. Redistributions of source code must retain the copyright
10682  *    notice, this list of conditions and the following disclaimer.
10683  * 2. Redistributions in binary form must reproduce the above copyright
10684  *    notice, this list of conditions and the following disclaimer in the
10685  *    documentation and/or other materials provided with the distribution.
10686  * 3. All advertising materials mentioning features or use of this software
10687  *    must display the following acknowledgement:
10688  *    "This product includes cryptographic software written by
10689  *     Eric Young (eay@cryptsoft.com)"
10690  *    The word 'cryptographic' can be left out if the rouines from the library
10691  *    being used are not cryptographic related :-).
10692  * 4. If you include any Windows specific code (or a derivative thereof) from
10693  *    the apps directory (application code) you must include an acknowledgement:
10694  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
10695  *
10696  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
10697  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
10698  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
10699  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
10700  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
10701  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
10702  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
10703  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
10704  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
10705  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
10706  * SUCH DAMAGE.
10707  *
10708  * The licence and distribution terms for any publically available version or
10709  * derivative of this code cannot be changed.  i.e. this code cannot simply be
10710  * copied and put under another distribution licence
10711  * [including the GNU Public Licence.]
10712  */
10713 
10714 
10715 
10716 
10717 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
10718 /* ====================================================================
10719  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
10720  *
10721  * Redistribution and use in source and binary forms, with or without
10722  * modification, are permitted provided that the following conditions
10723  * are met:
10724  *
10725  * 1. Redistributions of source code must retain the above copyright
10726  *    notice, this list of conditions and the following disclaimer.
10727  *
10728  * 2. Redistributions in binary form must reproduce the above copyright
10729  *    notice, this list of conditions and the following disclaimer in
10730  *    the documentation and/or other materials provided with the
10731  *    distribution.
10732  *
10733  * 3. All advertising materials mentioning features or use of this
10734  *    software must display the following acknowledgment:
10735  *    "This product includes software developed by the OpenSSL Project
10736  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
10737  *
10738  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
10739  *    endorse or promote products derived from this software without
10740  *    prior written permission. For written permission, please contact
10741  *    openssl-core@openssl.org.
10742  *
10743  * 5. Products derived from this software may not be called "OpenSSL"
10744  *    nor may "OpenSSL" appear in their names without prior written
10745  *    permission of the OpenSSL Project.
10746  *
10747  * 6. Redistributions of any form whatsoever must retain the following
10748  *    acknowledgment:
10749  *    "This product includes software developed by the OpenSSL Project
10750  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
10751  *
10752  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
10753  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
10754  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
10755  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
10756  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10757  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
10758  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
10759  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
10760  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
10761  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
10762  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
10763  * OF THE POSSIBILITY OF SUCH DAMAGE.
10764  * ====================================================================
10765  *
10766  * This product includes cryptographic software written by Eric Young
10767  * (eay@cryptsoft.com).  This product includes software written by Tim
10768  * Hudson (tjh@cryptsoft.com).
10769  *
10770  */
10771 # 63 "/usr/include/openssl/buffer.h" 2 3 4
10772 
10773 
10774 
10775 
10776 
10777 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4
10778 /*
10779  * CDDL HEADER START
10780  *
10781  * The contents of this file are subject to the terms of the
10782  * Common Development and Distribution License, Version 1.0 only
10783  * (the "License").  You may not use this file except in compliance
10784  * with the License.
10785  *
10786  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10787  * or http://www.opensolaris.org/os/licensing.
10788  * See the License for the specific language governing permissions
10789  * and limitations under the License.
10790  *
10791  * When distributing Covered Code, include this CDDL HEADER in each
10792  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10793  * If applicable, add the following below this CDDL HEADER, with the
10794  * fields enclosed by brackets "[]" replaced with your own identifying
10795  * information: Portions Copyright [yyyy] [name of copyright owner]
10796  *
10797  * CDDL HEADER END
10798  */
10799 /*	Copyright (c) 1988 AT&T	*/
10800 /*	  All Rights Reserved  	*/
10801 
10802 
10803 /*
10804  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
10805  * Use is subject to license terms.
10806  */
10807 
10808 
10809 
10810 
10811 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4
10812 /*
10813  * CDDL HEADER START
10814  *
10815  * The contents of this file are subject to the terms of the
10816  * Common Development and Distribution License (the "License").
10817  * You may not use this file except in compliance with the License.
10818  *
10819  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10820  * or http://www.opensolaris.org/os/licensing.
10821  * See the License for the specific language governing permissions
10822  * and limitations under the License.
10823  *
10824  *
10825  * When distributing Covered Code, include this CDDL HEADER in each
10826  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10827  * If applicable, add the following below this CDDL HEADER, with the
10828  * fields enclosed by brackets "[]" replaced with your own identifying
10829  * information: Portions Copyright [yyyy] [name of copyright owner]
10830  *
10831  * CDDL HEADER END
10832  */
10833 
10834 /*
10835  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
10836  * Use is subject to license terms.
10837  * Copyright 2016 Joyent, Inc.
10838  */
10839 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4
10840 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 1 3 4
10841 /*
10842  * CDDL HEADER START
10843  *
10844  * The contents of this file are subject to the terms of the
10845  * Common Development and Distribution License, Version 1.0 only
10846  * (the "License").  You may not use this file except in compliance
10847  * with the License.
10848  *
10849  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10850  * or http://www.opensolaris.org/os/licensing.
10851  * See the License for the specific language governing permissions
10852  * and limitations under the License.
10853  *
10854  * When distributing Covered Code, include this CDDL HEADER in each
10855  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10856  * If applicable, add the following below this CDDL HEADER, with the
10857  * fields enclosed by brackets "[]" replaced with your own identifying
10858  * information: Portions Copyright [yyyy] [name of copyright owner]
10859  *
10860  * CDDL HEADER END
10861  */
10862 /*	Copyright (c) 1988 AT&T	*/
10863 /*	  All Rights Reserved  	*/
10864 
10865 
10866 /*
10867  * Copyright 1999-2003 Sun Microsystems, Inc.  All rights reserved.
10868  * Use is subject to license terms.
10869  */
10870 
10871 /*
10872  * Copyright 2014 PALO, Richard.
10873  * Copyright 2016 Joyent, Inc.
10874  */
10875 
10876 /*
10877  * An application should not include this header directly.  Instead it
10878  * should be included only through the inclusion of other Sun headers.
10879  *
10880  * The contents of this header is limited to identifiers specified in the
10881  * C Standard.  Any new identifiers specified in future amendments to the
10882  * C Standard must be placed in this header.  If these new identifiers
10883  * are required to also be in the C++ Standard "std" namespace, then for
10884  * anything other than macro definitions, corresponding "using" directives
10885  * must also be added to <stddef.h.h>.
10886  */
10887 
10888 
10889 
10890 
10891 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4
10892 /*
10893  * CDDL HEADER START
10894  *
10895  * The contents of this file are subject to the terms of the
10896  * Common Development and Distribution License (the "License").
10897  * You may not use this file except in compliance with the License.
10898  *
10899  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10900  * or http://www.opensolaris.org/os/licensing.
10901  * See the License for the specific language governing permissions
10902  * and limitations under the License.
10903  *
10904  *
10905  * When distributing Covered Code, include this CDDL HEADER in each
10906  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10907  * If applicable, add the following below this CDDL HEADER, with the
10908  * fields enclosed by brackets "[]" replaced with your own identifying
10909  * information: Portions Copyright [yyyy] [name of copyright owner]
10910  *
10911  * CDDL HEADER END
10912  */
10913 
10914 /*
10915  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
10916  * Use is subject to license terms.
10917  * Copyright 2016 Joyent, Inc.
10918  */
10919 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4
10920 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4
10921 /*
10922  * CDDL HEADER START
10923  *
10924  * The contents of this file are subject to the terms of the
10925  * Common Development and Distribution License (the "License").
10926  * You may not use this file except in compliance with the License.
10927  *
10928  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10929  * or http://www.opensolaris.org/os/licensing.
10930  * See the License for the specific language governing permissions
10931  * and limitations under the License.
10932  *
10933  * When distributing Covered Code, include this CDDL HEADER in each
10934  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10935  * If applicable, add the following below this CDDL HEADER, with the
10936  * fields enclosed by brackets "[]" replaced with your own identifying
10937  * information: Portions Copyright [yyyy] [name of copyright owner]
10938  *
10939  * CDDL HEADER END
10940  */
10941 
10942 /*
10943  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
10944  * Copyright 2016 Joyent, Inc.
10945  *
10946  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
10947  * Use is subject to license terms.
10948  */
10949 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4
10950 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3 4
10951 /*
10952  * This file and its contents are supplied under the terms of the
10953  * Common Development and Distribution License ("CDDL"), version 1.0.
10954  * You may only use this file in accordance with the terms of version
10955  * 1.0 of the CDDL.
10956  *
10957  * A full copy of the text of the CDDL should have accompanied this
10958  * source.  A copy of the CDDL is also available via the Internet at
10959  * http://www.illumos.org/license/CDDL.
10960  */
10961 
10962 /*
10963  * Copyright 2014-2016 PALO, Richard.
10964  */
10965 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4
10966 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 3 4
10967 typedef long max_align_t;
10968 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4
10969 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1 3 4
10970 /*
10971  * This file and its contents are supplied under the terms of the
10972  * Common Development and Distribution License ("CDDL"), version 1.0.
10973  * You may only use this file in accordance with the terms of version
10974  * 1.0 of the CDDL.
10975  *
10976  * A full copy of the text of the CDDL should have accompanied this
10977  * source.  A copy of the CDDL is also available via the Internet at
10978  * http://www.illumos.org/license/CDDL.
10979  */
10980 
10981 /*
10982  * Copyright 2017 Toomas Soome <tsoome@me.com>
10983  */
10984 
10985 
10986 
10987 
10988 /*
10989  * Commonly used macros and definitions.
10990  */
10991 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 3 4
10992 /*
10993  * We must not expose container_of() to userland, but we want it
10994  * to be available for early boot and for the kernel.
10995  */
10996 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4
10997 
10998 /*
10999  * Allow global visibility for symbols defined in
11000  * C++ "std" namespace in <iso/stddef_iso.h>.
11001  */
11002 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 3 4
11003 /*
11004  * wchar_t is a built-in type in standard C++ and as such is not
11005  * defined here when using standard C++. However, the GNU compiler
11006  * fixincludes utility nonetheless creates its own version of this
11007  * header for use by gcc and g++. In that version it adds a redundant
11008  * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
11009  * header we need to include the following magic comment:
11010  *
11011  * we must use the C++ compiler's type
11012  *
11013  * The above comment should not be removed or changed until GNU
11014  * gcc/fixinc/inclhack.def is updated to bypass this header.
11015  */
11016 # 69 "/usr/include/openssl/buffer.h" 2 3 4
11017 
11018 
11019 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3 4
11020 /*
11021  * CDDL HEADER START
11022  *
11023  * The contents of this file are subject to the terms of the
11024  * Common Development and Distribution License (the "License").
11025  * You may not use this file except in compliance with the License.
11026  *
11027  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11028  * or http://www.opensolaris.org/os/licensing.
11029  * See the License for the specific language governing permissions
11030  * and limitations under the License.
11031  *
11032  * When distributing Covered Code, include this CDDL HEADER in each
11033  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11034  * If applicable, add the following below this CDDL HEADER, with the
11035  * fields enclosed by brackets "[]" replaced with your own identifying
11036  * information: Portions Copyright [yyyy] [name of copyright owner]
11037  *
11038  * CDDL HEADER END
11039  */
11040 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
11041 /*	  All Rights Reserved  	*/
11042 
11043 
11044 /*
11045  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
11046  * Use is subject to license terms.
11047  *
11048  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
11049  * Copyright 2016 Joyent, Inc.
11050  */
11051 # 72 "/usr/include/openssl/buffer.h" 2 3 4
11052 
11053 
11054 /* Already declared in ossl_typ.h */
11055 /* typedef struct buf_mem_st BUF_MEM; */
11056 
11057 struct buf_mem_st {
11058     size_t length; /* current number of bytes */
11059     char *data;
11060     size_t max; /* size of buffer */
11061 };
11062 
11063 BUF_MEM *BUF_MEM_new(void);
11064 void BUF_MEM_free(BUF_MEM *a);
11065 int BUF_MEM_grow(BUF_MEM *str, size_t len);
11066 int BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
11067 size_t BUF_strnlen(const char *str, size_t maxlen);
11068 char *BUF_strdup(const char *str);
11069 
11070 /*
11071  * Like strndup, but in addition, explicitly guarantees to never read past the
11072  * first |siz| bytes of |str|.
11073  */
11074 char *BUF_strndup(const char *str, size_t siz);
11075 
11076 void *BUF_memdup(const void *data, size_t siz);
11077 void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz);
11078 
11079 /* safe string functions */
11080 size_t BUF_strlcpy(char *dst, const char *src, size_t siz);
11081 size_t BUF_strlcat(char *dst, const char *src, size_t siz);
11082 
11083 /* BEGIN ERROR CODES */
11084 /*
11085  * The following lines are auto generated by the script mkerr.pl. Any changes
11086  * made after this point may be overwritten when the script is next run.
11087  */
11088 void ERR_load_BUF_strings(void);
11089 
11090 /* Error codes for the BUF functions. */
11091 
11092 /* Function codes. */
11093 
11094 
11095 
11096 
11097 
11098 
11099 
11100 /* Reason codes. */
11101 # 71 "/usr/include/openssl/x509.h" 2 3 4
11102 
11103 
11104 # 1 "/usr/include/openssl/evp.h" 1 3 4
11105 /* crypto/evp/evp.h */
11106 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11107  * All rights reserved.
11108  *
11109  * This package is an SSL implementation written
11110  * by Eric Young (eay@cryptsoft.com).
11111  * The implementation was written so as to conform with Netscapes SSL.
11112  *
11113  * This library is free for commercial and non-commercial use as long as
11114  * the following conditions are aheared to.  The following conditions
11115  * apply to all code found in this distribution, be it the RC4, RSA,
11116  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11117  * included with this distribution is covered by the same copyright terms
11118  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11119  *
11120  * Copyright remains Eric Young's, and as such any Copyright notices in
11121  * the code are not to be removed.
11122  * If this package is used in a product, Eric Young should be given attribution
11123  * as the author of the parts of the library used.
11124  * This can be in the form of a textual message at program startup or
11125  * in documentation (online or textual) provided with the package.
11126  *
11127  * Redistribution and use in source and binary forms, with or without
11128  * modification, are permitted provided that the following conditions
11129  * are met:
11130  * 1. Redistributions of source code must retain the copyright
11131  *    notice, this list of conditions and the following disclaimer.
11132  * 2. Redistributions in binary form must reproduce the above copyright
11133  *    notice, this list of conditions and the following disclaimer in the
11134  *    documentation and/or other materials provided with the distribution.
11135  * 3. All advertising materials mentioning features or use of this software
11136  *    must display the following acknowledgement:
11137  *    "This product includes cryptographic software written by
11138  *     Eric Young (eay@cryptsoft.com)"
11139  *    The word 'cryptographic' can be left out if the rouines from the library
11140  *    being used are not cryptographic related :-).
11141  * 4. If you include any Windows specific code (or a derivative thereof) from
11142  *    the apps directory (application code) you must include an acknowledgement:
11143  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11144  *
11145  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11146  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11147  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11148  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11149  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11150  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11151  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11152  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11153  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11154  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11155  * SUCH DAMAGE.
11156  *
11157  * The licence and distribution terms for any publically available version or
11158  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11159  * copied and put under another distribution licence
11160  * [including the GNU Public Licence.]
11161  */
11162 # 66 "/usr/include/openssl/evp.h" 3 4
11163 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
11164 /* opensslconf.h */
11165 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
11166 
11167 
11168 
11169 
11170 /* OpenSSL was configured with the following options: */
11171 # 108 "/usr/include/openssl/opensslconf.h" 3 4
11172 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
11173    asks for it.  This is a transient feature that is provided for those
11174    who haven't had the time to do the appropriate changes in their
11175    applications.  */
11176 # 204 "/usr/include/openssl/opensslconf.h" 3 4
11177 /* crypto/opensslconf.h.in */
11178 
11179 /* Generate 80386 code? */
11180 # 67 "/usr/include/openssl/evp.h" 2 3 4
11181 
11182 
11183 
11184 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
11185 /* ====================================================================
11186  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
11187  *
11188  * Redistribution and use in source and binary forms, with or without
11189  * modification, are permitted provided that the following conditions
11190  * are met:
11191  *
11192  * 1. Redistributions of source code must retain the above copyright
11193  *    notice, this list of conditions and the following disclaimer.
11194  *
11195  * 2. Redistributions in binary form must reproduce the above copyright
11196  *    notice, this list of conditions and the following disclaimer in
11197  *    the documentation and/or other materials provided with the
11198  *    distribution.
11199  *
11200  * 3. All advertising materials mentioning features or use of this
11201  *    software must display the following acknowledgment:
11202  *    "This product includes software developed by the OpenSSL Project
11203  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
11204  *
11205  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
11206  *    endorse or promote products derived from this software without
11207  *    prior written permission. For written permission, please contact
11208  *    openssl-core@openssl.org.
11209  *
11210  * 5. Products derived from this software may not be called "OpenSSL"
11211  *    nor may "OpenSSL" appear in their names without prior written
11212  *    permission of the OpenSSL Project.
11213  *
11214  * 6. Redistributions of any form whatsoever must retain the following
11215  *    acknowledgment:
11216  *    "This product includes software developed by the OpenSSL Project
11217  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
11218  *
11219  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
11220  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11221  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
11222  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
11223  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
11224  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
11225  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
11226  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11227  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
11228  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
11229  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
11230  * OF THE POSSIBILITY OF SUCH DAMAGE.
11231  * ====================================================================
11232  *
11233  * This product includes cryptographic software written by Eric Young
11234  * (eay@cryptsoft.com).  This product includes software written by Tim
11235  * Hudson (tjh@cryptsoft.com).
11236  *
11237  */
11238 # 71 "/usr/include/openssl/evp.h" 2 3 4
11239 
11240 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
11241 /* ====================================================================
11242  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
11243  *
11244  * Redistribution and use in source and binary forms, with or without
11245  * modification, are permitted provided that the following conditions
11246  * are met:
11247  *
11248  * 1. Redistributions of source code must retain the above copyright
11249  *    notice, this list of conditions and the following disclaimer.
11250  *
11251  * 2. Redistributions in binary form must reproduce the above copyright
11252  *    notice, this list of conditions and the following disclaimer in
11253  *    the documentation and/or other materials provided with the
11254  *    distribution.
11255  *
11256  * 3. All advertising materials mentioning features or use of this
11257  *    software must display the following acknowledgment:
11258  *    "This product includes software developed by the OpenSSL Project
11259  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
11260  *
11261  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
11262  *    endorse or promote products derived from this software without
11263  *    prior written permission. For written permission, please contact
11264  *    openssl-core@openssl.org.
11265  *
11266  * 5. Products derived from this software may not be called "OpenSSL"
11267  *    nor may "OpenSSL" appear in their names without prior written
11268  *    permission of the OpenSSL Project.
11269  *
11270  * 6. Redistributions of any form whatsoever must retain the following
11271  *    acknowledgment:
11272  *    "This product includes software developed by the OpenSSL Project
11273  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
11274  *
11275  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
11276  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11277  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
11278  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
11279  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
11280  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
11281  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
11282  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11283  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
11284  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
11285  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
11286  * OF THE POSSIBILITY OF SUCH DAMAGE.
11287  * ====================================================================
11288  *
11289  * This product includes cryptographic software written by Eric Young
11290  * (eay@cryptsoft.com).  This product includes software written by Tim
11291  * Hudson (tjh@cryptsoft.com).
11292  *
11293  */
11294 # 73 "/usr/include/openssl/evp.h" 2 3 4
11295 
11296 
11297 # 1 "/usr/include/openssl/bio.h" 1 3 4
11298 /* crypto/bio/bio.h */
11299 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11300  * All rights reserved.
11301  *
11302  * This package is an SSL implementation written
11303  * by Eric Young (eay@cryptsoft.com).
11304  * The implementation was written so as to conform with Netscapes SSL.
11305  *
11306  * This library is free for commercial and non-commercial use as long as
11307  * the following conditions are aheared to.  The following conditions
11308  * apply to all code found in this distribution, be it the RC4, RSA,
11309  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11310  * included with this distribution is covered by the same copyright terms
11311  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11312  *
11313  * Copyright remains Eric Young's, and as such any Copyright notices in
11314  * the code are not to be removed.
11315  * If this package is used in a product, Eric Young should be given attribution
11316  * as the author of the parts of the library used.
11317  * This can be in the form of a textual message at program startup or
11318  * in documentation (online or textual) provided with the package.
11319  *
11320  * Redistribution and use in source and binary forms, with or without
11321  * modification, are permitted provided that the following conditions
11322  * are met:
11323  * 1. Redistributions of source code must retain the copyright
11324  *    notice, this list of conditions and the following disclaimer.
11325  * 2. Redistributions in binary form must reproduce the above copyright
11326  *    notice, this list of conditions and the following disclaimer in the
11327  *    documentation and/or other materials provided with the distribution.
11328  * 3. All advertising materials mentioning features or use of this software
11329  *    must display the following acknowledgement:
11330  *    "This product includes cryptographic software written by
11331  *     Eric Young (eay@cryptsoft.com)"
11332  *    The word 'cryptographic' can be left out if the rouines from the library
11333  *    being used are not cryptographic related :-).
11334  * 4. If you include any Windows specific code (or a derivative thereof) from
11335  *    the apps directory (application code) you must include an acknowledgement:
11336  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11337  *
11338  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11339  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11340  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11341  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11342  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11343  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11344  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11345  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11346  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11347  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11348  * SUCH DAMAGE.
11349  *
11350  * The licence and distribution terms for any publically available version or
11351  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11352  * copied and put under another distribution licence
11353  * [including the GNU Public Licence.]
11354  */
11355 # 76 "/usr/include/openssl/evp.h" 2 3 4
11356 
11357 
11358 /*-
11359 #define EVP_RC2_KEY_SIZE                16
11360 #define EVP_RC4_KEY_SIZE                16
11361 #define EVP_BLOWFISH_KEY_SIZE           16
11362 #define EVP_CAST5_KEY_SIZE              16
11363 #define EVP_RC5_32_12_16_KEY_SIZE       16
11364 */
11365 
11366 
11367 
11368 
11369 
11370 
11371 /* Default PKCS#5 iteration count */
11372 
11373 
11374 # 1 "/usr/include/openssl/objects.h" 1 3 4
11375 /* crypto/objects/objects.h */
11376 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11377  * All rights reserved.
11378  *
11379  * This package is an SSL implementation written
11380  * by Eric Young (eay@cryptsoft.com).
11381  * The implementation was written so as to conform with Netscapes SSL.
11382  *
11383  * This library is free for commercial and non-commercial use as long as
11384  * the following conditions are aheared to.  The following conditions
11385  * apply to all code found in this distribution, be it the RC4, RSA,
11386  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11387  * included with this distribution is covered by the same copyright terms
11388  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11389  *
11390  * Copyright remains Eric Young's, and as such any Copyright notices in
11391  * the code are not to be removed.
11392  * If this package is used in a product, Eric Young should be given attribution
11393  * as the author of the parts of the library used.
11394  * This can be in the form of a textual message at program startup or
11395  * in documentation (online or textual) provided with the package.
11396  *
11397  * Redistribution and use in source and binary forms, with or without
11398  * modification, are permitted provided that the following conditions
11399  * are met:
11400  * 1. Redistributions of source code must retain the copyright
11401  *    notice, this list of conditions and the following disclaimer.
11402  * 2. Redistributions in binary form must reproduce the above copyright
11403  *    notice, this list of conditions and the following disclaimer in the
11404  *    documentation and/or other materials provided with the distribution.
11405  * 3. All advertising materials mentioning features or use of this software
11406  *    must display the following acknowledgement:
11407  *    "This product includes cryptographic software written by
11408  *     Eric Young (eay@cryptsoft.com)"
11409  *    The word 'cryptographic' can be left out if the rouines from the library
11410  *    being used are not cryptographic related :-).
11411  * 4. If you include any Windows specific code (or a derivative thereof) from
11412  *    the apps directory (application code) you must include an acknowledgement:
11413  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11414  *
11415  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11416  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11417  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11418  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11419  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11420  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11421  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11422  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11423  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11424  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11425  * SUCH DAMAGE.
11426  *
11427  * The licence and distribution terms for any publically available version or
11428  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11429  * copied and put under another distribution licence
11430  * [including the GNU Public Licence.]
11431  */
11432 
11433 
11434 
11435 
11436 
11437 
11438 
11439 # 1 "/usr/include/openssl/obj_mac.h" 1 3 4
11440 /* crypto/objects/obj_mac.h */
11441 
11442 /*
11443  * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following
11444  * command: perl objects.pl objects.txt obj_mac.num obj_mac.h
11445  */
11446 
11447 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
11448  * All rights reserved.
11449  *
11450  * This package is an SSL implementation written
11451  * by Eric Young (eay@cryptsoft.com).
11452  * The implementation was written so as to conform with Netscapes SSL.
11453  *
11454  * This library is free for commercial and non-commercial use as long as
11455  * the following conditions are aheared to.  The following conditions
11456  * apply to all code found in this distribution, be it the RC4, RSA,
11457  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11458  * included with this distribution is covered by the same copyright terms
11459  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11460  *
11461  * Copyright remains Eric Young's, and as such any Copyright notices in
11462  * the code are not to be removed.
11463  * If this package is used in a product, Eric Young should be given attribution
11464  * as the author of the parts of the library used.
11465  * This can be in the form of a textual message at program startup or
11466  * in documentation (online or textual) provided with the package.
11467  *
11468  * Redistribution and use in source and binary forms, with or without
11469  * modification, are permitted provided that the following conditions
11470  * are met:
11471  * 1. Redistributions of source code must retain the copyright
11472  *    notice, this list of conditions and the following disclaimer.
11473  * 2. Redistributions in binary form must reproduce the above copyright
11474  *    notice, this list of conditions and the following disclaimer in the
11475  *    documentation and/or other materials provided with the distribution.
11476  * 3. All advertising materials mentioning features or use of this software
11477  *    must display the following acknowledgement:
11478  *    "This product includes cryptographic software written by
11479  *     Eric Young (eay@cryptsoft.com)"
11480  *    The word 'cryptographic' can be left out if the rouines from the library
11481  *    being used are not cryptographic related :-).
11482  * 4. If you include any Windows specific code (or a derivative thereof) from
11483  *    the apps directory (application code) you must include an acknowledgement:
11484  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11485  *
11486  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11487  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11488  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11489  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11490  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11491  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11492  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11493  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11494  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11495  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11496  * SUCH DAMAGE.
11497  *
11498  * The licence and distribution terms for any publically available version or
11499  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11500  * copied and put under another distribution licence
11501  * [including the GNU Public Licence.]
11502  */
11503 # 66 "/usr/include/openssl/objects.h" 2 3 4
11504 # 964 "/usr/include/openssl/objects.h" 3 4
11505 # 1 "/usr/include/openssl/bio.h" 1 3 4
11506 /* crypto/bio/bio.h */
11507 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11508  * All rights reserved.
11509  *
11510  * This package is an SSL implementation written
11511  * by Eric Young (eay@cryptsoft.com).
11512  * The implementation was written so as to conform with Netscapes SSL.
11513  *
11514  * This library is free for commercial and non-commercial use as long as
11515  * the following conditions are aheared to.  The following conditions
11516  * apply to all code found in this distribution, be it the RC4, RSA,
11517  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11518  * included with this distribution is covered by the same copyright terms
11519  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11520  *
11521  * Copyright remains Eric Young's, and as such any Copyright notices in
11522  * the code are not to be removed.
11523  * If this package is used in a product, Eric Young should be given attribution
11524  * as the author of the parts of the library used.
11525  * This can be in the form of a textual message at program startup or
11526  * in documentation (online or textual) provided with the package.
11527  *
11528  * Redistribution and use in source and binary forms, with or without
11529  * modification, are permitted provided that the following conditions
11530  * are met:
11531  * 1. Redistributions of source code must retain the copyright
11532  *    notice, this list of conditions and the following disclaimer.
11533  * 2. Redistributions in binary form must reproduce the above copyright
11534  *    notice, this list of conditions and the following disclaimer in the
11535  *    documentation and/or other materials provided with the distribution.
11536  * 3. All advertising materials mentioning features or use of this software
11537  *    must display the following acknowledgement:
11538  *    "This product includes cryptographic software written by
11539  *     Eric Young (eay@cryptsoft.com)"
11540  *    The word 'cryptographic' can be left out if the rouines from the library
11541  *    being used are not cryptographic related :-).
11542  * 4. If you include any Windows specific code (or a derivative thereof) from
11543  *    the apps directory (application code) you must include an acknowledgement:
11544  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11545  *
11546  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11547  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11548  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11549  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11550  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11551  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11552  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11553  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11554  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11555  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11556  * SUCH DAMAGE.
11557  *
11558  * The licence and distribution terms for any publically available version or
11559  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11560  * copied and put under another distribution licence
11561  * [including the GNU Public Licence.]
11562  */
11563 # 965 "/usr/include/openssl/objects.h" 2 3 4
11564 # 1 "/usr/include/openssl/asn1.h" 1 3 4
11565 /* crypto/asn1/asn1.h */
11566 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11567  * All rights reserved.
11568  *
11569  * This package is an SSL implementation written
11570  * by Eric Young (eay@cryptsoft.com).
11571  * The implementation was written so as to conform with Netscapes SSL.
11572  *
11573  * This library is free for commercial and non-commercial use as long as
11574  * the following conditions are aheared to.  The following conditions
11575  * apply to all code found in this distribution, be it the RC4, RSA,
11576  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11577  * included with this distribution is covered by the same copyright terms
11578  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11579  *
11580  * Copyright remains Eric Young's, and as such any Copyright notices in
11581  * the code are not to be removed.
11582  * If this package is used in a product, Eric Young should be given attribution
11583  * as the author of the parts of the library used.
11584  * This can be in the form of a textual message at program startup or
11585  * in documentation (online or textual) provided with the package.
11586  *
11587  * Redistribution and use in source and binary forms, with or without
11588  * modification, are permitted provided that the following conditions
11589  * are met:
11590  * 1. Redistributions of source code must retain the copyright
11591  *    notice, this list of conditions and the following disclaimer.
11592  * 2. Redistributions in binary form must reproduce the above copyright
11593  *    notice, this list of conditions and the following disclaimer in the
11594  *    documentation and/or other materials provided with the distribution.
11595  * 3. All advertising materials mentioning features or use of this software
11596  *    must display the following acknowledgement:
11597  *    "This product includes cryptographic software written by
11598  *     Eric Young (eay@cryptsoft.com)"
11599  *    The word 'cryptographic' can be left out if the rouines from the library
11600  *    being used are not cryptographic related :-).
11601  * 4. If you include any Windows specific code (or a derivative thereof) from
11602  *    the apps directory (application code) you must include an acknowledgement:
11603  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11604  *
11605  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11606  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11607  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11608  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11609  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11610  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11611  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11612  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11613  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11614  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11615  * SUCH DAMAGE.
11616  *
11617  * The licence and distribution terms for any publically available version or
11618  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11619  * copied and put under another distribution licence
11620  * [including the GNU Public Licence.]
11621  */
11622 
11623 
11624 
11625 
11626 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 3 4
11627 /*
11628  * CDDL HEADER START
11629  *
11630  * The contents of this file are subject to the terms of the
11631  * Common Development and Distribution License (the "License").
11632  * You may not use this file except in compliance with the License.
11633  *
11634  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11635  * or http://www.opensolaris.org/os/licensing.
11636  * See the License for the specific language governing permissions
11637  * and limitations under the License.
11638  *
11639  * When distributing Covered Code, include this CDDL HEADER in each
11640  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
11641  * If applicable, add the following below this CDDL HEADER, with the
11642  * fields enclosed by brackets "[]" replaced with your own identifying
11643  * information: Portions Copyright [yyyy] [name of copyright owner]
11644  *
11645  * CDDL HEADER END
11646  */
11647 /*	Copyright (c) 1988 AT&T	*/
11648 /*	  All Rights Reserved  	*/
11649 
11650 
11651 /*
11652  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
11653  *
11654  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
11655  * Use is subject to license terms.
11656  */
11657 /*
11658  * Copyright 2010 Nexenta Systems, Inc.  Al rights reserved.
11659  * Copyright 2016 Joyent, Inc.
11660  */
11661 # 63 "/usr/include/openssl/asn1.h" 2 3 4
11662 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
11663 /* e_os2.h */
11664 /* ====================================================================
11665  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
11666  *
11667  * Redistribution and use in source and binary forms, with or without
11668  * modification, are permitted provided that the following conditions
11669  * are met:
11670  *
11671  * 1. Redistributions of source code must retain the above copyright
11672  *    notice, this list of conditions and the following disclaimer.
11673  *
11674  * 2. Redistributions in binary form must reproduce the above copyright
11675  *    notice, this list of conditions and the following disclaimer in
11676  *    the documentation and/or other materials provided with the
11677  *    distribution.
11678  *
11679  * 3. All advertising materials mentioning features or use of this
11680  *    software must display the following acknowledgment:
11681  *    "This product includes software developed by the OpenSSL Project
11682  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
11683  *
11684  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
11685  *    endorse or promote products derived from this software without
11686  *    prior written permission. For written permission, please contact
11687  *    openssl-core@openssl.org.
11688  *
11689  * 5. Products derived from this software may not be called "OpenSSL"
11690  *    nor may "OpenSSL" appear in their names without prior written
11691  *    permission of the OpenSSL Project.
11692  *
11693  * 6. Redistributions of any form whatsoever must retain the following
11694  *    acknowledgment:
11695  *    "This product includes software developed by the OpenSSL Project
11696  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
11697  *
11698  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
11699  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11700  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
11701  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
11702  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
11703  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
11704  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
11705  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11706  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
11707  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
11708  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
11709  * OF THE POSSIBILITY OF SUCH DAMAGE.
11710  * ====================================================================
11711  *
11712  * This product includes cryptographic software written by Eric Young
11713  * (eay@cryptsoft.com).  This product includes software written by Tim
11714  * Hudson (tjh@cryptsoft.com).
11715  *
11716  */
11717 
11718 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
11719 /* opensslconf.h */
11720 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
11721 
11722 
11723 
11724 
11725 /* OpenSSL was configured with the following options: */
11726 # 108 "/usr/include/openssl/opensslconf.h" 3 4
11727 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
11728    asks for it.  This is a transient feature that is provided for those
11729    who haven't had the time to do the appropriate changes in their
11730    applications.  */
11731 # 204 "/usr/include/openssl/opensslconf.h" 3 4
11732 /* crypto/opensslconf.h.in */
11733 
11734 /* Generate 80386 code? */
11735 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
11736 # 64 "/usr/include/openssl/asn1.h" 2 3 4
11737 
11738 # 1 "/usr/include/openssl/bio.h" 1 3 4
11739 /* crypto/bio/bio.h */
11740 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11741  * All rights reserved.
11742  *
11743  * This package is an SSL implementation written
11744  * by Eric Young (eay@cryptsoft.com).
11745  * The implementation was written so as to conform with Netscapes SSL.
11746  *
11747  * This library is free for commercial and non-commercial use as long as
11748  * the following conditions are aheared to.  The following conditions
11749  * apply to all code found in this distribution, be it the RC4, RSA,
11750  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11751  * included with this distribution is covered by the same copyright terms
11752  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11753  *
11754  * Copyright remains Eric Young's, and as such any Copyright notices in
11755  * the code are not to be removed.
11756  * If this package is used in a product, Eric Young should be given attribution
11757  * as the author of the parts of the library used.
11758  * This can be in the form of a textual message at program startup or
11759  * in documentation (online or textual) provided with the package.
11760  *
11761  * Redistribution and use in source and binary forms, with or without
11762  * modification, are permitted provided that the following conditions
11763  * are met:
11764  * 1. Redistributions of source code must retain the copyright
11765  *    notice, this list of conditions and the following disclaimer.
11766  * 2. Redistributions in binary form must reproduce the above copyright
11767  *    notice, this list of conditions and the following disclaimer in the
11768  *    documentation and/or other materials provided with the distribution.
11769  * 3. All advertising materials mentioning features or use of this software
11770  *    must display the following acknowledgement:
11771  *    "This product includes cryptographic software written by
11772  *     Eric Young (eay@cryptsoft.com)"
11773  *    The word 'cryptographic' can be left out if the rouines from the library
11774  *    being used are not cryptographic related :-).
11775  * 4. If you include any Windows specific code (or a derivative thereof) from
11776  *    the apps directory (application code) you must include an acknowledgement:
11777  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11778  *
11779  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11780  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11781  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11782  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11783  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11784  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11785  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11786  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11787  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11788  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11789  * SUCH DAMAGE.
11790  *
11791  * The licence and distribution terms for any publically available version or
11792  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11793  * copied and put under another distribution licence
11794  * [including the GNU Public Licence.]
11795  */
11796 # 66 "/usr/include/openssl/asn1.h" 2 3 4
11797 
11798 # 1 "/usr/include/openssl/stack.h" 1 3 4
11799 /* crypto/stack/stack.h */
11800 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
11801  * All rights reserved.
11802  *
11803  * This package is an SSL implementation written
11804  * by Eric Young (eay@cryptsoft.com).
11805  * The implementation was written so as to conform with Netscapes SSL.
11806  *
11807  * This library is free for commercial and non-commercial use as long as
11808  * the following conditions are aheared to.  The following conditions
11809  * apply to all code found in this distribution, be it the RC4, RSA,
11810  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
11811  * included with this distribution is covered by the same copyright terms
11812  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
11813  *
11814  * Copyright remains Eric Young's, and as such any Copyright notices in
11815  * the code are not to be removed.
11816  * If this package is used in a product, Eric Young should be given attribution
11817  * as the author of the parts of the library used.
11818  * This can be in the form of a textual message at program startup or
11819  * in documentation (online or textual) provided with the package.
11820  *
11821  * Redistribution and use in source and binary forms, with or without
11822  * modification, are permitted provided that the following conditions
11823  * are met:
11824  * 1. Redistributions of source code must retain the copyright
11825  *    notice, this list of conditions and the following disclaimer.
11826  * 2. Redistributions in binary form must reproduce the above copyright
11827  *    notice, this list of conditions and the following disclaimer in the
11828  *    documentation and/or other materials provided with the distribution.
11829  * 3. All advertising materials mentioning features or use of this software
11830  *    must display the following acknowledgement:
11831  *    "This product includes cryptographic software written by
11832  *     Eric Young (eay@cryptsoft.com)"
11833  *    The word 'cryptographic' can be left out if the rouines from the library
11834  *    being used are not cryptographic related :-).
11835  * 4. If you include any Windows specific code (or a derivative thereof) from
11836  *    the apps directory (application code) you must include an acknowledgement:
11837  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
11838  *
11839  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
11840  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11841  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
11842  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
11843  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
11844  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
11845  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11846  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
11847  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
11848  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11849  * SUCH DAMAGE.
11850  *
11851  * The licence and distribution terms for any publically available version or
11852  * derivative of this code cannot be changed.  i.e. this code cannot simply be
11853  * copied and put under another distribution licence
11854  * [including the GNU Public Licence.]
11855  */
11856 # 68 "/usr/include/openssl/asn1.h" 2 3 4
11857 # 1 "/usr/include/openssl/safestack.h" 1 3 4
11858 /* ====================================================================
11859  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
11860  *
11861  * Redistribution and use in source and binary forms, with or without
11862  * modification, are permitted provided that the following conditions
11863  * are met:
11864  *
11865  * 1. Redistributions of source code must retain the above copyright
11866  *    notice, this list of conditions and the following disclaimer.
11867  *
11868  * 2. Redistributions in binary form must reproduce the above copyright
11869  *    notice, this list of conditions and the following disclaimer in
11870  *    the documentation and/or other materials provided with the
11871  *    distribution.
11872  *
11873  * 3. All advertising materials mentioning features or use of this
11874  *    software must display the following acknowledgment:
11875  *    "This product includes software developed by the OpenSSL Project
11876  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
11877  *
11878  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
11879  *    endorse or promote products derived from this software without
11880  *    prior written permission. For written permission, please contact
11881  *    openssl-core@openssl.org.
11882  *
11883  * 5. Products derived from this software may not be called "OpenSSL"
11884  *    nor may "OpenSSL" appear in their names without prior written
11885  *    permission of the OpenSSL Project.
11886  *
11887  * 6. Redistributions of any form whatsoever must retain the following
11888  *    acknowledgment:
11889  *    "This product includes software developed by the OpenSSL Project
11890  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
11891  *
11892  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
11893  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11894  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
11895  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
11896  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
11897  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
11898  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
11899  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11900  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
11901  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
11902  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
11903  * OF THE POSSIBILITY OF SUCH DAMAGE.
11904  * ====================================================================
11905  *
11906  * This product includes cryptographic software written by Eric Young
11907  * (eay@cryptsoft.com).  This product includes software written by Tim
11908  * Hudson (tjh@cryptsoft.com).
11909  *
11910  */
11911 # 69 "/usr/include/openssl/asn1.h" 2 3 4
11912 
11913 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
11914 /* ====================================================================
11915  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
11916  *
11917  * Redistribution and use in source and binary forms, with or without
11918  * modification, are permitted provided that the following conditions
11919  * are met:
11920  *
11921  * 1. Redistributions of source code must retain the above copyright
11922  *    notice, this list of conditions and the following disclaimer.
11923  *
11924  * 2. Redistributions in binary form must reproduce the above copyright
11925  *    notice, this list of conditions and the following disclaimer in
11926  *    the documentation and/or other materials provided with the
11927  *    distribution.
11928  *
11929  * 3. All advertising materials mentioning features or use of this
11930  *    software must display the following acknowledgment:
11931  *    "This product includes software developed by the OpenSSL Project
11932  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
11933  *
11934  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
11935  *    endorse or promote products derived from this software without
11936  *    prior written permission. For written permission, please contact
11937  *    openssl-core@openssl.org.
11938  *
11939  * 5. Products derived from this software may not be called "OpenSSL"
11940  *    nor may "OpenSSL" appear in their names without prior written
11941  *    permission of the OpenSSL Project.
11942  *
11943  * 6. Redistributions of any form whatsoever must retain the following
11944  *    acknowledgment:
11945  *    "This product includes software developed by the OpenSSL Project
11946  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
11947  *
11948  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
11949  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
11950  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
11951  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
11952  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
11953  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
11954  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
11955  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
11956  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
11957  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
11958  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
11959  * OF THE POSSIBILITY OF SUCH DAMAGE.
11960  * ====================================================================
11961  *
11962  * This product includes cryptographic software written by Eric Young
11963  * (eay@cryptsoft.com).  This product includes software written by Tim
11964  * Hudson (tjh@cryptsoft.com).
11965  *
11966  */
11967 # 71 "/usr/include/openssl/asn1.h" 2 3 4
11968 
11969 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
11970 /* ====================================================================
11971  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
11972  *
11973  * Redistribution and use in source and binary forms, with or without
11974  * modification, are permitted provided that the following conditions
11975  * are met:
11976  *
11977  * 1. Redistributions of source code must retain the above copyright
11978  *    notice, this list of conditions and the following disclaimer.
11979  *
11980  * 2. Redistributions in binary form must reproduce the above copyright
11981  *    notice, this list of conditions and the following disclaimer in
11982  *    the documentation and/or other materials provided with the
11983  *    distribution.
11984  *
11985  * 3. All advertising materials mentioning features or use of this
11986  *    software must display the following acknowledgment:
11987  *    "This product includes software developed by the OpenSSL Project
11988  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
11989  *
11990  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
11991  *    endorse or promote products derived from this software without
11992  *    prior written permission. For written permission, please contact
11993  *    openssl-core@openssl.org.
11994  *
11995  * 5. Products derived from this software may not be called "OpenSSL"
11996  *    nor may "OpenSSL" appear in their names without prior written
11997  *    permission of the OpenSSL Project.
11998  *
11999  * 6. Redistributions of any form whatsoever must retain the following
12000  *    acknowledgment:
12001  *    "This product includes software developed by the OpenSSL Project
12002  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
12003  *
12004  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
12005  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12006  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12007  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
12008  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12009  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
12010  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
12011  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12012  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
12013  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
12014  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
12015  * OF THE POSSIBILITY OF SUCH DAMAGE.
12016  * ====================================================================
12017  *
12018  * This product includes cryptographic software written by Eric Young
12019  * (eay@cryptsoft.com).  This product includes software written by Tim
12020  * Hudson (tjh@cryptsoft.com).
12021  *
12022  */
12023 # 73 "/usr/include/openssl/asn1.h" 2 3 4
12024 
12025 # 1 "/usr/include/openssl/bn.h" 1 3 4
12026 /* crypto/bn/bn.h */
12027 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
12028  * All rights reserved.
12029  *
12030  * This package is an SSL implementation written
12031  * by Eric Young (eay@cryptsoft.com).
12032  * The implementation was written so as to conform with Netscapes SSL.
12033  *
12034  * This library is free for commercial and non-commercial use as long as
12035  * the following conditions are aheared to.  The following conditions
12036  * apply to all code found in this distribution, be it the RC4, RSA,
12037  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
12038  * included with this distribution is covered by the same copyright terms
12039  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
12040  *
12041  * Copyright remains Eric Young's, and as such any Copyright notices in
12042  * the code are not to be removed.
12043  * If this package is used in a product, Eric Young should be given attribution
12044  * as the author of the parts of the library used.
12045  * This can be in the form of a textual message at program startup or
12046  * in documentation (online or textual) provided with the package.
12047  *
12048  * Redistribution and use in source and binary forms, with or without
12049  * modification, are permitted provided that the following conditions
12050  * are met:
12051  * 1. Redistributions of source code must retain the copyright
12052  *    notice, this list of conditions and the following disclaimer.
12053  * 2. Redistributions in binary form must reproduce the above copyright
12054  *    notice, this list of conditions and the following disclaimer in the
12055  *    documentation and/or other materials provided with the distribution.
12056  * 3. All advertising materials mentioning features or use of this software
12057  *    must display the following acknowledgement:
12058  *    "This product includes cryptographic software written by
12059  *     Eric Young (eay@cryptsoft.com)"
12060  *    The word 'cryptographic' can be left out if the rouines from the library
12061  *    being used are not cryptographic related :-).
12062  * 4. If you include any Windows specific code (or a derivative thereof) from
12063  *    the apps directory (application code) you must include an acknowledgement:
12064  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
12065  *
12066  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
12067  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12068  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
12069  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
12070  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
12071  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
12072  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12073  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
12074  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
12075  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
12076  * SUCH DAMAGE.
12077  *
12078  * The licence and distribution terms for any publically available version or
12079  * derivative of this code cannot be changed.  i.e. this code cannot simply be
12080  * copied and put under another distribution licence
12081  * [including the GNU Public Licence.]
12082  */
12083 /* ====================================================================
12084  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
12085  *
12086  * Redistribution and use in source and binary forms, with or without
12087  * modification, are permitted provided that the following conditions
12088  * are met:
12089  *
12090  * 1. Redistributions of source code must retain the above copyright
12091  *    notice, this list of conditions and the following disclaimer.
12092  *
12093  * 2. Redistributions in binary form must reproduce the above copyright
12094  *    notice, this list of conditions and the following disclaimer in
12095  *    the documentation and/or other materials provided with the
12096  *    distribution.
12097  *
12098  * 3. All advertising materials mentioning features or use of this
12099  *    software must display the following acknowledgment:
12100  *    "This product includes software developed by the OpenSSL Project
12101  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
12102  *
12103  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
12104  *    endorse or promote products derived from this software without
12105  *    prior written permission. For written permission, please contact
12106  *    openssl-core@openssl.org.
12107  *
12108  * 5. Products derived from this software may not be called "OpenSSL"
12109  *    nor may "OpenSSL" appear in their names without prior written
12110  *    permission of the OpenSSL Project.
12111  *
12112  * 6. Redistributions of any form whatsoever must retain the following
12113  *    acknowledgment:
12114  *    "This product includes software developed by the OpenSSL Project
12115  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
12116  *
12117  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
12118  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12119  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12120  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
12121  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12122  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
12123  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
12124  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12125  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
12126  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
12127  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
12128  * OF THE POSSIBILITY OF SUCH DAMAGE.
12129  * ====================================================================
12130  *
12131  * This product includes cryptographic software written by Eric Young
12132  * (eay@cryptsoft.com).  This product includes software written by Tim
12133  * Hudson (tjh@cryptsoft.com).
12134  *
12135  */
12136 /* ====================================================================
12137  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
12138  *
12139  * Portions of the attached software ("Contribution") are developed by
12140  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
12141  *
12142  * The Contribution is licensed pursuant to the Eric Young open source
12143  * license provided above.
12144  *
12145  * The binary polynomial arithmetic software is originally written by
12146  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
12147  *
12148  */
12149 
12150 
12151 
12152 
12153 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 3 4
12154 /*
12155  * CDDL HEADER START
12156  *
12157  * The contents of this file are subject to the terms of the
12158  * Common Development and Distribution License (the "License").
12159  * You may not use this file except in compliance with the License.
12160  *
12161  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12162  * or http://www.opensolaris.org/os/licensing.
12163  * See the License for the specific language governing permissions
12164  * and limitations under the License.
12165  *
12166  * When distributing Covered Code, include this CDDL HEADER in each
12167  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12168  * If applicable, add the following below this CDDL HEADER, with the
12169  * fields enclosed by brackets "[]" replaced with your own identifying
12170  * information: Portions Copyright [yyyy] [name of copyright owner]
12171  *
12172  * CDDL HEADER END
12173  */
12174 
12175 /*
12176  * Copyright (c) 2013 Gary Mills
12177  *
12178  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
12179  * Use is subject to license terms.
12180  */
12181 
12182 /*	Copyright (c) 1988 AT&T	*/
12183 /*	  All Rights Reserved  	*/
12184 # 129 "/usr/include/openssl/bn.h" 2 3 4
12185 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
12186 /* e_os2.h */
12187 /* ====================================================================
12188  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
12189  *
12190  * Redistribution and use in source and binary forms, with or without
12191  * modification, are permitted provided that the following conditions
12192  * are met:
12193  *
12194  * 1. Redistributions of source code must retain the above copyright
12195  *    notice, this list of conditions and the following disclaimer.
12196  *
12197  * 2. Redistributions in binary form must reproduce the above copyright
12198  *    notice, this list of conditions and the following disclaimer in
12199  *    the documentation and/or other materials provided with the
12200  *    distribution.
12201  *
12202  * 3. All advertising materials mentioning features or use of this
12203  *    software must display the following acknowledgment:
12204  *    "This product includes software developed by the OpenSSL Project
12205  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
12206  *
12207  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
12208  *    endorse or promote products derived from this software without
12209  *    prior written permission. For written permission, please contact
12210  *    openssl-core@openssl.org.
12211  *
12212  * 5. Products derived from this software may not be called "OpenSSL"
12213  *    nor may "OpenSSL" appear in their names without prior written
12214  *    permission of the OpenSSL Project.
12215  *
12216  * 6. Redistributions of any form whatsoever must retain the following
12217  *    acknowledgment:
12218  *    "This product includes software developed by the OpenSSL Project
12219  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
12220  *
12221  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
12222  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12223  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12224  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
12225  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12226  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
12227  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
12228  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12229  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
12230  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
12231  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
12232  * OF THE POSSIBILITY OF SUCH DAMAGE.
12233  * ====================================================================
12234  *
12235  * This product includes cryptographic software written by Eric Young
12236  * (eay@cryptsoft.com).  This product includes software written by Tim
12237  * Hudson (tjh@cryptsoft.com).
12238  *
12239  */
12240 
12241 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
12242 /* opensslconf.h */
12243 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
12244 
12245 
12246 
12247 
12248 /* OpenSSL was configured with the following options: */
12249 # 108 "/usr/include/openssl/opensslconf.h" 3 4
12250 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
12251    asks for it.  This is a transient feature that is provided for those
12252    who haven't had the time to do the appropriate changes in their
12253    applications.  */
12254 # 204 "/usr/include/openssl/opensslconf.h" 3 4
12255 /* crypto/opensslconf.h.in */
12256 
12257 /* Generate 80386 code? */
12258 # 272 "/usr/include/openssl/opensslconf.h" 3 4
12259 /*
12260  * OpenSSL revision 1.521 from 2005-12-15 in OpenSSL_1_0_0-stable branch changed
12261  * 64 bit sparcv9 configuration from SIXTY_FOUR_BIT_LONG to BN_LLONG.
12262  */
12263 
12264 
12265 
12266 
12267 
12268 
12269 /* Should we define BN_DIV2W here? */
12270 
12271 /* Only one for the following should be defined */
12272 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
12273 # 130 "/usr/include/openssl/bn.h" 2 3 4
12274 
12275 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4
12276 /*
12277  * CDDL HEADER START
12278  *
12279  * The contents of this file are subject to the terms of the
12280  * Common Development and Distribution License (the "License").
12281  * You may not use this file except in compliance with the License.
12282  *
12283  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12284  * or http://www.opensolaris.org/os/licensing.
12285  * See the License for the specific language governing permissions
12286  * and limitations under the License.
12287  *
12288  * When distributing Covered Code, include this CDDL HEADER in each
12289  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
12290  * If applicable, add the following below this CDDL HEADER, with the
12291  * fields enclosed by brackets "[]" replaced with your own identifying
12292  * information: Portions Copyright [yyyy] [name of copyright owner]
12293  *
12294  * CDDL HEADER END
12295  */
12296 
12297 /*
12298  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
12299  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
12300  */
12301 
12302 /*	Copyright (c) 1988 AT&T	*/
12303 /*	  All Rights Reserved  	*/
12304 
12305 /*
12306  * User-visible pieces of the ANSI C standard I/O package.
12307  */
12308 # 132 "/usr/include/openssl/bn.h" 2 3 4
12309 
12310 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
12311 /* ====================================================================
12312  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
12313  *
12314  * Redistribution and use in source and binary forms, with or without
12315  * modification, are permitted provided that the following conditions
12316  * are met:
12317  *
12318  * 1. Redistributions of source code must retain the above copyright
12319  *    notice, this list of conditions and the following disclaimer.
12320  *
12321  * 2. Redistributions in binary form must reproduce the above copyright
12322  *    notice, this list of conditions and the following disclaimer in
12323  *    the documentation and/or other materials provided with the
12324  *    distribution.
12325  *
12326  * 3. All advertising materials mentioning features or use of this
12327  *    software must display the following acknowledgment:
12328  *    "This product includes software developed by the OpenSSL Project
12329  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
12330  *
12331  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
12332  *    endorse or promote products derived from this software without
12333  *    prior written permission. For written permission, please contact
12334  *    openssl-core@openssl.org.
12335  *
12336  * 5. Products derived from this software may not be called "OpenSSL"
12337  *    nor may "OpenSSL" appear in their names without prior written
12338  *    permission of the OpenSSL Project.
12339  *
12340  * 6. Redistributions of any form whatsoever must retain the following
12341  *    acknowledgment:
12342  *    "This product includes software developed by the OpenSSL Project
12343  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
12344  *
12345  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
12346  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12347  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12348  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
12349  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12350  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
12351  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
12352  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12353  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
12354  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
12355  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
12356  * OF THE POSSIBILITY OF SUCH DAMAGE.
12357  * ====================================================================
12358  *
12359  * This product includes cryptographic software written by Eric Young
12360  * (eay@cryptsoft.com).  This product includes software written by Tim
12361  * Hudson (tjh@cryptsoft.com).
12362  *
12363  */
12364 # 134 "/usr/include/openssl/bn.h" 2 3 4
12365 # 1 "/usr/include/openssl/crypto.h" 1 3 4
12366 /* crypto/crypto.h */
12367 /* ====================================================================
12368  * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
12369  *
12370  * Redistribution and use in source and binary forms, with or without
12371  * modification, are permitted provided that the following conditions
12372  * are met:
12373  *
12374  * 1. Redistributions of source code must retain the above copyright
12375  *    notice, this list of conditions and the following disclaimer.
12376  *
12377  * 2. Redistributions in binary form must reproduce the above copyright
12378  *    notice, this list of conditions and the following disclaimer in
12379  *    the documentation and/or other materials provided with the
12380  *    distribution.
12381  *
12382  * 3. All advertising materials mentioning features or use of this
12383  *    software must display the following acknowledgment:
12384  *    "This product includes software developed by the OpenSSL Project
12385  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
12386  *
12387  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
12388  *    endorse or promote products derived from this software without
12389  *    prior written permission. For written permission, please contact
12390  *    openssl-core@openssl.org.
12391  *
12392  * 5. Products derived from this software may not be called "OpenSSL"
12393  *    nor may "OpenSSL" appear in their names without prior written
12394  *    permission of the OpenSSL Project.
12395  *
12396  * 6. Redistributions of any form whatsoever must retain the following
12397  *    acknowledgment:
12398  *    "This product includes software developed by the OpenSSL Project
12399  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
12400  *
12401  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
12402  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12403  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12404  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
12405  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12406  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
12407  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
12408  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12409  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
12410  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
12411  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
12412  * OF THE POSSIBILITY OF SUCH DAMAGE.
12413  * ====================================================================
12414  *
12415  * This product includes cryptographic software written by Eric Young
12416  * (eay@cryptsoft.com).  This product includes software written by Tim
12417  * Hudson (tjh@cryptsoft.com).
12418  *
12419  */
12420 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
12421  * All rights reserved.
12422  *
12423  * This package is an SSL implementation written
12424  * by Eric Young (eay@cryptsoft.com).
12425  * The implementation was written so as to conform with Netscapes SSL.
12426  *
12427  * This library is free for commercial and non-commercial use as long as
12428  * the following conditions are aheared to.  The following conditions
12429  * apply to all code found in this distribution, be it the RC4, RSA,
12430  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
12431  * included with this distribution is covered by the same copyright terms
12432  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
12433  *
12434  * Copyright remains Eric Young's, and as such any Copyright notices in
12435  * the code are not to be removed.
12436  * If this package is used in a product, Eric Young should be given attribution
12437  * as the author of the parts of the library used.
12438  * This can be in the form of a textual message at program startup or
12439  * in documentation (online or textual) provided with the package.
12440  *
12441  * Redistribution and use in source and binary forms, with or without
12442  * modification, are permitted provided that the following conditions
12443  * are met:
12444  * 1. Redistributions of source code must retain the copyright
12445  *    notice, this list of conditions and the following disclaimer.
12446  * 2. Redistributions in binary form must reproduce the above copyright
12447  *    notice, this list of conditions and the following disclaimer in the
12448  *    documentation and/or other materials provided with the distribution.
12449  * 3. All advertising materials mentioning features or use of this software
12450  *    must display the following acknowledgement:
12451  *    "This product includes cryptographic software written by
12452  *     Eric Young (eay@cryptsoft.com)"
12453  *    The word 'cryptographic' can be left out if the rouines from the library
12454  *    being used are not cryptographic related :-).
12455  * 4. If you include any Windows specific code (or a derivative thereof) from
12456  *    the apps directory (application code) you must include an acknowledgement:
12457  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
12458  *
12459  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
12460  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12461  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
12462  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
12463  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
12464  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
12465  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12466  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
12467  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
12468  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
12469  * SUCH DAMAGE.
12470  *
12471  * The licence and distribution terms for any publically available version or
12472  * derivative of this code cannot be changed.  i.e. this code cannot simply be
12473  * copied and put under another distribution licence
12474  * [including the GNU Public Licence.]
12475  */
12476 /* ====================================================================
12477  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
12478  * ECDH support in OpenSSL originally developed by
12479  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
12480  */
12481 # 135 "/usr/include/openssl/bn.h" 2 3 4
12482 
12483 
12484 
12485 
12486 
12487 /*
12488  * These preprocessor symbols control various aspects of the bignum headers
12489  * and library code. They're not defined by any "normal" configuration, as
12490  * they are intended for development and testing purposes. NB: defining all
12491  * three can be useful for debugging application code as well as openssl
12492  * itself. BN_DEBUG - turn on various debugging alterations to the bignum
12493  * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up
12494  * mismanagement of bignum internals. You must also define BN_DEBUG.
12495  */
12496 /* #define BN_DEBUG */
12497 /* #define BN_DEBUG_RAND */
12498 
12499 
12500 
12501 
12502 
12503 
12504 
12505 /*
12506  * This next option uses the C libraries (2 word)/(1 word) function. If it is
12507  * not defined, I use my C version (which is slower). The reason for this
12508  * flag is that when the particular C compiler library routine is used, and
12509  * the library is linked with a different compiler, the library is missing.
12510  * This mostly happens when the library is built with gcc and then linked
12511  * using normal cc.  This would be a common occurrence because gcc normally
12512  * produces code that is 2 times faster than system compilers for the big
12513  * number stuff. For machines with only one compiler (or shared libraries),
12514  * this should be on.  Again this in only really a problem on machines using
12515  * "long long's", are 32bit, and are not using my assembler code.
12516  */
12517 
12518 
12519 
12520 
12521 
12522 
12523 
12524 /*
12525  * assuming long is 64bit - this is the DEC Alpha unsigned long long is only
12526  * 64 bits :-(, don't define BN_LLONG for the DEC Alpha
12527  */
12528 # 203 "/usr/include/openssl/bn.h" 3 4
12529 /*
12530  * This is where the long long data type is 64 bits, but long is 32. For
12531  * machines where there are 64bit registers, this is the mode to use. IRIX,
12532  * on R4000 and above should use this mode, along with the relevant assembler
12533  * code :-).  Do NOT define BN_LLONG.
12534  */
12535 # 265 "/usr/include/openssl/bn.h" 3 4
12536 /*
12537  * avoid leaking exponent information through timing,
12538  * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime,
12539  * BN_div() will call BN_div_no_branch,
12540  * BN_mod_inverse() will call BN_mod_inverse_no_branch.
12541  */
12542 # 284 "/usr/include/openssl/bn.h" 3 4
12543                                        /* used for debuging */
12544 
12545 
12546 
12547 
12548 /*
12549  * get a clone of a BIGNUM with changed flags, for *temporary* use only (the
12550  * two BIGNUMs cannot not be used in parallel!)
12551  */
12552 # 302 "/usr/include/openssl/bn.h" 3 4
12553 /* Already declared in ossl_typ.h */
12554 # 313 "/usr/include/openssl/bn.h" 3 4
12555 struct bignum_st {
12556     unsigned int *d; /* Pointer to an array of 'BN_BITS2' bit
12557                                  * chunks. */
12558     int top; /* Index of last used d +1. */
12559     /* The next are internal book keeping for bn_expand. */
12560     int dmax; /* Size of the d array. */
12561     int neg; /* one if the number is negative */
12562     int flags;
12563 };
12564 
12565 /* Used for montgomery multiplication */
12566 struct bn_mont_ctx_st {
12567     int ri; /* number of bits in R */
12568     BIGNUM RR; /* used to convert to montgomery form */
12569     BIGNUM N; /* The modulus */
12570     BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only
12571                                  * stored for bignum algorithm) */
12572     unsigned int n0[2]; /* least significant word(s) of Ni; (type
12573                                  * changed with 0.9.9, was "BN_ULONG n0;"
12574                                  * before) */
12575     int flags;
12576 };
12577 
12578 /*
12579  * Used for reciprocal division/mod functions It cannot be shared between
12580  * threads
12581  */
12582 struct bn_recp_ctx_st {
12583     BIGNUM N; /* the divisor */
12584     BIGNUM Nr; /* the reciprocal */
12585     int num_bits;
12586     int shift;
12587     int flags;
12588 };
12589 
12590 /* Used for slow "generation" functions. */
12591 struct bn_gencb_st {
12592     unsigned int ver; /* To handle binary (in)compatibility */
12593     void *arg; /* callback-specific data */
12594     union {
12595         /* if(ver==1) - handles old style callbacks */
12596         void (*cb_1) (int, int, void *);
12597         /* if(ver==2) - new callback style */
12598         int (*cb_2) (int, int, BN_GENCB *);
12599     } cb;
12600 };
12601 /* Wrapper function to make using BN_GENCB easier,  */
12602 int BN_GENCB_call(BN_GENCB *cb, int a, int b);
12603 /* Macro to populate a BN_GENCB structure with an "old"-style callback */
12604 
12605 
12606 
12607 
12608 
12609 /* Macro to populate a BN_GENCB structure with a "new"-style callback */
12610 # 377 "/usr/include/openssl/bn.h" 3 4
12611 /*
12612  * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations
12613  * that will be done for checking that a random number is probably prime. The
12614  * error rate for accepting a composite number as prime depends on the size of
12615  * the prime |b|. The error rates used are for calculating an RSA key with 2 primes,
12616  * and so the level is what you would expect for a key of double the size of the
12617  * prime.
12618  *
12619  * This table is generated using the algorithm of FIPS PUB 186-4
12620  * Digital Signature Standard (DSS), section F.1, page 117.
12621  * (https://dx.doi.org/10.6028/NIST.FIPS.186-4)
12622  *
12623  * The following magma script was used to generate the output:
12624  * securitybits:=125;
12625  * k:=1024;
12626  * for t:=1 to 65 do
12627  *   for M:=3 to Floor(2*Sqrt(k-1)-1) do
12628  *     S:=0;
12629  *     // Sum over m
12630  *     for m:=3 to M do
12631  *       s:=0;
12632  *       // Sum over j
12633  *       for j:=2 to m do
12634  *         s+:=(RealField(32)!2)^-(j+(k-1)/j);
12635  *       end for;
12636  *       S+:=2^(m-(m-1)*t)*s;
12637  *     end for;
12638  *     A:=2^(k-2-M*t);
12639  *     B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S;
12640  *     pkt:=2.00743*Log(2)*k*2^-k*(A+B);
12641  *     seclevel:=Floor(-Log(2,pkt));
12642  *     if seclevel ge securitybits then
12643  *       printf "k: %5o, security: %o bits  (t: %o, M: %o)\n",k,seclevel,t,M;
12644  *       break;
12645  *     end if;
12646  *   end for;
12647  *   if seclevel ge securitybits then break; end if;
12648  * end for;
12649  *
12650  * It can be run online at:
12651  * http://magma.maths.usyd.edu.au/calc
12652  *
12653  * And will output:
12654  * k:  1024, security: 129 bits  (t: 6, M: 23)
12655  *
12656  * k is the number of bits of the prime, securitybits is the level we want to
12657  * reach.
12658  *
12659  * prime length | RSA key size | # MR tests | security level
12660  * -------------+--------------|------------+---------------
12661  *  (b) >= 6394 |     >= 12788 |          3 |        256 bit
12662  *  (b) >= 3747 |     >=  7494 |          3 |        192 bit
12663  *  (b) >= 1345 |     >=  2690 |          4 |        128 bit
12664  *  (b) >= 1080 |     >=  2160 |          5 |        128 bit
12665  *  (b) >=  852 |     >=  1704 |          5 |        112 bit
12666  *  (b) >=  476 |     >=   952 |          5 |         80 bit
12667  *  (b) >=  400 |     >=   800 |          6 |         80 bit
12668  *  (b) >=  347 |     >=   694 |          7 |         80 bit
12669  *  (b) >=  308 |     >=   616 |          8 |         80 bit
12670  *  (b) >=   55 |     >=   110 |         27 |         64 bit
12671  *  (b) >=    6 |     >=    12 |         34 |         64 bit
12672  */
12673 # 451 "/usr/include/openssl/bn.h" 3 4
12674 /* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */
12675 # 472 "/usr/include/openssl/bn.h" 3 4
12676 const BIGNUM *BN_value_one(void);
12677 char *BN_options(void);
12678 BN_CTX *BN_CTX_new(void);
12679 
12680 void BN_CTX_init(BN_CTX *c);
12681 
12682 void BN_CTX_free(BN_CTX *c);
12683 void BN_CTX_start(BN_CTX *ctx);
12684 BIGNUM *BN_CTX_get(BN_CTX *ctx);
12685 void BN_CTX_end(BN_CTX *ctx);
12686 int BN_rand(BIGNUM *rnd, int bits, int top, int bottom);
12687 int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom);
12688 int BN_rand_range(BIGNUM *rnd, const BIGNUM *range);
12689 int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
12690 int BN_num_bits(const BIGNUM *a);
12691 int BN_num_bits_word(unsigned int);
12692 BIGNUM *BN_new(void);
12693 void BN_init(BIGNUM *);
12694 void BN_clear_free(BIGNUM *a);
12695 BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);
12696 void BN_swap(BIGNUM *a, BIGNUM *b);
12697 BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
12698 int BN_bn2bin(const BIGNUM *a, unsigned char *to);
12699 BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret);
12700 int BN_bn2mpi(const BIGNUM *a, unsigned char *to);
12701 int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
12702 int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
12703 int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
12704 int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
12705 int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx);
12706 int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx);
12707 /** BN_set_negative sets sign of a BIGNUM
12708  * \param  b  pointer to the BIGNUM object
12709  * \param  n  0 if the BIGNUM b should be positive and a value != 0 otherwise
12710  */
12711 void BN_set_negative(BIGNUM *b, int n);
12712 /** BN_is_negative returns 1 if the BIGNUM is negative
12713  * \param  a  pointer to the BIGNUM object
12714  * \return 1 if a < 0 and 0 otherwise
12715  */
12716 
12717 
12718 int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,
12719            BN_CTX *ctx);
12720 
12721 int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx);
12722 int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
12723                BN_CTX *ctx);
12724 int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12725                      const BIGNUM *m);
12726 int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
12727                BN_CTX *ctx);
12728 int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12729                      const BIGNUM *m);
12730 int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
12731                BN_CTX *ctx);
12732 int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);
12733 int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);
12734 int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m);
12735 int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m,
12736                   BN_CTX *ctx);
12737 int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m);
12738 
12739 unsigned int BN_mod_word(const BIGNUM *a, unsigned int w);
12740 unsigned int BN_div_word(BIGNUM *a, unsigned int w);
12741 int BN_mul_word(BIGNUM *a, unsigned int w);
12742 int BN_add_word(BIGNUM *a, unsigned int w);
12743 int BN_sub_word(BIGNUM *a, unsigned int w);
12744 int BN_set_word(BIGNUM *a, unsigned int w);
12745 unsigned int BN_get_word(const BIGNUM *a);
12746 
12747 int BN_cmp(const BIGNUM *a, const BIGNUM *b);
12748 void BN_free(BIGNUM *a);
12749 int BN_is_bit_set(const BIGNUM *a, int n);
12750 int BN_lshift(BIGNUM *r, const BIGNUM *a, int n);
12751 int BN_lshift1(BIGNUM *r, const BIGNUM *a);
12752 int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12753 
12754 int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
12755                const BIGNUM *m, BN_CTX *ctx);
12756 int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
12757                     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
12758 int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
12759                               const BIGNUM *m, BN_CTX *ctx,
12760                               BN_MONT_CTX *in_mont);
12761 int BN_mod_exp_mont_word(BIGNUM *r, unsigned int a, const BIGNUM *p,
12762                          const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
12763 int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1,
12764                      const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m,
12765                      BN_CTX *ctx, BN_MONT_CTX *m_ctx);
12766 int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
12767                       const BIGNUM *m, BN_CTX *ctx);
12768 
12769 int BN_mask_bits(BIGNUM *a, int n);
12770 
12771 int BN_print_fp(FILE *fp, const BIGNUM *a);
12772 
12773 
12774 int BN_print(BIO *fp, const BIGNUM *a);
12775 
12776 
12777 
12778 int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx);
12779 int BN_rshift(BIGNUM *r, const BIGNUM *a, int n);
12780 int BN_rshift1(BIGNUM *r, const BIGNUM *a);
12781 void BN_clear(BIGNUM *a);
12782 BIGNUM *BN_dup(const BIGNUM *a);
12783 int BN_ucmp(const BIGNUM *a, const BIGNUM *b);
12784 int BN_set_bit(BIGNUM *a, int n);
12785 int BN_clear_bit(BIGNUM *a, int n);
12786 char *BN_bn2hex(const BIGNUM *a);
12787 char *BN_bn2dec(const BIGNUM *a);
12788 int BN_hex2bn(BIGNUM **a, const char *str);
12789 int BN_dec2bn(BIGNUM **a, const char *str);
12790 int BN_asc2bn(BIGNUM **a, const char *str);
12791 int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx);
12792 int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns
12793                                                                   * -2 for
12794                                                                   * error */
12795 BIGNUM *BN_mod_inverse(BIGNUM *ret,
12796                        const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx);
12797 BIGNUM *BN_mod_sqrt(BIGNUM *ret,
12798                     const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx);
12799 
12800 void BN_consttime_swap(unsigned int swap, BIGNUM *a, BIGNUM *b, int nwords);
12801 
12802 /* Deprecated versions */
12803 
12804 BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe,
12805                           const BIGNUM *add, const BIGNUM *rem,
12806                           void (*callback) (int, int, void *), void *cb_arg);
12807 int BN_is_prime(const BIGNUM *p, int nchecks,
12808                 void (*callback) (int, int, void *),
12809                 BN_CTX *ctx, void *cb_arg);
12810 int BN_is_prime_fasttest(const BIGNUM *p, int nchecks,
12811                          void (*callback) (int, int, void *), BN_CTX *ctx,
12812                          void *cb_arg, int do_trial_division);
12813 
12814 
12815 /* Newer versions */
12816 int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
12817                          const BIGNUM *rem, BN_GENCB *cb);
12818 int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb);
12819 int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx,
12820                             int do_trial_division, BN_GENCB *cb);
12821 
12822 int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx);
12823 
12824 int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
12825                             const BIGNUM *Xp, const BIGNUM *Xp1,
12826                             const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx,
12827                             BN_GENCB *cb);
12828 int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1,
12829                               BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e,
12830                               BN_CTX *ctx, BN_GENCB *cb);
12831 
12832 BN_MONT_CTX *BN_MONT_CTX_new(void);
12833 void BN_MONT_CTX_init(BN_MONT_CTX *ctx);
12834 int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12835                           BN_MONT_CTX *mont, BN_CTX *ctx);
12836 
12837 
12838 int BN_from_montgomery(BIGNUM *r, const BIGNUM *a,
12839                        BN_MONT_CTX *mont, BN_CTX *ctx);
12840 void BN_MONT_CTX_free(BN_MONT_CTX *mont);
12841 int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx);
12842 BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from);
12843 BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
12844                                     const BIGNUM *mod, BN_CTX *ctx);
12845 
12846 /* BN_BLINDING flags */
12847 
12848 
12849 
12850 BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod);
12851 void BN_BLINDING_free(BN_BLINDING *b);
12852 int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx);
12853 int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx);
12854 int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx);
12855 int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *);
12856 int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b,
12857                           BN_CTX *);
12858 
12859 unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *);
12860 void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long);
12861 
12862 CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *);
12863 unsigned long BN_BLINDING_get_flags(const BN_BLINDING *);
12864 void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long);
12865 BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b,
12866                                       const BIGNUM *e, BIGNUM *m, BN_CTX *ctx,
12867                                       int (*bn_mod_exp) (BIGNUM *r,
12868                                                          const BIGNUM *a,
12869                                                          const BIGNUM *p,
12870                                                          const BIGNUM *m,
12871                                                          BN_CTX *ctx,
12872                                                          BN_MONT_CTX *m_ctx),
12873                                       BN_MONT_CTX *m_ctx);
12874 
12875 
12876 void BN_set_params(int mul, int high, int low, int mont);
12877 int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */
12878 
12879 
12880 void BN_RECP_CTX_init(BN_RECP_CTX *recp);
12881 BN_RECP_CTX *BN_RECP_CTX_new(void);
12882 void BN_RECP_CTX_free(BN_RECP_CTX *recp);
12883 int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx);
12884 int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y,
12885                           BN_RECP_CTX *recp, BN_CTX *ctx);
12886 int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
12887                     const BIGNUM *m, BN_CTX *ctx);
12888 int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,
12889                 BN_RECP_CTX *recp, BN_CTX *ctx);
12890 
12891 
12892 
12893 /*
12894  * Functions for arithmetic over binary polynomials represented by BIGNUMs.
12895  * The BIGNUM::neg property of BIGNUMs representing binary polynomials is
12896  * ignored. Note that input arguments are not const so that their bit arrays
12897  * can be expanded to the appropriate size if needed.
12898  */
12899 
12900 /*
12901  * r = a + b
12902  */
12903 int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
12904 
12905 /*
12906  * r=a mod p
12907  */
12908 int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p);
12909 /* r = (a * b) mod p */
12910 int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12911                     const BIGNUM *p, BN_CTX *ctx);
12912 /* r = (a * a) mod p */
12913 int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12914 /* r = (1 / b) mod p */
12915 int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx);
12916 /* r = (a / b) mod p */
12917 int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12918                     const BIGNUM *p, BN_CTX *ctx);
12919 /* r = (a ^ b) mod p */
12920 int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12921                     const BIGNUM *p, BN_CTX *ctx);
12922 /* r = sqrt(a) mod p */
12923 int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
12924                      BN_CTX *ctx);
12925 /* r^2 + r = a mod p */
12926 int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
12927                            BN_CTX *ctx);
12928 
12929 /*-
12930  * Some functions allow for representation of the irreducible polynomials
12931  * as an unsigned int[], say p.  The irreducible f(t) is then of the form:
12932  *     t^p[0] + t^p[1] + ... + t^p[k]
12933  * where m = p[0] > p[1] > ... > p[k] = 0.
12934  */
12935 /* r = a mod p */
12936 int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]);
12937 /* r = (a * b) mod p */
12938 int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12939                         const int p[], BN_CTX *ctx);
12940 /* r = (a * a) mod p */
12941 int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[],
12942                         BN_CTX *ctx);
12943 /* r = (1 / b) mod p */
12944 int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[],
12945                         BN_CTX *ctx);
12946 /* r = (a / b) mod p */
12947 int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12948                         const int p[], BN_CTX *ctx);
12949 /* r = (a ^ b) mod p */
12950 int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
12951                         const int p[], BN_CTX *ctx);
12952 /* r = sqrt(a) mod p */
12953 int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a,
12954                          const int p[], BN_CTX *ctx);
12955 /* r^2 + r = a mod p */
12956 int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a,
12957                                const int p[], BN_CTX *ctx);
12958 int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max);
12959 int BN_GF2m_arr2poly(const int p[], BIGNUM *a);
12960 
12961 
12962 
12963 /*
12964  * faster mod functions for the 'NIST primes' 0 <= a < p^2
12965  */
12966 int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12967 int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12968 int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12969 int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12970 int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx);
12971 
12972 const BIGNUM *BN_get0_nist_prime_192(void);
12973 const BIGNUM *BN_get0_nist_prime_224(void);
12974 const BIGNUM *BN_get0_nist_prime_256(void);
12975 const BIGNUM *BN_get0_nist_prime_384(void);
12976 const BIGNUM *BN_get0_nist_prime_521(void);
12977 
12978 /* library internal functions */
12979 # 788 "/usr/include/openssl/bn.h" 3 4
12980 BIGNUM *bn_expand2(BIGNUM *a, int words);
12981 
12982 BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */
12983 
12984 
12985 /*-
12986  * Bignum consistency macros
12987  * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from
12988  * bignum data after direct manipulations on the data. There is also an
12989  * "internal" macro, bn_check_top(), for verifying that there are no leading
12990  * zeroes. Unfortunately, some auditing is required due to the fact that
12991  * bn_fix_top() has become an overabused duct-tape because bignum data is
12992  * occasionally passed around in an inconsistent state. So the following
12993  * changes have been made to sort this out;
12994  * - bn_fix_top()s implementation has been moved to bn_correct_top()
12995  * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and
12996  *   bn_check_top() is as before.
12997  * - if BN_DEBUG *is* defined;
12998  *   - bn_check_top() tries to pollute unused words even if the bignum 'top' is
12999  *     consistent. (ed: only if BN_DEBUG_RAND is defined)
13000  *   - bn_fix_top() maps to bn_check_top() rather than "fixing" anything.
13001  * The idea is to have debug builds flag up inconsistent bignums when they
13002  * occur. If that occurs in a bn_fix_top(), we examine the code in question; if
13003  * the use of bn_fix_top() was appropriate (ie. it follows directly after code
13004  * that manipulates the bignum) it is converted to bn_correct_top(), and if it
13005  * was not appropriate, we convert it permanently to bn_check_top() and track
13006  * down the cause of the bug. Eventually, no internal code should be using the
13007  * bn_fix_top() macro. External applications and libraries should try this with
13008  * their own code too, both in terms of building against the openssl headers
13009  * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it
13010  * defined. This not only improves external code, it provides more test
13011  * coverage for openssl's own code.
13012  */
13013 # 914 "/usr/include/openssl/bn.h" 3 4
13014 unsigned int bn_mul_add_words(unsigned int *rp, const unsigned int *ap, int num,
13015                           unsigned int w);
13016 unsigned int bn_mul_words(unsigned int *rp, const unsigned int *ap, int num, unsigned int w);
13017 void bn_sqr_words(unsigned int *rp, const unsigned int *ap, int num);
13018 unsigned int bn_div_words(unsigned int h, unsigned int l, unsigned int d);
13019 unsigned int bn_add_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp,
13020                       int num);
13021 unsigned int bn_sub_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp,
13022                       int num);
13023 
13024 /* Primes from RFC 2409 */
13025 BIGNUM *get_rfc2409_prime_768(BIGNUM *bn);
13026 BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn);
13027 
13028 /* Primes from RFC 3526 */
13029 BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn);
13030 BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn);
13031 BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn);
13032 BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn);
13033 BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn);
13034 BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn);
13035 
13036 int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom);
13037 
13038 /* BEGIN ERROR CODES */
13039 /*
13040  * The following lines are auto generated by the script mkerr.pl. Any changes
13041  * made after this point may be overwritten when the script is next run.
13042  */
13043 void ERR_load_BN_strings(void);
13044 
13045 /* Error codes for the BN functions. */
13046 
13047 /* Function codes. */
13048 # 991 "/usr/include/openssl/bn.h" 3 4
13049 /* Reason codes. */
13050 # 75 "/usr/include/openssl/asn1.h" 2 3 4
13051 # 132 "/usr/include/openssl/asn1.h" 3 4
13052 /* For use with d2i_ASN1_type_bytes() */
13053 # 152 "/usr/include/openssl/asn1.h" 3 4
13054 /* For use with ASN1_mbstring_copy() */
13055 # 161 "/usr/include/openssl/asn1.h" 3 4
13056     struct X509_algor_st;
13057 struct stack_st_X509_ALGOR { _STACK stack; };
13058 
13059 
13060 
13061 
13062 /*
13063  * We MUST make sure that, except for constness, asn1_ctx_st and
13064  * asn1_const_ctx are exactly the same.  Fortunately, as soon as the old ASN1
13065  * parsing macros are gone, we can throw this away as well...
13066  */
13067 typedef struct asn1_ctx_st {
13068     unsigned char *p; /* work char pointer */
13069     int eos; /* end of sequence read for indefinite
13070                                  * encoding */
13071     int error; /* error code to use when returning an error */
13072     int inf; /* constructed if 0x20, indefinite is 0x21 */
13073     int tag; /* tag from last 'get object' */
13074     int xclass; /* class from last 'get object' */
13075     long slen; /* length of last 'get object' */
13076     unsigned char *max; /* largest value of p allowed */
13077     unsigned char *q; /* temporary variable */
13078     unsigned char **pp; /* variable */
13079     int line; /* used in error processing */
13080 } ASN1_CTX;
13081 
13082 typedef struct asn1_const_ctx_st {
13083     const unsigned char *p; /* work char pointer */
13084     int eos; /* end of sequence read for indefinite
13085                                  * encoding */
13086     int error; /* error code to use when returning an error */
13087     int inf; /* constructed if 0x20, indefinite is 0x21 */
13088     int tag; /* tag from last 'get object' */
13089     int xclass; /* class from last 'get object' */
13090     long slen; /* length of last 'get object' */
13091     const unsigned char *max; /* largest value of p allowed */
13092     const unsigned char *q; /* temporary variable */
13093     const unsigned char **pp; /* variable */
13094     int line; /* used in error processing */
13095 } ASN1_const_CTX;
13096 
13097 /*
13098  * These are used internally in the ASN1_OBJECT to keep track of whether the
13099  * names and data need to be free()ed
13100  */
13101 
13102 
13103 
13104 
13105 struct asn1_object_st {
13106     const char *sn, *ln;
13107     int nid;
13108     int length;
13109     const unsigned char *data; /* data remains const after init */
13110     int flags; /* Should we free this one */
13111 };
13112 
13113 
13114 /*
13115  * This indicates that the ASN1_STRING is not a real value but just a place
13116  * holder for the location where indefinite length constructed data should be
13117  * inserted in the memory buffer
13118  */
13119 
13120 
13121 /*
13122  * This flag is used by the CMS code to indicate that a string is not
13123  * complete and is a place holder for content when it had all been accessed.
13124  * The flag will be reset when content has been written to it.
13125  */
13126 
13127 
13128 /*
13129  * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING
13130  * type.
13131  */
13132 
13133 /* This is the base type that holds just about everything :-) */
13134 struct asn1_string_st {
13135     int length;
13136     int type;
13137     unsigned char *data;
13138     /*
13139      * The value of the following field depends on the type being held.  It
13140      * is mostly being used for BIT_STRING so if the input data has a
13141      * non-zero 'unused bits' value, it will be handled correctly
13142      */
13143     long flags;
13144 };
13145 
13146 /*
13147  * ASN1_ENCODING structure: this is used to save the received encoding of an
13148  * ASN1 type. This is useful to get round problems with invalid encodings
13149  * which can break signatures.
13150  */
13151 
13152 typedef struct ASN1_ENCODING_st {
13153     unsigned char *enc; /* DER encoding */
13154     long len; /* Length of encoding */
13155     int modified; /* set to 1 if 'enc' is invalid */
13156 } ASN1_ENCODING;
13157 
13158 /* Used with ASN1 LONG type: if a long is set to this it is omitted */
13159 # 272 "/usr/include/openssl/asn1.h" 3 4
13160 typedef struct asn1_string_table_st {
13161     int nid;
13162     long minsize;
13163     long maxsize;
13164     unsigned long mask;
13165     unsigned long flags;
13166 } ASN1_STRING_TABLE;
13167 
13168 struct stack_st_ASN1_STRING_TABLE { _STACK stack; };
13169 
13170 /* size limits: this stuff is taken straight from RFC2459 */
13171 # 293 "/usr/include/openssl/asn1.h" 3 4
13172 /*
13173  * Declarations for template structures: for full definitions see asn1t.h
13174  */
13175 typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE;
13176 typedef struct ASN1_TLC_st ASN1_TLC;
13177 /* This is just an opaque pointer */
13178 typedef struct ASN1_VALUE_st ASN1_VALUE;
13179 
13180 /* Declare ASN1 functions: the implement macro in in asn1t.h */
13181 # 363 "/usr/include/openssl/asn1.h" 3 4
13182 typedef void *d2i_of_void(void **,const unsigned char **,long); typedef int i2d_of_void(void *,unsigned char **);
13183 
13184 /*-
13185  * The following macros and typedefs allow an ASN1_ITEM
13186  * to be embedded in a structure and referenced. Since
13187  * the ASN1_ITEM pointers need to be globally accessible
13188  * (possibly from shared libraries) they may exist in
13189  * different forms. On platforms that support it the
13190  * ASN1_ITEM structure itself will be globally exported.
13191  * Other platforms will export a function that returns
13192  * an ASN1_ITEM pointer.
13193  *
13194  * To handle both cases transparently the macros below
13195  * should be used instead of hard coding an ASN1_ITEM
13196  * pointer in a structure.
13197  *
13198  * The structure will look like this:
13199  *
13200  * typedef struct SOMETHING_st {
13201  *      ...
13202  *      ASN1_ITEM_EXP *iptr;
13203  *      ...
13204  * } SOMETHING;
13205  *
13206  * It would be initialised as e.g.:
13207  *
13208  * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...};
13209  *
13210  * and the actual pointer extracted with:
13211  *
13212  * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr);
13213  *
13214  * Finally an ASN1_ITEM pointer can be extracted from an
13215  * appropriate reference with: ASN1_ITEM_rptr(X509). This
13216  * would be used when a function takes an ASN1_ITEM * argument.
13217  *
13218  */
13219 
13220 
13221 
13222 /* ASN1_ITEM pointer exported type */
13223 typedef const ASN1_ITEM ASN1_ITEM_EXP;
13224 
13225 /* Macro to obtain ASN1_ITEM pointer from exported type */
13226 
13227 
13228 /* Macro to include ASN1_ITEM pointer from base type */
13229 # 440 "/usr/include/openssl/asn1.h" 3 4
13230 /* Parameters used by ASN1_STRING_print_ex() */
13231 
13232 /*
13233  * These determine which characters to escape: RFC2253 special characters,
13234  * control characters and MSB set characters
13235  */
13236 
13237 
13238 
13239 
13240 
13241 /*
13242  * This flag determines how we do escaping: normally RC2253 backslash only,
13243  * set this to use backslash and quote.
13244  */
13245 
13246 
13247 
13248 /* These three flags are internal use only. */
13249 
13250 /* Character is a valid PrintableString character */
13251 
13252 /* Character needs escaping if it is the first character */
13253 
13254 /* Character needs escaping if it is the last character */
13255 
13256 
13257 /*
13258  * NB the internal flags are safely reused below by flags handled at the top
13259  * level.
13260  */
13261 
13262 /*
13263  * If this is set we convert all character strings to UTF8 first
13264  */
13265 
13266 
13267 
13268 /*
13269  * If this is set we don't attempt to interpret content: just assume all
13270  * strings are 1 byte per character. This will produce some pretty odd
13271  * looking output!
13272  */
13273 
13274 
13275 
13276 /* If this is set we include the string type in the output */
13277 
13278 
13279 /*
13280  * This determines which strings to display and which to 'dump' (hex dump of
13281  * content octets or DER encoding). We can only dump non character strings or
13282  * everything. If we don't dump 'unknown' they are interpreted as character
13283  * strings with 1 octet per character and are subject to the usual escaping
13284  * options.
13285  */
13286 
13287 
13288 
13289 
13290 /*
13291  * These determine what 'dumping' does, we can dump the content octets or the
13292  * DER encoding: both use the RFC2253 #XXXXX notation.
13293  */
13294 
13295 
13296 
13297 /*
13298  * All the string flags consistent with RFC2253, escaping control characters
13299  * isn't essential in RFC2253 but it is advisable anyway.
13300  */
13301 # 519 "/usr/include/openssl/asn1.h" 3 4
13302 struct stack_st_ASN1_INTEGER { _STACK stack; };
13303 
13304 
13305 struct stack_st_ASN1_GENERALSTRING { _STACK stack; };
13306 
13307 typedef struct asn1_type_st {
13308     int type;
13309     union {
13310         char *ptr;
13311         ASN1_BOOLEAN boolean;
13312         ASN1_STRING *asn1_string;
13313         ASN1_OBJECT *object;
13314         ASN1_INTEGER *integer;
13315         ASN1_ENUMERATED *enumerated;
13316         ASN1_BIT_STRING *bit_string;
13317         ASN1_OCTET_STRING *octet_string;
13318         ASN1_PRINTABLESTRING *printablestring;
13319         ASN1_T61STRING *t61string;
13320         ASN1_IA5STRING *ia5string;
13321         ASN1_GENERALSTRING *generalstring;
13322         ASN1_BMPSTRING *bmpstring;
13323         ASN1_UNIVERSALSTRING *universalstring;
13324         ASN1_UTCTIME *utctime;
13325         ASN1_GENERALIZEDTIME *generalizedtime;
13326         ASN1_VISIBLESTRING *visiblestring;
13327         ASN1_UTF8STRING *utf8string;
13328         /*
13329          * set and sequence are left complete and still contain the set or
13330          * sequence bytes
13331          */
13332         ASN1_STRING *set;
13333         ASN1_STRING *sequence;
13334         ASN1_VALUE *asn1_value;
13335     } value;
13336 } ASN1_TYPE;
13337 
13338 struct stack_st_ASN1_TYPE { _STACK stack; };
13339 
13340 
13341 typedef struct stack_st_ASN1_TYPE ASN1_SEQUENCE_ANY;
13342 
13343 ASN1_SEQUENCE_ANY *d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); int i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); extern const ASN1_ITEM ASN1_SEQUENCE_ANY_it;
13344 ASN1_SEQUENCE_ANY *d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); int i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); extern const ASN1_ITEM ASN1_SET_ANY_it;
13345 
13346 typedef struct NETSCAPE_X509_st {
13347     ASN1_OCTET_STRING *header;
13348     X509 *cert;
13349 } NETSCAPE_X509;
13350 
13351 /* This is used to contain a list of bit names */
13352 typedef struct BIT_STRING_BITNAME_st {
13353     int bitnum;
13354     const char *lname;
13355     const char *sname;
13356 } BIT_STRING_BITNAME;
13357 
13358 
13359 
13360 
13361 
13362 
13363 /* Macros for string operations */
13364 # 772 "/usr/include/openssl/asn1.h" 3 4
13365   /* for the is_set parameter to i2d_ASN1_SET */
13366 
13367 
13368 
13369 ASN1_TYPE *ASN1_TYPE_new(void); void ASN1_TYPE_free(ASN1_TYPE *a); ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len); int i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out); extern const ASN1_ITEM ASN1_ANY_it;
13370 
13371 int ASN1_TYPE_get(ASN1_TYPE *a);
13372 void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value);
13373 int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value);
13374 int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b);
13375 
13376 ASN1_OBJECT *ASN1_OBJECT_new(void);
13377 void ASN1_OBJECT_free(ASN1_OBJECT *a);
13378 int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp);
13379 ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp,
13380                              long length);
13381 ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp,
13382                              long length);
13383 
13384 extern const ASN1_ITEM ASN1_OBJECT_it;
13385 
13386 struct stack_st_ASN1_OBJECT { _STACK stack; };
13387 
13388 
13389 ASN1_STRING *ASN1_STRING_new(void);
13390 void ASN1_STRING_free(ASN1_STRING *a);
13391 void ASN1_STRING_clear_free(ASN1_STRING *a);
13392 int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str);
13393 ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a);
13394 ASN1_STRING *ASN1_STRING_type_new(int type);
13395 int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b);
13396   /*
13397    * Since this is used to store all sorts of things, via macros, for now,
13398    * make its data void *
13399    */
13400 int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
13401 void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len);
13402 int ASN1_STRING_length(const ASN1_STRING *x);
13403 void ASN1_STRING_length_set(ASN1_STRING *x, int n);
13404 int ASN1_STRING_type(ASN1_STRING *x);
13405 unsigned char *ASN1_STRING_data(ASN1_STRING *x);
13406 
13407 ASN1_BIT_STRING *ASN1_BIT_STRING_new(void); void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a); ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len); int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_BIT_STRING_it;
13408 int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp);
13409 ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,
13410                                      const unsigned char **pp, long length);
13411 int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length);
13412 int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value);
13413 int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n);
13414 int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a,
13415                           unsigned char *flags, int flags_len);
13416 
13417 
13418 int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs,
13419                                BIT_STRING_BITNAME *tbl, int indent);
13420 
13421 int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl);
13422 int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value,
13423                             BIT_STRING_BITNAME *tbl);
13424 
13425 int i2d_ASN1_BOOLEAN(int a, unsigned char **pp);
13426 int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length);
13427 
13428 ASN1_INTEGER *ASN1_INTEGER_new(void); void ASN1_INTEGER_free(ASN1_INTEGER *a); ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len); int i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out); extern const ASN1_ITEM ASN1_INTEGER_it;
13429 int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp);
13430 ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp,
13431                                long length);
13432 ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp,
13433                                 long length);
13434 ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x);
13435 int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y);
13436 
13437 ASN1_ENUMERATED *ASN1_ENUMERATED_new(void); void ASN1_ENUMERATED_free(ASN1_ENUMERATED *a); ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len); int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out); extern const ASN1_ITEM ASN1_ENUMERATED_it;
13438 
13439 int ASN1_UTCTIME_check(const ASN1_UTCTIME *a);
13440 ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t);
13441 ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,
13442                                int offset_day, long offset_sec);
13443 int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str);
13444 int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t);
13445 
13446 
13447 
13448 
13449 int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a);
13450 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
13451                                                time_t t);
13452 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s,
13453                                                time_t t, int offset_day,
13454                                                long offset_sec);
13455 int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str);
13456 int ASN1_TIME_diff(int *pday, int *psec,
13457                    const ASN1_TIME *from, const ASN1_TIME *to);
13458 
13459 ASN1_OCTET_STRING *ASN1_OCTET_STRING_new(void); void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a); ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len); int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_OCTET_STRING_it;
13460 ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a);
13461 int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a,
13462                           const ASN1_OCTET_STRING *b);
13463 int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data,
13464                           int len);
13465 
13466 ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void); void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a); ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_VISIBLESTRING_it;
13467 ASN1_UNIVERSALSTRING *ASN1_UNIVERSALSTRING_new(void); void ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a); ASN1_UNIVERSALSTRING *d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_UNIVERSALSTRING_it;
13468 ASN1_UTF8STRING *ASN1_UTF8STRING_new(void); void ASN1_UTF8STRING_free(ASN1_UTF8STRING *a); ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len); int i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_UTF8STRING_it;
13469 ASN1_NULL *ASN1_NULL_new(void); void ASN1_NULL_free(ASN1_NULL *a); ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len); int i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out); extern const ASN1_ITEM ASN1_NULL_it;
13470 ASN1_BMPSTRING *ASN1_BMPSTRING_new(void); void ASN1_BMPSTRING_free(ASN1_BMPSTRING *a); ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len); int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_BMPSTRING_it;
13471 
13472 int UTF8_getc(const unsigned char *str, int len, unsigned long *val);
13473 int UTF8_putc(unsigned char *str, int len, unsigned long value);
13474 
13475 ASN1_STRING *ASN1_PRINTABLE_new(void); void ASN1_PRINTABLE_free(ASN1_STRING *a); ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_PRINTABLE_it;
13476 
13477 ASN1_STRING *DIRECTORYSTRING_new(void); void DIRECTORYSTRING_free(ASN1_STRING *a); ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM DIRECTORYSTRING_it;
13478 ASN1_STRING *DISPLAYTEXT_new(void); void DISPLAYTEXT_free(ASN1_STRING *a); ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM DISPLAYTEXT_it;
13479 ASN1_PRINTABLESTRING *ASN1_PRINTABLESTRING_new(void); void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a); ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_PRINTABLESTRING_it;
13480 ASN1_T61STRING *ASN1_T61STRING_new(void); void ASN1_T61STRING_free(ASN1_T61STRING *a); ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len); int i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_T61STRING_it;
13481 ASN1_IA5STRING *ASN1_IA5STRING_new(void); void ASN1_IA5STRING_free(ASN1_IA5STRING *a); ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len); int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_IA5STRING_it;
13482 ASN1_GENERALSTRING *ASN1_GENERALSTRING_new(void); void ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a); ASN1_GENERALSTRING *d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_GENERALSTRING_it;
13483 ASN1_UTCTIME *ASN1_UTCTIME_new(void); void ASN1_UTCTIME_free(ASN1_UTCTIME *a); ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len); int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_UTCTIME_it;
13484 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void); void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a); ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len); int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_GENERALIZEDTIME_it;
13485 ASN1_TIME *ASN1_TIME_new(void); void ASN1_TIME_free(ASN1_TIME *a); ASN1_TIME *d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len); int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_TIME_it;
13486 
13487 extern const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it;
13488 
13489 ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t);
13490 ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,
13491                          int offset_day, long offset_sec);
13492 int ASN1_TIME_check(ASN1_TIME *t);
13493 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME
13494                                                    **out);
13495 int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
13496 
13497 int i2d_ASN1_SET(struct stack_st_OPENSSL_BLOCK *a, unsigned char **pp,
13498                  i2d_of_void *i2d, int ex_tag, int ex_class, int is_set);
13499 struct stack_st_OPENSSL_BLOCK *d2i_ASN1_SET(struct stack_st_OPENSSL_BLOCK **a,
13500                                       const unsigned char **pp,
13501                                       long length, d2i_of_void *d2i,
13502                                       void (*free_func) (OPENSSL_BLOCK),
13503                                       int ex_tag, int ex_class);
13504 
13505 
13506 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
13507 int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size);
13508 int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a);
13509 int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size);
13510 int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a);
13511 int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size);
13512 int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type);
13513 
13514 int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a);
13515 
13516 int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num);
13517 ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len,
13518                                 const char *sn, const char *ln);
13519 
13520 int ASN1_INTEGER_set(ASN1_INTEGER *a, long v);
13521 long ASN1_INTEGER_get(const ASN1_INTEGER *a);
13522 ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai);
13523 BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn);
13524 
13525 int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);
13526 long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a);
13527 ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai);
13528 BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn);
13529 
13530 /* General */
13531 /* given a string, return the correct type, max is the maximum length */
13532 int ASN1_PRINTABLE_type(const unsigned char *s, int max);
13533 
13534 int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass);
13535 ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp,
13536                             long length, int Ptag, int Pclass);
13537 unsigned long ASN1_tag2bit(int tag);
13538 /* type is one or more of the B_ASN1_ values. */
13539 ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp,
13540                                  long length, int type);
13541 
13542 /* PARSING */
13543 int asn1_Finish(ASN1_CTX *c);
13544 int asn1_const_Finish(ASN1_const_CTX *c);
13545 
13546 /* SPECIALS */
13547 int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag,
13548                     int *pclass, long omax);
13549 int ASN1_check_infinite_end(unsigned char **p, long len);
13550 int ASN1_const_check_infinite_end(const unsigned char **p, long len);
13551 void ASN1_put_object(unsigned char **pp, int constructed, int length,
13552                      int tag, int xclass);
13553 int ASN1_put_eoc(unsigned char **pp);
13554 int ASN1_object_size(int constructed, int length, int tag);
13555 
13556 /* Used to implement other functions */
13557 void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x);
13558 # 976 "/usr/include/openssl/asn1.h" 3 4
13559 void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
13560 
13561 /* ASN1 alloc/free macros for when a type is only used internally */
13562 
13563 
13564 
13565 
13566 
13567 
13568 void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x);
13569 
13570 
13571 
13572 
13573 
13574 
13575 
13576 void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
13577 int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x);
13578 # 1006 "/usr/include/openssl/asn1.h" 3 4
13579 int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);
13580 int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
13581 
13582 
13583 int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
13584 
13585 
13586 void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x);
13587 
13588 
13589 
13590 
13591 
13592 
13593 
13594 void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
13595 int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x);
13596 # 1034 "/usr/include/openssl/asn1.h" 3 4
13597 int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);
13598 int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a);
13599 int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a);
13600 int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a);
13601 int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v);
13602 int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags);
13603 int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num,
13604                   unsigned char *buf, int off);
13605 int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent);
13606 int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent,
13607                     int dump);
13608 
13609 const char *ASN1_tag2str(int tag);
13610 
13611 /* Used to load and write netscape format cert */
13612 
13613 NETSCAPE_X509 *NETSCAPE_X509_new(void); void NETSCAPE_X509_free(NETSCAPE_X509 *a); NETSCAPE_X509 *d2i_NETSCAPE_X509(NETSCAPE_X509 **a, const unsigned char **in, long len); int i2d_NETSCAPE_X509(NETSCAPE_X509 *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_X509_it;
13614 
13615 int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s);
13616 
13617 int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len);
13618 int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len);
13619 int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
13620                                   unsigned char *data, int len);
13621 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num,
13622                                   unsigned char *data, int max_len);
13623 
13624 struct stack_st_OPENSSL_BLOCK *ASN1_seq_unpack(const unsigned char *buf, int len,
13625                                          d2i_of_void *d2i,
13626                                          void (*free_func) (OPENSSL_BLOCK));
13627 unsigned char *ASN1_seq_pack(struct stack_st_OPENSSL_BLOCK *safes, i2d_of_void *i2d,
13628                              unsigned char **buf, int *len);
13629 void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i);
13630 void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
13631 ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d,
13632                               ASN1_OCTET_STRING **oct);
13633 
13634 
13635 
13636 
13637 
13638 
13639 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it,
13640                             ASN1_OCTET_STRING **oct);
13641 
13642 void ASN1_STRING_set_default_mask(unsigned long mask);
13643 int ASN1_STRING_set_default_mask_asc(const char *p);
13644 unsigned long ASN1_STRING_get_default_mask(void);
13645 int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len,
13646                        int inform, unsigned long mask);
13647 int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
13648                         int inform, unsigned long mask,
13649                         long minsize, long maxsize);
13650 
13651 ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,
13652                                     const unsigned char *in, int inlen,
13653                                     int inform, int nid);
13654 ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid);
13655 int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long);
13656 void ASN1_STRING_TABLE_cleanup(void);
13657 
13658 /* ASN1 template functions */
13659 
13660 /* Old API compatible functions */
13661 ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it);
13662 void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
13663 ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in,
13664                           long len, const ASN1_ITEM *it);
13665 int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it);
13666 int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out,
13667                        const ASN1_ITEM *it);
13668 
13669 void ASN1_add_oid_module(void);
13670 
13671 ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf);
13672 ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf);
13673 
13674 /* ASN1 Print flags */
13675 
13676 /* Indicate missing OPTIONAL fields */
13677 
13678 /* Mark start and end of SEQUENCE */
13679 
13680 /* Mark start and end of SEQUENCE/SET OF */
13681 
13682 /* Show the ASN1 type of primitives */
13683 
13684 /* Don't show ASN1 type of ANY */
13685 
13686 /* Don't show ASN1 type of MSTRINGs */
13687 
13688 /* Don't show field names in SEQUENCE */
13689 
13690 /* Show structure names of each SEQUENCE field */
13691 
13692 /* Don't show structure name even at top level */
13693 
13694 
13695 int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent,
13696                     const ASN1_ITEM *it, const ASN1_PCTX *pctx);
13697 ASN1_PCTX *ASN1_PCTX_new(void);
13698 void ASN1_PCTX_free(ASN1_PCTX *p);
13699 unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p);
13700 void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags);
13701 unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p);
13702 void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags);
13703 unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p);
13704 void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags);
13705 unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p);
13706 void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags);
13707 unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p);
13708 void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags);
13709 
13710 BIO_METHOD *BIO_f_asn1(void);
13711 
13712 BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it);
13713 
13714 int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,
13715                         const ASN1_ITEM *it);
13716 int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,
13717                               const char *hdr, const ASN1_ITEM *it);
13718 int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,
13719                      int ctype_nid, int econt_nid,
13720                      struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it);
13721 ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it);
13722 int SMIME_crlf_copy(BIO *in, BIO *out, int flags);
13723 int SMIME_text(BIO *in, BIO *out);
13724 
13725 /* BEGIN ERROR CODES */
13726 /*
13727  * The following lines are auto generated by the script mkerr.pl. Any changes
13728  * made after this point may be overwritten when the script is next run.
13729  */
13730 
13731 void ERR_load_ASN1_strings(void);
13732 
13733 /* Error codes for the ASN1 functions. */
13734 
13735 /* Function codes. */
13736 # 1298 "/usr/include/openssl/asn1.h" 3 4
13737 /* Reason codes. */
13738 # 966 "/usr/include/openssl/objects.h" 2 3 4
13739 # 984 "/usr/include/openssl/objects.h" 3 4
13740 typedef struct obj_name_st {
13741     int type;
13742     int alias;
13743     const char *name;
13744     const char *data;
13745 } OBJ_NAME;
13746 
13747 
13748 
13749 int OBJ_NAME_init(void);
13750 int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *),
13751                        int (*cmp_func) (const char *, const char *),
13752                        void (*free_func) (const char *, int, const char *));
13753 const char *OBJ_NAME_get(const char *name, int type);
13754 int OBJ_NAME_add(const char *name, int type, const char *data);
13755 int OBJ_NAME_remove(const char *name, int type);
13756 void OBJ_NAME_cleanup(int type); /* -1 for everything */
13757 void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg),
13758                      void *arg);
13759 void OBJ_NAME_do_all_sorted(int type,
13760                             void (*fn) (const OBJ_NAME *, void *arg),
13761                             void *arg);
13762 
13763 ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o);
13764 ASN1_OBJECT *OBJ_nid2obj(int n);
13765 const char *OBJ_nid2ln(int n);
13766 const char *OBJ_nid2sn(int n);
13767 int OBJ_obj2nid(const ASN1_OBJECT *o);
13768 ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name);
13769 int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name);
13770 int OBJ_txt2nid(const char *s);
13771 int OBJ_ln2nid(const char *s);
13772 int OBJ_sn2nid(const char *s);
13773 int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b);
13774 const void *OBJ_bsearch_(const void *key, const void *base, int num, int size,
13775                          int (*cmp) (const void *, const void *));
13776 const void *OBJ_bsearch_ex_(const void *key, const void *base, int num,
13777                             int size,
13778                             int (*cmp) (const void *, const void *),
13779                             int flags);
13780 # 1035 "/usr/include/openssl/objects.h" 3 4
13781 /*-
13782  * Unsolved problem: if a type is actually a pointer type, like
13783  * nid_triple is, then its impossible to get a const where you need
13784  * it. Consider:
13785  *
13786  * typedef int nid_triple[3];
13787  * const void *a_;
13788  * const nid_triple const *a = a_;
13789  *
13790  * The assignement discards a const because what you really want is:
13791  *
13792  * const int const * const *a = a_;
13793  *
13794  * But if you do that, you lose the fact that a is an array of 3 ints,
13795  * which breaks comparison functions.
13796  *
13797  * Thus we end up having to cast, sadly, or unpack the
13798  * declarations. Or, as I finally did in this case, delcare nid_triple
13799  * to be a struct, which it should have been in the first place.
13800  *
13801  * Ben, August 2008.
13802  *
13803  * Also, strictly speaking not all types need be const, but handling
13804  * the non-constness means a lot of complication, and in practice
13805  * comparison routines do always not touch their arguments.
13806  */
13807 # 1104 "/usr/include/openssl/objects.h" 3 4
13808 int OBJ_new_nid(int num);
13809 int OBJ_add_object(const ASN1_OBJECT *obj);
13810 int OBJ_create(const char *oid, const char *sn, const char *ln);
13811 void OBJ_cleanup(void);
13812 int OBJ_create_objects(BIO *in);
13813 
13814 int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid);
13815 int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid);
13816 int OBJ_add_sigid(int signid, int dig_id, int pkey_id);
13817 void OBJ_sigid_free(void);
13818 
13819 extern int obj_cleanup_defer;
13820 void check_defer(int nid);
13821 
13822 /* BEGIN ERROR CODES */
13823 /*
13824  * The following lines are auto generated by the script mkerr.pl. Any changes
13825  * made after this point may be overwritten when the script is next run.
13826  */
13827 void ERR_load_OBJ_strings(void);
13828 
13829 /* Error codes for the OBJ functions. */
13830 
13831 /* Function codes. */
13832 # 1136 "/usr/include/openssl/objects.h" 3 4
13833 /* Reason codes. */
13834 # 95 "/usr/include/openssl/evp.h" 2 3 4
13835 # 125 "/usr/include/openssl/evp.h" 3 4
13836 /*
13837  * Type needs to be a bit field Sub-type needs to be for variations on the
13838  * method, as in, can it do arbitrary encryption....
13839  */
13840 struct evp_pkey_st {
13841     int type;
13842     int save_type;
13843     int references;
13844     const EVP_PKEY_ASN1_METHOD *ameth;
13845     ENGINE *engine;
13846     union {
13847         char *ptr;
13848 
13849         struct rsa_st *rsa; /* RSA */
13850 
13851 
13852         struct dsa_st *dsa; /* DSA */
13853 
13854 
13855         struct dh_st *dh; /* DH */
13856 
13857 
13858         struct ec_key_st *ec; /* ECC */
13859 
13860     } pkey;
13861     int save_parameters;
13862     struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */
13863 } /* EVP_PKEY */ ;
13864 
13865 
13866 
13867 
13868 
13869 
13870 
13871 struct env_md_st {
13872     int type;
13873     int pkey_type;
13874     int md_size;
13875     unsigned long flags;
13876     int (*init) (EVP_MD_CTX *ctx);
13877     int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count);
13878     int (*final) (EVP_MD_CTX *ctx, unsigned char *md);
13879     int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from);
13880     int (*cleanup) (EVP_MD_CTX *ctx);
13881     /* FIXME: prototype these some day */
13882     int (*sign) (int type, const unsigned char *m, unsigned int m_length,
13883                  unsigned char *sigret, unsigned int *siglen, void *key);
13884     int (*verify) (int type, const unsigned char *m, unsigned int m_length,
13885                    const unsigned char *sigbuf, unsigned int siglen,
13886                    void *key);
13887     int required_pkey_type[5]; /* EVP_PKEY_xxx */
13888     int block_size;
13889     int ctx_size; /* how big does the ctx->md_data need to be */
13890     /* control function */
13891     int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2);
13892 } /* EVP_MD */ ;
13893 
13894 typedef int evp_sign_method(int type, const unsigned char *m,
13895                             unsigned int m_length, unsigned char *sigret,
13896                             unsigned int *siglen, void *key);
13897 typedef int evp_verify_method(int type, const unsigned char *m,
13898                               unsigned int m_length,
13899                               const unsigned char *sigbuf,
13900                               unsigned int siglen, void *key);
13901 
13902 /* digest can only handle a single block */
13903 
13904 
13905 /*
13906  * digest is a "clone" digest used
13907  * which is a copy of an existing
13908  * one for a specific public key type.
13909  * EVP_dss1() etc
13910  */
13911 
13912 
13913 /* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */
13914 
13915 
13916 
13917 /* DigestAlgorithmIdentifier flags... */
13918 
13919 
13920 
13921 /* NULL or absent parameter accepted. Use NULL */
13922 
13923 
13924 
13925 /* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */
13926 
13927 
13928 
13929 /* Custom handling via ctrl */
13930 
13931 
13932 
13933 /* Note if suitable for use in FIPS mode */
13934 
13935 
13936 /* Digest ctrls */
13937 
13938 
13939 
13940 
13941 /* Minimum Algorithm specific ctrl value */
13942 # 268 "/usr/include/openssl/evp.h" 3 4
13943 struct env_md_ctx_st {
13944     const EVP_MD *digest;
13945     ENGINE *engine; /* functional reference if 'digest' is
13946                                  * ENGINE-provided */
13947     unsigned long flags;
13948     void *md_data;
13949     /* Public key context for sign/verify */
13950     EVP_PKEY_CTX *pctx;
13951     /* Update function: usually copied from EVP_MD */
13952     int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count);
13953 } /* EVP_MD_CTX */ ;
13954 
13955 /* values for EVP_MD_CTX flags */
13956 
13957 
13958 
13959 
13960 
13961 
13962 
13963 /*
13964  * FIPS and pad options are ignored in 1.0.0, definitions are here so we
13965  * don't accidentally reuse the values for other purposes.
13966  */
13967 
13968 
13969 
13970 
13971 /*
13972  * The following PAD options are also currently ignored in 1.0.0, digest
13973  * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*()
13974  * instead.
13975  */
13976 
13977 
13978 
13979 
13980 
13981 
13982 
13983 struct evp_cipher_st {
13984     int nid;
13985     int block_size;
13986     /* Default value for variable length ciphers */
13987     int key_len;
13988     int iv_len;
13989     /* Various flags */
13990     unsigned long flags;
13991     /* init key */
13992     int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key,
13993                  const unsigned char *iv, int enc);
13994     /* encrypt/decrypt data */
13995     int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out,
13996                       const unsigned char *in, size_t inl);
13997     /* cleanup ctx */
13998     int (*cleanup) (EVP_CIPHER_CTX *);
13999     /* how big ctx->cipher_data needs to be */
14000     int ctx_size;
14001     /* Populate a ASN1_TYPE with parameters */
14002     int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *);
14003     /* Get parameters from a ASN1_TYPE */
14004     int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *);
14005     /* Miscellaneous operations */
14006     int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr);
14007     /* Application data */
14008     void *app_data;
14009 } /* EVP_CIPHER */ ;
14010 
14011 /* Values for cipher flags */
14012 
14013 /* Modes for ciphers */
14014 # 351 "/usr/include/openssl/evp.h" 3 4
14015 /* Set if variable length cipher */
14016 
14017 /* Set if the iv handling should be done by the cipher itself */
14018 
14019 /* Set if the cipher's init() function should be called if key is NULL */
14020 
14021 /* Call ctrl() to init cipher parameters */
14022 
14023 /* Don't use standard key length function */
14024 
14025 /* Don't use standard block padding */
14026 
14027 /* cipher handles random key generation */
14028 
14029 /* cipher has its own additional copying logic */
14030 
14031 /* Allow use default ASN1 get/set iv */
14032 
14033 /* Buffer length in bits not bytes: CFB1 mode only */
14034 
14035 /* Note if suitable for use in FIPS mode */
14036 
14037 /* Allow non FIPS cipher in FIPS mode */
14038 
14039 /*
14040  * Cipher handles any and all padding logic as well as finalisation.
14041  */
14042 
14043 
14044 
14045 
14046 /*
14047  * Cipher context flag to indicate we can handle wrap mode: if allowed in
14048  * older applications it could overflow buffers.
14049  */
14050 
14051 
14052 
14053 /* ctrl() values */
14054 # 410 "/usr/include/openssl/evp.h" 3 4
14055 /*
14056  * AEAD cipher deduces payload length and returns number of bytes required to
14057  * store MAC and eventual padding. Subsequent call to EVP_Cipher even
14058  * appends/verifies MAC.
14059  */
14060 
14061 /* Used by composite AEAD ciphers, no-op in GCM, CCM... */
14062 
14063 /* Set the GCM invocation field, decrypt only */
14064 
14065 
14066 
14067 
14068 
14069 
14070 
14071 /* RFC 5246 defines additional data to be 13 bytes in length */
14072 
14073 
14074 typedef struct {
14075     unsigned char *out;
14076     const unsigned char *inp;
14077     size_t len;
14078     unsigned int interleave;
14079 } EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM;
14080 
14081 /* GCM TLS constants */
14082 /* Length of fixed part of IV derived from PRF */
14083 
14084 /* Length of explicit part of IV part of TLS records */
14085 
14086 /* Length of tag for TLS */
14087 
14088 
14089 typedef struct evp_cipher_info_st {
14090     const EVP_CIPHER *cipher;
14091     unsigned char iv[16];
14092 } EVP_CIPHER_INFO;
14093 
14094 struct evp_cipher_ctx_st {
14095     const EVP_CIPHER *cipher;
14096     ENGINE *engine; /* functional reference if 'cipher' is
14097                                  * ENGINE-provided */
14098     int encrypt; /* encrypt or decrypt */
14099     int buf_len; /* number we have left */
14100     unsigned char oiv[16]; /* original iv */
14101     unsigned char iv[16]; /* working iv */
14102     unsigned char buf[32]; /* saved partial block */
14103     int num; /* used by cfb/ofb/ctr mode */
14104     void *app_data; /* application stuff */
14105     int key_len; /* May change for variable length cipher */
14106     unsigned long flags; /* Various flags */
14107     void *cipher_data; /* per EVP data */
14108     int final_used;
14109     int block_mask;
14110     unsigned char final[32]; /* possible final block */
14111 } /* EVP_CIPHER_CTX */ ;
14112 
14113 typedef struct evp_Encode_Ctx_st {
14114     /* number saved in a partial encode/decode */
14115     int num;
14116     /*
14117      * The length is either the output line length (in input bytes) or the
14118      * shortest input line length that is ok.  Once decoding begins, the
14119      * length is adjusted up each time a longer line is decoded
14120      */
14121     int length;
14122     /* data to encode */
14123     unsigned char enc_data[80];
14124     /* number read on current line */
14125     int line_num;
14126     int expect_nl;
14127 } EVP_ENCODE_CTX;
14128 
14129 /* Password based encryption function */
14130 typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
14131                               int passlen, ASN1_TYPE *param,
14132                               const EVP_CIPHER *cipher, const EVP_MD *md,
14133                               int en_de);
14134 # 510 "/usr/include/openssl/evp.h" 3 4
14135 /* Add some extra combinations */
14136 
14137 
14138 
14139 
14140 
14141 int EVP_MD_type(const EVP_MD *md);
14142 
14143 
14144 int EVP_MD_pkey_type(const EVP_MD *md);
14145 int EVP_MD_size(const EVP_MD *md);
14146 int EVP_MD_block_size(const EVP_MD *md);
14147 unsigned long EVP_MD_flags(const EVP_MD *md);
14148 
14149 const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
14150 
14151 
14152 
14153 
14154 int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
14155 
14156 int EVP_CIPHER_block_size(const EVP_CIPHER *cipher);
14157 int EVP_CIPHER_key_length(const EVP_CIPHER *cipher);
14158 int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher);
14159 unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher);
14160 
14161 
14162 const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx);
14163 int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
14164 int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx);
14165 int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
14166 int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
14167 int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in);
14168 void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
14169 void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data);
14170 
14171 unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx);
14172 # 574 "/usr/include/openssl/evp.h" 3 4
14173 int EVP_Cipher(EVP_CIPHER_CTX *c,
14174                unsigned char *out, const unsigned char *in, unsigned int inl);
14175 # 586 "/usr/include/openssl/evp.h" 3 4
14176 void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
14177 int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
14178 EVP_MD_CTX *EVP_MD_CTX_create(void);
14179 void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
14180 int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
14181 void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
14182 void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
14183 int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);
14184 int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
14185 int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
14186 int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s);
14187 int EVP_Digest(const void *data, size_t count,
14188                unsigned char *md, unsigned int *size, const EVP_MD *type,
14189                ENGINE *impl);
14190 
14191 int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);
14192 int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
14193 int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s);
14194 
14195 int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify);
14196 int EVP_read_pw_string_min(char *buf, int minlen, int maxlen,
14197                            const char *prompt, int verify);
14198 void EVP_set_pw_prompt(const char *prompt);
14199 char *EVP_get_pw_prompt(void);
14200 
14201 int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
14202                    const unsigned char *salt, const unsigned char *data,
14203                    int datal, int count, unsigned char *key,
14204                    unsigned char *iv);
14205 
14206 void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags);
14207 void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags);
14208 int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags);
14209 
14210 int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
14211                     const unsigned char *key, const unsigned char *iv);
14212 int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
14213                        ENGINE *impl, const unsigned char *key,
14214                        const unsigned char *iv);
14215 int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
14216                       const unsigned char *in, int inl);
14217 int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
14218 int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
14219 
14220 int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
14221                     const unsigned char *key, const unsigned char *iv);
14222 int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
14223                        ENGINE *impl, const unsigned char *key,
14224                        const unsigned char *iv);
14225 int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
14226                       const unsigned char *in, int inl);
14227 int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
14228 int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
14229 
14230 int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
14231                    const unsigned char *key, const unsigned char *iv,
14232                    int enc);
14233 int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
14234                       ENGINE *impl, const unsigned char *key,
14235                       const unsigned char *iv, int enc);
14236 int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
14237                      const unsigned char *in, int inl);
14238 int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
14239 int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
14240 
14241 int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s,
14242                   EVP_PKEY *pkey);
14243 
14244 int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf,
14245                     unsigned int siglen, EVP_PKEY *pkey);
14246 
14247 int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
14248                        const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey);
14249 int EVP_DigestSignFinal(EVP_MD_CTX *ctx,
14250                         unsigned char *sigret, size_t *siglen);
14251 
14252 int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
14253                          const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey);
14254 int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx,
14255                           const unsigned char *sig, size_t siglen);
14256 
14257 int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
14258                  const unsigned char *ek, int ekl, const unsigned char *iv,
14259                  EVP_PKEY *priv);
14260 int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
14261 
14262 int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
14263                  unsigned char **ek, int *ekl, unsigned char *iv,
14264                  EVP_PKEY **pubk, int npubk);
14265 int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
14266 
14267 void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
14268 void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
14269                       const unsigned char *in, int inl);
14270 void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl);
14271 int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n);
14272 
14273 void EVP_DecodeInit(EVP_ENCODE_CTX *ctx);
14274 int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
14275                      const unsigned char *in, int inl);
14276 int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned
14277                     char *out, int *outl);
14278 int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);
14279 
14280 void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
14281 int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
14282 EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
14283 void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
14284 int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
14285 int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
14286 int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
14287 int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key);
14288 
14289 
14290 BIO_METHOD *BIO_f_md(void);
14291 BIO_METHOD *BIO_f_base64(void);
14292 BIO_METHOD *BIO_f_cipher(void);
14293 BIO_METHOD *BIO_f_reliable(void);
14294 void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k,
14295                     const unsigned char *i, int enc);
14296 
14297 
14298 const EVP_MD *EVP_md_null(void);
14299 
14300 const EVP_MD *EVP_md2(void);
14301 
14302 
14303 const EVP_MD *EVP_md4(void);
14304 
14305 
14306 const EVP_MD *EVP_md5(void);
14307 
14308 
14309 const EVP_MD *EVP_sha(void);
14310 const EVP_MD *EVP_sha1(void);
14311 const EVP_MD *EVP_dss(void);
14312 const EVP_MD *EVP_dss1(void);
14313 const EVP_MD *EVP_ecdsa(void);
14314 
14315 
14316 const EVP_MD *EVP_sha224(void);
14317 const EVP_MD *EVP_sha256(void);
14318 
14319 
14320 const EVP_MD *EVP_sha384(void);
14321 const EVP_MD *EVP_sha512(void);
14322 
14323 
14324 
14325 
14326 
14327 const EVP_MD *EVP_ripemd160(void);
14328 
14329 
14330 
14331 
14332 const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
14333 
14334 const EVP_CIPHER *EVP_des_ecb(void);
14335 const EVP_CIPHER *EVP_des_ede(void);
14336 const EVP_CIPHER *EVP_des_ede3(void);
14337 const EVP_CIPHER *EVP_des_ede_ecb(void);
14338 const EVP_CIPHER *EVP_des_ede3_ecb(void);
14339 const EVP_CIPHER *EVP_des_cfb64(void);
14340 
14341 const EVP_CIPHER *EVP_des_cfb1(void);
14342 const EVP_CIPHER *EVP_des_cfb8(void);
14343 const EVP_CIPHER *EVP_des_ede_cfb64(void);
14344 
14345 
14346 
14347 
14348 
14349 const EVP_CIPHER *EVP_des_ede3_cfb64(void);
14350 
14351 const EVP_CIPHER *EVP_des_ede3_cfb1(void);
14352 const EVP_CIPHER *EVP_des_ede3_cfb8(void);
14353 const EVP_CIPHER *EVP_des_ofb(void);
14354 const EVP_CIPHER *EVP_des_ede_ofb(void);
14355 const EVP_CIPHER *EVP_des_ede3_ofb(void);
14356 const EVP_CIPHER *EVP_des_cbc(void);
14357 const EVP_CIPHER *EVP_des_ede_cbc(void);
14358 const EVP_CIPHER *EVP_des_ede3_cbc(void);
14359 const EVP_CIPHER *EVP_desx_cbc(void);
14360 const EVP_CIPHER *EVP_des_ede3_wrap(void);
14361 /*
14362  * This should now be supported through the dev_crypto ENGINE. But also, why
14363  * are rc4 and md5 declarations made here inside a "NO_DES" precompiler
14364  * branch?
14365  */
14366 # 785 "/usr/include/openssl/evp.h" 3 4
14367 const EVP_CIPHER *EVP_rc4(void);
14368 const EVP_CIPHER *EVP_rc4_40(void);
14369 
14370 const EVP_CIPHER *EVP_rc4_hmac_md5(void);
14371 # 799 "/usr/include/openssl/evp.h" 3 4
14372 const EVP_CIPHER *EVP_rc2_ecb(void);
14373 const EVP_CIPHER *EVP_rc2_cbc(void);
14374 const EVP_CIPHER *EVP_rc2_40_cbc(void);
14375 const EVP_CIPHER *EVP_rc2_64_cbc(void);
14376 const EVP_CIPHER *EVP_rc2_cfb64(void);
14377 
14378 const EVP_CIPHER *EVP_rc2_ofb(void);
14379 
14380 
14381 const EVP_CIPHER *EVP_bf_ecb(void);
14382 const EVP_CIPHER *EVP_bf_cbc(void);
14383 const EVP_CIPHER *EVP_bf_cfb64(void);
14384 
14385 const EVP_CIPHER *EVP_bf_ofb(void);
14386 
14387 
14388 const EVP_CIPHER *EVP_cast5_ecb(void);
14389 const EVP_CIPHER *EVP_cast5_cbc(void);
14390 const EVP_CIPHER *EVP_cast5_cfb64(void);
14391 
14392 const EVP_CIPHER *EVP_cast5_ofb(void);
14393 # 829 "/usr/include/openssl/evp.h" 3 4
14394 const EVP_CIPHER *EVP_aes_128_ecb(void);
14395 const EVP_CIPHER *EVP_aes_128_cbc(void);
14396 const EVP_CIPHER *EVP_aes_128_cfb1(void);
14397 const EVP_CIPHER *EVP_aes_128_cfb8(void);
14398 const EVP_CIPHER *EVP_aes_128_cfb128(void);
14399 
14400 const EVP_CIPHER *EVP_aes_128_ofb(void);
14401 const EVP_CIPHER *EVP_aes_128_ctr(void);
14402 const EVP_CIPHER *EVP_aes_128_ccm(void);
14403 const EVP_CIPHER *EVP_aes_128_gcm(void);
14404 const EVP_CIPHER *EVP_aes_128_xts(void);
14405 const EVP_CIPHER *EVP_aes_128_wrap(void);
14406 const EVP_CIPHER *EVP_aes_192_ecb(void);
14407 const EVP_CIPHER *EVP_aes_192_cbc(void);
14408 const EVP_CIPHER *EVP_aes_192_cfb1(void);
14409 const EVP_CIPHER *EVP_aes_192_cfb8(void);
14410 const EVP_CIPHER *EVP_aes_192_cfb128(void);
14411 
14412 const EVP_CIPHER *EVP_aes_192_ofb(void);
14413 const EVP_CIPHER *EVP_aes_192_ctr(void);
14414 const EVP_CIPHER *EVP_aes_192_ccm(void);
14415 const EVP_CIPHER *EVP_aes_192_gcm(void);
14416 const EVP_CIPHER *EVP_aes_192_wrap(void);
14417 const EVP_CIPHER *EVP_aes_256_ecb(void);
14418 const EVP_CIPHER *EVP_aes_256_cbc(void);
14419 const EVP_CIPHER *EVP_aes_256_cfb1(void);
14420 const EVP_CIPHER *EVP_aes_256_cfb8(void);
14421 const EVP_CIPHER *EVP_aes_256_cfb128(void);
14422 
14423 const EVP_CIPHER *EVP_aes_256_ofb(void);
14424 const EVP_CIPHER *EVP_aes_256_ctr(void);
14425 const EVP_CIPHER *EVP_aes_256_ccm(void);
14426 const EVP_CIPHER *EVP_aes_256_gcm(void);
14427 const EVP_CIPHER *EVP_aes_256_xts(void);
14428 const EVP_CIPHER *EVP_aes_256_wrap(void);
14429 
14430 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void);
14431 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void);
14432 
14433 
14434 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void);
14435 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void);
14436 
14437 
14438 
14439 const EVP_CIPHER *EVP_camellia_128_ecb(void);
14440 const EVP_CIPHER *EVP_camellia_128_cbc(void);
14441 const EVP_CIPHER *EVP_camellia_128_cfb1(void);
14442 const EVP_CIPHER *EVP_camellia_128_cfb8(void);
14443 const EVP_CIPHER *EVP_camellia_128_cfb128(void);
14444 
14445 const EVP_CIPHER *EVP_camellia_128_ofb(void);
14446 const EVP_CIPHER *EVP_camellia_192_ecb(void);
14447 const EVP_CIPHER *EVP_camellia_192_cbc(void);
14448 const EVP_CIPHER *EVP_camellia_192_cfb1(void);
14449 const EVP_CIPHER *EVP_camellia_192_cfb8(void);
14450 const EVP_CIPHER *EVP_camellia_192_cfb128(void);
14451 
14452 const EVP_CIPHER *EVP_camellia_192_ofb(void);
14453 const EVP_CIPHER *EVP_camellia_256_ecb(void);
14454 const EVP_CIPHER *EVP_camellia_256_cbc(void);
14455 const EVP_CIPHER *EVP_camellia_256_cfb1(void);
14456 const EVP_CIPHER *EVP_camellia_256_cfb8(void);
14457 const EVP_CIPHER *EVP_camellia_256_cfb128(void);
14458 
14459 const EVP_CIPHER *EVP_camellia_256_ofb(void);
14460 # 905 "/usr/include/openssl/evp.h" 3 4
14461 void OPENSSL_add_all_algorithms_noconf(void);
14462 void OPENSSL_add_all_algorithms_conf(void);
14463 # 916 "/usr/include/openssl/evp.h" 3 4
14464 void OpenSSL_add_all_ciphers(void);
14465 void OpenSSL_add_all_digests(void);
14466 
14467 
14468 
14469 
14470 int EVP_add_cipher(const EVP_CIPHER *cipher);
14471 int EVP_add_digest(const EVP_MD *digest);
14472 
14473 const EVP_CIPHER *EVP_get_cipherbyname(const char *name);
14474 const EVP_MD *EVP_get_digestbyname(const char *name);
14475 void EVP_cleanup(void);
14476 
14477 void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph,
14478                                    const char *from, const char *to, void *x),
14479                        void *arg);
14480 void EVP_CIPHER_do_all_sorted(void (*fn)
14481                                (const EVP_CIPHER *ciph, const char *from,
14482                                 const char *to, void *x), void *arg);
14483 
14484 void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph,
14485                                const char *from, const char *to, void *x),
14486                    void *arg);
14487 void EVP_MD_do_all_sorted(void (*fn)
14488                            (const EVP_MD *ciph, const char *from,
14489                             const char *to, void *x), void *arg);
14490 
14491 int EVP_PKEY_decrypt_old(unsigned char *dec_key,
14492                          const unsigned char *enc_key, int enc_key_len,
14493                          EVP_PKEY *private_key);
14494 int EVP_PKEY_encrypt_old(unsigned char *enc_key,
14495                          const unsigned char *key, int key_len,
14496                          EVP_PKEY *pub_key);
14497 int EVP_PKEY_type(int type);
14498 int EVP_PKEY_id(const EVP_PKEY *pkey);
14499 int EVP_PKEY_base_id(const EVP_PKEY *pkey);
14500 int EVP_PKEY_bits(EVP_PKEY *pkey);
14501 int EVP_PKEY_size(EVP_PKEY *pkey);
14502 int EVP_PKEY_set_type(EVP_PKEY *pkey, int type);
14503 int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len);
14504 int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key);
14505 void *EVP_PKEY_get0(EVP_PKEY *pkey);
14506 
14507 
14508 struct rsa_st;
14509 int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key);
14510 struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
14511 
14512 
14513 struct dsa_st;
14514 int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key);
14515 struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey);
14516 
14517 
14518 struct dh_st;
14519 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key);
14520 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
14521 
14522 
14523 struct ec_key_st;
14524 int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key);
14525 struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
14526 
14527 
14528 EVP_PKEY *EVP_PKEY_new(void);
14529 void EVP_PKEY_free(EVP_PKEY *pkey);
14530 
14531 EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp,
14532                         long length);
14533 int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp);
14534 
14535 EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
14536                          long length);
14537 EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,
14538                              long length);
14539 int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp);
14540 
14541 int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from);
14542 int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);
14543 int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode);
14544 int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
14545 
14546 int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
14547 
14548 int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey,
14549                           int indent, ASN1_PCTX *pctx);
14550 int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey,
14551                            int indent, ASN1_PCTX *pctx);
14552 int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey,
14553                           int indent, ASN1_PCTX *pctx);
14554 
14555 int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid);
14556 
14557 int EVP_CIPHER_type(const EVP_CIPHER *ctx);
14558 
14559 /* calls methods */
14560 int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
14561 int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
14562 
14563 /* These are used by EVP_CIPHER methods */
14564 int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
14565 int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
14566 
14567 /* PKCS5 password based encryption */
14568 int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
14569                        ASN1_TYPE *param, const EVP_CIPHER *cipher,
14570                        const EVP_MD *md, int en_de);
14571 int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,
14572                            const unsigned char *salt, int saltlen, int iter,
14573                            int keylen, unsigned char *out);
14574 int PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
14575                       const unsigned char *salt, int saltlen, int iter,
14576                       const EVP_MD *digest, int keylen, unsigned char *out);
14577 int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
14578                           ASN1_TYPE *param, const EVP_CIPHER *cipher,
14579                           const EVP_MD *md, int en_de);
14580 
14581 void PKCS5_PBE_add(void);
14582 
14583 int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
14584                        ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de);
14585 
14586 /* PBE type */
14587 
14588 /* Can appear as the outermost AlgorithmIdentifier */
14589 
14590 /* Is an PRF type OID */
14591 
14592 
14593 int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid,
14594                          int md_nid, EVP_PBE_KEYGEN *keygen);
14595 int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,
14596                     EVP_PBE_KEYGEN *keygen);
14597 int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid,
14598                  EVP_PBE_KEYGEN **pkeygen);
14599 void EVP_PBE_cleanup(void);
14600 # 1064 "/usr/include/openssl/evp.h" 3 4
14601 int EVP_PKEY_asn1_get_count(void);
14602 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx);
14603 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type);
14604 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe,
14605                                                    const char *str, int len);
14606 int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth);
14607 int EVP_PKEY_asn1_add_alias(int to, int from);
14608 int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id,
14609                             int *ppkey_flags, const char **pinfo,
14610                             const char **ppem_str,
14611                             const EVP_PKEY_ASN1_METHOD *ameth);
14612 
14613 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey);
14614 EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags,
14615                                         const char *pem_str,
14616                                         const char *info);
14617 void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,
14618                         const EVP_PKEY_ASN1_METHOD *src);
14619 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth);
14620 void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,
14621                               int (*pub_decode) (EVP_PKEY *pk,
14622                                                  X509_PUBKEY *pub),
14623                               int (*pub_encode) (X509_PUBKEY *pub,
14624                                                  const EVP_PKEY *pk),
14625                               int (*pub_cmp) (const EVP_PKEY *a,
14626                                               const EVP_PKEY *b),
14627                               int (*pub_print) (BIO *out,
14628                                                 const EVP_PKEY *pkey,
14629                                                 int indent, ASN1_PCTX *pctx),
14630                               int (*pkey_size) (const EVP_PKEY *pk),
14631                               int (*pkey_bits) (const EVP_PKEY *pk));
14632 void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,
14633                                int (*priv_decode) (EVP_PKEY *pk,
14634                                                    PKCS8_PRIV_KEY_INFO
14635                                                    *p8inf),
14636                                int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8,
14637                                                    const EVP_PKEY *pk),
14638                                int (*priv_print) (BIO *out,
14639                                                   const EVP_PKEY *pkey,
14640                                                   int indent,
14641                                                   ASN1_PCTX *pctx));
14642 void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth,
14643                              int (*param_decode) (EVP_PKEY *pkey,
14644                                                   const unsigned char **pder,
14645                                                   int derlen),
14646                              int (*param_encode) (const EVP_PKEY *pkey,
14647                                                   unsigned char **pder),
14648                              int (*param_missing) (const EVP_PKEY *pk),
14649                              int (*param_copy) (EVP_PKEY *to,
14650                                                 const EVP_PKEY *from),
14651                              int (*param_cmp) (const EVP_PKEY *a,
14652                                                const EVP_PKEY *b),
14653                              int (*param_print) (BIO *out,
14654                                                  const EVP_PKEY *pkey,
14655                                                  int indent,
14656                                                  ASN1_PCTX *pctx));
14657 
14658 void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth,
14659                             void (*pkey_free) (EVP_PKEY *pkey));
14660 void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,
14661                             int (*pkey_ctrl) (EVP_PKEY *pkey, int op,
14662                                               long arg1, void *arg2));
14663 void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth,
14664                             int (*item_verify) (EVP_MD_CTX *ctx,
14665                                                 const ASN1_ITEM *it,
14666                                                 void *asn,
14667                                                 X509_ALGOR *a,
14668                                                 ASN1_BIT_STRING *sig,
14669                                                 EVP_PKEY *pkey),
14670                             int (*item_sign) (EVP_MD_CTX *ctx,
14671                                               const ASN1_ITEM *it,
14672                                               void *asn,
14673                                               X509_ALGOR *alg1,
14674                                               X509_ALGOR *alg2,
14675                                               ASN1_BIT_STRING *sig));
14676 # 1185 "/usr/include/openssl/evp.h" 3 4
14677 /* Used by GOST key encryption in TLS */
14678 # 1199 "/usr/include/openssl/evp.h" 3 4
14679 /*
14680  * Method handles all operations: don't assume any digest related defaults.
14681  */
14682 
14683 
14684 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type);
14685 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags);
14686 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,
14687                              const EVP_PKEY_METHOD *meth);
14688 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src);
14689 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth);
14690 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth);
14691 
14692 EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
14693 EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e);
14694 EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx);
14695 void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
14696 
14697 int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,
14698                       int cmd, int p1, void *p2);
14699 int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,
14700                           const char *value);
14701 
14702 int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx);
14703 void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen);
14704 
14705 EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e,
14706                                const unsigned char *key, int keylen);
14707 
14708 void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data);
14709 void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx);
14710 EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx);
14711 
14712 EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx);
14713 
14714 void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data);
14715 void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx);
14716 
14717 int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx);
14718 int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,
14719                   unsigned char *sig, size_t *siglen,
14720                   const unsigned char *tbs, size_t tbslen);
14721 int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx);
14722 int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,
14723                     const unsigned char *sig, size_t siglen,
14724                     const unsigned char *tbs, size_t tbslen);
14725 int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);
14726 int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,
14727                             unsigned char *rout, size_t *routlen,
14728                             const unsigned char *sig, size_t siglen);
14729 int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);
14730 int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,
14731                      unsigned char *out, size_t *outlen,
14732                      const unsigned char *in, size_t inlen);
14733 int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);
14734 int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,
14735                      unsigned char *out, size_t *outlen,
14736                      const unsigned char *in, size_t inlen);
14737 
14738 int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx);
14739 int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer);
14740 int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);
14741 
14742 typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx);
14743 
14744 int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx);
14745 int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
14746 int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx);
14747 int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
14748 
14749 void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb);
14750 EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx);
14751 
14752 int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx);
14753 
14754 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,
14755                             int (*init) (EVP_PKEY_CTX *ctx));
14756 
14757 void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth,
14758                             int (*copy) (EVP_PKEY_CTX *dst,
14759                                          EVP_PKEY_CTX *src));
14760 
14761 void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth,
14762                                void (*cleanup) (EVP_PKEY_CTX *ctx));
14763 
14764 void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth,
14765                                 int (*paramgen_init) (EVP_PKEY_CTX *ctx),
14766                                 int (*paramgen) (EVP_PKEY_CTX *ctx,
14767                                                  EVP_PKEY *pkey));
14768 
14769 void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth,
14770                               int (*keygen_init) (EVP_PKEY_CTX *ctx),
14771                               int (*keygen) (EVP_PKEY_CTX *ctx,
14772                                              EVP_PKEY *pkey));
14773 
14774 void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth,
14775                             int (*sign_init) (EVP_PKEY_CTX *ctx),
14776                             int (*sign) (EVP_PKEY_CTX *ctx,
14777                                          unsigned char *sig, size_t *siglen,
14778                                          const unsigned char *tbs,
14779                                          size_t tbslen));
14780 
14781 void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth,
14782                               int (*verify_init) (EVP_PKEY_CTX *ctx),
14783                               int (*verify) (EVP_PKEY_CTX *ctx,
14784                                              const unsigned char *sig,
14785                                              size_t siglen,
14786                                              const unsigned char *tbs,
14787                                              size_t tbslen));
14788 
14789 void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth,
14790                                       int (*verify_recover_init) (EVP_PKEY_CTX
14791                                                                   *ctx),
14792                                       int (*verify_recover) (EVP_PKEY_CTX
14793                                                              *ctx,
14794                                                              unsigned char
14795                                                              *sig,
14796                                                              size_t *siglen,
14797                                                              const unsigned
14798                                                              char *tbs,
14799                                                              size_t tbslen));
14800 
14801 void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth,
14802                                int (*signctx_init) (EVP_PKEY_CTX *ctx,
14803                                                     EVP_MD_CTX *mctx),
14804                                int (*signctx) (EVP_PKEY_CTX *ctx,
14805                                                unsigned char *sig,
14806                                                size_t *siglen,
14807                                                EVP_MD_CTX *mctx));
14808 
14809 void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth,
14810                                  int (*verifyctx_init) (EVP_PKEY_CTX *ctx,
14811                                                         EVP_MD_CTX *mctx),
14812                                  int (*verifyctx) (EVP_PKEY_CTX *ctx,
14813                                                    const unsigned char *sig,
14814                                                    int siglen,
14815                                                    EVP_MD_CTX *mctx));
14816 
14817 void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth,
14818                                int (*encrypt_init) (EVP_PKEY_CTX *ctx),
14819                                int (*encryptfn) (EVP_PKEY_CTX *ctx,
14820                                                  unsigned char *out,
14821                                                  size_t *outlen,
14822                                                  const unsigned char *in,
14823                                                  size_t inlen));
14824 
14825 void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth,
14826                                int (*decrypt_init) (EVP_PKEY_CTX *ctx),
14827                                int (*decrypt) (EVP_PKEY_CTX *ctx,
14828                                                unsigned char *out,
14829                                                size_t *outlen,
14830                                                const unsigned char *in,
14831                                                size_t inlen));
14832 
14833 void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth,
14834                               int (*derive_init) (EVP_PKEY_CTX *ctx),
14835                               int (*derive) (EVP_PKEY_CTX *ctx,
14836                                              unsigned char *key,
14837                                              size_t *keylen));
14838 
14839 void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth,
14840                             int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1,
14841                                          void *p2),
14842                             int (*ctrl_str) (EVP_PKEY_CTX *ctx,
14843                                              const char *type,
14844                                              const char *value));
14845 
14846 void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth,
14847                             int (**pinit) (EVP_PKEY_CTX *ctx));
14848 
14849 void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth,
14850                             int (**pcopy) (EVP_PKEY_CTX *dst,
14851                                            EVP_PKEY_CTX *src));
14852 
14853 void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth,
14854                                void (**pcleanup) (EVP_PKEY_CTX *ctx));
14855 
14856 void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth,
14857                                 int (**pparamgen_init) (EVP_PKEY_CTX *ctx),
14858                                 int (**pparamgen) (EVP_PKEY_CTX *ctx,
14859                                                    EVP_PKEY *pkey));
14860 
14861 void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth,
14862                               int (**pkeygen_init) (EVP_PKEY_CTX *ctx),
14863                               int (**pkeygen) (EVP_PKEY_CTX *ctx,
14864                                                EVP_PKEY *pkey));
14865 
14866 void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth,
14867                             int (**psign_init) (EVP_PKEY_CTX *ctx),
14868                             int (**psign) (EVP_PKEY_CTX *ctx,
14869                                            unsigned char *sig, size_t *siglen,
14870                                            const unsigned char *tbs,
14871                                            size_t tbslen));
14872 
14873 void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth,
14874                               int (**pverify_init) (EVP_PKEY_CTX *ctx),
14875                               int (**pverify) (EVP_PKEY_CTX *ctx,
14876                                                const unsigned char *sig,
14877                                                size_t siglen,
14878                                                const unsigned char *tbs,
14879                                                size_t tbslen));
14880 
14881 void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth,
14882                                       int (**pverify_recover_init) (EVP_PKEY_CTX
14883                                                                     *ctx),
14884                                       int (**pverify_recover) (EVP_PKEY_CTX
14885                                                                *ctx,
14886                                                                unsigned char
14887                                                                *sig,
14888                                                                size_t *siglen,
14889                                                                const unsigned
14890                                                                char *tbs,
14891                                                                size_t tbslen));
14892 
14893 void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth,
14894                                int (**psignctx_init) (EVP_PKEY_CTX *ctx,
14895                                                       EVP_MD_CTX *mctx),
14896                                int (**psignctx) (EVP_PKEY_CTX *ctx,
14897                                                  unsigned char *sig,
14898                                                  size_t *siglen,
14899                                                  EVP_MD_CTX *mctx));
14900 
14901 void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth,
14902                                  int (**pverifyctx_init) (EVP_PKEY_CTX *ctx,
14903                                                           EVP_MD_CTX *mctx),
14904                                  int (**pverifyctx) (EVP_PKEY_CTX *ctx,
14905                                                      const unsigned char *sig,
14906                                                      int siglen,
14907                                                      EVP_MD_CTX *mctx));
14908 
14909 void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth,
14910                                int (**pencrypt_init) (EVP_PKEY_CTX *ctx),
14911                                int (**pencryptfn) (EVP_PKEY_CTX *ctx,
14912                                                    unsigned char *out,
14913                                                    size_t *outlen,
14914                                                    const unsigned char *in,
14915                                                    size_t inlen));
14916 
14917 void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth,
14918                                int (**pdecrypt_init) (EVP_PKEY_CTX *ctx),
14919                                int (**pdecrypt) (EVP_PKEY_CTX *ctx,
14920                                                  unsigned char *out,
14921                                                  size_t *outlen,
14922                                                  const unsigned char *in,
14923                                                  size_t inlen));
14924 
14925 void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth,
14926                               int (**pderive_init) (EVP_PKEY_CTX *ctx),
14927                               int (**pderive) (EVP_PKEY_CTX *ctx,
14928                                                unsigned char *key,
14929                                                size_t *keylen));
14930 
14931 void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth,
14932                             int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1,
14933                                            void *p2),
14934                             int (**pctrl_str) (EVP_PKEY_CTX *ctx,
14935                                                const char *type,
14936                                                const char *value));
14937 
14938 void EVP_add_alg_module(void);
14939 
14940 /* BEGIN ERROR CODES */
14941 /*
14942  * The following lines are auto generated by the script mkerr.pl. Any changes
14943  * made after this point may be overwritten when the script is next run.
14944  */
14945 
14946 void ERR_load_EVP_strings(void);
14947 
14948 /* Error codes for the EVP functions. */
14949 
14950 /* Function codes. */
14951 # 1554 "/usr/include/openssl/evp.h" 3 4
14952 /* Reason codes. */
14953 # 74 "/usr/include/openssl/x509.h" 2 3 4
14954 
14955 
14956 # 1 "/usr/include/openssl/bio.h" 1 3 4
14957 /* crypto/bio/bio.h */
14958 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
14959  * All rights reserved.
14960  *
14961  * This package is an SSL implementation written
14962  * by Eric Young (eay@cryptsoft.com).
14963  * The implementation was written so as to conform with Netscapes SSL.
14964  *
14965  * This library is free for commercial and non-commercial use as long as
14966  * the following conditions are aheared to.  The following conditions
14967  * apply to all code found in this distribution, be it the RC4, RSA,
14968  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
14969  * included with this distribution is covered by the same copyright terms
14970  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14971  *
14972  * Copyright remains Eric Young's, and as such any Copyright notices in
14973  * the code are not to be removed.
14974  * If this package is used in a product, Eric Young should be given attribution
14975  * as the author of the parts of the library used.
14976  * This can be in the form of a textual message at program startup or
14977  * in documentation (online or textual) provided with the package.
14978  *
14979  * Redistribution and use in source and binary forms, with or without
14980  * modification, are permitted provided that the following conditions
14981  * are met:
14982  * 1. Redistributions of source code must retain the copyright
14983  *    notice, this list of conditions and the following disclaimer.
14984  * 2. Redistributions in binary form must reproduce the above copyright
14985  *    notice, this list of conditions and the following disclaimer in the
14986  *    documentation and/or other materials provided with the distribution.
14987  * 3. All advertising materials mentioning features or use of this software
14988  *    must display the following acknowledgement:
14989  *    "This product includes cryptographic software written by
14990  *     Eric Young (eay@cryptsoft.com)"
14991  *    The word 'cryptographic' can be left out if the rouines from the library
14992  *    being used are not cryptographic related :-).
14993  * 4. If you include any Windows specific code (or a derivative thereof) from
14994  *    the apps directory (application code) you must include an acknowledgement:
14995  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
14996  *
14997  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
14998  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14999  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15000  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15001  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
15002  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
15003  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15004  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
15005  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
15006  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
15007  * SUCH DAMAGE.
15008  *
15009  * The licence and distribution terms for any publically available version or
15010  * derivative of this code cannot be changed.  i.e. this code cannot simply be
15011  * copied and put under another distribution licence
15012  * [including the GNU Public Licence.]
15013  */
15014 # 77 "/usr/include/openssl/x509.h" 2 3 4
15015 
15016 # 1 "/usr/include/openssl/stack.h" 1 3 4
15017 /* crypto/stack/stack.h */
15018 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
15019  * All rights reserved.
15020  *
15021  * This package is an SSL implementation written
15022  * by Eric Young (eay@cryptsoft.com).
15023  * The implementation was written so as to conform with Netscapes SSL.
15024  *
15025  * This library is free for commercial and non-commercial use as long as
15026  * the following conditions are aheared to.  The following conditions
15027  * apply to all code found in this distribution, be it the RC4, RSA,
15028  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
15029  * included with this distribution is covered by the same copyright terms
15030  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15031  *
15032  * Copyright remains Eric Young's, and as such any Copyright notices in
15033  * the code are not to be removed.
15034  * If this package is used in a product, Eric Young should be given attribution
15035  * as the author of the parts of the library used.
15036  * This can be in the form of a textual message at program startup or
15037  * in documentation (online or textual) provided with the package.
15038  *
15039  * Redistribution and use in source and binary forms, with or without
15040  * modification, are permitted provided that the following conditions
15041  * are met:
15042  * 1. Redistributions of source code must retain the copyright
15043  *    notice, this list of conditions and the following disclaimer.
15044  * 2. Redistributions in binary form must reproduce the above copyright
15045  *    notice, this list of conditions and the following disclaimer in the
15046  *    documentation and/or other materials provided with the distribution.
15047  * 3. All advertising materials mentioning features or use of this software
15048  *    must display the following acknowledgement:
15049  *    "This product includes cryptographic software written by
15050  *     Eric Young (eay@cryptsoft.com)"
15051  *    The word 'cryptographic' can be left out if the rouines from the library
15052  *    being used are not cryptographic related :-).
15053  * 4. If you include any Windows specific code (or a derivative thereof) from
15054  *    the apps directory (application code) you must include an acknowledgement:
15055  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
15056  *
15057  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
15058  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15059  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15060  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15061  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
15062  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
15063  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15064  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
15065  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
15066  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
15067  * SUCH DAMAGE.
15068  *
15069  * The licence and distribution terms for any publically available version or
15070  * derivative of this code cannot be changed.  i.e. this code cannot simply be
15071  * copied and put under another distribution licence
15072  * [including the GNU Public Licence.]
15073  */
15074 # 79 "/usr/include/openssl/x509.h" 2 3 4
15075 # 1 "/usr/include/openssl/asn1.h" 1 3 4
15076 /* crypto/asn1/asn1.h */
15077 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
15078  * All rights reserved.
15079  *
15080  * This package is an SSL implementation written
15081  * by Eric Young (eay@cryptsoft.com).
15082  * The implementation was written so as to conform with Netscapes SSL.
15083  *
15084  * This library is free for commercial and non-commercial use as long as
15085  * the following conditions are aheared to.  The following conditions
15086  * apply to all code found in this distribution, be it the RC4, RSA,
15087  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
15088  * included with this distribution is covered by the same copyright terms
15089  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15090  *
15091  * Copyright remains Eric Young's, and as such any Copyright notices in
15092  * the code are not to be removed.
15093  * If this package is used in a product, Eric Young should be given attribution
15094  * as the author of the parts of the library used.
15095  * This can be in the form of a textual message at program startup or
15096  * in documentation (online or textual) provided with the package.
15097  *
15098  * Redistribution and use in source and binary forms, with or without
15099  * modification, are permitted provided that the following conditions
15100  * are met:
15101  * 1. Redistributions of source code must retain the copyright
15102  *    notice, this list of conditions and the following disclaimer.
15103  * 2. Redistributions in binary form must reproduce the above copyright
15104  *    notice, this list of conditions and the following disclaimer in the
15105  *    documentation and/or other materials provided with the distribution.
15106  * 3. All advertising materials mentioning features or use of this software
15107  *    must display the following acknowledgement:
15108  *    "This product includes cryptographic software written by
15109  *     Eric Young (eay@cryptsoft.com)"
15110  *    The word 'cryptographic' can be left out if the rouines from the library
15111  *    being used are not cryptographic related :-).
15112  * 4. If you include any Windows specific code (or a derivative thereof) from
15113  *    the apps directory (application code) you must include an acknowledgement:
15114  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
15115  *
15116  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
15117  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15118  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15119  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15120  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
15121  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
15122  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15123  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
15124  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
15125  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
15126  * SUCH DAMAGE.
15127  *
15128  * The licence and distribution terms for any publically available version or
15129  * derivative of this code cannot be changed.  i.e. this code cannot simply be
15130  * copied and put under another distribution licence
15131  * [including the GNU Public Licence.]
15132  */
15133 # 80 "/usr/include/openssl/x509.h" 2 3 4
15134 # 1 "/usr/include/openssl/safestack.h" 1 3 4
15135 /* ====================================================================
15136  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
15137  *
15138  * Redistribution and use in source and binary forms, with or without
15139  * modification, are permitted provided that the following conditions
15140  * are met:
15141  *
15142  * 1. Redistributions of source code must retain the above copyright
15143  *    notice, this list of conditions and the following disclaimer.
15144  *
15145  * 2. Redistributions in binary form must reproduce the above copyright
15146  *    notice, this list of conditions and the following disclaimer in
15147  *    the documentation and/or other materials provided with the
15148  *    distribution.
15149  *
15150  * 3. All advertising materials mentioning features or use of this
15151  *    software must display the following acknowledgment:
15152  *    "This product includes software developed by the OpenSSL Project
15153  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
15154  *
15155  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
15156  *    endorse or promote products derived from this software without
15157  *    prior written permission. For written permission, please contact
15158  *    openssl-core@openssl.org.
15159  *
15160  * 5. Products derived from this software may not be called "OpenSSL"
15161  *    nor may "OpenSSL" appear in their names without prior written
15162  *    permission of the OpenSSL Project.
15163  *
15164  * 6. Redistributions of any form whatsoever must retain the following
15165  *    acknowledgment:
15166  *    "This product includes software developed by the OpenSSL Project
15167  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
15168  *
15169  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
15170  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15171  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15172  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
15173  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15174  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15175  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
15176  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15177  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
15178  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
15179  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
15180  * OF THE POSSIBILITY OF SUCH DAMAGE.
15181  * ====================================================================
15182  *
15183  * This product includes cryptographic software written by Eric Young
15184  * (eay@cryptsoft.com).  This product includes software written by Tim
15185  * Hudson (tjh@cryptsoft.com).
15186  *
15187  */
15188 # 81 "/usr/include/openssl/x509.h" 2 3 4
15189 
15190 
15191 # 1 "/usr/include/openssl/ec.h" 1 3 4
15192 /* crypto/ec/ec.h */
15193 /*
15194  * Originally written by Bodo Moeller for the OpenSSL project.
15195  */
15196 /**
15197  * \file crypto/ec/ec.h Include file for the OpenSSL EC functions
15198  * \author Originally written by Bodo Moeller for the OpenSSL project
15199  */
15200 /* ====================================================================
15201  * Copyright (c) 1998-2019 The OpenSSL Project.  All rights reserved.
15202  *
15203  * Redistribution and use in source and binary forms, with or without
15204  * modification, are permitted provided that the following conditions
15205  * are met:
15206  *
15207  * 1. Redistributions of source code must retain the above copyright
15208  *    notice, this list of conditions and the following disclaimer.
15209  *
15210  * 2. Redistributions in binary form must reproduce the above copyright
15211  *    notice, this list of conditions and the following disclaimer in
15212  *    the documentation and/or other materials provided with the
15213  *    distribution.
15214  *
15215  * 3. All advertising materials mentioning features or use of this
15216  *    software must display the following acknowledgment:
15217  *    "This product includes software developed by the OpenSSL Project
15218  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
15219  *
15220  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
15221  *    endorse or promote products derived from this software without
15222  *    prior written permission. For written permission, please contact
15223  *    openssl-core@openssl.org.
15224  *
15225  * 5. Products derived from this software may not be called "OpenSSL"
15226  *    nor may "OpenSSL" appear in their names without prior written
15227  *    permission of the OpenSSL Project.
15228  *
15229  * 6. Redistributions of any form whatsoever must retain the following
15230  *    acknowledgment:
15231  *    "This product includes software developed by the OpenSSL Project
15232  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
15233  *
15234  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
15235  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15236  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15237  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
15238  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15239  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15240  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
15241  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15242  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
15243  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
15244  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
15245  * OF THE POSSIBILITY OF SUCH DAMAGE.
15246  * ====================================================================
15247  *
15248  * This product includes cryptographic software written by Eric Young
15249  * (eay@cryptsoft.com).  This product includes software written by Tim
15250  * Hudson (tjh@cryptsoft.com).
15251  *
15252  */
15253 /* ====================================================================
15254  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
15255  *
15256  * Portions of the attached software ("Contribution") are developed by
15257  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
15258  *
15259  * The Contribution is licensed pursuant to the OpenSSL open source
15260  * license provided above.
15261  *
15262  * The elliptic curve binary polynomial software is originally written by
15263  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
15264  *
15265  */
15266 
15267 
15268 
15269 
15270 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
15271 /* opensslconf.h */
15272 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
15273 
15274 
15275 
15276 
15277 /* OpenSSL was configured with the following options: */
15278 # 108 "/usr/include/openssl/opensslconf.h" 3 4
15279 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
15280    asks for it.  This is a transient feature that is provided for those
15281    who haven't had the time to do the appropriate changes in their
15282    applications.  */
15283 # 204 "/usr/include/openssl/opensslconf.h" 3 4
15284 /* crypto/opensslconf.h.in */
15285 
15286 /* Generate 80386 code? */
15287 # 80 "/usr/include/openssl/ec.h" 2 3 4
15288 
15289 
15290 
15291 
15292 
15293 # 1 "/usr/include/openssl/asn1.h" 1 3 4
15294 /* crypto/asn1/asn1.h */
15295 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
15296  * All rights reserved.
15297  *
15298  * This package is an SSL implementation written
15299  * by Eric Young (eay@cryptsoft.com).
15300  * The implementation was written so as to conform with Netscapes SSL.
15301  *
15302  * This library is free for commercial and non-commercial use as long as
15303  * the following conditions are aheared to.  The following conditions
15304  * apply to all code found in this distribution, be it the RC4, RSA,
15305  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
15306  * included with this distribution is covered by the same copyright terms
15307  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15308  *
15309  * Copyright remains Eric Young's, and as such any Copyright notices in
15310  * the code are not to be removed.
15311  * If this package is used in a product, Eric Young should be given attribution
15312  * as the author of the parts of the library used.
15313  * This can be in the form of a textual message at program startup or
15314  * in documentation (online or textual) provided with the package.
15315  *
15316  * Redistribution and use in source and binary forms, with or without
15317  * modification, are permitted provided that the following conditions
15318  * are met:
15319  * 1. Redistributions of source code must retain the copyright
15320  *    notice, this list of conditions and the following disclaimer.
15321  * 2. Redistributions in binary form must reproduce the above copyright
15322  *    notice, this list of conditions and the following disclaimer in the
15323  *    documentation and/or other materials provided with the distribution.
15324  * 3. All advertising materials mentioning features or use of this software
15325  *    must display the following acknowledgement:
15326  *    "This product includes cryptographic software written by
15327  *     Eric Young (eay@cryptsoft.com)"
15328  *    The word 'cryptographic' can be left out if the rouines from the library
15329  *    being used are not cryptographic related :-).
15330  * 4. If you include any Windows specific code (or a derivative thereof) from
15331  *    the apps directory (application code) you must include an acknowledgement:
15332  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
15333  *
15334  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
15335  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15336  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15337  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15338  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
15339  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
15340  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15341  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
15342  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
15343  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
15344  * SUCH DAMAGE.
15345  *
15346  * The licence and distribution terms for any publically available version or
15347  * derivative of this code cannot be changed.  i.e. this code cannot simply be
15348  * copied and put under another distribution licence
15349  * [including the GNU Public Licence.]
15350  */
15351 # 86 "/usr/include/openssl/ec.h" 2 3 4
15352 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
15353 /* ====================================================================
15354  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
15355  *
15356  * Redistribution and use in source and binary forms, with or without
15357  * modification, are permitted provided that the following conditions
15358  * are met:
15359  *
15360  * 1. Redistributions of source code must retain the above copyright
15361  *    notice, this list of conditions and the following disclaimer.
15362  *
15363  * 2. Redistributions in binary form must reproduce the above copyright
15364  *    notice, this list of conditions and the following disclaimer in
15365  *    the documentation and/or other materials provided with the
15366  *    distribution.
15367  *
15368  * 3. All advertising materials mentioning features or use of this
15369  *    software must display the following acknowledgment:
15370  *    "This product includes software developed by the OpenSSL Project
15371  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
15372  *
15373  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
15374  *    endorse or promote products derived from this software without
15375  *    prior written permission. For written permission, please contact
15376  *    openssl-core@openssl.org.
15377  *
15378  * 5. Products derived from this software may not be called "OpenSSL"
15379  *    nor may "OpenSSL" appear in their names without prior written
15380  *    permission of the OpenSSL Project.
15381  *
15382  * 6. Redistributions of any form whatsoever must retain the following
15383  *    acknowledgment:
15384  *    "This product includes software developed by the OpenSSL Project
15385  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
15386  *
15387  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
15388  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15389  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15390  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
15391  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15392  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15393  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
15394  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15395  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
15396  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
15397  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
15398  * OF THE POSSIBILITY OF SUCH DAMAGE.
15399  * ====================================================================
15400  *
15401  * This product includes cryptographic software written by Eric Young
15402  * (eay@cryptsoft.com).  This product includes software written by Tim
15403  * Hudson (tjh@cryptsoft.com).
15404  *
15405  */
15406 # 87 "/usr/include/openssl/ec.h" 2 3 4
15407 
15408 # 1 "/usr/include/openssl/bn.h" 1 3 4
15409 /* crypto/bn/bn.h */
15410 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
15411  * All rights reserved.
15412  *
15413  * This package is an SSL implementation written
15414  * by Eric Young (eay@cryptsoft.com).
15415  * The implementation was written so as to conform with Netscapes SSL.
15416  *
15417  * This library is free for commercial and non-commercial use as long as
15418  * the following conditions are aheared to.  The following conditions
15419  * apply to all code found in this distribution, be it the RC4, RSA,
15420  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
15421  * included with this distribution is covered by the same copyright terms
15422  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15423  *
15424  * Copyright remains Eric Young's, and as such any Copyright notices in
15425  * the code are not to be removed.
15426  * If this package is used in a product, Eric Young should be given attribution
15427  * as the author of the parts of the library used.
15428  * This can be in the form of a textual message at program startup or
15429  * in documentation (online or textual) provided with the package.
15430  *
15431  * Redistribution and use in source and binary forms, with or without
15432  * modification, are permitted provided that the following conditions
15433  * are met:
15434  * 1. Redistributions of source code must retain the copyright
15435  *    notice, this list of conditions and the following disclaimer.
15436  * 2. Redistributions in binary form must reproduce the above copyright
15437  *    notice, this list of conditions and the following disclaimer in the
15438  *    documentation and/or other materials provided with the distribution.
15439  * 3. All advertising materials mentioning features or use of this software
15440  *    must display the following acknowledgement:
15441  *    "This product includes cryptographic software written by
15442  *     Eric Young (eay@cryptsoft.com)"
15443  *    The word 'cryptographic' can be left out if the rouines from the library
15444  *    being used are not cryptographic related :-).
15445  * 4. If you include any Windows specific code (or a derivative thereof) from
15446  *    the apps directory (application code) you must include an acknowledgement:
15447  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
15448  *
15449  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
15450  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15451  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15452  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15453  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
15454  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
15455  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15456  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
15457  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
15458  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
15459  * SUCH DAMAGE.
15460  *
15461  * The licence and distribution terms for any publically available version or
15462  * derivative of this code cannot be changed.  i.e. this code cannot simply be
15463  * copied and put under another distribution licence
15464  * [including the GNU Public Licence.]
15465  */
15466 /* ====================================================================
15467  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
15468  *
15469  * Redistribution and use in source and binary forms, with or without
15470  * modification, are permitted provided that the following conditions
15471  * are met:
15472  *
15473  * 1. Redistributions of source code must retain the above copyright
15474  *    notice, this list of conditions and the following disclaimer.
15475  *
15476  * 2. Redistributions in binary form must reproduce the above copyright
15477  *    notice, this list of conditions and the following disclaimer in
15478  *    the documentation and/or other materials provided with the
15479  *    distribution.
15480  *
15481  * 3. All advertising materials mentioning features or use of this
15482  *    software must display the following acknowledgment:
15483  *    "This product includes software developed by the OpenSSL Project
15484  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
15485  *
15486  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
15487  *    endorse or promote products derived from this software without
15488  *    prior written permission. For written permission, please contact
15489  *    openssl-core@openssl.org.
15490  *
15491  * 5. Products derived from this software may not be called "OpenSSL"
15492  *    nor may "OpenSSL" appear in their names without prior written
15493  *    permission of the OpenSSL Project.
15494  *
15495  * 6. Redistributions of any form whatsoever must retain the following
15496  *    acknowledgment:
15497  *    "This product includes software developed by the OpenSSL Project
15498  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
15499  *
15500  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
15501  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15502  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15503  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
15504  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15505  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15506  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
15507  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15508  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
15509  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
15510  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
15511  * OF THE POSSIBILITY OF SUCH DAMAGE.
15512  * ====================================================================
15513  *
15514  * This product includes cryptographic software written by Eric Young
15515  * (eay@cryptsoft.com).  This product includes software written by Tim
15516  * Hudson (tjh@cryptsoft.com).
15517  *
15518  */
15519 /* ====================================================================
15520  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
15521  *
15522  * Portions of the attached software ("Contribution") are developed by
15523  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
15524  *
15525  * The Contribution is licensed pursuant to the Eric Young open source
15526  * license provided above.
15527  *
15528  * The binary polynomial arithmetic software is originally written by
15529  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
15530  *
15531  */
15532 # 89 "/usr/include/openssl/ec.h" 2 3 4
15533 # 103 "/usr/include/openssl/ec.h" 3 4
15534 /** Enum for the point conversion form as defined in X9.62 (ECDSA)
15535  *  for the encoding of a elliptic curve point (x,y) */
15536 typedef enum {
15537         /** the point is encoded as z||x, where the octet z specifies
15538          *  which solution of the quadratic equation y is  */
15539     POINT_CONVERSION_COMPRESSED = 2,
15540         /** the point is encoded as z||x||y, where z is the octet 0x04  */
15541     POINT_CONVERSION_UNCOMPRESSED = 4,
15542         /** the point is encoded as z||x||y, where the octet z specifies
15543          *  which solution of the quadratic equation y is  */
15544     POINT_CONVERSION_HYBRID = 6
15545 } point_conversion_form_t;
15546 
15547 typedef struct ec_method_st EC_METHOD;
15548 
15549 typedef struct ec_group_st
15550     /*-
15551      EC_METHOD *meth;
15552      -- field definition
15553      -- curve coefficients
15554      -- optional generator with associated information (order, cofactor)
15555      -- optional extra data (precomputed table for fast computation of multiples of generator)
15556      -- ASN1 stuff
15557     */
15558     EC_GROUP;
15559 
15560 typedef struct ec_point_st EC_POINT;
15561 
15562 /********************************************************************/
15563 /*               EC_METHODs for curves over GF(p)                   */
15564 /********************************************************************/
15565 
15566 /** Returns the basic GFp ec methods which provides the basis for the
15567  *  optimized methods.
15568  *  \return  EC_METHOD object
15569  */
15570 const EC_METHOD *EC_GFp_simple_method(void);
15571 
15572 /** Returns GFp methods using montgomery multiplication.
15573  *  \return  EC_METHOD object
15574  */
15575 const EC_METHOD *EC_GFp_mont_method(void);
15576 
15577 /** Returns GFp methods using optimized methods for NIST recommended curves
15578  *  \return  EC_METHOD object
15579  */
15580 const EC_METHOD *EC_GFp_nist_method(void);
15581 # 169 "/usr/include/openssl/ec.h" 3 4
15582 /********************************************************************/
15583 /*           EC_METHOD for curves over GF(2^m)                      */
15584 /********************************************************************/
15585 
15586 /** Returns the basic GF2m ec method
15587  *  \return  EC_METHOD object
15588  */
15589 const EC_METHOD *EC_GF2m_simple_method(void);
15590 
15591 
15592 
15593 /********************************************************************/
15594 /*                   EC_GROUP functions                             */
15595 /********************************************************************/
15596 
15597 /** Creates a new EC_GROUP object
15598  *  \param   meth  EC_METHOD to use
15599  *  \return  newly created EC_GROUP object or NULL in case of an error.
15600  */
15601 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth);
15602 
15603 /** Frees a EC_GROUP object
15604  *  \param  group  EC_GROUP object to be freed.
15605  */
15606 void EC_GROUP_free(EC_GROUP *group);
15607 
15608 /** Clears and frees a EC_GROUP object
15609  *  \param  group  EC_GROUP object to be cleared and freed.
15610  */
15611 void EC_GROUP_clear_free(EC_GROUP *group);
15612 
15613 /** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD.
15614  *  \param  dst  destination EC_GROUP object
15615  *  \param  src  source EC_GROUP object
15616  *  \return 1 on success and 0 if an error occurred.
15617  */
15618 int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src);
15619 
15620 /** Creates a new EC_GROUP object and copies the copies the content
15621  *  form src to the newly created EC_KEY object
15622  *  \param  src  source EC_GROUP object
15623  *  \return newly created EC_GROUP object or NULL in case of an error.
15624  */
15625 EC_GROUP *EC_GROUP_dup(const EC_GROUP *src);
15626 
15627 /** Returns the EC_METHOD of the EC_GROUP object.
15628  *  \param  group  EC_GROUP object
15629  *  \return EC_METHOD used in this EC_GROUP object.
15630  */
15631 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group);
15632 
15633 /** Returns the field type of the EC_METHOD.
15634  *  \param  meth  EC_METHOD object
15635  *  \return NID of the underlying field type OID.
15636  */
15637 int EC_METHOD_get_field_type(const EC_METHOD *meth);
15638 
15639 /** Sets the generator and it's order/cofactor of a EC_GROUP object.
15640  *  \param  group      EC_GROUP object
15641  *  \param  generator  EC_POINT object with the generator.
15642  *  \param  order      the order of the group generated by the generator.
15643  *  \param  cofactor   the index of the sub-group generated by the generator
15644  *                     in the group of all points on the elliptic curve.
15645  *  \return 1 on success and 0 if an error occured
15646  */
15647 int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
15648                            const BIGNUM *order, const BIGNUM *cofactor);
15649 
15650 /** Returns the generator of a EC_GROUP object.
15651  *  \param  group  EC_GROUP object
15652  *  \return the currently used generator (possibly NULL).
15653  */
15654 const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group);
15655 
15656 /** Returns the montgomery data for order(Generator)
15657  *  \param  group  EC_GROUP object
15658  *  \return the currently used generator (possibly NULL).
15659 */
15660 BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group);
15661 
15662 /** Gets the order of a EC_GROUP
15663  *  \param  group  EC_GROUP object
15664  *  \param  order  BIGNUM to which the order is copied
15665  *  \param  ctx    BN_CTX object (optional)
15666  *  \return 1 on success and 0 if an error occured
15667  */
15668 int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx);
15669 
15670 /** Gets the cofactor of a EC_GROUP
15671  *  \param  group     EC_GROUP object
15672  *  \param  cofactor  BIGNUM to which the cofactor is copied
15673  *  \param  ctx       BN_CTX object (optional)
15674  *  \return 1 on success and 0 if an error occured
15675  */
15676 int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,
15677                           BN_CTX *ctx);
15678 
15679 /** Sets the name of a EC_GROUP object
15680  *  \param  group  EC_GROUP object
15681  *  \param  nid    NID of the curve name OID
15682  */
15683 void EC_GROUP_set_curve_name(EC_GROUP *group, int nid);
15684 
15685 /** Returns the curve name of a EC_GROUP object
15686  *  \param  group  EC_GROUP object
15687  *  \return NID of the curve name OID or 0 if not set.
15688  */
15689 int EC_GROUP_get_curve_name(const EC_GROUP *group);
15690 
15691 void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag);
15692 int EC_GROUP_get_asn1_flag(const EC_GROUP *group);
15693 
15694 void EC_GROUP_set_point_conversion_form(EC_GROUP *group,
15695                                         point_conversion_form_t form);
15696 point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *);
15697 
15698 unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x);
15699 size_t EC_GROUP_get_seed_len(const EC_GROUP *);
15700 size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len);
15701 
15702 /** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b
15703  *  \param  group  EC_GROUP object
15704  *  \param  p      BIGNUM with the prime number
15705  *  \param  a      BIGNUM with parameter a of the equation
15706  *  \param  b      BIGNUM with parameter b of the equation
15707  *  \param  ctx    BN_CTX object (optional)
15708  *  \return 1 on success and 0 if an error occured
15709  */
15710 int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a,
15711                            const BIGNUM *b, BN_CTX *ctx);
15712 
15713 /** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b
15714  *  \param  group  EC_GROUP object
15715  *  \param  p      BIGNUM for the prime number
15716  *  \param  a      BIGNUM for parameter a of the equation
15717  *  \param  b      BIGNUM for parameter b of the equation
15718  *  \param  ctx    BN_CTX object (optional)
15719  *  \return 1 on success and 0 if an error occured
15720  */
15721 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
15722                            BIGNUM *b, BN_CTX *ctx);
15723 
15724 
15725 /** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b
15726  *  \param  group  EC_GROUP object
15727  *  \param  p      BIGNUM with the polynomial defining the underlying field
15728  *  \param  a      BIGNUM with parameter a of the equation
15729  *  \param  b      BIGNUM with parameter b of the equation
15730  *  \param  ctx    BN_CTX object (optional)
15731  *  \return 1 on success and 0 if an error occured
15732  */
15733 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a,
15734                             const BIGNUM *b, BN_CTX *ctx);
15735 
15736 /** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b
15737  *  \param  group  EC_GROUP object
15738  *  \param  p      BIGNUM for the polynomial defining the underlying field
15739  *  \param  a      BIGNUM for parameter a of the equation
15740  *  \param  b      BIGNUM for parameter b of the equation
15741  *  \param  ctx    BN_CTX object (optional)
15742  *  \return 1 on success and 0 if an error occured
15743  */
15744 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
15745                             BIGNUM *b, BN_CTX *ctx);
15746 
15747 /** Returns the number of bits needed to represent a field element
15748  *  \param  group  EC_GROUP object
15749  *  \return number of bits needed to represent a field element
15750  */
15751 int EC_GROUP_get_degree(const EC_GROUP *group);
15752 
15753 /** Checks whether the parameter in the EC_GROUP define a valid ec group
15754  *  \param  group  EC_GROUP object
15755  *  \param  ctx    BN_CTX object (optional)
15756  *  \return 1 if group is a valid ec group and 0 otherwise
15757  */
15758 int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx);
15759 
15760 /** Checks whether the discriminant of the elliptic curve is zero or not
15761  *  \param  group  EC_GROUP object
15762  *  \param  ctx    BN_CTX object (optional)
15763  *  \return 1 if the discriminant is not zero and 0 otherwise
15764  */
15765 int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx);
15766 
15767 /** Compares two EC_GROUP objects
15768  *  \param  a    first EC_GROUP object
15769  *  \param  b    second EC_GROUP object
15770  *  \param  ctx  BN_CTX object (optional)
15771  *  \return 0 if both groups are equal and 1 otherwise
15772  */
15773 int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx);
15774 
15775 /*
15776  * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after
15777  * choosing an appropriate EC_METHOD
15778  */
15779 
15780 /** Creates a new EC_GROUP object with the specified parameters defined
15781  *  over GFp (defined by the equation y^2 = x^3 + a*x + b)
15782  *  \param  p    BIGNUM with the prime number
15783  *  \param  a    BIGNUM with the parameter a of the equation
15784  *  \param  b    BIGNUM with the parameter b of the equation
15785  *  \param  ctx  BN_CTX object (optional)
15786  *  \return newly created EC_GROUP object with the specified parameters
15787  */
15788 EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
15789                                  const BIGNUM *b, BN_CTX *ctx);
15790 
15791 /** Creates a new EC_GROUP object with the specified parameters defined
15792  *  over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b)
15793  *  \param  p    BIGNUM with the polynomial defining the underlying field
15794  *  \param  a    BIGNUM with the parameter a of the equation
15795  *  \param  b    BIGNUM with the parameter b of the equation
15796  *  \param  ctx  BN_CTX object (optional)
15797  *  \return newly created EC_GROUP object with the specified parameters
15798  */
15799 EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a,
15800                                   const BIGNUM *b, BN_CTX *ctx);
15801 
15802 /** Creates a EC_GROUP object with a curve specified by a NID
15803  *  \param  nid  NID of the OID of the curve name
15804  *  \return newly created EC_GROUP object with specified curve or NULL
15805  *          if an error occurred
15806  */
15807 EC_GROUP *EC_GROUP_new_by_curve_name(int nid);
15808 
15809 /********************************************************************/
15810 /*               handling of internal curves                        */
15811 /********************************************************************/
15812 
15813 typedef struct {
15814     int nid;
15815     const char *comment;
15816 } EC_builtin_curve;
15817 
15818 /*
15819  * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all
15820  * available curves or zero if a error occurred. In case r ist not zero
15821  * nitems EC_builtin_curve structures are filled with the data of the first
15822  * nitems internal groups
15823  */
15824 size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
15825 
15826 const char *EC_curve_nid2nist(int nid);
15827 int EC_curve_nist2nid(const char *name);
15828 
15829 /********************************************************************/
15830 /*                    EC_POINT functions                            */
15831 /********************************************************************/
15832 
15833 /** Creates a new EC_POINT object for the specified EC_GROUP
15834  *  \param  group  EC_GROUP the underlying EC_GROUP object
15835  *  \return newly created EC_POINT object or NULL if an error occurred
15836  */
15837 EC_POINT *EC_POINT_new(const EC_GROUP *group);
15838 
15839 /** Frees a EC_POINT object
15840  *  \param  point  EC_POINT object to be freed
15841  */
15842 void EC_POINT_free(EC_POINT *point);
15843 
15844 /** Clears and frees a EC_POINT object
15845  *  \param  point  EC_POINT object to be cleared and freed
15846  */
15847 void EC_POINT_clear_free(EC_POINT *point);
15848 
15849 /** Copies EC_POINT object
15850  *  \param  dst  destination EC_POINT object
15851  *  \param  src  source EC_POINT object
15852  *  \return 1 on success and 0 if an error occured
15853  */
15854 int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src);
15855 
15856 /** Creates a new EC_POINT object and copies the content of the supplied
15857  *  EC_POINT
15858  *  \param  src    source EC_POINT object
15859  *  \param  group  underlying the EC_GROUP object
15860  *  \return newly created EC_POINT object or NULL if an error occurred
15861  */
15862 EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group);
15863 
15864 /** Returns the EC_METHOD used in EC_POINT object
15865  *  \param  point  EC_POINT object
15866  *  \return the EC_METHOD used
15867  */
15868 const EC_METHOD *EC_POINT_method_of(const EC_POINT *point);
15869 
15870 /** Sets a point to infinity (neutral element)
15871  *  \param  group  underlying EC_GROUP object
15872  *  \param  point  EC_POINT to set to infinity
15873  *  \return 1 on success and 0 if an error occured
15874  */
15875 int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point);
15876 
15877 /** Sets the jacobian projective coordinates of a EC_POINT over GFp
15878  *  \param  group  underlying EC_GROUP object
15879  *  \param  p      EC_POINT object
15880  *  \param  x      BIGNUM with the x-coordinate
15881  *  \param  y      BIGNUM with the y-coordinate
15882  *  \param  z      BIGNUM with the z-coordinate
15883  *  \param  ctx    BN_CTX object (optional)
15884  *  \return 1 on success and 0 if an error occured
15885  */
15886 int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group,
15887                                              EC_POINT *p, const BIGNUM *x,
15888                                              const BIGNUM *y, const BIGNUM *z,
15889                                              BN_CTX *ctx);
15890 
15891 /** Gets the jacobian projective coordinates of a EC_POINT over GFp
15892  *  \param  group  underlying EC_GROUP object
15893  *  \param  p      EC_POINT object
15894  *  \param  x      BIGNUM for the x-coordinate
15895  *  \param  y      BIGNUM for the y-coordinate
15896  *  \param  z      BIGNUM for the z-coordinate
15897  *  \param  ctx    BN_CTX object (optional)
15898  *  \return 1 on success and 0 if an error occured
15899  */
15900 int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group,
15901                                              const EC_POINT *p, BIGNUM *x,
15902                                              BIGNUM *y, BIGNUM *z,
15903                                              BN_CTX *ctx);
15904 
15905 /** Sets the affine coordinates of a EC_POINT over GFp
15906  *  \param  group  underlying EC_GROUP object
15907  *  \param  p      EC_POINT object
15908  *  \param  x      BIGNUM with the x-coordinate
15909  *  \param  y      BIGNUM with the y-coordinate
15910  *  \param  ctx    BN_CTX object (optional)
15911  *  \return 1 on success and 0 if an error occured
15912  */
15913 int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p,
15914                                         const BIGNUM *x, const BIGNUM *y,
15915                                         BN_CTX *ctx);
15916 
15917 /** Gets the affine coordinates of a EC_POINT over GFp
15918  *  \param  group  underlying EC_GROUP object
15919  *  \param  p      EC_POINT object
15920  *  \param  x      BIGNUM for the x-coordinate
15921  *  \param  y      BIGNUM for the y-coordinate
15922  *  \param  ctx    BN_CTX object (optional)
15923  *  \return 1 on success and 0 if an error occured
15924  */
15925 int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
15926                                         const EC_POINT *p, BIGNUM *x,
15927                                         BIGNUM *y, BN_CTX *ctx);
15928 
15929 /** Sets the x9.62 compressed coordinates of a EC_POINT over GFp
15930  *  \param  group  underlying EC_GROUP object
15931  *  \param  p      EC_POINT object
15932  *  \param  x      BIGNUM with x-coordinate
15933  *  \param  y_bit  integer with the y-Bit (either 0 or 1)
15934  *  \param  ctx    BN_CTX object (optional)
15935  *  \return 1 on success and 0 if an error occured
15936  */
15937 int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group,
15938                                             EC_POINT *p, const BIGNUM *x,
15939                                             int y_bit, BN_CTX *ctx);
15940 
15941 /** Sets the affine coordinates of a EC_POINT over GF2m
15942  *  \param  group  underlying EC_GROUP object
15943  *  \param  p      EC_POINT object
15944  *  \param  x      BIGNUM with the x-coordinate
15945  *  \param  y      BIGNUM with the y-coordinate
15946  *  \param  ctx    BN_CTX object (optional)
15947  *  \return 1 on success and 0 if an error occured
15948  */
15949 int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p,
15950                                          const BIGNUM *x, const BIGNUM *y,
15951                                          BN_CTX *ctx);
15952 
15953 /** Gets the affine coordinates of a EC_POINT over GF2m
15954  *  \param  group  underlying EC_GROUP object
15955  *  \param  p      EC_POINT object
15956  *  \param  x      BIGNUM for the x-coordinate
15957  *  \param  y      BIGNUM for the y-coordinate
15958  *  \param  ctx    BN_CTX object (optional)
15959  *  \return 1 on success and 0 if an error occured
15960  */
15961 int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group,
15962                                          const EC_POINT *p, BIGNUM *x,
15963                                          BIGNUM *y, BN_CTX *ctx);
15964 
15965 /** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m
15966  *  \param  group  underlying EC_GROUP object
15967  *  \param  p      EC_POINT object
15968  *  \param  x      BIGNUM with x-coordinate
15969  *  \param  y_bit  integer with the y-Bit (either 0 or 1)
15970  *  \param  ctx    BN_CTX object (optional)
15971  *  \return 1 on success and 0 if an error occured
15972  */
15973 int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,
15974                                              EC_POINT *p, const BIGNUM *x,
15975                                              int y_bit, BN_CTX *ctx);
15976 
15977 /** Encodes a EC_POINT object to a octet string
15978  *  \param  group  underlying EC_GROUP object
15979  *  \param  p      EC_POINT object
15980  *  \param  form   point conversion form
15981  *  \param  buf    memory buffer for the result. If NULL the function returns
15982  *                 required buffer size.
15983  *  \param  len    length of the memory buffer
15984  *  \param  ctx    BN_CTX object (optional)
15985  *  \return the length of the encoded octet string or 0 if an error occurred
15986  */
15987 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p,
15988                           point_conversion_form_t form,
15989                           unsigned char *buf, size_t len, BN_CTX *ctx);
15990 
15991 /** Decodes a EC_POINT from a octet string
15992  *  \param  group  underlying EC_GROUP object
15993  *  \param  p      EC_POINT object
15994  *  \param  buf    memory buffer with the encoded ec point
15995  *  \param  len    length of the encoded ec point
15996  *  \param  ctx    BN_CTX object (optional)
15997  *  \return 1 on success and 0 if an error occured
15998  */
15999 int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p,
16000                        const unsigned char *buf, size_t len, BN_CTX *ctx);
16001 
16002 /* other interfaces to point2oct/oct2point: */
16003 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *,
16004                           point_conversion_form_t form, BIGNUM *, BN_CTX *);
16005 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *,
16006                             EC_POINT *, BN_CTX *);
16007 char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *,
16008                          point_conversion_form_t form, BN_CTX *);
16009 EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *,
16010                              EC_POINT *, BN_CTX *);
16011 
16012 /********************************************************************/
16013 /*         functions for doing EC_POINT arithmetic                  */
16014 /********************************************************************/
16015 
16016 /** Computes the sum of two EC_POINT
16017  *  \param  group  underlying EC_GROUP object
16018  *  \param  r      EC_POINT object for the result (r = a + b)
16019  *  \param  a      EC_POINT object with the first summand
16020  *  \param  b      EC_POINT object with the second summand
16021  *  \param  ctx    BN_CTX object (optional)
16022  *  \return 1 on success and 0 if an error occured
16023  */
16024 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
16025                  const EC_POINT *b, BN_CTX *ctx);
16026 
16027 /** Computes the double of a EC_POINT
16028  *  \param  group  underlying EC_GROUP object
16029  *  \param  r      EC_POINT object for the result (r = 2 * a)
16030  *  \param  a      EC_POINT object
16031  *  \param  ctx    BN_CTX object (optional)
16032  *  \return 1 on success and 0 if an error occured
16033  */
16034 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
16035                  BN_CTX *ctx);
16036 
16037 /** Computes the inverse of a EC_POINT
16038  *  \param  group  underlying EC_GROUP object
16039  *  \param  a      EC_POINT object to be inverted (it's used for the result as well)
16040  *  \param  ctx    BN_CTX object (optional)
16041  *  \return 1 on success and 0 if an error occured
16042  */
16043 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx);
16044 
16045 /** Checks whether the point is the neutral element of the group
16046  *  \param  group  the underlying EC_GROUP object
16047  *  \param  p      EC_POINT object
16048  *  \return 1 if the point is the neutral element and 0 otherwise
16049  */
16050 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p);
16051 
16052 /** Checks whether the point is on the curve
16053  *  \param  group  underlying EC_GROUP object
16054  *  \param  point  EC_POINT object to check
16055  *  \param  ctx    BN_CTX object (optional)
16056  *  \return 1 if point if on the curve and 0 otherwise
16057  */
16058 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
16059                          BN_CTX *ctx);
16060 
16061 /** Compares two EC_POINTs
16062  *  \param  group  underlying EC_GROUP object
16063  *  \param  a      first EC_POINT object
16064  *  \param  b      second EC_POINT object
16065  *  \param  ctx    BN_CTX object (optional)
16066  *  \return 0 if both points are equal and a value != 0 otherwise
16067  */
16068 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b,
16069                  BN_CTX *ctx);
16070 
16071 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx);
16072 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
16073                           EC_POINT *points[], BN_CTX *ctx);
16074 
16075 /** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i]
16076  *  \param  group  underlying EC_GROUP object
16077  *  \param  r      EC_POINT object for the result
16078  *  \param  n      BIGNUM with the multiplier for the group generator (optional)
16079  *  \param  num    number futher summands
16080  *  \param  p      array of size num of EC_POINT objects
16081  *  \param  m      array of size num of BIGNUM objects
16082  *  \param  ctx    BN_CTX object (optional)
16083  *  \return 1 on success and 0 if an error occured
16084  */
16085 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
16086                   size_t num, const EC_POINT *p[], const BIGNUM *m[],
16087                   BN_CTX *ctx);
16088 
16089 /** Computes r = generator * n + q * m
16090  *  \param  group  underlying EC_GROUP object
16091  *  \param  r      EC_POINT object for the result
16092  *  \param  n      BIGNUM with the multiplier for the group generator (optional)
16093  *  \param  q      EC_POINT object with the first factor of the second summand
16094  *  \param  m      BIGNUM with the second factor of the second summand
16095  *  \param  ctx    BN_CTX object (optional)
16096  *  \return 1 on success and 0 if an error occured
16097  */
16098 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
16099                  const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx);
16100 
16101 /** Stores multiples of generator for faster point multiplication
16102  *  \param  group  EC_GROUP object
16103  *  \param  ctx    BN_CTX object (optional)
16104  *  \return 1 on success and 0 if an error occured
16105  */
16106 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
16107 
16108 /** Reports whether a precomputation has been done
16109  *  \param  group  EC_GROUP object
16110  *  \return 1 if a pre-computation has been done and 0 otherwise
16111  */
16112 int EC_GROUP_have_precompute_mult(const EC_GROUP *group);
16113 
16114 /********************************************************************/
16115 /*                       ASN1 stuff                                 */
16116 /********************************************************************/
16117 
16118 /*
16119  * EC_GROUP_get_basis_type() returns the NID of the basis type used to
16120  * represent the field elements
16121  */
16122 int EC_GROUP_get_basis_type(const EC_GROUP *);
16123 
16124 int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k);
16125 int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1,
16126                                    unsigned int *k2, unsigned int *k3);
16127 
16128 
16129 
16130 
16131 typedef struct ecpk_parameters_st ECPKPARAMETERS;
16132 
16133 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len);
16134 int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out);
16135 # 731 "/usr/include/openssl/ec.h" 3 4
16136 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off);
16137 
16138 
16139 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off);
16140 
16141 
16142 /********************************************************************/
16143 /*                      EC_KEY functions                            */
16144 /********************************************************************/
16145 
16146 typedef struct ec_key_st EC_KEY;
16147 
16148 /* some values for the encoding_flag */
16149 
16150 
16151 
16152 /* some values for the flags field */
16153 
16154 
16155 
16156 /** Creates a new EC_KEY object.
16157  *  \return EC_KEY object or NULL if an error occurred.
16158  */
16159 EC_KEY *EC_KEY_new(void);
16160 
16161 int EC_KEY_get_flags(const EC_KEY *key);
16162 
16163 void EC_KEY_set_flags(EC_KEY *key, int flags);
16164 
16165 void EC_KEY_clear_flags(EC_KEY *key, int flags);
16166 
16167 /** Creates a new EC_KEY object using a named curve as underlying
16168  *  EC_GROUP object.
16169  *  \param  nid  NID of the named curve.
16170  *  \return EC_KEY object or NULL if an error occurred.
16171  */
16172 EC_KEY *EC_KEY_new_by_curve_name(int nid);
16173 
16174 /** Frees a EC_KEY object.
16175  *  \param  key  EC_KEY object to be freed.
16176  */
16177 void EC_KEY_free(EC_KEY *key);
16178 
16179 /** Copies a EC_KEY object.
16180  *  \param  dst  destination EC_KEY object
16181  *  \param  src  src EC_KEY object
16182  *  \return dst or NULL if an error occurred.
16183  */
16184 EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src);
16185 
16186 /** Creates a new EC_KEY object and copies the content from src to it.
16187  *  \param  src  the source EC_KEY object
16188  *  \return newly created EC_KEY object or NULL if an error occurred.
16189  */
16190 EC_KEY *EC_KEY_dup(const EC_KEY *src);
16191 
16192 /** Increases the internal reference count of a EC_KEY object.
16193  *  \param  key  EC_KEY object
16194  *  \return 1 on success and 0 if an error occurred.
16195  */
16196 int EC_KEY_up_ref(EC_KEY *key);
16197 
16198 /** Returns the EC_GROUP object of a EC_KEY object
16199  *  \param  key  EC_KEY object
16200  *  \return the EC_GROUP object (possibly NULL).
16201  */
16202 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key);
16203 
16204 /** Sets the EC_GROUP of a EC_KEY object.
16205  *  \param  key    EC_KEY object
16206  *  \param  group  EC_GROUP to use in the EC_KEY object (note: the EC_KEY
16207  *                 object will use an own copy of the EC_GROUP).
16208  *  \return 1 on success and 0 if an error occurred.
16209  */
16210 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
16211 
16212 /** Returns the private key of a EC_KEY object.
16213  *  \param  key  EC_KEY object
16214  *  \return a BIGNUM with the private key (possibly NULL).
16215  */
16216 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);
16217 
16218 /** Sets the private key of a EC_KEY object.
16219  *  \param  key  EC_KEY object
16220  *  \param  prv  BIGNUM with the private key (note: the EC_KEY object
16221  *               will use an own copy of the BIGNUM).
16222  *  \return 1 on success and 0 if an error occurred.
16223  */
16224 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv);
16225 
16226 /** Returns the public key of a EC_KEY object.
16227  *  \param  key  the EC_KEY object
16228  *  \return a EC_POINT object with the public key (possibly NULL)
16229  */
16230 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key);
16231 
16232 /** Sets the public key of a EC_KEY object.
16233  *  \param  key  EC_KEY object
16234  *  \param  pub  EC_POINT object with the public key (note: the EC_KEY object
16235  *               will use an own copy of the EC_POINT object).
16236  *  \return 1 on success and 0 if an error occurred.
16237  */
16238 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub);
16239 
16240 unsigned EC_KEY_get_enc_flags(const EC_KEY *key);
16241 void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags);
16242 point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key);
16243 void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform);
16244 /* functions to set/get method specific data  */
16245 void *EC_KEY_get_key_method_data(EC_KEY *key,
16246                                  void *(*dup_func) (void *),
16247                                  void (*free_func) (void *),
16248                                  void (*clear_free_func) (void *));
16249 /** Sets the key method data of an EC_KEY object, if none has yet been set.
16250  *  \param  key              EC_KEY object
16251  *  \param  data             opaque data to install.
16252  *  \param  dup_func         a function that duplicates |data|.
16253  *  \param  free_func        a function that frees |data|.
16254  *  \param  clear_free_func  a function that wipes and frees |data|.
16255  *  \return the previously set data pointer, or NULL if |data| was inserted.
16256  */
16257 void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data,
16258                                     void *(*dup_func) (void *),
16259                                     void (*free_func) (void *),
16260                                     void (*clear_free_func) (void *));
16261 /* wrapper functions for the underlying EC_GROUP object */
16262 void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag);
16263 
16264 /** Creates a table of pre-computed multiples of the generator to
16265  *  accelerate further EC_KEY operations.
16266  *  \param  key  EC_KEY object
16267  *  \param  ctx  BN_CTX object (optional)
16268  *  \return 1 on success and 0 if an error occurred.
16269  */
16270 int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx);
16271 
16272 /** Creates a new ec private (and optional a new public) key.
16273  *  \param  key  EC_KEY object
16274  *  \return 1 on success and 0 if an error occurred.
16275  */
16276 int EC_KEY_generate_key(EC_KEY *key);
16277 
16278 /** Verifies that a private and/or public key is valid.
16279  *  \param  key  the EC_KEY object
16280  *  \return 1 on success and 0 otherwise.
16281  */
16282 int EC_KEY_check_key(const EC_KEY *key);
16283 
16284 /** Sets a public key from affine coordindates performing
16285  *  neccessary NIST PKV tests.
16286  *  \param  key  the EC_KEY object
16287  *  \param  x    public key x coordinate
16288  *  \param  y    public key y coordinate
16289  *  \return 1 on success and 0 otherwise.
16290  */
16291 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x,
16292                                              BIGNUM *y);
16293 
16294 /********************************************************************/
16295 /*        de- and encoding functions for SEC1 ECPrivateKey          */
16296 /********************************************************************/
16297 
16298 /** Decodes a private key from a memory buffer.
16299  *  \param  key  a pointer to a EC_KEY object which should be used (or NULL)
16300  *  \param  in   pointer to memory with the DER encoded private key
16301  *  \param  len  length of the DER encoded private key
16302  *  \return the decoded private key or NULL if an error occurred.
16303  */
16304 EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len);
16305 
16306 /** Encodes a private key object and stores the result in a buffer.
16307  *  \param  key  the EC_KEY object to encode
16308  *  \param  out  the buffer for the result (if NULL the function returns number
16309  *               of bytes needed).
16310  *  \return 1 on success and 0 if an error occurred.
16311  */
16312 int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out);
16313 
16314 /********************************************************************/
16315 /*        de- and encoding functions for EC parameters              */
16316 /********************************************************************/
16317 
16318 /** Decodes ec parameter from a memory buffer.
16319  *  \param  key  a pointer to a EC_KEY object which should be used (or NULL)
16320  *  \param  in   pointer to memory with the DER encoded ec parameters
16321  *  \param  len  length of the DER encoded ec parameters
16322  *  \return a EC_KEY object with the decoded parameters or NULL if an error
16323  *          occurred.
16324  */
16325 EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len);
16326 
16327 /** Encodes ec parameter and stores the result in a buffer.
16328  *  \param  key  the EC_KEY object with ec paramters to encode
16329  *  \param  out  the buffer for the result (if NULL the function returns number
16330  *               of bytes needed).
16331  *  \return 1 on success and 0 if an error occurred.
16332  */
16333 int i2d_ECParameters(EC_KEY *key, unsigned char **out);
16334 
16335 /********************************************************************/
16336 /*         de- and encoding functions for EC public key             */
16337 /*         (octet string, not DER -- hence 'o2i' and 'i2o')         */
16338 /********************************************************************/
16339 
16340 /** Decodes a ec public key from a octet string.
16341  *  \param  key  a pointer to a EC_KEY object which should be used
16342  *  \param  in   memory buffer with the encoded public key
16343  *  \param  len  length of the encoded public key
16344  *  \return EC_KEY object with decoded public key or NULL if an error
16345  *          occurred.
16346  */
16347 EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len);
16348 
16349 /** Encodes a ec public key in an octet string.
16350  *  \param  key  the EC_KEY object with the public key
16351  *  \param  out  the buffer for the result (if NULL the function returns number
16352  *               of bytes needed).
16353  *  \return 1 on success and 0 if an error occurred
16354  */
16355 int i2o_ECPublicKey(EC_KEY *key, unsigned char **out);
16356 
16357 
16358 /** Prints out the ec parameters on human readable form.
16359  *  \param  bp   BIO object to which the information is printed
16360  *  \param  key  EC_KEY object
16361  *  \return 1 on success and 0 if an error occurred
16362  */
16363 int ECParameters_print(BIO *bp, const EC_KEY *key);
16364 
16365 /** Prints out the contents of a EC_KEY object
16366  *  \param  bp   BIO object to which the information is printed
16367  *  \param  key  EC_KEY object
16368  *  \param  off  line offset
16369  *  \return 1 on success and 0 if an error occurred
16370  */
16371 int EC_KEY_print(BIO *bp, const EC_KEY *key, int off);
16372 
16373 
16374 
16375 /** Prints out the ec parameters on human readable form.
16376  *  \param  fp   file descriptor to which the information is printed
16377  *  \param  key  EC_KEY object
16378  *  \return 1 on success and 0 if an error occurred
16379  */
16380 int ECParameters_print_fp(FILE *fp, const EC_KEY *key);
16381 
16382 /** Prints out the contents of a EC_KEY object
16383  *  \param  fp   file descriptor to which the information is printed
16384  *  \param  key  EC_KEY object
16385  *  \param  off  line offset
16386  *  \return 1 on success and 0 if an error occurred
16387  */
16388 int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off);
16389 # 1067 "/usr/include/openssl/ec.h" 3 4
16390 /* KDF types */
16391 
16392 
16393 
16394 /* BEGIN ERROR CODES */
16395 /*
16396  * The following lines are auto generated by the script mkerr.pl. Any changes
16397  * made after this point may be overwritten when the script is next run.
16398  */
16399 
16400 void ERR_load_EC_strings(void);
16401 
16402 /* Error codes for the EC functions. */
16403 
16404 /* Function codes. */
16405 # 1227 "/usr/include/openssl/ec.h" 3 4
16406 /* Reason codes. */
16407 # 84 "/usr/include/openssl/x509.h" 2 3 4
16408 
16409 
16410 
16411 # 1 "/usr/include/openssl/ecdsa.h" 1 3 4
16412 /* crypto/ecdsa/ecdsa.h */
16413 /**
16414  * \file   crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions
16415  * \author Written by Nils Larsch for the OpenSSL project
16416  */
16417 /* ====================================================================
16418  * Copyright (c) 2000-2005 The OpenSSL Project.  All rights reserved.
16419  *
16420  * Redistribution and use in source and binary forms, with or without
16421  * modification, are permitted provided that the following conditions
16422  * are met:
16423  *
16424  * 1. Redistributions of source code must retain the above copyright
16425  *    notice, this list of conditions and the following disclaimer.
16426  *
16427  * 2. Redistributions in binary form must reproduce the above copyright
16428  *    notice, this list of conditions and the following disclaimer in
16429  *    the documentation and/or other materials provided with the
16430  *    distribution.
16431  *
16432  * 3. All advertising materials mentioning features or use of this
16433  *    software must display the following acknowledgment:
16434  *    "This product includes software developed by the OpenSSL Project
16435  *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
16436  *
16437  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
16438  *    endorse or promote products derived from this software without
16439  *    prior written permission. For written permission, please contact
16440  *    licensing@OpenSSL.org.
16441  *
16442  * 5. Products derived from this software may not be called "OpenSSL"
16443  *    nor may "OpenSSL" appear in their names without prior written
16444  *    permission of the OpenSSL Project.
16445  *
16446  * 6. Redistributions of any form whatsoever must retain the following
16447  *    acknowledgment:
16448  *    "This product includes software developed by the OpenSSL Project
16449  *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
16450  *
16451  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
16452  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16453  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16454  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
16455  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16456  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16457  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
16458  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
16459  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
16460  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
16461  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
16462  * OF THE POSSIBILITY OF SUCH DAMAGE.
16463  * ====================================================================
16464  *
16465  * This product includes cryptographic software written by Eric Young
16466  * (eay@cryptsoft.com).  This product includes software written by Tim
16467  * Hudson (tjh@cryptsoft.com).
16468  *
16469  */
16470 
16471 
16472 
16473 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
16474 /* opensslconf.h */
16475 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
16476 
16477 
16478 
16479 
16480 /* OpenSSL was configured with the following options: */
16481 # 108 "/usr/include/openssl/opensslconf.h" 3 4
16482 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
16483    asks for it.  This is a transient feature that is provided for those
16484    who haven't had the time to do the appropriate changes in their
16485    applications.  */
16486 # 204 "/usr/include/openssl/opensslconf.h" 3 4
16487 /* crypto/opensslconf.h.in */
16488 
16489 /* Generate 80386 code? */
16490 # 63 "/usr/include/openssl/ecdsa.h" 2 3 4
16491 
16492 
16493 
16494 
16495 
16496 # 1 "/usr/include/openssl/ec.h" 1 3 4
16497 /* crypto/ec/ec.h */
16498 /*
16499  * Originally written by Bodo Moeller for the OpenSSL project.
16500  */
16501 /**
16502  * \file crypto/ec/ec.h Include file for the OpenSSL EC functions
16503  * \author Originally written by Bodo Moeller for the OpenSSL project
16504  */
16505 /* ====================================================================
16506  * Copyright (c) 1998-2019 The OpenSSL Project.  All rights reserved.
16507  *
16508  * Redistribution and use in source and binary forms, with or without
16509  * modification, are permitted provided that the following conditions
16510  * are met:
16511  *
16512  * 1. Redistributions of source code must retain the above copyright
16513  *    notice, this list of conditions and the following disclaimer.
16514  *
16515  * 2. Redistributions in binary form must reproduce the above copyright
16516  *    notice, this list of conditions and the following disclaimer in
16517  *    the documentation and/or other materials provided with the
16518  *    distribution.
16519  *
16520  * 3. All advertising materials mentioning features or use of this
16521  *    software must display the following acknowledgment:
16522  *    "This product includes software developed by the OpenSSL Project
16523  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
16524  *
16525  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
16526  *    endorse or promote products derived from this software without
16527  *    prior written permission. For written permission, please contact
16528  *    openssl-core@openssl.org.
16529  *
16530  * 5. Products derived from this software may not be called "OpenSSL"
16531  *    nor may "OpenSSL" appear in their names without prior written
16532  *    permission of the OpenSSL Project.
16533  *
16534  * 6. Redistributions of any form whatsoever must retain the following
16535  *    acknowledgment:
16536  *    "This product includes software developed by the OpenSSL Project
16537  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
16538  *
16539  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
16540  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16541  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16542  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
16543  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16544  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16545  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
16546  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
16547  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
16548  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
16549  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
16550  * OF THE POSSIBILITY OF SUCH DAMAGE.
16551  * ====================================================================
16552  *
16553  * This product includes cryptographic software written by Eric Young
16554  * (eay@cryptsoft.com).  This product includes software written by Tim
16555  * Hudson (tjh@cryptsoft.com).
16556  *
16557  */
16558 /* ====================================================================
16559  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
16560  *
16561  * Portions of the attached software ("Contribution") are developed by
16562  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
16563  *
16564  * The Contribution is licensed pursuant to the OpenSSL open source
16565  * license provided above.
16566  *
16567  * The elliptic curve binary polynomial software is originally written by
16568  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
16569  *
16570  */
16571 # 69 "/usr/include/openssl/ecdsa.h" 2 3 4
16572 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
16573 /* ====================================================================
16574  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
16575  *
16576  * Redistribution and use in source and binary forms, with or without
16577  * modification, are permitted provided that the following conditions
16578  * are met:
16579  *
16580  * 1. Redistributions of source code must retain the above copyright
16581  *    notice, this list of conditions and the following disclaimer.
16582  *
16583  * 2. Redistributions in binary form must reproduce the above copyright
16584  *    notice, this list of conditions and the following disclaimer in
16585  *    the documentation and/or other materials provided with the
16586  *    distribution.
16587  *
16588  * 3. All advertising materials mentioning features or use of this
16589  *    software must display the following acknowledgment:
16590  *    "This product includes software developed by the OpenSSL Project
16591  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
16592  *
16593  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
16594  *    endorse or promote products derived from this software without
16595  *    prior written permission. For written permission, please contact
16596  *    openssl-core@openssl.org.
16597  *
16598  * 5. Products derived from this software may not be called "OpenSSL"
16599  *    nor may "OpenSSL" appear in their names without prior written
16600  *    permission of the OpenSSL Project.
16601  *
16602  * 6. Redistributions of any form whatsoever must retain the following
16603  *    acknowledgment:
16604  *    "This product includes software developed by the OpenSSL Project
16605  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
16606  *
16607  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
16608  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16609  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16610  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
16611  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16612  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16613  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
16614  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
16615  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
16616  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
16617  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
16618  * OF THE POSSIBILITY OF SUCH DAMAGE.
16619  * ====================================================================
16620  *
16621  * This product includes cryptographic software written by Eric Young
16622  * (eay@cryptsoft.com).  This product includes software written by Tim
16623  * Hudson (tjh@cryptsoft.com).
16624  *
16625  */
16626 # 70 "/usr/include/openssl/ecdsa.h" 2 3 4
16627 
16628 # 1 "/usr/include/openssl/bn.h" 1 3 4
16629 /* crypto/bn/bn.h */
16630 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
16631  * All rights reserved.
16632  *
16633  * This package is an SSL implementation written
16634  * by Eric Young (eay@cryptsoft.com).
16635  * The implementation was written so as to conform with Netscapes SSL.
16636  *
16637  * This library is free for commercial and non-commercial use as long as
16638  * the following conditions are aheared to.  The following conditions
16639  * apply to all code found in this distribution, be it the RC4, RSA,
16640  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
16641  * included with this distribution is covered by the same copyright terms
16642  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
16643  *
16644  * Copyright remains Eric Young's, and as such any Copyright notices in
16645  * the code are not to be removed.
16646  * If this package is used in a product, Eric Young should be given attribution
16647  * as the author of the parts of the library used.
16648  * This can be in the form of a textual message at program startup or
16649  * in documentation (online or textual) provided with the package.
16650  *
16651  * Redistribution and use in source and binary forms, with or without
16652  * modification, are permitted provided that the following conditions
16653  * are met:
16654  * 1. Redistributions of source code must retain the copyright
16655  *    notice, this list of conditions and the following disclaimer.
16656  * 2. Redistributions in binary form must reproduce the above copyright
16657  *    notice, this list of conditions and the following disclaimer in the
16658  *    documentation and/or other materials provided with the distribution.
16659  * 3. All advertising materials mentioning features or use of this software
16660  *    must display the following acknowledgement:
16661  *    "This product includes cryptographic software written by
16662  *     Eric Young (eay@cryptsoft.com)"
16663  *    The word 'cryptographic' can be left out if the rouines from the library
16664  *    being used are not cryptographic related :-).
16665  * 4. If you include any Windows specific code (or a derivative thereof) from
16666  *    the apps directory (application code) you must include an acknowledgement:
16667  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
16668  *
16669  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
16670  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16671  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16672  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16673  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
16674  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
16675  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
16676  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
16677  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
16678  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
16679  * SUCH DAMAGE.
16680  *
16681  * The licence and distribution terms for any publically available version or
16682  * derivative of this code cannot be changed.  i.e. this code cannot simply be
16683  * copied and put under another distribution licence
16684  * [including the GNU Public Licence.]
16685  */
16686 /* ====================================================================
16687  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
16688  *
16689  * Redistribution and use in source and binary forms, with or without
16690  * modification, are permitted provided that the following conditions
16691  * are met:
16692  *
16693  * 1. Redistributions of source code must retain the above copyright
16694  *    notice, this list of conditions and the following disclaimer.
16695  *
16696  * 2. Redistributions in binary form must reproduce the above copyright
16697  *    notice, this list of conditions and the following disclaimer in
16698  *    the documentation and/or other materials provided with the
16699  *    distribution.
16700  *
16701  * 3. All advertising materials mentioning features or use of this
16702  *    software must display the following acknowledgment:
16703  *    "This product includes software developed by the OpenSSL Project
16704  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
16705  *
16706  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
16707  *    endorse or promote products derived from this software without
16708  *    prior written permission. For written permission, please contact
16709  *    openssl-core@openssl.org.
16710  *
16711  * 5. Products derived from this software may not be called "OpenSSL"
16712  *    nor may "OpenSSL" appear in their names without prior written
16713  *    permission of the OpenSSL Project.
16714  *
16715  * 6. Redistributions of any form whatsoever must retain the following
16716  *    acknowledgment:
16717  *    "This product includes software developed by the OpenSSL Project
16718  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
16719  *
16720  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
16721  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16722  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16723  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
16724  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16725  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16726  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
16727  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
16728  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
16729  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
16730  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
16731  * OF THE POSSIBILITY OF SUCH DAMAGE.
16732  * ====================================================================
16733  *
16734  * This product includes cryptographic software written by Eric Young
16735  * (eay@cryptsoft.com).  This product includes software written by Tim
16736  * Hudson (tjh@cryptsoft.com).
16737  *
16738  */
16739 /* ====================================================================
16740  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
16741  *
16742  * Portions of the attached software ("Contribution") are developed by
16743  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
16744  *
16745  * The Contribution is licensed pursuant to the Eric Young open source
16746  * license provided above.
16747  *
16748  * The binary polynomial arithmetic software is originally written by
16749  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
16750  *
16751  */
16752 # 72 "/usr/include/openssl/ecdsa.h" 2 3 4
16753 
16754 
16755 
16756 
16757 
16758 
16759 typedef struct ECDSA_SIG_st {
16760     BIGNUM *r;
16761     BIGNUM *s;
16762 } ECDSA_SIG;
16763 
16764 /** Allocates and initialize a ECDSA_SIG structure
16765  *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
16766  */
16767 ECDSA_SIG *ECDSA_SIG_new(void);
16768 
16769 /** frees a ECDSA_SIG structure
16770  *  \param  sig  pointer to the ECDSA_SIG structure
16771  */
16772 void ECDSA_SIG_free(ECDSA_SIG *sig);
16773 
16774 /** DER encode content of ECDSA_SIG object (note: this function modifies *pp
16775  *  (*pp += length of the DER encoded signature)).
16776  *  \param  sig  pointer to the ECDSA_SIG object
16777  *  \param  pp   pointer to a unsigned char pointer for the output or NULL
16778  *  \return the length of the DER encoded ECDSA_SIG object or 0
16779  */
16780 int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp);
16781 
16782 /** Decodes a DER encoded ECDSA signature (note: this function changes *pp
16783  *  (*pp += len)).
16784  *  \param  sig  pointer to ECDSA_SIG pointer (may be NULL)
16785  *  \param  pp   memory buffer with the DER encoded signature
16786  *  \param  len  length of the buffer
16787  *  \return pointer to the decoded ECDSA_SIG structure (or NULL)
16788  */
16789 ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);
16790 
16791 /** Computes the ECDSA signature of the given hash value using
16792  *  the supplied private key and returns the created signature.
16793  *  \param  dgst      pointer to the hash value
16794  *  \param  dgst_len  length of the hash value
16795  *  \param  eckey     EC_KEY object containing a private EC key
16796  *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
16797  */
16798 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len,
16799                          EC_KEY *eckey);
16800 
16801 /** Computes ECDSA signature of a given hash value using the supplied
16802  *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
16803  *  \param  dgst     pointer to the hash value to sign
16804  *  \param  dgstlen  length of the hash value
16805  *  \param  kinv     BIGNUM with a pre-computed inverse k (optional)
16806  *  \param  rp       BIGNUM with a pre-computed rp value (optioanl),
16807  *                   see ECDSA_sign_setup
16808  *  \param  eckey    EC_KEY object containing a private EC key
16809  *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
16810  */
16811 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen,
16812                             const BIGNUM *kinv, const BIGNUM *rp,
16813                             EC_KEY *eckey);
16814 
16815 /** Verifies that the supplied signature is a valid ECDSA
16816  *  signature of the supplied hash value using the supplied public key.
16817  *  \param  dgst      pointer to the hash value
16818  *  \param  dgst_len  length of the hash value
16819  *  \param  sig       ECDSA_SIG structure
16820  *  \param  eckey     EC_KEY object containing a public EC key
16821  *  \return 1 if the signature is valid, 0 if the signature is invalid
16822  *          and -1 on error
16823  */
16824 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
16825                     const ECDSA_SIG *sig, EC_KEY *eckey);
16826 
16827 const ECDSA_METHOD *ECDSA_OpenSSL(void);
16828 
16829 /** Sets the default ECDSA method
16830  *  \param  meth  new default ECDSA_METHOD
16831  */
16832 void ECDSA_set_default_method(const ECDSA_METHOD *meth);
16833 
16834 /** Returns the default ECDSA method
16835  *  \return pointer to ECDSA_METHOD structure containing the default method
16836  */
16837 const ECDSA_METHOD *ECDSA_get_default_method(void);
16838 
16839 /** Sets method to be used for the ECDSA operations
16840  *  \param  eckey  EC_KEY object
16841  *  \param  meth   new method
16842  *  \return 1 on success and 0 otherwise
16843  */
16844 int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth);
16845 
16846 /** Returns the maximum length of the DER encoded signature
16847  *  \param  eckey  EC_KEY object
16848  *  \return numbers of bytes required for the DER encoded signature
16849  */
16850 int ECDSA_size(const EC_KEY *eckey);
16851 
16852 /** Precompute parts of the signing operation
16853  *  \param  eckey  EC_KEY object containing a private EC key
16854  *  \param  ctx    BN_CTX object (optional)
16855  *  \param  kinv   BIGNUM pointer for the inverse of k
16856  *  \param  rp     BIGNUM pointer for x coordinate of k * generator
16857  *  \return 1 on success and 0 otherwise
16858  */
16859 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp);
16860 
16861 /** Computes ECDSA signature of a given hash value using the supplied
16862  *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
16863  *  \param  type     this parameter is ignored
16864  *  \param  dgst     pointer to the hash value to sign
16865  *  \param  dgstlen  length of the hash value
16866  *  \param  sig      memory for the DER encoded created signature
16867  *  \param  siglen   pointer to the length of the returned signature
16868  *  \param  eckey    EC_KEY object containing a private EC key
16869  *  \return 1 on success and 0 otherwise
16870  */
16871 int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen,
16872                unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);
16873 
16874 /** Computes ECDSA signature of a given hash value using the supplied
16875  *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
16876  *  \param  type     this parameter is ignored
16877  *  \param  dgst     pointer to the hash value to sign
16878  *  \param  dgstlen  length of the hash value
16879  *  \param  sig      buffer to hold the DER encoded signature
16880  *  \param  siglen   pointer to the length of the returned signature
16881  *  \param  kinv     BIGNUM with a pre-computed inverse k (optional)
16882  *  \param  rp       BIGNUM with a pre-computed rp value (optioanl),
16883  *                   see ECDSA_sign_setup
16884  *  \param  eckey    EC_KEY object containing a private EC key
16885  *  \return 1 on success and 0 otherwise
16886  */
16887 int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen,
16888                   unsigned char *sig, unsigned int *siglen,
16889                   const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey);
16890 
16891 /** Verifies that the given signature is valid ECDSA signature
16892  *  of the supplied hash value using the specified public key.
16893  *  \param  type     this parameter is ignored
16894  *  \param  dgst     pointer to the hash value
16895  *  \param  dgstlen  length of the hash value
16896  *  \param  sig      pointer to the DER encoded signature
16897  *  \param  siglen   length of the DER encoded signature
16898  *  \param  eckey    EC_KEY object containing a public EC key
16899  *  \return 1 if the signature is valid, 0 if the signature is invalid
16900  *          and -1 on error
16901  */
16902 int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen,
16903                  const unsigned char *sig, int siglen, EC_KEY *eckey);
16904 
16905 /* the standard ex_data functions */
16906 int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
16907                            *new_func, CRYPTO_EX_dup *dup_func,
16908                            CRYPTO_EX_free *free_func);
16909 int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg);
16910 void *ECDSA_get_ex_data(EC_KEY *d, int idx);
16911 
16912 /** Allocates and initialize a ECDSA_METHOD structure
16913  *  \param ecdsa_method pointer to ECDSA_METHOD to copy.  (May be NULL)
16914  *  \return pointer to a ECDSA_METHOD structure or NULL if an error occurred
16915  */
16916 
16917 ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method);
16918 
16919 /** frees a ECDSA_METHOD structure
16920  *  \param  ecdsa_method  pointer to the ECDSA_METHOD structure
16921  */
16922 void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method);
16923 
16924 /**  Sets application specific data in the ECDSA_METHOD
16925  *   \param  ecdsa_method pointer to existing ECDSA_METHOD
16926  *   \param  app application specific data to set
16927  */
16928 
16929 void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app);
16930 
16931 /** Returns application specific data from a ECDSA_METHOD structure
16932  *  \param ecdsa_method pointer to ECDSA_METHOD structure
16933  *  \return pointer to application specific data.
16934  */
16935 
16936 void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method);
16937 
16938 /**  Set the ECDSA_do_sign function in the ECDSA_METHOD
16939  *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
16940  *   \param  ecdsa_do_sign a funtion of type ECDSA_do_sign
16941  */
16942 
16943 void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method,
16944                            ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char
16945                                                         *dgst, int dgst_len,
16946                                                         const BIGNUM *inv,
16947                                                         const BIGNUM *rp,
16948                                                         EC_KEY *eckey));
16949 
16950 /**  Set the  ECDSA_sign_setup function in the ECDSA_METHOD
16951  *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
16952  *   \param  ecdsa_sign_setup a funtion of type ECDSA_sign_setup
16953  */
16954 
16955 void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method,
16956                                  int (*ecdsa_sign_setup) (EC_KEY *eckey,
16957                                                           BN_CTX *ctx,
16958                                                           BIGNUM **kinv,
16959                                                           BIGNUM **r));
16960 
16961 /**  Set the ECDSA_do_verify function in the ECDSA_METHOD
16962  *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
16963  *   \param  ecdsa_do_verify a funtion of type ECDSA_do_verify
16964  */
16965 
16966 void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method,
16967                              int (*ecdsa_do_verify) (const unsigned char
16968                                                      *dgst, int dgst_len,
16969                                                      const ECDSA_SIG *sig,
16970                                                      EC_KEY *eckey));
16971 
16972 void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags);
16973 
16974 /**  Set the flags field in the ECDSA_METHOD
16975  *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
16976  *   \param  flags flags value to set
16977  */
16978 
16979 void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name);
16980 
16981 /**  Set the name field in the ECDSA_METHOD
16982  *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
16983  *   \param  name name to set
16984  */
16985 
16986 /* BEGIN ERROR CODES */
16987 /*
16988  * The following lines are auto generated by the script mkerr.pl. Any changes
16989  * made after this point may be overwritten when the script is next run.
16990  */
16991 void ERR_load_ECDSA_strings(void);
16992 
16993 /* Error codes for the ECDSA functions. */
16994 
16995 /* Function codes. */
16996 
16997 
16998 
16999 
17000 
17001 
17002 
17003 /* Reason codes. */
17004 # 88 "/usr/include/openssl/x509.h" 2 3 4
17005 
17006 
17007 
17008 # 1 "/usr/include/openssl/ecdh.h" 1 3 4
17009 /* crypto/ecdh/ecdh.h */
17010 /* ====================================================================
17011  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
17012  *
17013  * The Elliptic Curve Public-Key Crypto Library (ECC Code) included
17014  * herein is developed by SUN MICROSYSTEMS, INC., and is contributed
17015  * to the OpenSSL project.
17016  *
17017  * The ECC Code is licensed pursuant to the OpenSSL open source
17018  * license provided below.
17019  *
17020  * The ECDH software is originally written by Douglas Stebila of
17021  * Sun Microsystems Laboratories.
17022  *
17023  */
17024 /* ====================================================================
17025  * Copyright (c) 2000-2002 The OpenSSL Project.  All rights reserved.
17026  *
17027  * Redistribution and use in source and binary forms, with or without
17028  * modification, are permitted provided that the following conditions
17029  * are met:
17030  *
17031  * 1. Redistributions of source code must retain the above copyright
17032  *    notice, this list of conditions and the following disclaimer.
17033  *
17034  * 2. Redistributions in binary form must reproduce the above copyright
17035  *    notice, this list of conditions and the following disclaimer in
17036  *    the documentation and/or other materials provided with the
17037  *    distribution.
17038  *
17039  * 3. All advertising materials mentioning features or use of this
17040  *    software must display the following acknowledgment:
17041  *    "This product includes software developed by the OpenSSL Project
17042  *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
17043  *
17044  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17045  *    endorse or promote products derived from this software without
17046  *    prior written permission. For written permission, please contact
17047  *    licensing@OpenSSL.org.
17048  *
17049  * 5. Products derived from this software may not be called "OpenSSL"
17050  *    nor may "OpenSSL" appear in their names without prior written
17051  *    permission of the OpenSSL Project.
17052  *
17053  * 6. Redistributions of any form whatsoever must retain the following
17054  *    acknowledgment:
17055  *    "This product includes software developed by the OpenSSL Project
17056  *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
17057  *
17058  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17059  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17060  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17061  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17062  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17063  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17064  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17065  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17066  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17067  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17068  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17069  * OF THE POSSIBILITY OF SUCH DAMAGE.
17070  * ====================================================================
17071  *
17072  * This product includes cryptographic software written by Eric Young
17073  * (eay@cryptsoft.com).  This product includes software written by Tim
17074  * Hudson (tjh@cryptsoft.com).
17075  *
17076  */
17077 
17078 
17079 
17080 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
17081 /* opensslconf.h */
17082 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
17083 
17084 
17085 
17086 
17087 /* OpenSSL was configured with the following options: */
17088 # 108 "/usr/include/openssl/opensslconf.h" 3 4
17089 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
17090    asks for it.  This is a transient feature that is provided for those
17091    who haven't had the time to do the appropriate changes in their
17092    applications.  */
17093 # 204 "/usr/include/openssl/opensslconf.h" 3 4
17094 /* crypto/opensslconf.h.in */
17095 
17096 /* Generate 80386 code? */
17097 # 73 "/usr/include/openssl/ecdh.h" 2 3 4
17098 
17099 
17100 
17101 
17102 
17103 # 1 "/usr/include/openssl/ec.h" 1 3 4
17104 /* crypto/ec/ec.h */
17105 /*
17106  * Originally written by Bodo Moeller for the OpenSSL project.
17107  */
17108 /**
17109  * \file crypto/ec/ec.h Include file for the OpenSSL EC functions
17110  * \author Originally written by Bodo Moeller for the OpenSSL project
17111  */
17112 /* ====================================================================
17113  * Copyright (c) 1998-2019 The OpenSSL Project.  All rights reserved.
17114  *
17115  * Redistribution and use in source and binary forms, with or without
17116  * modification, are permitted provided that the following conditions
17117  * are met:
17118  *
17119  * 1. Redistributions of source code must retain the above copyright
17120  *    notice, this list of conditions and the following disclaimer.
17121  *
17122  * 2. Redistributions in binary form must reproduce the above copyright
17123  *    notice, this list of conditions and the following disclaimer in
17124  *    the documentation and/or other materials provided with the
17125  *    distribution.
17126  *
17127  * 3. All advertising materials mentioning features or use of this
17128  *    software must display the following acknowledgment:
17129  *    "This product includes software developed by the OpenSSL Project
17130  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
17131  *
17132  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17133  *    endorse or promote products derived from this software without
17134  *    prior written permission. For written permission, please contact
17135  *    openssl-core@openssl.org.
17136  *
17137  * 5. Products derived from this software may not be called "OpenSSL"
17138  *    nor may "OpenSSL" appear in their names without prior written
17139  *    permission of the OpenSSL Project.
17140  *
17141  * 6. Redistributions of any form whatsoever must retain the following
17142  *    acknowledgment:
17143  *    "This product includes software developed by the OpenSSL Project
17144  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
17145  *
17146  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17147  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17148  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17149  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17150  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17151  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17152  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17153  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17154  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17155  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17156  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17157  * OF THE POSSIBILITY OF SUCH DAMAGE.
17158  * ====================================================================
17159  *
17160  * This product includes cryptographic software written by Eric Young
17161  * (eay@cryptsoft.com).  This product includes software written by Tim
17162  * Hudson (tjh@cryptsoft.com).
17163  *
17164  */
17165 /* ====================================================================
17166  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
17167  *
17168  * Portions of the attached software ("Contribution") are developed by
17169  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
17170  *
17171  * The Contribution is licensed pursuant to the OpenSSL open source
17172  * license provided above.
17173  *
17174  * The elliptic curve binary polynomial software is originally written by
17175  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
17176  *
17177  */
17178 # 79 "/usr/include/openssl/ecdh.h" 2 3 4
17179 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
17180 /* ====================================================================
17181  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
17182  *
17183  * Redistribution and use in source and binary forms, with or without
17184  * modification, are permitted provided that the following conditions
17185  * are met:
17186  *
17187  * 1. Redistributions of source code must retain the above copyright
17188  *    notice, this list of conditions and the following disclaimer.
17189  *
17190  * 2. Redistributions in binary form must reproduce the above copyright
17191  *    notice, this list of conditions and the following disclaimer in
17192  *    the documentation and/or other materials provided with the
17193  *    distribution.
17194  *
17195  * 3. All advertising materials mentioning features or use of this
17196  *    software must display the following acknowledgment:
17197  *    "This product includes software developed by the OpenSSL Project
17198  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
17199  *
17200  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17201  *    endorse or promote products derived from this software without
17202  *    prior written permission. For written permission, please contact
17203  *    openssl-core@openssl.org.
17204  *
17205  * 5. Products derived from this software may not be called "OpenSSL"
17206  *    nor may "OpenSSL" appear in their names without prior written
17207  *    permission of the OpenSSL Project.
17208  *
17209  * 6. Redistributions of any form whatsoever must retain the following
17210  *    acknowledgment:
17211  *    "This product includes software developed by the OpenSSL Project
17212  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
17213  *
17214  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17215  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17216  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17217  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17218  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17219  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17220  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17221  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17222  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17223  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17224  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17225  * OF THE POSSIBILITY OF SUCH DAMAGE.
17226  * ====================================================================
17227  *
17228  * This product includes cryptographic software written by Eric Young
17229  * (eay@cryptsoft.com).  This product includes software written by Tim
17230  * Hudson (tjh@cryptsoft.com).
17231  *
17232  */
17233 # 80 "/usr/include/openssl/ecdh.h" 2 3 4
17234 
17235 # 1 "/usr/include/openssl/bn.h" 1 3 4
17236 /* crypto/bn/bn.h */
17237 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
17238  * All rights reserved.
17239  *
17240  * This package is an SSL implementation written
17241  * by Eric Young (eay@cryptsoft.com).
17242  * The implementation was written so as to conform with Netscapes SSL.
17243  *
17244  * This library is free for commercial and non-commercial use as long as
17245  * the following conditions are aheared to.  The following conditions
17246  * apply to all code found in this distribution, be it the RC4, RSA,
17247  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
17248  * included with this distribution is covered by the same copyright terms
17249  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17250  *
17251  * Copyright remains Eric Young's, and as such any Copyright notices in
17252  * the code are not to be removed.
17253  * If this package is used in a product, Eric Young should be given attribution
17254  * as the author of the parts of the library used.
17255  * This can be in the form of a textual message at program startup or
17256  * in documentation (online or textual) provided with the package.
17257  *
17258  * Redistribution and use in source and binary forms, with or without
17259  * modification, are permitted provided that the following conditions
17260  * are met:
17261  * 1. Redistributions of source code must retain the copyright
17262  *    notice, this list of conditions and the following disclaimer.
17263  * 2. Redistributions in binary form must reproduce the above copyright
17264  *    notice, this list of conditions and the following disclaimer in the
17265  *    documentation and/or other materials provided with the distribution.
17266  * 3. All advertising materials mentioning features or use of this software
17267  *    must display the following acknowledgement:
17268  *    "This product includes cryptographic software written by
17269  *     Eric Young (eay@cryptsoft.com)"
17270  *    The word 'cryptographic' can be left out if the rouines from the library
17271  *    being used are not cryptographic related :-).
17272  * 4. If you include any Windows specific code (or a derivative thereof) from
17273  *    the apps directory (application code) you must include an acknowledgement:
17274  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
17275  *
17276  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
17277  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17278  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17279  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17280  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17281  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
17282  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17283  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
17284  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
17285  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
17286  * SUCH DAMAGE.
17287  *
17288  * The licence and distribution terms for any publically available version or
17289  * derivative of this code cannot be changed.  i.e. this code cannot simply be
17290  * copied and put under another distribution licence
17291  * [including the GNU Public Licence.]
17292  */
17293 /* ====================================================================
17294  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
17295  *
17296  * Redistribution and use in source and binary forms, with or without
17297  * modification, are permitted provided that the following conditions
17298  * are met:
17299  *
17300  * 1. Redistributions of source code must retain the above copyright
17301  *    notice, this list of conditions and the following disclaimer.
17302  *
17303  * 2. Redistributions in binary form must reproduce the above copyright
17304  *    notice, this list of conditions and the following disclaimer in
17305  *    the documentation and/or other materials provided with the
17306  *    distribution.
17307  *
17308  * 3. All advertising materials mentioning features or use of this
17309  *    software must display the following acknowledgment:
17310  *    "This product includes software developed by the OpenSSL Project
17311  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
17312  *
17313  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17314  *    endorse or promote products derived from this software without
17315  *    prior written permission. For written permission, please contact
17316  *    openssl-core@openssl.org.
17317  *
17318  * 5. Products derived from this software may not be called "OpenSSL"
17319  *    nor may "OpenSSL" appear in their names without prior written
17320  *    permission of the OpenSSL Project.
17321  *
17322  * 6. Redistributions of any form whatsoever must retain the following
17323  *    acknowledgment:
17324  *    "This product includes software developed by the OpenSSL Project
17325  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
17326  *
17327  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17328  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17329  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17330  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17331  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17332  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17333  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17334  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17335  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17336  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17337  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17338  * OF THE POSSIBILITY OF SUCH DAMAGE.
17339  * ====================================================================
17340  *
17341  * This product includes cryptographic software written by Eric Young
17342  * (eay@cryptsoft.com).  This product includes software written by Tim
17343  * Hudson (tjh@cryptsoft.com).
17344  *
17345  */
17346 /* ====================================================================
17347  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
17348  *
17349  * Portions of the attached software ("Contribution") are developed by
17350  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
17351  *
17352  * The Contribution is licensed pursuant to the Eric Young open source
17353  * license provided above.
17354  *
17355  * The binary polynomial arithmetic software is originally written by
17356  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
17357  *
17358  */
17359 # 82 "/usr/include/openssl/ecdh.h" 2 3 4
17360 # 90 "/usr/include/openssl/ecdh.h" 3 4
17361 const ECDH_METHOD *ECDH_OpenSSL(void);
17362 
17363 void ECDH_set_default_method(const ECDH_METHOD *);
17364 const ECDH_METHOD *ECDH_get_default_method(void);
17365 int ECDH_set_method(EC_KEY *, const ECDH_METHOD *);
17366 
17367 int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
17368                      EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen,
17369                                                  void *out, size_t *outlen));
17370 
17371 int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
17372                           *new_func, CRYPTO_EX_dup *dup_func,
17373                           CRYPTO_EX_free *free_func);
17374 int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg);
17375 void *ECDH_get_ex_data(EC_KEY *d, int idx);
17376 
17377 int ECDH_KDF_X9_62(unsigned char *out, size_t outlen,
17378                    const unsigned char *Z, size_t Zlen,
17379                    const unsigned char *sinfo, size_t sinfolen,
17380                    const EVP_MD *md);
17381 
17382 /* BEGIN ERROR CODES */
17383 /*
17384  * The following lines are auto generated by the script mkerr.pl. Any changes
17385  * made after this point may be overwritten when the script is next run.
17386  */
17387 void ERR_load_ECDH_strings(void);
17388 
17389 /* Error codes for the ECDH functions. */
17390 
17391 /* Function codes. */
17392 
17393 
17394 
17395 
17396 /* Reason codes. */
17397 # 92 "/usr/include/openssl/x509.h" 2 3 4
17398 
17399 
17400 
17401 
17402 # 1 "/usr/include/openssl/rsa.h" 1 3 4
17403 /* crypto/rsa/rsa.h */
17404 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
17405  * All rights reserved.
17406  *
17407  * This package is an SSL implementation written
17408  * by Eric Young (eay@cryptsoft.com).
17409  * The implementation was written so as to conform with Netscapes SSL.
17410  *
17411  * This library is free for commercial and non-commercial use as long as
17412  * the following conditions are aheared to.  The following conditions
17413  * apply to all code found in this distribution, be it the RC4, RSA,
17414  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
17415  * included with this distribution is covered by the same copyright terms
17416  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17417  *
17418  * Copyright remains Eric Young's, and as such any Copyright notices in
17419  * the code are not to be removed.
17420  * If this package is used in a product, Eric Young should be given attribution
17421  * as the author of the parts of the library used.
17422  * This can be in the form of a textual message at program startup or
17423  * in documentation (online or textual) provided with the package.
17424  *
17425  * Redistribution and use in source and binary forms, with or without
17426  * modification, are permitted provided that the following conditions
17427  * are met:
17428  * 1. Redistributions of source code must retain the copyright
17429  *    notice, this list of conditions and the following disclaimer.
17430  * 2. Redistributions in binary form must reproduce the above copyright
17431  *    notice, this list of conditions and the following disclaimer in the
17432  *    documentation and/or other materials provided with the distribution.
17433  * 3. All advertising materials mentioning features or use of this software
17434  *    must display the following acknowledgement:
17435  *    "This product includes cryptographic software written by
17436  *     Eric Young (eay@cryptsoft.com)"
17437  *    The word 'cryptographic' can be left out if the rouines from the library
17438  *    being used are not cryptographic related :-).
17439  * 4. If you include any Windows specific code (or a derivative thereof) from
17440  *    the apps directory (application code) you must include an acknowledgement:
17441  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
17442  *
17443  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
17444  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17445  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17446  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17447  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17448  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
17449  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17450  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
17451  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
17452  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
17453  * SUCH DAMAGE.
17454  *
17455  * The licence and distribution terms for any publically available version or
17456  * derivative of this code cannot be changed.  i.e. this code cannot simply be
17457  * copied and put under another distribution licence
17458  * [including the GNU Public Licence.]
17459  */
17460 
17461 
17462 
17463 
17464 # 1 "/usr/include/openssl/asn1.h" 1 3 4
17465 /* crypto/asn1/asn1.h */
17466 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
17467  * All rights reserved.
17468  *
17469  * This package is an SSL implementation written
17470  * by Eric Young (eay@cryptsoft.com).
17471  * The implementation was written so as to conform with Netscapes SSL.
17472  *
17473  * This library is free for commercial and non-commercial use as long as
17474  * the following conditions are aheared to.  The following conditions
17475  * apply to all code found in this distribution, be it the RC4, RSA,
17476  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
17477  * included with this distribution is covered by the same copyright terms
17478  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17479  *
17480  * Copyright remains Eric Young's, and as such any Copyright notices in
17481  * the code are not to be removed.
17482  * If this package is used in a product, Eric Young should be given attribution
17483  * as the author of the parts of the library used.
17484  * This can be in the form of a textual message at program startup or
17485  * in documentation (online or textual) provided with the package.
17486  *
17487  * Redistribution and use in source and binary forms, with or without
17488  * modification, are permitted provided that the following conditions
17489  * are met:
17490  * 1. Redistributions of source code must retain the copyright
17491  *    notice, this list of conditions and the following disclaimer.
17492  * 2. Redistributions in binary form must reproduce the above copyright
17493  *    notice, this list of conditions and the following disclaimer in the
17494  *    documentation and/or other materials provided with the distribution.
17495  * 3. All advertising materials mentioning features or use of this software
17496  *    must display the following acknowledgement:
17497  *    "This product includes cryptographic software written by
17498  *     Eric Young (eay@cryptsoft.com)"
17499  *    The word 'cryptographic' can be left out if the rouines from the library
17500  *    being used are not cryptographic related :-).
17501  * 4. If you include any Windows specific code (or a derivative thereof) from
17502  *    the apps directory (application code) you must include an acknowledgement:
17503  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
17504  *
17505  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
17506  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17507  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17508  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17509  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17510  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
17511  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17512  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
17513  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
17514  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
17515  * SUCH DAMAGE.
17516  *
17517  * The licence and distribution terms for any publically available version or
17518  * derivative of this code cannot be changed.  i.e. this code cannot simply be
17519  * copied and put under another distribution licence
17520  * [including the GNU Public Licence.]
17521  */
17522 # 63 "/usr/include/openssl/rsa.h" 2 3 4
17523 
17524 
17525 # 1 "/usr/include/openssl/bio.h" 1 3 4
17526 /* crypto/bio/bio.h */
17527 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
17528  * All rights reserved.
17529  *
17530  * This package is an SSL implementation written
17531  * by Eric Young (eay@cryptsoft.com).
17532  * The implementation was written so as to conform with Netscapes SSL.
17533  *
17534  * This library is free for commercial and non-commercial use as long as
17535  * the following conditions are aheared to.  The following conditions
17536  * apply to all code found in this distribution, be it the RC4, RSA,
17537  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
17538  * included with this distribution is covered by the same copyright terms
17539  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17540  *
17541  * Copyright remains Eric Young's, and as such any Copyright notices in
17542  * the code are not to be removed.
17543  * If this package is used in a product, Eric Young should be given attribution
17544  * as the author of the parts of the library used.
17545  * This can be in the form of a textual message at program startup or
17546  * in documentation (online or textual) provided with the package.
17547  *
17548  * Redistribution and use in source and binary forms, with or without
17549  * modification, are permitted provided that the following conditions
17550  * are met:
17551  * 1. Redistributions of source code must retain the copyright
17552  *    notice, this list of conditions and the following disclaimer.
17553  * 2. Redistributions in binary form must reproduce the above copyright
17554  *    notice, this list of conditions and the following disclaimer in the
17555  *    documentation and/or other materials provided with the distribution.
17556  * 3. All advertising materials mentioning features or use of this software
17557  *    must display the following acknowledgement:
17558  *    "This product includes cryptographic software written by
17559  *     Eric Young (eay@cryptsoft.com)"
17560  *    The word 'cryptographic' can be left out if the rouines from the library
17561  *    being used are not cryptographic related :-).
17562  * 4. If you include any Windows specific code (or a derivative thereof) from
17563  *    the apps directory (application code) you must include an acknowledgement:
17564  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
17565  *
17566  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
17567  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17568  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17569  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17570  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17571  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
17572  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17573  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
17574  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
17575  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
17576  * SUCH DAMAGE.
17577  *
17578  * The licence and distribution terms for any publically available version or
17579  * derivative of this code cannot be changed.  i.e. this code cannot simply be
17580  * copied and put under another distribution licence
17581  * [including the GNU Public Licence.]
17582  */
17583 # 66 "/usr/include/openssl/rsa.h" 2 3 4
17584 
17585 # 1 "/usr/include/openssl/crypto.h" 1 3 4
17586 /* crypto/crypto.h */
17587 /* ====================================================================
17588  * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
17589  *
17590  * Redistribution and use in source and binary forms, with or without
17591  * modification, are permitted provided that the following conditions
17592  * are met:
17593  *
17594  * 1. Redistributions of source code must retain the above copyright
17595  *    notice, this list of conditions and the following disclaimer.
17596  *
17597  * 2. Redistributions in binary form must reproduce the above copyright
17598  *    notice, this list of conditions and the following disclaimer in
17599  *    the documentation and/or other materials provided with the
17600  *    distribution.
17601  *
17602  * 3. All advertising materials mentioning features or use of this
17603  *    software must display the following acknowledgment:
17604  *    "This product includes software developed by the OpenSSL Project
17605  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
17606  *
17607  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17608  *    endorse or promote products derived from this software without
17609  *    prior written permission. For written permission, please contact
17610  *    openssl-core@openssl.org.
17611  *
17612  * 5. Products derived from this software may not be called "OpenSSL"
17613  *    nor may "OpenSSL" appear in their names without prior written
17614  *    permission of the OpenSSL Project.
17615  *
17616  * 6. Redistributions of any form whatsoever must retain the following
17617  *    acknowledgment:
17618  *    "This product includes software developed by the OpenSSL Project
17619  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
17620  *
17621  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17622  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17623  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17624  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17625  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17626  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17627  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17628  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17629  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17630  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17631  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17632  * OF THE POSSIBILITY OF SUCH DAMAGE.
17633  * ====================================================================
17634  *
17635  * This product includes cryptographic software written by Eric Young
17636  * (eay@cryptsoft.com).  This product includes software written by Tim
17637  * Hudson (tjh@cryptsoft.com).
17638  *
17639  */
17640 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
17641  * All rights reserved.
17642  *
17643  * This package is an SSL implementation written
17644  * by Eric Young (eay@cryptsoft.com).
17645  * The implementation was written so as to conform with Netscapes SSL.
17646  *
17647  * This library is free for commercial and non-commercial use as long as
17648  * the following conditions are aheared to.  The following conditions
17649  * apply to all code found in this distribution, be it the RC4, RSA,
17650  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
17651  * included with this distribution is covered by the same copyright terms
17652  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17653  *
17654  * Copyright remains Eric Young's, and as such any Copyright notices in
17655  * the code are not to be removed.
17656  * If this package is used in a product, Eric Young should be given attribution
17657  * as the author of the parts of the library used.
17658  * This can be in the form of a textual message at program startup or
17659  * in documentation (online or textual) provided with the package.
17660  *
17661  * Redistribution and use in source and binary forms, with or without
17662  * modification, are permitted provided that the following conditions
17663  * are met:
17664  * 1. Redistributions of source code must retain the copyright
17665  *    notice, this list of conditions and the following disclaimer.
17666  * 2. Redistributions in binary form must reproduce the above copyright
17667  *    notice, this list of conditions and the following disclaimer in the
17668  *    documentation and/or other materials provided with the distribution.
17669  * 3. All advertising materials mentioning features or use of this software
17670  *    must display the following acknowledgement:
17671  *    "This product includes cryptographic software written by
17672  *     Eric Young (eay@cryptsoft.com)"
17673  *    The word 'cryptographic' can be left out if the rouines from the library
17674  *    being used are not cryptographic related :-).
17675  * 4. If you include any Windows specific code (or a derivative thereof) from
17676  *    the apps directory (application code) you must include an acknowledgement:
17677  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
17678  *
17679  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
17680  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17681  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17682  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17683  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17684  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
17685  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17686  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
17687  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
17688  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
17689  * SUCH DAMAGE.
17690  *
17691  * The licence and distribution terms for any publically available version or
17692  * derivative of this code cannot be changed.  i.e. this code cannot simply be
17693  * copied and put under another distribution licence
17694  * [including the GNU Public Licence.]
17695  */
17696 /* ====================================================================
17697  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
17698  * ECDH support in OpenSSL originally developed by
17699  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
17700  */
17701 # 68 "/usr/include/openssl/rsa.h" 2 3 4
17702 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
17703 /* ====================================================================
17704  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
17705  *
17706  * Redistribution and use in source and binary forms, with or without
17707  * modification, are permitted provided that the following conditions
17708  * are met:
17709  *
17710  * 1. Redistributions of source code must retain the above copyright
17711  *    notice, this list of conditions and the following disclaimer.
17712  *
17713  * 2. Redistributions in binary form must reproduce the above copyright
17714  *    notice, this list of conditions and the following disclaimer in
17715  *    the documentation and/or other materials provided with the
17716  *    distribution.
17717  *
17718  * 3. All advertising materials mentioning features or use of this
17719  *    software must display the following acknowledgment:
17720  *    "This product includes software developed by the OpenSSL Project
17721  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
17722  *
17723  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17724  *    endorse or promote products derived from this software without
17725  *    prior written permission. For written permission, please contact
17726  *    openssl-core@openssl.org.
17727  *
17728  * 5. Products derived from this software may not be called "OpenSSL"
17729  *    nor may "OpenSSL" appear in their names without prior written
17730  *    permission of the OpenSSL Project.
17731  *
17732  * 6. Redistributions of any form whatsoever must retain the following
17733  *    acknowledgment:
17734  *    "This product includes software developed by the OpenSSL Project
17735  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
17736  *
17737  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17738  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17739  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17740  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17741  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17742  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17743  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17744  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17745  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17746  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17747  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17748  * OF THE POSSIBILITY OF SUCH DAMAGE.
17749  * ====================================================================
17750  *
17751  * This product includes cryptographic software written by Eric Young
17752  * (eay@cryptsoft.com).  This product includes software written by Tim
17753  * Hudson (tjh@cryptsoft.com).
17754  *
17755  */
17756 # 69 "/usr/include/openssl/rsa.h" 2 3 4
17757 
17758 # 1 "/usr/include/openssl/bn.h" 1 3 4
17759 /* crypto/bn/bn.h */
17760 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
17761  * All rights reserved.
17762  *
17763  * This package is an SSL implementation written
17764  * by Eric Young (eay@cryptsoft.com).
17765  * The implementation was written so as to conform with Netscapes SSL.
17766  *
17767  * This library is free for commercial and non-commercial use as long as
17768  * the following conditions are aheared to.  The following conditions
17769  * apply to all code found in this distribution, be it the RC4, RSA,
17770  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
17771  * included with this distribution is covered by the same copyright terms
17772  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17773  *
17774  * Copyright remains Eric Young's, and as such any Copyright notices in
17775  * the code are not to be removed.
17776  * If this package is used in a product, Eric Young should be given attribution
17777  * as the author of the parts of the library used.
17778  * This can be in the form of a textual message at program startup or
17779  * in documentation (online or textual) provided with the package.
17780  *
17781  * Redistribution and use in source and binary forms, with or without
17782  * modification, are permitted provided that the following conditions
17783  * are met:
17784  * 1. Redistributions of source code must retain the copyright
17785  *    notice, this list of conditions and the following disclaimer.
17786  * 2. Redistributions in binary form must reproduce the above copyright
17787  *    notice, this list of conditions and the following disclaimer in the
17788  *    documentation and/or other materials provided with the distribution.
17789  * 3. All advertising materials mentioning features or use of this software
17790  *    must display the following acknowledgement:
17791  *    "This product includes cryptographic software written by
17792  *     Eric Young (eay@cryptsoft.com)"
17793  *    The word 'cryptographic' can be left out if the rouines from the library
17794  *    being used are not cryptographic related :-).
17795  * 4. If you include any Windows specific code (or a derivative thereof) from
17796  *    the apps directory (application code) you must include an acknowledgement:
17797  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
17798  *
17799  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
17800  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17801  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17802  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17803  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17804  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
17805  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17806  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
17807  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
17808  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
17809  * SUCH DAMAGE.
17810  *
17811  * The licence and distribution terms for any publically available version or
17812  * derivative of this code cannot be changed.  i.e. this code cannot simply be
17813  * copied and put under another distribution licence
17814  * [including the GNU Public Licence.]
17815  */
17816 /* ====================================================================
17817  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
17818  *
17819  * Redistribution and use in source and binary forms, with or without
17820  * modification, are permitted provided that the following conditions
17821  * are met:
17822  *
17823  * 1. Redistributions of source code must retain the above copyright
17824  *    notice, this list of conditions and the following disclaimer.
17825  *
17826  * 2. Redistributions in binary form must reproduce the above copyright
17827  *    notice, this list of conditions and the following disclaimer in
17828  *    the documentation and/or other materials provided with the
17829  *    distribution.
17830  *
17831  * 3. All advertising materials mentioning features or use of this
17832  *    software must display the following acknowledgment:
17833  *    "This product includes software developed by the OpenSSL Project
17834  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
17835  *
17836  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
17837  *    endorse or promote products derived from this software without
17838  *    prior written permission. For written permission, please contact
17839  *    openssl-core@openssl.org.
17840  *
17841  * 5. Products derived from this software may not be called "OpenSSL"
17842  *    nor may "OpenSSL" appear in their names without prior written
17843  *    permission of the OpenSSL Project.
17844  *
17845  * 6. Redistributions of any form whatsoever must retain the following
17846  *    acknowledgment:
17847  *    "This product includes software developed by the OpenSSL Project
17848  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
17849  *
17850  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
17851  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17852  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17853  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
17854  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17855  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17856  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
17857  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17858  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
17859  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
17860  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
17861  * OF THE POSSIBILITY OF SUCH DAMAGE.
17862  * ====================================================================
17863  *
17864  * This product includes cryptographic software written by Eric Young
17865  * (eay@cryptsoft.com).  This product includes software written by Tim
17866  * Hudson (tjh@cryptsoft.com).
17867  *
17868  */
17869 /* ====================================================================
17870  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
17871  *
17872  * Portions of the attached software ("Contribution") are developed by
17873  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
17874  *
17875  * The Contribution is licensed pursuant to the Eric Young open source
17876  * license provided above.
17877  *
17878  * The binary polynomial arithmetic software is originally written by
17879  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
17880  *
17881  */
17882 # 71 "/usr/include/openssl/rsa.h" 2 3 4
17883 # 81 "/usr/include/openssl/rsa.h" 3 4
17884 /* Declared already in ossl_typ.h */
17885 /* typedef struct rsa_st RSA; */
17886 /* typedef struct rsa_meth_st RSA_METHOD; */
17887 
17888 struct rsa_meth_st {
17889     const char *name;
17890     int (*rsa_pub_enc) (int flen, const unsigned char *from,
17891                         unsigned char *to, RSA *rsa, int padding);
17892     int (*rsa_pub_dec) (int flen, const unsigned char *from,
17893                         unsigned char *to, RSA *rsa, int padding);
17894     int (*rsa_priv_enc) (int flen, const unsigned char *from,
17895                          unsigned char *to, RSA *rsa, int padding);
17896     int (*rsa_priv_dec) (int flen, const unsigned char *from,
17897                          unsigned char *to, RSA *rsa, int padding);
17898     /* Can be null */
17899     int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx);
17900     /* Can be null */
17901     int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
17902                        const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
17903     /* called at new */
17904     int (*init) (RSA *rsa);
17905     /* called at free */
17906     int (*finish) (RSA *rsa);
17907     /* RSA_METHOD_FLAG_* things */
17908     int flags;
17909     /* may be needed! */
17910     char *app_data;
17911     /*
17912      * New sign and verify functions: some libraries don't allow arbitrary
17913      * data to be signed/verified: this allows them to be used. Note: for
17914      * this to work the RSA_public_decrypt() and RSA_private_encrypt() should
17915      * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note:
17916      * for backwards compatibility this functionality is only enabled if the
17917      * RSA_FLAG_SIGN_VER option is set in 'flags'.
17918      */
17919     int (*rsa_sign) (int type,
17920                      const unsigned char *m, unsigned int m_length,
17921                      unsigned char *sigret, unsigned int *siglen,
17922                      const RSA *rsa);
17923     int (*rsa_verify) (int dtype, const unsigned char *m,
17924                        unsigned int m_length, const unsigned char *sigbuf,
17925                        unsigned int siglen, const RSA *rsa);
17926     /*
17927      * If this callback is NULL, the builtin software RSA key-gen will be
17928      * used. This is for behavioural compatibility whilst the code gets
17929      * rewired, but one day it would be nice to assume there are no such
17930      * things as "builtin software" implementations.
17931      */
17932     int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
17933 };
17934 
17935 struct rsa_st {
17936     /*
17937      * The first parameter is used to pickup errors where this is passed
17938      * instead of aEVP_PKEY, it is set to 0
17939      */
17940     int pad;
17941     long version;
17942     const RSA_METHOD *meth;
17943     /* functional reference if 'meth' is ENGINE-provided */
17944     ENGINE *engine;
17945     BIGNUM *n;
17946     BIGNUM *e;
17947     BIGNUM *d;
17948     BIGNUM *p;
17949     BIGNUM *q;
17950     BIGNUM *dmp1;
17951     BIGNUM *dmq1;
17952     BIGNUM *iqmp;
17953     /* be careful using this if the RSA structure is shared */
17954     CRYPTO_EX_DATA ex_data;
17955     int references;
17956     int flags;
17957     /* Used to cache montgomery values */
17958     BN_MONT_CTX *_method_mod_n;
17959     BN_MONT_CTX *_method_mod_p;
17960     BN_MONT_CTX *_method_mod_q;
17961     /*
17962      * all BIGNUM values are actually in the following data, if it is not
17963      * NULL
17964      */
17965     char *bignum_data;
17966     BN_BLINDING *blinding;
17967     BN_BLINDING *mt_blinding;
17968 };
17969 # 176 "/usr/include/openssl/rsa.h" 3 4
17970 /* exponent limit enforced for "large" modulus only */
17971 # 190 "/usr/include/openssl/rsa.h" 3 4
17972 /*
17973  * This flag means the private key operations will be handled by rsa_mod_exp
17974  * and that they do not depend on the private key components being present:
17975  * for example a key stored in external hardware. Without this flag
17976  * bn_mod_exp gets called when private key components are absent.
17977  */
17978 
17979 
17980 /*
17981  * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify
17982  * functions.
17983  */
17984 
17985 
17986 /*
17987  * new with 0.9.6j and 0.9.7b; the built-in
17988  * RSA implementation now uses blinding by
17989  * default (ignoring RSA_FLAG_BLINDING),
17990  * but other engines might not need it
17991  */
17992 
17993 /*
17994  * new with 0.9.8f; the built-in RSA
17995  * implementation now uses constant time
17996  * operations by default in private key operations,
17997  * e.g., constant time modular exponentiation,
17998  * modular inverse without leaking branches,
17999  * division without leaking branches. This
18000  * flag disables these constant time
18001  * operations and results in faster RSA
18002  * private key operations.
18003  */
18004 # 312 "/usr/include/openssl/rsa.h" 3 4
18005 /* EVP_PKEY_ only */
18006 
18007 
18008 
18009 
18010 
18011 
18012 
18013 RSA *RSA_new(void);
18014 RSA *RSA_new_method(ENGINE *engine);
18015 int RSA_size(const RSA *rsa);
18016 
18017 /* Deprecated version */
18018 
18019 RSA *RSA_generate_key(int bits, unsigned long e, void
18020                        (*callback) (int, int, void *), void *cb_arg);
18021 
18022 
18023 /* New version */
18024 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
18025 
18026 int RSA_check_key(const RSA *);
18027         /* next 4 return -1 on error */
18028 int RSA_public_encrypt(int flen, const unsigned char *from,
18029                        unsigned char *to, RSA *rsa, int padding);
18030 int RSA_private_encrypt(int flen, const unsigned char *from,
18031                         unsigned char *to, RSA *rsa, int padding);
18032 int RSA_public_decrypt(int flen, const unsigned char *from,
18033                        unsigned char *to, RSA *rsa, int padding);
18034 int RSA_private_decrypt(int flen, const unsigned char *from,
18035                         unsigned char *to, RSA *rsa, int padding);
18036 void RSA_free(RSA *r);
18037 /* "up" the RSA object's reference count */
18038 int RSA_up_ref(RSA *r);
18039 
18040 int RSA_flags(const RSA *r);
18041 
18042 void RSA_set_default_method(const RSA_METHOD *meth);
18043 const RSA_METHOD *RSA_get_default_method(void);
18044 const RSA_METHOD *RSA_get_method(const RSA *rsa);
18045 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth);
18046 
18047 /* This function needs the memory locking malloc callbacks to be installed */
18048 int RSA_memory_lock(RSA *r);
18049 
18050 /* these are the actual SSLeay RSA functions */
18051 const RSA_METHOD *RSA_PKCS1_SSLeay(void);
18052 
18053 const RSA_METHOD *RSA_null_method(void);
18054 
18055 RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPublicKey(const RSA *a, unsigned char **out); extern const ASN1_ITEM RSAPublicKey_it;
18056 RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPrivateKey(const RSA *a, unsigned char **out); extern const ASN1_ITEM RSAPrivateKey_it;
18057 
18058 typedef struct rsa_pss_params_st {
18059     X509_ALGOR *hashAlgorithm;
18060     X509_ALGOR *maskGenAlgorithm;
18061     ASN1_INTEGER *saltLength;
18062     ASN1_INTEGER *trailerField;
18063 } RSA_PSS_PARAMS;
18064 
18065 RSA_PSS_PARAMS *RSA_PSS_PARAMS_new(void); void RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a); RSA_PSS_PARAMS *d2i_RSA_PSS_PARAMS(RSA_PSS_PARAMS **a, const unsigned char **in, long len); int i2d_RSA_PSS_PARAMS(RSA_PSS_PARAMS *a, unsigned char **out); extern const ASN1_ITEM RSA_PSS_PARAMS_it;
18066 
18067 typedef struct rsa_oaep_params_st {
18068     X509_ALGOR *hashFunc;
18069     X509_ALGOR *maskGenFunc;
18070     X509_ALGOR *pSourceFunc;
18071 } RSA_OAEP_PARAMS;
18072 
18073 RSA_OAEP_PARAMS *RSA_OAEP_PARAMS_new(void); void RSA_OAEP_PARAMS_free(RSA_OAEP_PARAMS *a); RSA_OAEP_PARAMS *d2i_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS **a, const unsigned char **in, long len); int i2d_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS *a, unsigned char **out); extern const ASN1_ITEM RSA_OAEP_PARAMS_it;
18074 
18075 
18076 int RSA_print_fp(FILE *fp, const RSA *r, int offset);
18077 
18078 
18079 
18080 int RSA_print(BIO *bp, const RSA *r, int offset);
18081 
18082 
18083 
18084 int i2d_RSA_NET(const RSA *a, unsigned char **pp,
18085                 int (*cb) (char *buf, int len, const char *prompt,
18086                            int verify), int sgckey);
18087 RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length,
18088                  int (*cb) (char *buf, int len, const char *prompt,
18089                             int verify), int sgckey);
18090 
18091 int i2d_Netscape_RSA(const RSA *a, unsigned char **pp,
18092                      int (*cb) (char *buf, int len, const char *prompt,
18093                                 int verify));
18094 RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length,
18095                       int (*cb) (char *buf, int len, const char *prompt,
18096                                  int verify));
18097 
18098 
18099 /*
18100  * The following 2 functions sign and verify a X509_SIG ASN1 object inside
18101  * PKCS#1 padded RSA encryption
18102  */
18103 int RSA_sign(int type, const unsigned char *m, unsigned int m_length,
18104              unsigned char *sigret, unsigned int *siglen, RSA *rsa);
18105 int RSA_verify(int type, const unsigned char *m, unsigned int m_length,
18106                const unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
18107 
18108 /*
18109  * The following 2 function sign and verify a ASN1_OCTET_STRING object inside
18110  * PKCS#1 padded RSA encryption
18111  */
18112 int RSA_sign_ASN1_OCTET_STRING(int type,
18113                                const unsigned char *m, unsigned int m_length,
18114                                unsigned char *sigret, unsigned int *siglen,
18115                                RSA *rsa);
18116 int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m,
18117                                  unsigned int m_length, unsigned char *sigbuf,
18118                                  unsigned int siglen, RSA *rsa);
18119 
18120 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx);
18121 void RSA_blinding_off(RSA *rsa);
18122 BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx);
18123 
18124 int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,
18125                                  const unsigned char *f, int fl);
18126 int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,
18127                                    const unsigned char *f, int fl,
18128                                    int rsa_len);
18129 int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,
18130                                  const unsigned char *f, int fl);
18131 int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,
18132                                    const unsigned char *f, int fl,
18133                                    int rsa_len);
18134 int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed,
18135                long seedlen, const EVP_MD *dgst);
18136 int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen,
18137                                const unsigned char *f, int fl,
18138                                const unsigned char *p, int pl);
18139 int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
18140                                  const unsigned char *f, int fl, int rsa_len,
18141                                  const unsigned char *p, int pl);
18142 int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,
18143                                     const unsigned char *from, int flen,
18144                                     const unsigned char *param, int plen,
18145                                     const EVP_MD *md, const EVP_MD *mgf1md);
18146 int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,
18147                                       const unsigned char *from, int flen,
18148                                       int num, const unsigned char *param,
18149                                       int plen, const EVP_MD *md,
18150                                       const EVP_MD *mgf1md);
18151 int RSA_padding_add_SSLv23(unsigned char *to, int tlen,
18152                            const unsigned char *f, int fl);
18153 int RSA_padding_check_SSLv23(unsigned char *to, int tlen,
18154                              const unsigned char *f, int fl, int rsa_len);
18155 int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f,
18156                          int fl);
18157 int RSA_padding_check_none(unsigned char *to, int tlen,
18158                            const unsigned char *f, int fl, int rsa_len);
18159 int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f,
18160                          int fl);
18161 int RSA_padding_check_X931(unsigned char *to, int tlen,
18162                            const unsigned char *f, int fl, int rsa_len);
18163 int RSA_X931_hash_id(int nid);
18164 
18165 int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash,
18166                          const EVP_MD *Hash, const unsigned char *EM,
18167                          int sLen);
18168 int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM,
18169                               const unsigned char *mHash, const EVP_MD *Hash,
18170                               int sLen);
18171 
18172 int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash,
18173                               const EVP_MD *Hash, const EVP_MD *mgf1Hash,
18174                               const unsigned char *EM, int sLen);
18175 
18176 int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM,
18177                                    const unsigned char *mHash,
18178                                    const EVP_MD *Hash, const EVP_MD *mgf1Hash,
18179                                    int sLen);
18180 
18181 int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
18182                          CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
18183 int RSA_set_ex_data(RSA *r, int idx, void *arg);
18184 void *RSA_get_ex_data(const RSA *r, int idx);
18185 
18186 RSA *RSAPublicKey_dup(RSA *rsa);
18187 RSA *RSAPrivateKey_dup(RSA *rsa);
18188 
18189 /*
18190  * If this flag is set the RSA method is FIPS compliant and can be used in
18191  * FIPS mode. This is set in the validated module method. If an application
18192  * sets this flag in its own methods it is its responsibility to ensure the
18193  * result is compliant.
18194  */
18195 
18196 
18197 
18198 /*
18199  * If this flag is set the operations normally disabled in FIPS mode are
18200  * permitted it is then the applications responsibility to ensure that the
18201  * usage is compliant.
18202  */
18203 
18204 
18205 /*
18206  * Application has decided PRNG is good enough to generate a key: don't
18207  * check.
18208  */
18209 
18210 
18211 /* BEGIN ERROR CODES */
18212 /*
18213  * The following lines are auto generated by the script mkerr.pl. Any changes
18214  * made after this point may be overwritten when the script is next run.
18215  */
18216 void ERR_load_RSA_strings(void);
18217 
18218 /* Error codes for the RSA functions. */
18219 
18220 /* Function codes. */
18221 # 592 "/usr/include/openssl/rsa.h" 3 4
18222 /* Reason codes. */
18223 # 97 "/usr/include/openssl/x509.h" 2 3 4
18224 
18225 
18226 # 1 "/usr/include/openssl/dsa.h" 1 3 4
18227 /* crypto/dsa/dsa.h */
18228 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
18229  * All rights reserved.
18230  *
18231  * This package is an SSL implementation written
18232  * by Eric Young (eay@cryptsoft.com).
18233  * The implementation was written so as to conform with Netscapes SSL.
18234  *
18235  * This library is free for commercial and non-commercial use as long as
18236  * the following conditions are aheared to.  The following conditions
18237  * apply to all code found in this distribution, be it the RC4, RSA,
18238  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
18239  * included with this distribution is covered by the same copyright terms
18240  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18241  *
18242  * Copyright remains Eric Young's, and as such any Copyright notices in
18243  * the code are not to be removed.
18244  * If this package is used in a product, Eric Young should be given attribution
18245  * as the author of the parts of the library used.
18246  * This can be in the form of a textual message at program startup or
18247  * in documentation (online or textual) provided with the package.
18248  *
18249  * Redistribution and use in source and binary forms, with or without
18250  * modification, are permitted provided that the following conditions
18251  * are met:
18252  * 1. Redistributions of source code must retain the copyright
18253  *    notice, this list of conditions and the following disclaimer.
18254  * 2. Redistributions in binary form must reproduce the above copyright
18255  *    notice, this list of conditions and the following disclaimer in the
18256  *    documentation and/or other materials provided with the distribution.
18257  * 3. All advertising materials mentioning features or use of this software
18258  *    must display the following acknowledgement:
18259  *    "This product includes cryptographic software written by
18260  *     Eric Young (eay@cryptsoft.com)"
18261  *    The word 'cryptographic' can be left out if the rouines from the library
18262  *    being used are not cryptographic related :-).
18263  * 4. If you include any Windows specific code (or a derivative thereof) from
18264  *    the apps directory (application code) you must include an acknowledgement:
18265  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
18266  *
18267  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
18268  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18269  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18270  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18271  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18272  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18273  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18274  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18275  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18276  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18277  * SUCH DAMAGE.
18278  *
18279  * The licence and distribution terms for any publically available version or
18280  * derivative of this code cannot be changed.  i.e. this code cannot simply be
18281  * copied and put under another distribution licence
18282  * [including the GNU Public Licence.]
18283  */
18284 
18285 /*
18286  * The DSS routines are based on patches supplied by
18287  * Steven Schoch <schoch@sheba.arc.nasa.gov>.  He basically did the
18288  * work and I have just tweaked them a little to fit into my
18289  * stylistic vision for SSLeay :-) */
18290 
18291 
18292 
18293 
18294 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
18295 /* e_os2.h */
18296 /* ====================================================================
18297  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
18298  *
18299  * Redistribution and use in source and binary forms, with or without
18300  * modification, are permitted provided that the following conditions
18301  * are met:
18302  *
18303  * 1. Redistributions of source code must retain the above copyright
18304  *    notice, this list of conditions and the following disclaimer.
18305  *
18306  * 2. Redistributions in binary form must reproduce the above copyright
18307  *    notice, this list of conditions and the following disclaimer in
18308  *    the documentation and/or other materials provided with the
18309  *    distribution.
18310  *
18311  * 3. All advertising materials mentioning features or use of this
18312  *    software must display the following acknowledgment:
18313  *    "This product includes software developed by the OpenSSL Project
18314  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
18315  *
18316  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
18317  *    endorse or promote products derived from this software without
18318  *    prior written permission. For written permission, please contact
18319  *    openssl-core@openssl.org.
18320  *
18321  * 5. Products derived from this software may not be called "OpenSSL"
18322  *    nor may "OpenSSL" appear in their names without prior written
18323  *    permission of the OpenSSL Project.
18324  *
18325  * 6. Redistributions of any form whatsoever must retain the following
18326  *    acknowledgment:
18327  *    "This product includes software developed by the OpenSSL Project
18328  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
18329  *
18330  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
18331  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18332  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18333  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
18334  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18335  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18336  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18337  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18338  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18339  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18340  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
18341  * OF THE POSSIBILITY OF SUCH DAMAGE.
18342  * ====================================================================
18343  *
18344  * This product includes cryptographic software written by Eric Young
18345  * (eay@cryptsoft.com).  This product includes software written by Tim
18346  * Hudson (tjh@cryptsoft.com).
18347  *
18348  */
18349 
18350 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
18351 /* opensslconf.h */
18352 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
18353 
18354 
18355 
18356 
18357 /* OpenSSL was configured with the following options: */
18358 # 108 "/usr/include/openssl/opensslconf.h" 3 4
18359 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
18360    asks for it.  This is a transient feature that is provided for those
18361    who haven't had the time to do the appropriate changes in their
18362    applications.  */
18363 # 204 "/usr/include/openssl/opensslconf.h" 3 4
18364 /* crypto/opensslconf.h.in */
18365 
18366 /* Generate 80386 code? */
18367 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
18368 # 69 "/usr/include/openssl/dsa.h" 2 3 4
18369 
18370 
18371 
18372 
18373 
18374 
18375 # 1 "/usr/include/openssl/bio.h" 1 3 4
18376 /* crypto/bio/bio.h */
18377 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
18378  * All rights reserved.
18379  *
18380  * This package is an SSL implementation written
18381  * by Eric Young (eay@cryptsoft.com).
18382  * The implementation was written so as to conform with Netscapes SSL.
18383  *
18384  * This library is free for commercial and non-commercial use as long as
18385  * the following conditions are aheared to.  The following conditions
18386  * apply to all code found in this distribution, be it the RC4, RSA,
18387  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
18388  * included with this distribution is covered by the same copyright terms
18389  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18390  *
18391  * Copyright remains Eric Young's, and as such any Copyright notices in
18392  * the code are not to be removed.
18393  * If this package is used in a product, Eric Young should be given attribution
18394  * as the author of the parts of the library used.
18395  * This can be in the form of a textual message at program startup or
18396  * in documentation (online or textual) provided with the package.
18397  *
18398  * Redistribution and use in source and binary forms, with or without
18399  * modification, are permitted provided that the following conditions
18400  * are met:
18401  * 1. Redistributions of source code must retain the copyright
18402  *    notice, this list of conditions and the following disclaimer.
18403  * 2. Redistributions in binary form must reproduce the above copyright
18404  *    notice, this list of conditions and the following disclaimer in the
18405  *    documentation and/or other materials provided with the distribution.
18406  * 3. All advertising materials mentioning features or use of this software
18407  *    must display the following acknowledgement:
18408  *    "This product includes cryptographic software written by
18409  *     Eric Young (eay@cryptsoft.com)"
18410  *    The word 'cryptographic' can be left out if the rouines from the library
18411  *    being used are not cryptographic related :-).
18412  * 4. If you include any Windows specific code (or a derivative thereof) from
18413  *    the apps directory (application code) you must include an acknowledgement:
18414  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
18415  *
18416  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
18417  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18418  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18419  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18420  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18421  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18422  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18423  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18424  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18425  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18426  * SUCH DAMAGE.
18427  *
18428  * The licence and distribution terms for any publically available version or
18429  * derivative of this code cannot be changed.  i.e. this code cannot simply be
18430  * copied and put under another distribution licence
18431  * [including the GNU Public Licence.]
18432  */
18433 # 76 "/usr/include/openssl/dsa.h" 2 3 4
18434 
18435 # 1 "/usr/include/openssl/crypto.h" 1 3 4
18436 /* crypto/crypto.h */
18437 /* ====================================================================
18438  * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
18439  *
18440  * Redistribution and use in source and binary forms, with or without
18441  * modification, are permitted provided that the following conditions
18442  * are met:
18443  *
18444  * 1. Redistributions of source code must retain the above copyright
18445  *    notice, this list of conditions and the following disclaimer.
18446  *
18447  * 2. Redistributions in binary form must reproduce the above copyright
18448  *    notice, this list of conditions and the following disclaimer in
18449  *    the documentation and/or other materials provided with the
18450  *    distribution.
18451  *
18452  * 3. All advertising materials mentioning features or use of this
18453  *    software must display the following acknowledgment:
18454  *    "This product includes software developed by the OpenSSL Project
18455  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
18456  *
18457  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
18458  *    endorse or promote products derived from this software without
18459  *    prior written permission. For written permission, please contact
18460  *    openssl-core@openssl.org.
18461  *
18462  * 5. Products derived from this software may not be called "OpenSSL"
18463  *    nor may "OpenSSL" appear in their names without prior written
18464  *    permission of the OpenSSL Project.
18465  *
18466  * 6. Redistributions of any form whatsoever must retain the following
18467  *    acknowledgment:
18468  *    "This product includes software developed by the OpenSSL Project
18469  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
18470  *
18471  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
18472  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18473  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18474  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
18475  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18476  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18477  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18478  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18479  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18480  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18481  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
18482  * OF THE POSSIBILITY OF SUCH DAMAGE.
18483  * ====================================================================
18484  *
18485  * This product includes cryptographic software written by Eric Young
18486  * (eay@cryptsoft.com).  This product includes software written by Tim
18487  * Hudson (tjh@cryptsoft.com).
18488  *
18489  */
18490 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
18491  * All rights reserved.
18492  *
18493  * This package is an SSL implementation written
18494  * by Eric Young (eay@cryptsoft.com).
18495  * The implementation was written so as to conform with Netscapes SSL.
18496  *
18497  * This library is free for commercial and non-commercial use as long as
18498  * the following conditions are aheared to.  The following conditions
18499  * apply to all code found in this distribution, be it the RC4, RSA,
18500  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
18501  * included with this distribution is covered by the same copyright terms
18502  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18503  *
18504  * Copyright remains Eric Young's, and as such any Copyright notices in
18505  * the code are not to be removed.
18506  * If this package is used in a product, Eric Young should be given attribution
18507  * as the author of the parts of the library used.
18508  * This can be in the form of a textual message at program startup or
18509  * in documentation (online or textual) provided with the package.
18510  *
18511  * Redistribution and use in source and binary forms, with or without
18512  * modification, are permitted provided that the following conditions
18513  * are met:
18514  * 1. Redistributions of source code must retain the copyright
18515  *    notice, this list of conditions and the following disclaimer.
18516  * 2. Redistributions in binary form must reproduce the above copyright
18517  *    notice, this list of conditions and the following disclaimer in the
18518  *    documentation and/or other materials provided with the distribution.
18519  * 3. All advertising materials mentioning features or use of this software
18520  *    must display the following acknowledgement:
18521  *    "This product includes cryptographic software written by
18522  *     Eric Young (eay@cryptsoft.com)"
18523  *    The word 'cryptographic' can be left out if the rouines from the library
18524  *    being used are not cryptographic related :-).
18525  * 4. If you include any Windows specific code (or a derivative thereof) from
18526  *    the apps directory (application code) you must include an acknowledgement:
18527  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
18528  *
18529  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
18530  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18531  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18532  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18533  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18534  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18535  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18536  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18537  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18538  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18539  * SUCH DAMAGE.
18540  *
18541  * The licence and distribution terms for any publically available version or
18542  * derivative of this code cannot be changed.  i.e. this code cannot simply be
18543  * copied and put under another distribution licence
18544  * [including the GNU Public Licence.]
18545  */
18546 /* ====================================================================
18547  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
18548  * ECDH support in OpenSSL originally developed by
18549  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
18550  */
18551 # 78 "/usr/include/openssl/dsa.h" 2 3 4
18552 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
18553 /* ====================================================================
18554  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
18555  *
18556  * Redistribution and use in source and binary forms, with or without
18557  * modification, are permitted provided that the following conditions
18558  * are met:
18559  *
18560  * 1. Redistributions of source code must retain the above copyright
18561  *    notice, this list of conditions and the following disclaimer.
18562  *
18563  * 2. Redistributions in binary form must reproduce the above copyright
18564  *    notice, this list of conditions and the following disclaimer in
18565  *    the documentation and/or other materials provided with the
18566  *    distribution.
18567  *
18568  * 3. All advertising materials mentioning features or use of this
18569  *    software must display the following acknowledgment:
18570  *    "This product includes software developed by the OpenSSL Project
18571  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
18572  *
18573  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
18574  *    endorse or promote products derived from this software without
18575  *    prior written permission. For written permission, please contact
18576  *    openssl-core@openssl.org.
18577  *
18578  * 5. Products derived from this software may not be called "OpenSSL"
18579  *    nor may "OpenSSL" appear in their names without prior written
18580  *    permission of the OpenSSL Project.
18581  *
18582  * 6. Redistributions of any form whatsoever must retain the following
18583  *    acknowledgment:
18584  *    "This product includes software developed by the OpenSSL Project
18585  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
18586  *
18587  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
18588  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18589  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18590  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
18591  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18592  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18593  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18594  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18595  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18596  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18597  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
18598  * OF THE POSSIBILITY OF SUCH DAMAGE.
18599  * ====================================================================
18600  *
18601  * This product includes cryptographic software written by Eric Young
18602  * (eay@cryptsoft.com).  This product includes software written by Tim
18603  * Hudson (tjh@cryptsoft.com).
18604  *
18605  */
18606 # 79 "/usr/include/openssl/dsa.h" 2 3 4
18607 
18608 
18609 # 1 "/usr/include/openssl/bn.h" 1 3 4
18610 /* crypto/bn/bn.h */
18611 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
18612  * All rights reserved.
18613  *
18614  * This package is an SSL implementation written
18615  * by Eric Young (eay@cryptsoft.com).
18616  * The implementation was written so as to conform with Netscapes SSL.
18617  *
18618  * This library is free for commercial and non-commercial use as long as
18619  * the following conditions are aheared to.  The following conditions
18620  * apply to all code found in this distribution, be it the RC4, RSA,
18621  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
18622  * included with this distribution is covered by the same copyright terms
18623  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18624  *
18625  * Copyright remains Eric Young's, and as such any Copyright notices in
18626  * the code are not to be removed.
18627  * If this package is used in a product, Eric Young should be given attribution
18628  * as the author of the parts of the library used.
18629  * This can be in the form of a textual message at program startup or
18630  * in documentation (online or textual) provided with the package.
18631  *
18632  * Redistribution and use in source and binary forms, with or without
18633  * modification, are permitted provided that the following conditions
18634  * are met:
18635  * 1. Redistributions of source code must retain the copyright
18636  *    notice, this list of conditions and the following disclaimer.
18637  * 2. Redistributions in binary form must reproduce the above copyright
18638  *    notice, this list of conditions and the following disclaimer in the
18639  *    documentation and/or other materials provided with the distribution.
18640  * 3. All advertising materials mentioning features or use of this software
18641  *    must display the following acknowledgement:
18642  *    "This product includes cryptographic software written by
18643  *     Eric Young (eay@cryptsoft.com)"
18644  *    The word 'cryptographic' can be left out if the rouines from the library
18645  *    being used are not cryptographic related :-).
18646  * 4. If you include any Windows specific code (or a derivative thereof) from
18647  *    the apps directory (application code) you must include an acknowledgement:
18648  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
18649  *
18650  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
18651  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18652  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18653  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18654  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18655  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18656  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18657  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18658  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18659  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18660  * SUCH DAMAGE.
18661  *
18662  * The licence and distribution terms for any publically available version or
18663  * derivative of this code cannot be changed.  i.e. this code cannot simply be
18664  * copied and put under another distribution licence
18665  * [including the GNU Public Licence.]
18666  */
18667 /* ====================================================================
18668  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
18669  *
18670  * Redistribution and use in source and binary forms, with or without
18671  * modification, are permitted provided that the following conditions
18672  * are met:
18673  *
18674  * 1. Redistributions of source code must retain the above copyright
18675  *    notice, this list of conditions and the following disclaimer.
18676  *
18677  * 2. Redistributions in binary form must reproduce the above copyright
18678  *    notice, this list of conditions and the following disclaimer in
18679  *    the documentation and/or other materials provided with the
18680  *    distribution.
18681  *
18682  * 3. All advertising materials mentioning features or use of this
18683  *    software must display the following acknowledgment:
18684  *    "This product includes software developed by the OpenSSL Project
18685  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
18686  *
18687  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
18688  *    endorse or promote products derived from this software without
18689  *    prior written permission. For written permission, please contact
18690  *    openssl-core@openssl.org.
18691  *
18692  * 5. Products derived from this software may not be called "OpenSSL"
18693  *    nor may "OpenSSL" appear in their names without prior written
18694  *    permission of the OpenSSL Project.
18695  *
18696  * 6. Redistributions of any form whatsoever must retain the following
18697  *    acknowledgment:
18698  *    "This product includes software developed by the OpenSSL Project
18699  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
18700  *
18701  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
18702  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18703  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18704  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
18705  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18706  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18707  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18708  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18709  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18710  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18711  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
18712  * OF THE POSSIBILITY OF SUCH DAMAGE.
18713  * ====================================================================
18714  *
18715  * This product includes cryptographic software written by Eric Young
18716  * (eay@cryptsoft.com).  This product includes software written by Tim
18717  * Hudson (tjh@cryptsoft.com).
18718  *
18719  */
18720 /* ====================================================================
18721  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
18722  *
18723  * Portions of the attached software ("Contribution") are developed by
18724  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
18725  *
18726  * The Contribution is licensed pursuant to the Eric Young open source
18727  * license provided above.
18728  *
18729  * The binary polynomial arithmetic software is originally written by
18730  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
18731  *
18732  */
18733 # 82 "/usr/include/openssl/dsa.h" 2 3 4
18734 
18735 # 1 "/usr/include/openssl/dh.h" 1 3 4
18736 /* crypto/dh/dh.h */
18737 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
18738  * All rights reserved.
18739  *
18740  * This package is an SSL implementation written
18741  * by Eric Young (eay@cryptsoft.com).
18742  * The implementation was written so as to conform with Netscapes SSL.
18743  *
18744  * This library is free for commercial and non-commercial use as long as
18745  * the following conditions are aheared to.  The following conditions
18746  * apply to all code found in this distribution, be it the RC4, RSA,
18747  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
18748  * included with this distribution is covered by the same copyright terms
18749  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18750  *
18751  * Copyright remains Eric Young's, and as such any Copyright notices in
18752  * the code are not to be removed.
18753  * If this package is used in a product, Eric Young should be given attribution
18754  * as the author of the parts of the library used.
18755  * This can be in the form of a textual message at program startup or
18756  * in documentation (online or textual) provided with the package.
18757  *
18758  * Redistribution and use in source and binary forms, with or without
18759  * modification, are permitted provided that the following conditions
18760  * are met:
18761  * 1. Redistributions of source code must retain the copyright
18762  *    notice, this list of conditions and the following disclaimer.
18763  * 2. Redistributions in binary form must reproduce the above copyright
18764  *    notice, this list of conditions and the following disclaimer in the
18765  *    documentation and/or other materials provided with the distribution.
18766  * 3. All advertising materials mentioning features or use of this software
18767  *    must display the following acknowledgement:
18768  *    "This product includes cryptographic software written by
18769  *     Eric Young (eay@cryptsoft.com)"
18770  *    The word 'cryptographic' can be left out if the rouines from the library
18771  *    being used are not cryptographic related :-).
18772  * 4. If you include any Windows specific code (or a derivative thereof) from
18773  *    the apps directory (application code) you must include an acknowledgement:
18774  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
18775  *
18776  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
18777  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18778  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18779  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18780  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18781  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18782  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18783  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18784  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18785  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18786  * SUCH DAMAGE.
18787  *
18788  * The licence and distribution terms for any publically available version or
18789  * derivative of this code cannot be changed.  i.e. this code cannot simply be
18790  * copied and put under another distribution licence
18791  * [including the GNU Public Licence.]
18792  */
18793 
18794 
18795 
18796 
18797 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
18798 /* e_os2.h */
18799 /* ====================================================================
18800  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
18801  *
18802  * Redistribution and use in source and binary forms, with or without
18803  * modification, are permitted provided that the following conditions
18804  * are met:
18805  *
18806  * 1. Redistributions of source code must retain the above copyright
18807  *    notice, this list of conditions and the following disclaimer.
18808  *
18809  * 2. Redistributions in binary form must reproduce the above copyright
18810  *    notice, this list of conditions and the following disclaimer in
18811  *    the documentation and/or other materials provided with the
18812  *    distribution.
18813  *
18814  * 3. All advertising materials mentioning features or use of this
18815  *    software must display the following acknowledgment:
18816  *    "This product includes software developed by the OpenSSL Project
18817  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
18818  *
18819  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
18820  *    endorse or promote products derived from this software without
18821  *    prior written permission. For written permission, please contact
18822  *    openssl-core@openssl.org.
18823  *
18824  * 5. Products derived from this software may not be called "OpenSSL"
18825  *    nor may "OpenSSL" appear in their names without prior written
18826  *    permission of the OpenSSL Project.
18827  *
18828  * 6. Redistributions of any form whatsoever must retain the following
18829  *    acknowledgment:
18830  *    "This product includes software developed by the OpenSSL Project
18831  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
18832  *
18833  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
18834  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18835  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18836  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
18837  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18838  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18839  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18840  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18841  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18842  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18843  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
18844  * OF THE POSSIBILITY OF SUCH DAMAGE.
18845  * ====================================================================
18846  *
18847  * This product includes cryptographic software written by Eric Young
18848  * (eay@cryptsoft.com).  This product includes software written by Tim
18849  * Hudson (tjh@cryptsoft.com).
18850  *
18851  */
18852 
18853 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
18854 /* opensslconf.h */
18855 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
18856 
18857 
18858 
18859 
18860 /* OpenSSL was configured with the following options: */
18861 # 108 "/usr/include/openssl/opensslconf.h" 3 4
18862 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
18863    asks for it.  This is a transient feature that is provided for those
18864    who haven't had the time to do the appropriate changes in their
18865    applications.  */
18866 # 204 "/usr/include/openssl/opensslconf.h" 3 4
18867 /* crypto/opensslconf.h.in */
18868 
18869 /* Generate 80386 code? */
18870 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
18871 # 63 "/usr/include/openssl/dh.h" 2 3 4
18872 
18873 
18874 
18875 
18876 
18877 
18878 # 1 "/usr/include/openssl/bio.h" 1 3 4
18879 /* crypto/bio/bio.h */
18880 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
18881  * All rights reserved.
18882  *
18883  * This package is an SSL implementation written
18884  * by Eric Young (eay@cryptsoft.com).
18885  * The implementation was written so as to conform with Netscapes SSL.
18886  *
18887  * This library is free for commercial and non-commercial use as long as
18888  * the following conditions are aheared to.  The following conditions
18889  * apply to all code found in this distribution, be it the RC4, RSA,
18890  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
18891  * included with this distribution is covered by the same copyright terms
18892  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18893  *
18894  * Copyright remains Eric Young's, and as such any Copyright notices in
18895  * the code are not to be removed.
18896  * If this package is used in a product, Eric Young should be given attribution
18897  * as the author of the parts of the library used.
18898  * This can be in the form of a textual message at program startup or
18899  * in documentation (online or textual) provided with the package.
18900  *
18901  * Redistribution and use in source and binary forms, with or without
18902  * modification, are permitted provided that the following conditions
18903  * are met:
18904  * 1. Redistributions of source code must retain the copyright
18905  *    notice, this list of conditions and the following disclaimer.
18906  * 2. Redistributions in binary form must reproduce the above copyright
18907  *    notice, this list of conditions and the following disclaimer in the
18908  *    documentation and/or other materials provided with the distribution.
18909  * 3. All advertising materials mentioning features or use of this software
18910  *    must display the following acknowledgement:
18911  *    "This product includes cryptographic software written by
18912  *     Eric Young (eay@cryptsoft.com)"
18913  *    The word 'cryptographic' can be left out if the rouines from the library
18914  *    being used are not cryptographic related :-).
18915  * 4. If you include any Windows specific code (or a derivative thereof) from
18916  *    the apps directory (application code) you must include an acknowledgement:
18917  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
18918  *
18919  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
18920  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18921  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18922  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18923  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18924  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18925  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18926  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18927  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
18928  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
18929  * SUCH DAMAGE.
18930  *
18931  * The licence and distribution terms for any publically available version or
18932  * derivative of this code cannot be changed.  i.e. this code cannot simply be
18933  * copied and put under another distribution licence
18934  * [including the GNU Public Licence.]
18935  */
18936 # 70 "/usr/include/openssl/dh.h" 2 3 4
18937 
18938 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
18939 /* ====================================================================
18940  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
18941  *
18942  * Redistribution and use in source and binary forms, with or without
18943  * modification, are permitted provided that the following conditions
18944  * are met:
18945  *
18946  * 1. Redistributions of source code must retain the above copyright
18947  *    notice, this list of conditions and the following disclaimer.
18948  *
18949  * 2. Redistributions in binary form must reproduce the above copyright
18950  *    notice, this list of conditions and the following disclaimer in
18951  *    the documentation and/or other materials provided with the
18952  *    distribution.
18953  *
18954  * 3. All advertising materials mentioning features or use of this
18955  *    software must display the following acknowledgment:
18956  *    "This product includes software developed by the OpenSSL Project
18957  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
18958  *
18959  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
18960  *    endorse or promote products derived from this software without
18961  *    prior written permission. For written permission, please contact
18962  *    openssl-core@openssl.org.
18963  *
18964  * 5. Products derived from this software may not be called "OpenSSL"
18965  *    nor may "OpenSSL" appear in their names without prior written
18966  *    permission of the OpenSSL Project.
18967  *
18968  * 6. Redistributions of any form whatsoever must retain the following
18969  *    acknowledgment:
18970  *    "This product includes software developed by the OpenSSL Project
18971  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
18972  *
18973  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
18974  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18975  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18976  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
18977  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18978  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18979  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18980  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18981  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18982  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18983  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
18984  * OF THE POSSIBILITY OF SUCH DAMAGE.
18985  * ====================================================================
18986  *
18987  * This product includes cryptographic software written by Eric Young
18988  * (eay@cryptsoft.com).  This product includes software written by Tim
18989  * Hudson (tjh@cryptsoft.com).
18990  *
18991  */
18992 # 72 "/usr/include/openssl/dh.h" 2 3 4
18993 
18994 # 1 "/usr/include/openssl/bn.h" 1 3 4
18995 /* crypto/bn/bn.h */
18996 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
18997  * All rights reserved.
18998  *
18999  * This package is an SSL implementation written
19000  * by Eric Young (eay@cryptsoft.com).
19001  * The implementation was written so as to conform with Netscapes SSL.
19002  *
19003  * This library is free for commercial and non-commercial use as long as
19004  * the following conditions are aheared to.  The following conditions
19005  * apply to all code found in this distribution, be it the RC4, RSA,
19006  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
19007  * included with this distribution is covered by the same copyright terms
19008  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
19009  *
19010  * Copyright remains Eric Young's, and as such any Copyright notices in
19011  * the code are not to be removed.
19012  * If this package is used in a product, Eric Young should be given attribution
19013  * as the author of the parts of the library used.
19014  * This can be in the form of a textual message at program startup or
19015  * in documentation (online or textual) provided with the package.
19016  *
19017  * Redistribution and use in source and binary forms, with or without
19018  * modification, are permitted provided that the following conditions
19019  * are met:
19020  * 1. Redistributions of source code must retain the copyright
19021  *    notice, this list of conditions and the following disclaimer.
19022  * 2. Redistributions in binary form must reproduce the above copyright
19023  *    notice, this list of conditions and the following disclaimer in the
19024  *    documentation and/or other materials provided with the distribution.
19025  * 3. All advertising materials mentioning features or use of this software
19026  *    must display the following acknowledgement:
19027  *    "This product includes cryptographic software written by
19028  *     Eric Young (eay@cryptsoft.com)"
19029  *    The word 'cryptographic' can be left out if the rouines from the library
19030  *    being used are not cryptographic related :-).
19031  * 4. If you include any Windows specific code (or a derivative thereof) from
19032  *    the apps directory (application code) you must include an acknowledgement:
19033  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
19034  *
19035  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
19036  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19037  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19038  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19039  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19040  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19041  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19042  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
19043  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
19044  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
19045  * SUCH DAMAGE.
19046  *
19047  * The licence and distribution terms for any publically available version or
19048  * derivative of this code cannot be changed.  i.e. this code cannot simply be
19049  * copied and put under another distribution licence
19050  * [including the GNU Public Licence.]
19051  */
19052 /* ====================================================================
19053  * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
19054  *
19055  * Redistribution and use in source and binary forms, with or without
19056  * modification, are permitted provided that the following conditions
19057  * are met:
19058  *
19059  * 1. Redistributions of source code must retain the above copyright
19060  *    notice, this list of conditions and the following disclaimer.
19061  *
19062  * 2. Redistributions in binary form must reproduce the above copyright
19063  *    notice, this list of conditions and the following disclaimer in
19064  *    the documentation and/or other materials provided with the
19065  *    distribution.
19066  *
19067  * 3. All advertising materials mentioning features or use of this
19068  *    software must display the following acknowledgment:
19069  *    "This product includes software developed by the OpenSSL Project
19070  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
19071  *
19072  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
19073  *    endorse or promote products derived from this software without
19074  *    prior written permission. For written permission, please contact
19075  *    openssl-core@openssl.org.
19076  *
19077  * 5. Products derived from this software may not be called "OpenSSL"
19078  *    nor may "OpenSSL" appear in their names without prior written
19079  *    permission of the OpenSSL Project.
19080  *
19081  * 6. Redistributions of any form whatsoever must retain the following
19082  *    acknowledgment:
19083  *    "This product includes software developed by the OpenSSL Project
19084  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
19085  *
19086  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
19087  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19088  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19089  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
19090  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19091  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19092  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19093  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19094  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
19095  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19096  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
19097  * OF THE POSSIBILITY OF SUCH DAMAGE.
19098  * ====================================================================
19099  *
19100  * This product includes cryptographic software written by Eric Young
19101  * (eay@cryptsoft.com).  This product includes software written by Tim
19102  * Hudson (tjh@cryptsoft.com).
19103  *
19104  */
19105 /* ====================================================================
19106  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
19107  *
19108  * Portions of the attached software ("Contribution") are developed by
19109  * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
19110  *
19111  * The Contribution is licensed pursuant to the Eric Young open source
19112  * license provided above.
19113  *
19114  * The binary polynomial arithmetic software is originally written by
19115  * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
19116  *
19117  */
19118 # 74 "/usr/include/openssl/dh.h" 2 3 4
19119 # 82 "/usr/include/openssl/dh.h" 3 4
19120 /*
19121  * new with 0.9.7h; the built-in DH
19122  * implementation now uses constant time
19123  * modular exponentiation for secret exponents
19124  * by default. This flag causes the
19125  * faster variable sliding window method to
19126  * be used for all exponents.
19127  */
19128 
19129 
19130 /*
19131  * If this flag is set the DH method is FIPS compliant and can be used in
19132  * FIPS mode. This is set in the validated module method. If an application
19133  * sets this flag in its own methods it is its reposibility to ensure the
19134  * result is compliant.
19135  */
19136 
19137 
19138 
19139 /*
19140  * If this flag is set the operations normally disabled in FIPS mode are
19141  * permitted it is then the applications responsibility to ensure that the
19142  * usage is compliant.
19143  */
19144 
19145 
19146 
19147 
19148 
19149 
19150 
19151 /* Already defined in ossl_typ.h */
19152 /* typedef struct dh_st DH; */
19153 /* typedef struct dh_method DH_METHOD; */
19154 
19155 struct dh_method {
19156     const char *name;
19157     /* Methods here */
19158     int (*generate_key) (DH *dh);
19159     int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh);
19160     /* Can be null */
19161     int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a,
19162                        const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx,
19163                        BN_MONT_CTX *m_ctx);
19164     int (*init) (DH *dh);
19165     int (*finish) (DH *dh);
19166     int flags;
19167     char *app_data;
19168     /* If this is non-NULL, it will be used to generate parameters */
19169     int (*generate_params) (DH *dh, int prime_len, int generator,
19170                             BN_GENCB *cb);
19171 };
19172 
19173 struct dh_st {
19174     /*
19175      * This first argument is used to pick up errors when a DH is passed
19176      * instead of a EVP_PKEY
19177      */
19178     int pad;
19179     int version;
19180     BIGNUM *p;
19181     BIGNUM *g;
19182     long length; /* optional */
19183     BIGNUM *pub_key; /* g^x % p */
19184     BIGNUM *priv_key; /* x */
19185     int flags;
19186     BN_MONT_CTX *method_mont_p;
19187     /* Place holders if we want to do X9.42 DH */
19188     BIGNUM *q;
19189     BIGNUM *j;
19190     unsigned char *seed;
19191     int seedlen;
19192     BIGNUM *counter;
19193     int references;
19194     CRYPTO_EX_DATA ex_data;
19195     const DH_METHOD *meth;
19196     ENGINE *engine;
19197 };
19198 
19199 
19200 /* #define DH_GENERATOR_3       3 */
19201 
19202 
19203 /* DH_check error codes */
19204 # 174 "/usr/include/openssl/dh.h" 3 4
19205 /* DH_check_pub_key error codes */
19206 
19207 
19208 
19209 
19210 /*
19211  * primes p where (p-1)/2 is prime too are called "safe"; we define this for
19212  * backward compatibility:
19213  */
19214 # 209 "/usr/include/openssl/dh.h" 3 4
19215 DH *DHparams_dup(DH *);
19216 
19217 const DH_METHOD *DH_OpenSSL(void);
19218 
19219 void DH_set_default_method(const DH_METHOD *meth);
19220 const DH_METHOD *DH_get_default_method(void);
19221 int DH_set_method(DH *dh, const DH_METHOD *meth);
19222 DH *DH_new_method(ENGINE *engine);
19223 
19224 DH *DH_new(void);
19225 void DH_free(DH *dh);
19226 int DH_up_ref(DH *dh);
19227 int DH_size(const DH *dh);
19228 int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
19229                         CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
19230 int DH_set_ex_data(DH *d, int idx, void *arg);
19231 void *DH_get_ex_data(DH *d, int idx);
19232 
19233 /* Deprecated version */
19234 
19235 DH *DH_generate_parameters(int prime_len, int generator,
19236                            void (*callback) (int, int, void *), void *cb_arg);
19237 
19238 
19239 /* New version */
19240 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator,
19241                               BN_GENCB *cb);
19242 
19243 int DH_check(const DH *dh, int *codes);
19244 int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes);
19245 int DH_generate_key(DH *dh);
19246 int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);
19247 int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh);
19248 DH *d2i_DHparams(DH **a, const unsigned char **pp, long length);
19249 int i2d_DHparams(const DH *a, unsigned char **pp);
19250 DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length);
19251 int i2d_DHxparams(const DH *a, unsigned char **pp);
19252 
19253 int DHparams_print_fp(FILE *fp, const DH *x);
19254 
19255 
19256 int DHparams_print(BIO *bp, const DH *x);
19257 
19258 
19259 
19260 
19261 /* RFC 5114 parameters */
19262 DH *DH_get_1024_160(void);
19263 DH *DH_get_2048_224(void);
19264 DH *DH_get_2048_256(void);
19265 
19266 
19267 /* RFC2631 KDF */
19268 int DH_KDF_X9_42(unsigned char *out, size_t outlen,
19269                  const unsigned char *Z, size_t Zlen,
19270                  ASN1_OBJECT *key_oid,
19271                  const unsigned char *ukm, size_t ukmlen, const EVP_MD *md);
19272 # 357 "/usr/include/openssl/dh.h" 3 4
19273 /* KDF types */
19274 
19275 
19276 
19277 /* BEGIN ERROR CODES */
19278 /*
19279  * The following lines are auto generated by the script mkerr.pl. Any changes
19280  * made after this point may be overwritten when the script is next run.
19281  */
19282 void ERR_load_DH_strings(void);
19283 
19284 /* Error codes for the DH functions. */
19285 
19286 /* Function codes. */
19287 # 392 "/usr/include/openssl/dh.h" 3 4
19288 /* Reason codes. */
19289 # 84 "/usr/include/openssl/dsa.h" 2 3 4
19290 # 92 "/usr/include/openssl/dsa.h" 3 4
19291 /*
19292  * new with 0.9.7h; the built-in DSA implementation now uses constant time
19293  * modular exponentiation for secret exponents by default. This flag causes
19294  * the faster variable sliding window method to be used for all exponents.
19295  */
19296 
19297 
19298 /*
19299  * If this flag is set the DSA method is FIPS compliant and can be used in
19300  * FIPS mode. This is set in the validated module method. If an application
19301  * sets this flag in its own methods it is its reposibility to ensure the
19302  * result is compliant.
19303  */
19304 
19305 
19306 
19307 /*
19308  * If this flag is set the operations normally disabled in FIPS mode are
19309  * permitted it is then the applications responsibility to ensure that the
19310  * usage is compliant.
19311  */
19312 
19313 
19314 
19315 
19316 
19317 
19318 
19319 /* Already defined in ossl_typ.h */
19320 /* typedef struct dsa_st DSA; */
19321 /* typedef struct dsa_method DSA_METHOD; */
19322 
19323 typedef struct DSA_SIG_st {
19324     BIGNUM *r;
19325     BIGNUM *s;
19326 } DSA_SIG;
19327 
19328 struct dsa_method {
19329     const char *name;
19330     DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa);
19331     int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
19332                            BIGNUM **rp);
19333     int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len,
19334                           DSA_SIG *sig, DSA *dsa);
19335     int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1,
19336                         BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx,
19337                         BN_MONT_CTX *in_mont);
19338     /* Can be null */
19339     int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
19340                        const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
19341     int (*init) (DSA *dsa);
19342     int (*finish) (DSA *dsa);
19343     int flags;
19344     char *app_data;
19345     /* If this is non-NULL, it is used to generate DSA parameters */
19346     int (*dsa_paramgen) (DSA *dsa, int bits,
19347                          const unsigned char *seed, int seed_len,
19348                          int *counter_ret, unsigned long *h_ret,
19349                          BN_GENCB *cb);
19350     /* If this is non-NULL, it is used to generate DSA keys */
19351     int (*dsa_keygen) (DSA *dsa);
19352 };
19353 
19354 struct dsa_st {
19355     /*
19356      * This first variable is used to pick up errors where a DSA is passed
19357      * instead of of a EVP_PKEY
19358      */
19359     int pad;
19360     long version;
19361     int write_params;
19362     BIGNUM *p;
19363     BIGNUM *q; /* == 20 */
19364     BIGNUM *g;
19365     BIGNUM *pub_key; /* y public key */
19366     BIGNUM *priv_key; /* x private key */
19367     BIGNUM *kinv; /* Signing pre-calc */
19368     BIGNUM *r; /* Signing pre-calc */
19369     int flags;
19370     /* Normally used to cache montgomery values */
19371     BN_MONT_CTX *method_mont_p;
19372     int references;
19373     CRYPTO_EX_DATA ex_data;
19374     const DSA_METHOD *meth;
19375     /* functional reference if 'meth' is ENGINE-provided */
19376     ENGINE *engine;
19377 };
19378 # 187 "/usr/include/openssl/dsa.h" 3 4
19379 DSA *DSAparams_dup(DSA *x);
19380 DSA_SIG *DSA_SIG_new(void);
19381 void DSA_SIG_free(DSA_SIG *a);
19382 int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp);
19383 DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length);
19384 
19385 DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
19386 int DSA_do_verify(const unsigned char *dgst, int dgst_len,
19387                   DSA_SIG *sig, DSA *dsa);
19388 
19389 const DSA_METHOD *DSA_OpenSSL(void);
19390 
19391 void DSA_set_default_method(const DSA_METHOD *);
19392 const DSA_METHOD *DSA_get_default_method(void);
19393 int DSA_set_method(DSA *dsa, const DSA_METHOD *);
19394 
19395 DSA *DSA_new(void);
19396 DSA *DSA_new_method(ENGINE *engine);
19397 void DSA_free(DSA *r);
19398 /* "up" the DSA object's reference count */
19399 int DSA_up_ref(DSA *r);
19400 int DSA_size(const DSA *);
19401         /* next 4 return -1 on error */
19402 int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
19403 int DSA_sign(int type, const unsigned char *dgst, int dlen,
19404              unsigned char *sig, unsigned int *siglen, DSA *dsa);
19405 int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
19406                const unsigned char *sigbuf, int siglen, DSA *dsa);
19407 int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
19408                          CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
19409 int DSA_set_ex_data(DSA *d, int idx, void *arg);
19410 void *DSA_get_ex_data(DSA *d, int idx);
19411 
19412 DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length);
19413 DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length);
19414 DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length);
19415 
19416 /* Deprecated version */
19417 
19418 DSA *DSA_generate_parameters(int bits,
19419                              unsigned char *seed, int seed_len,
19420                              int *counter_ret, unsigned long *h_ret, void
19421                               (*callback) (int, int, void *), void *cb_arg);
19422 
19423 
19424 /* New version */
19425 int DSA_generate_parameters_ex(DSA *dsa, int bits,
19426                                const unsigned char *seed, int seed_len,
19427                                int *counter_ret, unsigned long *h_ret,
19428                                BN_GENCB *cb);
19429 
19430 int DSA_generate_key(DSA *a);
19431 int i2d_DSAPublicKey(const DSA *a, unsigned char **pp);
19432 int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
19433 int i2d_DSAparams(const DSA *a, unsigned char **pp);
19434 
19435 
19436 int DSAparams_print(BIO *bp, const DSA *x);
19437 int DSA_print(BIO *bp, const DSA *x, int off);
19438 
19439 
19440 int DSAparams_print_fp(FILE *fp, const DSA *x);
19441 int DSA_print_fp(FILE *bp, const DSA *x, int off);
19442 
19443 
19444 
19445 /*
19446  * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only
19447  * have one value here we set the number of checks to 64 which is the 128 bit
19448  * security level that is the highest level and valid for creating a 3072 bit
19449  * DSA key.
19450  */
19451 
19452 
19453 
19454 
19455 /*
19456  * Convert DSA structure (key or just parameters) into DH structure (be
19457  * careful to avoid small subgroup attacks when using this!)
19458  */
19459 DH *DSA_dup_DH(const DSA *r);
19460 # 278 "/usr/include/openssl/dsa.h" 3 4
19461 /* BEGIN ERROR CODES */
19462 /*
19463  * The following lines are auto generated by the script mkerr.pl. Any changes
19464  * made after this point may be overwritten when the script is next run.
19465  */
19466 void ERR_load_DSA_strings(void);
19467 
19468 /* Error codes for the DSA functions. */
19469 
19470 /* Function codes. */
19471 # 316 "/usr/include/openssl/dsa.h" 3 4
19472 /* Reason codes. */
19473 # 100 "/usr/include/openssl/x509.h" 2 3 4
19474 
19475 
19476 # 1 "/usr/include/openssl/dh.h" 1 3 4
19477 /* crypto/dh/dh.h */
19478 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
19479  * All rights reserved.
19480  *
19481  * This package is an SSL implementation written
19482  * by Eric Young (eay@cryptsoft.com).
19483  * The implementation was written so as to conform with Netscapes SSL.
19484  *
19485  * This library is free for commercial and non-commercial use as long as
19486  * the following conditions are aheared to.  The following conditions
19487  * apply to all code found in this distribution, be it the RC4, RSA,
19488  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
19489  * included with this distribution is covered by the same copyright terms
19490  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
19491  *
19492  * Copyright remains Eric Young's, and as such any Copyright notices in
19493  * the code are not to be removed.
19494  * If this package is used in a product, Eric Young should be given attribution
19495  * as the author of the parts of the library used.
19496  * This can be in the form of a textual message at program startup or
19497  * in documentation (online or textual) provided with the package.
19498  *
19499  * Redistribution and use in source and binary forms, with or without
19500  * modification, are permitted provided that the following conditions
19501  * are met:
19502  * 1. Redistributions of source code must retain the copyright
19503  *    notice, this list of conditions and the following disclaimer.
19504  * 2. Redistributions in binary form must reproduce the above copyright
19505  *    notice, this list of conditions and the following disclaimer in the
19506  *    documentation and/or other materials provided with the distribution.
19507  * 3. All advertising materials mentioning features or use of this software
19508  *    must display the following acknowledgement:
19509  *    "This product includes cryptographic software written by
19510  *     Eric Young (eay@cryptsoft.com)"
19511  *    The word 'cryptographic' can be left out if the rouines from the library
19512  *    being used are not cryptographic related :-).
19513  * 4. If you include any Windows specific code (or a derivative thereof) from
19514  *    the apps directory (application code) you must include an acknowledgement:
19515  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
19516  *
19517  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
19518  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19519  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19520  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19521  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19522  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19523  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19524  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
19525  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
19526  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
19527  * SUCH DAMAGE.
19528  *
19529  * The licence and distribution terms for any publically available version or
19530  * derivative of this code cannot be changed.  i.e. this code cannot simply be
19531  * copied and put under another distribution licence
19532  * [including the GNU Public Licence.]
19533  */
19534 # 103 "/usr/include/openssl/x509.h" 2 3 4
19535 
19536 
19537 
19538 
19539 # 1 "/usr/include/openssl/sha.h" 1 3 4
19540 /* crypto/sha/sha.h */
19541 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
19542  * All rights reserved.
19543  *
19544  * This package is an SSL implementation written
19545  * by Eric Young (eay@cryptsoft.com).
19546  * The implementation was written so as to conform with Netscapes SSL.
19547  *
19548  * This library is free for commercial and non-commercial use as long as
19549  * the following conditions are aheared to.  The following conditions
19550  * apply to all code found in this distribution, be it the RC4, RSA,
19551  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
19552  * included with this distribution is covered by the same copyright terms
19553  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
19554  *
19555  * Copyright remains Eric Young's, and as such any Copyright notices in
19556  * the code are not to be removed.
19557  * If this package is used in a product, Eric Young should be given attribution
19558  * as the author of the parts of the library used.
19559  * This can be in the form of a textual message at program startup or
19560  * in documentation (online or textual) provided with the package.
19561  *
19562  * Redistribution and use in source and binary forms, with or without
19563  * modification, are permitted provided that the following conditions
19564  * are met:
19565  * 1. Redistributions of source code must retain the copyright
19566  *    notice, this list of conditions and the following disclaimer.
19567  * 2. Redistributions in binary form must reproduce the above copyright
19568  *    notice, this list of conditions and the following disclaimer in the
19569  *    documentation and/or other materials provided with the distribution.
19570  * 3. All advertising materials mentioning features or use of this software
19571  *    must display the following acknowledgement:
19572  *    "This product includes cryptographic software written by
19573  *     Eric Young (eay@cryptsoft.com)"
19574  *    The word 'cryptographic' can be left out if the rouines from the library
19575  *    being used are not cryptographic related :-).
19576  * 4. If you include any Windows specific code (or a derivative thereof) from
19577  *    the apps directory (application code) you must include an acknowledgement:
19578  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
19579  *
19580  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
19581  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19582  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19583  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19584  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19585  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19586  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19587  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
19588  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
19589  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
19590  * SUCH DAMAGE.
19591  *
19592  * The licence and distribution terms for any publically available version or
19593  * derivative of this code cannot be changed.  i.e. this code cannot simply be
19594  * copied and put under another distribution licence
19595  * [including the GNU Public Licence.]
19596  */
19597 
19598 
19599 
19600 
19601 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
19602 /* e_os2.h */
19603 /* ====================================================================
19604  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
19605  *
19606  * Redistribution and use in source and binary forms, with or without
19607  * modification, are permitted provided that the following conditions
19608  * are met:
19609  *
19610  * 1. Redistributions of source code must retain the above copyright
19611  *    notice, this list of conditions and the following disclaimer.
19612  *
19613  * 2. Redistributions in binary form must reproduce the above copyright
19614  *    notice, this list of conditions and the following disclaimer in
19615  *    the documentation and/or other materials provided with the
19616  *    distribution.
19617  *
19618  * 3. All advertising materials mentioning features or use of this
19619  *    software must display the following acknowledgment:
19620  *    "This product includes software developed by the OpenSSL Project
19621  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
19622  *
19623  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
19624  *    endorse or promote products derived from this software without
19625  *    prior written permission. For written permission, please contact
19626  *    openssl-core@openssl.org.
19627  *
19628  * 5. Products derived from this software may not be called "OpenSSL"
19629  *    nor may "OpenSSL" appear in their names without prior written
19630  *    permission of the OpenSSL Project.
19631  *
19632  * 6. Redistributions of any form whatsoever must retain the following
19633  *    acknowledgment:
19634  *    "This product includes software developed by the OpenSSL Project
19635  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
19636  *
19637  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
19638  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19639  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19640  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
19641  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19642  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19643  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19644  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19645  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
19646  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19647  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
19648  * OF THE POSSIBILITY OF SUCH DAMAGE.
19649  * ====================================================================
19650  *
19651  * This product includes cryptographic software written by Eric Young
19652  * (eay@cryptsoft.com).  This product includes software written by Tim
19653  * Hudson (tjh@cryptsoft.com).
19654  *
19655  */
19656 
19657 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
19658 /* opensslconf.h */
19659 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
19660 
19661 
19662 
19663 
19664 /* OpenSSL was configured with the following options: */
19665 # 108 "/usr/include/openssl/opensslconf.h" 3 4
19666 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
19667    asks for it.  This is a transient feature that is provided for those
19668    who haven't had the time to do the appropriate changes in their
19669    applications.  */
19670 # 204 "/usr/include/openssl/opensslconf.h" 3 4
19671 /* crypto/opensslconf.h.in */
19672 
19673 /* Generate 80386 code? */
19674 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
19675 # 63 "/usr/include/openssl/sha.h" 2 3 4
19676 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4
19677 /*
19678  * CDDL HEADER START
19679  *
19680  * The contents of this file are subject to the terms of the
19681  * Common Development and Distribution License, Version 1.0 only
19682  * (the "License").  You may not use this file except in compliance
19683  * with the License.
19684  *
19685  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
19686  * or http://www.opensolaris.org/os/licensing.
19687  * See the License for the specific language governing permissions
19688  * and limitations under the License.
19689  *
19690  * When distributing Covered Code, include this CDDL HEADER in each
19691  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19692  * If applicable, add the following below this CDDL HEADER, with the
19693  * fields enclosed by brackets "[]" replaced with your own identifying
19694  * information: Portions Copyright [yyyy] [name of copyright owner]
19695  *
19696  * CDDL HEADER END
19697  */
19698 /*	Copyright (c) 1988 AT&T	*/
19699 /*	  All Rights Reserved  	*/
19700 
19701 
19702 /*
19703  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
19704  * Use is subject to license terms.
19705  */
19706 # 64 "/usr/include/openssl/sha.h" 2 3 4
19707 # 77 "/usr/include/openssl/sha.h" 3 4
19708 /*-
19709  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
19710  * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then !
19711  * ! SHA_LONG_LOG2 has to be defined along.                        !
19712  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
19713  */
19714 # 100 "/usr/include/openssl/sha.h" 3 4
19715 typedef struct SHAstate_st {
19716     unsigned int h0, h1, h2, h3, h4;
19717     unsigned int Nl, Nh;
19718     unsigned int data[16];
19719     unsigned int num;
19720 } SHA_CTX;
19721 
19722 
19723 
19724 
19725 
19726 int SHA_Init(SHA_CTX *c);
19727 int SHA_Update(SHA_CTX *c, const void *data, size_t len);
19728 int SHA_Final(unsigned char *md, SHA_CTX *c);
19729 unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md);
19730 void SHA_Transform(SHA_CTX *c, const unsigned char *data);
19731 
19732 
19733 
19734 
19735 
19736 int SHA1_Init(SHA_CTX *c);
19737 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
19738 int SHA1_Final(unsigned char *md, SHA_CTX *c);
19739 unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md);
19740 void SHA1_Transform(SHA_CTX *c, const unsigned char *data);
19741 # 134 "/usr/include/openssl/sha.h" 3 4
19742 typedef struct SHA256state_st {
19743     unsigned int h[8];
19744     unsigned int Nl, Nh;
19745     unsigned int data[16];
19746     unsigned int num, md_len;
19747 } SHA256_CTX;
19748 
19749 
19750 
19751 
19752 
19753 
19754 int SHA224_Init(SHA256_CTX *c);
19755 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
19756 int SHA224_Final(unsigned char *md, SHA256_CTX *c);
19757 unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md);
19758 int SHA256_Init(SHA256_CTX *c);
19759 int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);
19760 int SHA256_Final(unsigned char *md, SHA256_CTX *c);
19761 unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md);
19762 void SHA256_Transform(SHA256_CTX *c, const unsigned char *data);
19763 
19764 
19765 
19766 
19767 
19768 
19769 /*
19770  * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64
19771  * being exactly 64-bit wide. See Implementation Notes in sha512.c
19772  * for further details.
19773  */
19774 /*
19775  * SHA-512 treats input data as a
19776  * contiguous array of 64 bit
19777  * wide big-endian values.
19778  */
19779 # 183 "/usr/include/openssl/sha.h" 3 4
19780 typedef struct SHA512state_st {
19781     unsigned long long h[8];
19782     unsigned long long Nl, Nh;
19783     union {
19784         unsigned long long d[16];
19785         unsigned char p[(16*8)];
19786     } u;
19787     unsigned int num, md_len;
19788 } SHA512_CTX;
19789 
19790 
19791 
19792 
19793 
19794 
19795 
19796 int SHA384_Init(SHA512_CTX *c);
19797 int SHA384_Update(SHA512_CTX *c, const void *data, size_t len);
19798 int SHA384_Final(unsigned char *md, SHA512_CTX *c);
19799 unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md);
19800 int SHA512_Init(SHA512_CTX *c);
19801 int SHA512_Update(SHA512_CTX *c, const void *data, size_t len);
19802 int SHA512_Final(unsigned char *md, SHA512_CTX *c);
19803 unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md);
19804 void SHA512_Transform(SHA512_CTX *c, const unsigned char *data);
19805 # 108 "/usr/include/openssl/x509.h" 2 3 4
19806 
19807 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
19808 /* ====================================================================
19809  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
19810  *
19811  * Redistribution and use in source and binary forms, with or without
19812  * modification, are permitted provided that the following conditions
19813  * are met:
19814  *
19815  * 1. Redistributions of source code must retain the above copyright
19816  *    notice, this list of conditions and the following disclaimer.
19817  *
19818  * 2. Redistributions in binary form must reproduce the above copyright
19819  *    notice, this list of conditions and the following disclaimer in
19820  *    the documentation and/or other materials provided with the
19821  *    distribution.
19822  *
19823  * 3. All advertising materials mentioning features or use of this
19824  *    software must display the following acknowledgment:
19825  *    "This product includes software developed by the OpenSSL Project
19826  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
19827  *
19828  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
19829  *    endorse or promote products derived from this software without
19830  *    prior written permission. For written permission, please contact
19831  *    openssl-core@openssl.org.
19832  *
19833  * 5. Products derived from this software may not be called "OpenSSL"
19834  *    nor may "OpenSSL" appear in their names without prior written
19835  *    permission of the OpenSSL Project.
19836  *
19837  * 6. Redistributions of any form whatsoever must retain the following
19838  *    acknowledgment:
19839  *    "This product includes software developed by the OpenSSL Project
19840  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
19841  *
19842  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
19843  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19844  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19845  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
19846  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19847  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19848  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19849  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19850  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
19851  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19852  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
19853  * OF THE POSSIBILITY OF SUCH DAMAGE.
19854  * ====================================================================
19855  *
19856  * This product includes cryptographic software written by Eric Young
19857  * (eay@cryptsoft.com).  This product includes software written by Tim
19858  * Hudson (tjh@cryptsoft.com).
19859  *
19860  */
19861 # 110 "/usr/include/openssl/x509.h" 2 3 4
19862 # 137 "/usr/include/openssl/x509.h" 3 4
19863 typedef struct X509_objects_st {
19864     int nid;
19865     int (*a2i) (void);
19866     int (*i2a) (void);
19867 } X509_OBJECTS;
19868 
19869 struct X509_algor_st {
19870     ASN1_OBJECT *algorithm;
19871     ASN1_TYPE *parameter;
19872 } /* X509_ALGOR */ ;
19873 
19874 
19875 
19876 typedef struct stack_st_X509_ALGOR X509_ALGORS;
19877 
19878 typedef struct X509_val_st {
19879     ASN1_TIME *notBefore;
19880     ASN1_TIME *notAfter;
19881 } X509_VAL;
19882 
19883 struct X509_pubkey_st {
19884     X509_ALGOR *algor;
19885     ASN1_BIT_STRING *public_key;
19886     EVP_PKEY *pkey;
19887 };
19888 
19889 typedef struct X509_sig_st {
19890     X509_ALGOR *algor;
19891     ASN1_OCTET_STRING *digest;
19892 } X509_SIG;
19893 
19894 typedef struct X509_name_entry_st {
19895     ASN1_OBJECT *object;
19896     ASN1_STRING *value;
19897     int set;
19898     int size; /* temp variable */
19899 } X509_NAME_ENTRY;
19900 
19901 struct stack_st_X509_NAME_ENTRY { _STACK stack; };
19902 
19903 
19904 /* we always keep X509_NAMEs in 2 forms. */
19905 struct X509_name_st {
19906     struct stack_st_X509_NAME_ENTRY *entries;
19907     int modified; /* true if 'bytes' needs to be built */
19908 
19909     BUF_MEM *bytes;
19910 
19911 
19912 
19913 /*      unsigned long hash; Keep the hash around for lookups */
19914     unsigned char *canon_enc;
19915     int canon_enclen;
19916 } /* X509_NAME */ ;
19917 
19918 struct stack_st_X509_NAME { _STACK stack; };
19919 
19920 
19921 
19922 typedef struct X509_extension_st {
19923     ASN1_OBJECT *object;
19924     ASN1_BOOLEAN critical;
19925     ASN1_OCTET_STRING *value;
19926 } X509_EXTENSION;
19927 
19928 typedef struct stack_st_X509_EXTENSION X509_EXTENSIONS;
19929 
19930 struct stack_st_X509_EXTENSION { _STACK stack; };
19931 
19932 
19933 /* a sequence of these are used */
19934 typedef struct x509_attributes_st {
19935     ASN1_OBJECT *object;
19936     int single; /* 0 for a set, 1 for a single item (which is
19937                                  * wrong) */
19938     union {
19939         char *ptr;
19940         /*
19941          * 0
19942          */ struct stack_st_ASN1_TYPE *set;
19943         /*
19944          * 1
19945          */ ASN1_TYPE *single;
19946     } value;
19947 } X509_ATTRIBUTE;
19948 
19949 struct stack_st_X509_ATTRIBUTE { _STACK stack; };
19950 
19951 
19952 typedef struct X509_req_info_st {
19953     ASN1_ENCODING enc;
19954     ASN1_INTEGER *version;
19955     X509_NAME *subject;
19956     X509_PUBKEY *pubkey;
19957     /*  d=2 hl=2 l=  0 cons: cont: 00 */
19958     struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */
19959 } X509_REQ_INFO;
19960 
19961 typedef struct X509_req_st {
19962     X509_REQ_INFO *req_info;
19963     X509_ALGOR *sig_alg;
19964     ASN1_BIT_STRING *signature;
19965     int references;
19966 } X509_REQ;
19967 
19968 typedef struct x509_cinf_st {
19969     ASN1_INTEGER *version; /* [ 0 ] default of v1 */
19970     ASN1_INTEGER *serialNumber;
19971     X509_ALGOR *signature;
19972     X509_NAME *issuer;
19973     X509_VAL *validity;
19974     X509_NAME *subject;
19975     X509_PUBKEY *key;
19976     ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */
19977     ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */
19978     struct stack_st_X509_EXTENSION *extensions; /* [ 3 ] optional in v3 */
19979     ASN1_ENCODING enc;
19980 } X509_CINF;
19981 
19982 /*
19983  * This stuff is certificate "auxiliary info" it contains details which are
19984  * useful in certificate stores and databases. When used this is tagged onto
19985  * the end of the certificate itself
19986  */
19987 
19988 typedef struct x509_cert_aux_st {
19989     struct stack_st_ASN1_OBJECT *trust; /* trusted uses */
19990     struct stack_st_ASN1_OBJECT *reject; /* rejected uses */
19991     ASN1_UTF8STRING *alias; /* "friendly name" */
19992     ASN1_OCTET_STRING *keyid; /* key id of private key */
19993     struct stack_st_X509_ALGOR *other; /* other unspecified info */
19994 } X509_CERT_AUX;
19995 
19996 struct x509_st {
19997     X509_CINF *cert_info;
19998     X509_ALGOR *sig_alg;
19999     ASN1_BIT_STRING *signature;
20000     int valid;
20001     int references;
20002     char *name;
20003     CRYPTO_EX_DATA ex_data;
20004     /* These contain copies of various extension values */
20005     long ex_pathlen;
20006     long ex_pcpathlen;
20007     unsigned long ex_flags;
20008     unsigned long ex_kusage;
20009     unsigned long ex_xkusage;
20010     unsigned long ex_nscert;
20011     ASN1_OCTET_STRING *skid;
20012     AUTHORITY_KEYID *akid;
20013     X509_POLICY_CACHE *policy_cache;
20014     struct stack_st_DIST_POINT *crldp;
20015     struct stack_st_GENERAL_NAME *altname;
20016     NAME_CONSTRAINTS *nc;
20017 
20018 
20019 
20020 
20021 
20022     unsigned char sha1_hash[20];
20023 
20024     X509_CERT_AUX *aux;
20025 } /* X509 */ ;
20026 
20027 struct stack_st_X509 { _STACK stack; };
20028 
20029 
20030 /* This is used for a table of trust checking functions */
20031 
20032 typedef struct x509_trust_st {
20033     int trust;
20034     int flags;
20035     int (*check_trust) (struct x509_trust_st *, X509 *, int);
20036     char *name;
20037     int arg1;
20038     void *arg2;
20039 } X509_TRUST;
20040 
20041 struct stack_st_X509_TRUST { _STACK stack; };
20042 
20043 typedef struct x509_cert_pair_st {
20044     X509 *forward;
20045     X509 *reverse;
20046 } X509_CERT_PAIR;
20047 
20048 /* standard trust ids */
20049 # 335 "/usr/include/openssl/x509.h" 3 4
20050 /* Keep these up to date! */
20051 
20052 
20053 
20054 /* trust_flags values */
20055 
20056 
20057 
20058 /* check_trust return codes */
20059 
20060 
20061 
20062 
20063 
20064 /* Flags for X509_print_ex() */
20065 # 366 "/usr/include/openssl/x509.h" 3 4
20066 /* Flags specific to X509_NAME_print_ex() */
20067 
20068 /* The field separator information */
20069 # 381 "/usr/include/openssl/x509.h" 3 4
20070 /* How the field name is shown */
20071 # 392 "/usr/include/openssl/x509.h" 3 4
20072 /*
20073  * This determines if we dump fields we don't recognise: RFC2253 requires
20074  * this.
20075  */
20076 
20077 
20078 
20079 
20080 
20081 
20082 /* Complete set of RFC2253 flags */
20083 
20084 
20085 
20086 
20087 
20088 
20089 
20090 /* readable oneline form */
20091 
20092 
20093 
20094 
20095 
20096 
20097 
20098 /* readable multiline form */
20099 # 427 "/usr/include/openssl/x509.h" 3 4
20100 struct x509_revoked_st {
20101     ASN1_INTEGER *serialNumber;
20102     ASN1_TIME *revocationDate;
20103     struct stack_st_X509_EXTENSION /* optional */ *extensions;
20104     /* Set up if indirect CRL */
20105     struct stack_st_GENERAL_NAME *issuer;
20106     /* Revocation reason */
20107     int reason;
20108     int sequence; /* load sequence */
20109 };
20110 
20111 struct stack_st_X509_REVOKED { _STACK stack; };
20112 
20113 
20114 typedef struct X509_crl_info_st {
20115     ASN1_INTEGER *version;
20116     X509_ALGOR *sig_alg;
20117     X509_NAME *issuer;
20118     ASN1_TIME *lastUpdate;
20119     ASN1_TIME *nextUpdate;
20120     struct stack_st_X509_REVOKED *revoked;
20121     struct stack_st_X509_EXTENSION /* [0] */ *extensions;
20122     ASN1_ENCODING enc;
20123 } X509_CRL_INFO;
20124 
20125 struct X509_crl_st {
20126     /* actual signature */
20127     X509_CRL_INFO *crl;
20128     X509_ALGOR *sig_alg;
20129     ASN1_BIT_STRING *signature;
20130     int references;
20131     int flags;
20132     /* Copies of various extensions */
20133     AUTHORITY_KEYID *akid;
20134     ISSUING_DIST_POINT *idp;
20135     /* Convenient breakdown of IDP */
20136     int idp_flags;
20137     int idp_reasons;
20138     /* CRL and base CRL numbers for delta processing */
20139     ASN1_INTEGER *crl_number;
20140     ASN1_INTEGER *base_crl_number;
20141 
20142     unsigned char sha1_hash[20];
20143 
20144     struct stack_st_GENERAL_NAMES *issuers;
20145     const X509_CRL_METHOD *meth;
20146     void *meth_data;
20147 } /* X509_CRL */ ;
20148 
20149 struct stack_st_X509_CRL { _STACK stack; };
20150 
20151 
20152 typedef struct private_key_st {
20153     int version;
20154     /* The PKCS#8 data types */
20155     X509_ALGOR *enc_algor;
20156     ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */
20157     /* When decrypted, the following will not be NULL */
20158     EVP_PKEY *dec_pkey;
20159     /* used to encrypt and decrypt */
20160     int key_length;
20161     char *key_data;
20162     int key_free; /* true if we should auto free key_data */
20163     /* expanded version of 'enc_algor' */
20164     EVP_CIPHER_INFO cipher;
20165     int references;
20166 } X509_PKEY;
20167 
20168 
20169 typedef struct X509_info_st {
20170     X509 *x509;
20171     X509_CRL *crl;
20172     X509_PKEY *x_pkey;
20173     EVP_CIPHER_INFO enc_cipher;
20174     int enc_len;
20175     char *enc_data;
20176     int references;
20177 } X509_INFO;
20178 
20179 struct stack_st_X509_INFO { _STACK stack; };
20180 
20181 
20182 /*
20183  * The next 2 structures and their 8 routines were sent to me by Pat Richard
20184  * <patr@x509.com> and are used to manipulate Netscapes spki structures -
20185  * useful if you are writing a CA web page
20186  */
20187 typedef struct Netscape_spkac_st {
20188     X509_PUBKEY *pubkey;
20189     ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */
20190 } NETSCAPE_SPKAC;
20191 
20192 typedef struct Netscape_spki_st {
20193     NETSCAPE_SPKAC *spkac; /* signed public key and challenge */
20194     X509_ALGOR *sig_algor;
20195     ASN1_BIT_STRING *signature;
20196 } NETSCAPE_SPKI;
20197 
20198 /* Netscape certificate sequence structure */
20199 typedef struct Netscape_certificate_sequence {
20200     ASN1_OBJECT *type;
20201     struct stack_st_X509 *certs;
20202 } NETSCAPE_CERT_SEQUENCE;
20203 
20204 /*- Unused (and iv length is wrong)
20205 typedef struct CBCParameter_st
20206         {
20207         unsigned char iv[8];
20208         } CBC_PARAM;
20209 */
20210 
20211 /* Password based encryption structure */
20212 
20213 typedef struct PBEPARAM_st {
20214     ASN1_OCTET_STRING *salt;
20215     ASN1_INTEGER *iter;
20216 } PBEPARAM;
20217 
20218 /* Password based encryption V2 structures */
20219 
20220 typedef struct PBE2PARAM_st {
20221     X509_ALGOR *keyfunc;
20222     X509_ALGOR *encryption;
20223 } PBE2PARAM;
20224 
20225 typedef struct PBKDF2PARAM_st {
20226 /* Usually OCTET STRING but could be anything */
20227     ASN1_TYPE *salt;
20228     ASN1_INTEGER *iter;
20229     ASN1_INTEGER *keylength;
20230     X509_ALGOR *prf;
20231 } PBKDF2PARAM;
20232 
20233 /* PKCS#8 private key info structure */
20234 
20235 struct pkcs8_priv_key_info_st {
20236     /* Flag for various broken formats */
20237     int broken;
20238 
20239 
20240 
20241 
20242 
20243     ASN1_INTEGER *version;
20244     X509_ALGOR *pkeyalg;
20245     /* Should be OCTET STRING but some are broken */
20246     ASN1_TYPE *pkey;
20247     struct stack_st_X509_ATTRIBUTE *attributes;
20248 };
20249 
20250 
20251 
20252 
20253 
20254 # 1 "/usr/include/openssl/x509_vfy.h" 1 3 4
20255 /* crypto/x509/x509_vfy.h */
20256 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
20257  * All rights reserved.
20258  *
20259  * This package is an SSL implementation written
20260  * by Eric Young (eay@cryptsoft.com).
20261  * The implementation was written so as to conform with Netscapes SSL.
20262  *
20263  * This library is free for commercial and non-commercial use as long as
20264  * the following conditions are aheared to.  The following conditions
20265  * apply to all code found in this distribution, be it the RC4, RSA,
20266  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
20267  * included with this distribution is covered by the same copyright terms
20268  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
20269  *
20270  * Copyright remains Eric Young's, and as such any Copyright notices in
20271  * the code are not to be removed.
20272  * If this package is used in a product, Eric Young should be given attribution
20273  * as the author of the parts of the library used.
20274  * This can be in the form of a textual message at program startup or
20275  * in documentation (online or textual) provided with the package.
20276  *
20277  * Redistribution and use in source and binary forms, with or without
20278  * modification, are permitted provided that the following conditions
20279  * are met:
20280  * 1. Redistributions of source code must retain the copyright
20281  *    notice, this list of conditions and the following disclaimer.
20282  * 2. Redistributions in binary form must reproduce the above copyright
20283  *    notice, this list of conditions and the following disclaimer in the
20284  *    documentation and/or other materials provided with the distribution.
20285  * 3. All advertising materials mentioning features or use of this software
20286  *    must display the following acknowledgement:
20287  *    "This product includes cryptographic software written by
20288  *     Eric Young (eay@cryptsoft.com)"
20289  *    The word 'cryptographic' can be left out if the rouines from the library
20290  *    being used are not cryptographic related :-).
20291  * 4. If you include any Windows specific code (or a derivative thereof) from
20292  *    the apps directory (application code) you must include an acknowledgement:
20293  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
20294  *
20295  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
20296  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20297  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20298  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20299  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20300  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20301  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20302  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20303  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
20304  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
20305  * SUCH DAMAGE.
20306  *
20307  * The licence and distribution terms for any publically available version or
20308  * derivative of this code cannot be changed.  i.e. this code cannot simply be
20309  * copied and put under another distribution licence
20310  * [including the GNU Public Licence.]
20311  */
20312 # 70 "/usr/include/openssl/x509_vfy.h" 3 4
20313 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
20314 /* opensslconf.h */
20315 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
20316 
20317 
20318 
20319 
20320 /* OpenSSL was configured with the following options: */
20321 # 108 "/usr/include/openssl/opensslconf.h" 3 4
20322 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
20323    asks for it.  This is a transient feature that is provided for those
20324    who haven't had the time to do the appropriate changes in their
20325    applications.  */
20326 # 204 "/usr/include/openssl/opensslconf.h" 3 4
20327 /* crypto/opensslconf.h.in */
20328 
20329 /* Generate 80386 code? */
20330 # 71 "/usr/include/openssl/x509_vfy.h" 2 3 4
20331 
20332 # 1 "/usr/include/openssl/lhash.h" 1 3 4
20333 /* crypto/lhash/lhash.h */
20334 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
20335  * All rights reserved.
20336  *
20337  * This package is an SSL implementation written
20338  * by Eric Young (eay@cryptsoft.com).
20339  * The implementation was written so as to conform with Netscapes SSL.
20340  *
20341  * This library is free for commercial and non-commercial use as long as
20342  * the following conditions are aheared to.  The following conditions
20343  * apply to all code found in this distribution, be it the RC4, RSA,
20344  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
20345  * included with this distribution is covered by the same copyright terms
20346  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
20347  *
20348  * Copyright remains Eric Young's, and as such any Copyright notices in
20349  * the code are not to be removed.
20350  * If this package is used in a product, Eric Young should be given attribution
20351  * as the author of the parts of the library used.
20352  * This can be in the form of a textual message at program startup or
20353  * in documentation (online or textual) provided with the package.
20354  *
20355  * Redistribution and use in source and binary forms, with or without
20356  * modification, are permitted provided that the following conditions
20357  * are met:
20358  * 1. Redistributions of source code must retain the copyright
20359  *    notice, this list of conditions and the following disclaimer.
20360  * 2. Redistributions in binary form must reproduce the above copyright
20361  *    notice, this list of conditions and the following disclaimer in the
20362  *    documentation and/or other materials provided with the distribution.
20363  * 3. All advertising materials mentioning features or use of this software
20364  *    must display the following acknowledgement:
20365  *    "This product includes cryptographic software written by
20366  *     Eric Young (eay@cryptsoft.com)"
20367  *    The word 'cryptographic' can be left out if the rouines from the library
20368  *    being used are not cryptographic related :-).
20369  * 4. If you include any Windows specific code (or a derivative thereof) from
20370  *    the apps directory (application code) you must include an acknowledgement:
20371  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
20372  *
20373  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
20374  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20375  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20376  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20377  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20378  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20379  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20380  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20381  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
20382  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
20383  * SUCH DAMAGE.
20384  *
20385  * The licence and distribution terms for any publically available version or
20386  * derivative of this code cannot be changed.  i.e. this code cannot simply be
20387  * copied and put under another distribution licence
20388  * [including the GNU Public Licence.]
20389  */
20390 
20391 /*
20392  * Header for dynamic hash table routines Author - Eric Young
20393  */
20394 
20395 
20396 
20397 
20398 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
20399 /* e_os2.h */
20400 /* ====================================================================
20401  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
20402  *
20403  * Redistribution and use in source and binary forms, with or without
20404  * modification, are permitted provided that the following conditions
20405  * are met:
20406  *
20407  * 1. Redistributions of source code must retain the above copyright
20408  *    notice, this list of conditions and the following disclaimer.
20409  *
20410  * 2. Redistributions in binary form must reproduce the above copyright
20411  *    notice, this list of conditions and the following disclaimer in
20412  *    the documentation and/or other materials provided with the
20413  *    distribution.
20414  *
20415  * 3. All advertising materials mentioning features or use of this
20416  *    software must display the following acknowledgment:
20417  *    "This product includes software developed by the OpenSSL Project
20418  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20419  *
20420  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
20421  *    endorse or promote products derived from this software without
20422  *    prior written permission. For written permission, please contact
20423  *    openssl-core@openssl.org.
20424  *
20425  * 5. Products derived from this software may not be called "OpenSSL"
20426  *    nor may "OpenSSL" appear in their names without prior written
20427  *    permission of the OpenSSL Project.
20428  *
20429  * 6. Redistributions of any form whatsoever must retain the following
20430  *    acknowledgment:
20431  *    "This product includes software developed by the OpenSSL Project
20432  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
20433  *
20434  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
20435  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20436  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20437  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
20438  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20439  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20440  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20441  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20442  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
20443  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20444  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20445  * OF THE POSSIBILITY OF SUCH DAMAGE.
20446  * ====================================================================
20447  *
20448  * This product includes cryptographic software written by Eric Young
20449  * (eay@cryptsoft.com).  This product includes software written by Tim
20450  * Hudson (tjh@cryptsoft.com).
20451  *
20452  */
20453 
20454 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
20455 /* opensslconf.h */
20456 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
20457 
20458 
20459 
20460 
20461 /* OpenSSL was configured with the following options: */
20462 # 108 "/usr/include/openssl/opensslconf.h" 3 4
20463 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
20464    asks for it.  This is a transient feature that is provided for those
20465    who haven't had the time to do the appropriate changes in their
20466    applications.  */
20467 # 204 "/usr/include/openssl/opensslconf.h" 3 4
20468 /* crypto/opensslconf.h.in */
20469 
20470 /* Generate 80386 code? */
20471 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
20472 # 67 "/usr/include/openssl/lhash.h" 2 3 4
20473 
20474 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4
20475 /*
20476  * CDDL HEADER START
20477  *
20478  * The contents of this file are subject to the terms of the
20479  * Common Development and Distribution License (the "License").
20480  * You may not use this file except in compliance with the License.
20481  *
20482  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20483  * or http://www.opensolaris.org/os/licensing.
20484  * See the License for the specific language governing permissions
20485  * and limitations under the License.
20486  *
20487  * When distributing Covered Code, include this CDDL HEADER in each
20488  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20489  * If applicable, add the following below this CDDL HEADER, with the
20490  * fields enclosed by brackets "[]" replaced with your own identifying
20491  * information: Portions Copyright [yyyy] [name of copyright owner]
20492  *
20493  * CDDL HEADER END
20494  */
20495 
20496 /*
20497  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
20498  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
20499  */
20500 
20501 /*	Copyright (c) 1988 AT&T	*/
20502 /*	  All Rights Reserved  	*/
20503 
20504 /*
20505  * User-visible pieces of the ANSI C standard I/O package.
20506  */
20507 # 69 "/usr/include/openssl/lhash.h" 2 3 4
20508 
20509 
20510 
20511 # 1 "/usr/include/openssl/bio.h" 1 3 4
20512 /* crypto/bio/bio.h */
20513 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
20514  * All rights reserved.
20515  *
20516  * This package is an SSL implementation written
20517  * by Eric Young (eay@cryptsoft.com).
20518  * The implementation was written so as to conform with Netscapes SSL.
20519  *
20520  * This library is free for commercial and non-commercial use as long as
20521  * the following conditions are aheared to.  The following conditions
20522  * apply to all code found in this distribution, be it the RC4, RSA,
20523  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
20524  * included with this distribution is covered by the same copyright terms
20525  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
20526  *
20527  * Copyright remains Eric Young's, and as such any Copyright notices in
20528  * the code are not to be removed.
20529  * If this package is used in a product, Eric Young should be given attribution
20530  * as the author of the parts of the library used.
20531  * This can be in the form of a textual message at program startup or
20532  * in documentation (online or textual) provided with the package.
20533  *
20534  * Redistribution and use in source and binary forms, with or without
20535  * modification, are permitted provided that the following conditions
20536  * are met:
20537  * 1. Redistributions of source code must retain the copyright
20538  *    notice, this list of conditions and the following disclaimer.
20539  * 2. Redistributions in binary form must reproduce the above copyright
20540  *    notice, this list of conditions and the following disclaimer in the
20541  *    documentation and/or other materials provided with the distribution.
20542  * 3. All advertising materials mentioning features or use of this software
20543  *    must display the following acknowledgement:
20544  *    "This product includes cryptographic software written by
20545  *     Eric Young (eay@cryptsoft.com)"
20546  *    The word 'cryptographic' can be left out if the rouines from the library
20547  *    being used are not cryptographic related :-).
20548  * 4. If you include any Windows specific code (or a derivative thereof) from
20549  *    the apps directory (application code) you must include an acknowledgement:
20550  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
20551  *
20552  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
20553  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20554  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20555  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20556  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20557  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20558  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20559  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20560  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
20561  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
20562  * SUCH DAMAGE.
20563  *
20564  * The licence and distribution terms for any publically available version or
20565  * derivative of this code cannot be changed.  i.e. this code cannot simply be
20566  * copied and put under another distribution licence
20567  * [including the GNU Public Licence.]
20568  */
20569 # 73 "/usr/include/openssl/lhash.h" 2 3 4
20570 
20571 
20572 
20573 
20574 
20575 
20576 typedef struct lhash_node_st {
20577     void *data;
20578     struct lhash_node_st *next;
20579 
20580     unsigned long hash;
20581 
20582 } LHASH_NODE;
20583 
20584 typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *);
20585 typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *);
20586 typedef void (*LHASH_DOALL_FN_TYPE) (void *);
20587 typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *);
20588 
20589 /*
20590  * Macros for declaring and implementing type-safe wrappers for LHASH
20591  * callbacks. This way, callbacks can be provided to LHASH structures without
20592  * function pointer casting and the macro-defined callbacks provide
20593  * per-variable casting before deferring to the underlying type-specific
20594  * callbacks. NB: It is possible to place a "static" in front of both the
20595  * DECLARE and IMPLEMENT macros if the functions are strictly internal.
20596  */
20597 
20598 /* First: "hash" functions */
20599 # 110 "/usr/include/openssl/lhash.h" 3 4
20600 /* Second: "compare" functions */
20601 # 120 "/usr/include/openssl/lhash.h" 3 4
20602 /* Third: "doall" functions */
20603 # 129 "/usr/include/openssl/lhash.h" 3 4
20604 /* Fourth: "doall_arg" functions */
20605 # 139 "/usr/include/openssl/lhash.h" 3 4
20606 typedef struct lhash_st {
20607     LHASH_NODE **b;
20608     LHASH_COMP_FN_TYPE comp;
20609     LHASH_HASH_FN_TYPE hash;
20610     unsigned int num_nodes;
20611     unsigned int num_alloc_nodes;
20612     unsigned int p;
20613     unsigned int pmax;
20614     unsigned long up_load; /* load times 256 */
20615     unsigned long down_load; /* load times 256 */
20616     unsigned long num_items;
20617     unsigned long num_expands;
20618     unsigned long num_expand_reallocs;
20619     unsigned long num_contracts;
20620     unsigned long num_contract_reallocs;
20621     unsigned long num_hash_calls;
20622     unsigned long num_comp_calls;
20623     unsigned long num_insert;
20624     unsigned long num_replace;
20625     unsigned long num_delete;
20626     unsigned long num_no_delete;
20627     unsigned long num_retrieve;
20628     unsigned long num_retrieve_miss;
20629     unsigned long num_hash_comps;
20630     int error;
20631 } _LHASH; /* Do not use _LHASH directly, use LHASH_OF
20632                                  * and friends */
20633 
20634 
20635 
20636 /*
20637  * Indicates a malloc() error in the last call, this is only bad in
20638  * lh_insert().
20639  */
20640 
20641 
20642 _LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c);
20643 void lh_free(_LHASH *lh);
20644 void *lh_insert(_LHASH *lh, void *data);
20645 void *lh_delete(_LHASH *lh, const void *data);
20646 void *lh_retrieve(_LHASH *lh, const void *data);
20647 void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func);
20648 void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg);
20649 unsigned long lh_strhash(const char *c);
20650 unsigned long lh_num_items(const _LHASH *lh);
20651 
20652 
20653 void lh_stats(const _LHASH *lh, FILE *out);
20654 void lh_node_stats(const _LHASH *lh, FILE *out);
20655 void lh_node_usage_stats(const _LHASH *lh, FILE *out);
20656 
20657 
20658 
20659 void lh_stats_bio(const _LHASH *lh, BIO *out);
20660 void lh_node_stats_bio(const _LHASH *lh, BIO *out);
20661 void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out);
20662 
20663 
20664 /* Type checking... */
20665 # 206 "/usr/include/openssl/lhash.h" 3 4
20666 /* Define wrapper functions. */
20667 # 233 "/usr/include/openssl/lhash.h" 3 4
20668 struct lhash_st_OPENSSL_STRING { int dummy; };
20669 struct lhash_st_OPENSSL_CSTRING { int dummy; };
20670 # 73 "/usr/include/openssl/x509_vfy.h" 2 3 4
20671 
20672 # 1 "/usr/include/openssl/bio.h" 1 3 4
20673 /* crypto/bio/bio.h */
20674 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
20675  * All rights reserved.
20676  *
20677  * This package is an SSL implementation written
20678  * by Eric Young (eay@cryptsoft.com).
20679  * The implementation was written so as to conform with Netscapes SSL.
20680  *
20681  * This library is free for commercial and non-commercial use as long as
20682  * the following conditions are aheared to.  The following conditions
20683  * apply to all code found in this distribution, be it the RC4, RSA,
20684  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
20685  * included with this distribution is covered by the same copyright terms
20686  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
20687  *
20688  * Copyright remains Eric Young's, and as such any Copyright notices in
20689  * the code are not to be removed.
20690  * If this package is used in a product, Eric Young should be given attribution
20691  * as the author of the parts of the library used.
20692  * This can be in the form of a textual message at program startup or
20693  * in documentation (online or textual) provided with the package.
20694  *
20695  * Redistribution and use in source and binary forms, with or without
20696  * modification, are permitted provided that the following conditions
20697  * are met:
20698  * 1. Redistributions of source code must retain the copyright
20699  *    notice, this list of conditions and the following disclaimer.
20700  * 2. Redistributions in binary form must reproduce the above copyright
20701  *    notice, this list of conditions and the following disclaimer in the
20702  *    documentation and/or other materials provided with the distribution.
20703  * 3. All advertising materials mentioning features or use of this software
20704  *    must display the following acknowledgement:
20705  *    "This product includes cryptographic software written by
20706  *     Eric Young (eay@cryptsoft.com)"
20707  *    The word 'cryptographic' can be left out if the rouines from the library
20708  *    being used are not cryptographic related :-).
20709  * 4. If you include any Windows specific code (or a derivative thereof) from
20710  *    the apps directory (application code) you must include an acknowledgement:
20711  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
20712  *
20713  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
20714  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20715  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20716  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20717  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20718  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20719  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20720  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20721  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
20722  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
20723  * SUCH DAMAGE.
20724  *
20725  * The licence and distribution terms for any publically available version or
20726  * derivative of this code cannot be changed.  i.e. this code cannot simply be
20727  * copied and put under another distribution licence
20728  * [including the GNU Public Licence.]
20729  */
20730 # 75 "/usr/include/openssl/x509_vfy.h" 2 3 4
20731 # 1 "/usr/include/openssl/crypto.h" 1 3 4
20732 /* crypto/crypto.h */
20733 /* ====================================================================
20734  * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
20735  *
20736  * Redistribution and use in source and binary forms, with or without
20737  * modification, are permitted provided that the following conditions
20738  * are met:
20739  *
20740  * 1. Redistributions of source code must retain the above copyright
20741  *    notice, this list of conditions and the following disclaimer.
20742  *
20743  * 2. Redistributions in binary form must reproduce the above copyright
20744  *    notice, this list of conditions and the following disclaimer in
20745  *    the documentation and/or other materials provided with the
20746  *    distribution.
20747  *
20748  * 3. All advertising materials mentioning features or use of this
20749  *    software must display the following acknowledgment:
20750  *    "This product includes software developed by the OpenSSL Project
20751  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20752  *
20753  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
20754  *    endorse or promote products derived from this software without
20755  *    prior written permission. For written permission, please contact
20756  *    openssl-core@openssl.org.
20757  *
20758  * 5. Products derived from this software may not be called "OpenSSL"
20759  *    nor may "OpenSSL" appear in their names without prior written
20760  *    permission of the OpenSSL Project.
20761  *
20762  * 6. Redistributions of any form whatsoever must retain the following
20763  *    acknowledgment:
20764  *    "This product includes software developed by the OpenSSL Project
20765  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
20766  *
20767  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
20768  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20769  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20770  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
20771  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20772  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20773  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20774  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20775  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
20776  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20777  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20778  * OF THE POSSIBILITY OF SUCH DAMAGE.
20779  * ====================================================================
20780  *
20781  * This product includes cryptographic software written by Eric Young
20782  * (eay@cryptsoft.com).  This product includes software written by Tim
20783  * Hudson (tjh@cryptsoft.com).
20784  *
20785  */
20786 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
20787  * All rights reserved.
20788  *
20789  * This package is an SSL implementation written
20790  * by Eric Young (eay@cryptsoft.com).
20791  * The implementation was written so as to conform with Netscapes SSL.
20792  *
20793  * This library is free for commercial and non-commercial use as long as
20794  * the following conditions are aheared to.  The following conditions
20795  * apply to all code found in this distribution, be it the RC4, RSA,
20796  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
20797  * included with this distribution is covered by the same copyright terms
20798  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
20799  *
20800  * Copyright remains Eric Young's, and as such any Copyright notices in
20801  * the code are not to be removed.
20802  * If this package is used in a product, Eric Young should be given attribution
20803  * as the author of the parts of the library used.
20804  * This can be in the form of a textual message at program startup or
20805  * in documentation (online or textual) provided with the package.
20806  *
20807  * Redistribution and use in source and binary forms, with or without
20808  * modification, are permitted provided that the following conditions
20809  * are met:
20810  * 1. Redistributions of source code must retain the copyright
20811  *    notice, this list of conditions and the following disclaimer.
20812  * 2. Redistributions in binary form must reproduce the above copyright
20813  *    notice, this list of conditions and the following disclaimer in the
20814  *    documentation and/or other materials provided with the distribution.
20815  * 3. All advertising materials mentioning features or use of this software
20816  *    must display the following acknowledgement:
20817  *    "This product includes cryptographic software written by
20818  *     Eric Young (eay@cryptsoft.com)"
20819  *    The word 'cryptographic' can be left out if the rouines from the library
20820  *    being used are not cryptographic related :-).
20821  * 4. If you include any Windows specific code (or a derivative thereof) from
20822  *    the apps directory (application code) you must include an acknowledgement:
20823  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
20824  *
20825  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
20826  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20827  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20828  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20829  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20830  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20831  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20832  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20833  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
20834  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
20835  * SUCH DAMAGE.
20836  *
20837  * The licence and distribution terms for any publically available version or
20838  * derivative of this code cannot be changed.  i.e. this code cannot simply be
20839  * copied and put under another distribution licence
20840  * [including the GNU Public Licence.]
20841  */
20842 /* ====================================================================
20843  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
20844  * ECDH support in OpenSSL originally developed by
20845  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
20846  */
20847 # 76 "/usr/include/openssl/x509_vfy.h" 2 3 4
20848 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
20849 /* ====================================================================
20850  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
20851  *
20852  * Redistribution and use in source and binary forms, with or without
20853  * modification, are permitted provided that the following conditions
20854  * are met:
20855  *
20856  * 1. Redistributions of source code must retain the above copyright
20857  *    notice, this list of conditions and the following disclaimer.
20858  *
20859  * 2. Redistributions in binary form must reproduce the above copyright
20860  *    notice, this list of conditions and the following disclaimer in
20861  *    the documentation and/or other materials provided with the
20862  *    distribution.
20863  *
20864  * 3. All advertising materials mentioning features or use of this
20865  *    software must display the following acknowledgment:
20866  *    "This product includes software developed by the OpenSSL Project
20867  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20868  *
20869  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
20870  *    endorse or promote products derived from this software without
20871  *    prior written permission. For written permission, please contact
20872  *    openssl-core@openssl.org.
20873  *
20874  * 5. Products derived from this software may not be called "OpenSSL"
20875  *    nor may "OpenSSL" appear in their names without prior written
20876  *    permission of the OpenSSL Project.
20877  *
20878  * 6. Redistributions of any form whatsoever must retain the following
20879  *    acknowledgment:
20880  *    "This product includes software developed by the OpenSSL Project
20881  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
20882  *
20883  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
20884  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20885  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20886  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
20887  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20888  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20889  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20890  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20891  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
20892  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20893  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20894  * OF THE POSSIBILITY OF SUCH DAMAGE.
20895  * ====================================================================
20896  *
20897  * This product includes cryptographic software written by Eric Young
20898  * (eay@cryptsoft.com).  This product includes software written by Tim
20899  * Hudson (tjh@cryptsoft.com).
20900  *
20901  */
20902 # 77 "/usr/include/openssl/x509_vfy.h" 2 3 4
20903 # 92 "/usr/include/openssl/x509_vfy.h" 3 4
20904 typedef struct x509_file_st {
20905     int num_paths; /* number of paths to files or directories */
20906     int num_alloced;
20907     char **paths; /* the list of paths or directories */
20908     int *path_type;
20909 } X509_CERT_FILE_CTX;
20910 
20911 /*******************************/
20912 /*-
20913 SSL_CTX -> X509_STORE
20914                 -> X509_LOOKUP
20915                         ->X509_LOOKUP_METHOD
20916                 -> X509_LOOKUP
20917                         ->X509_LOOKUP_METHOD
20918 
20919 SSL     -> X509_STORE_CTX
20920                 ->X509_STORE
20921 
20922 The X509_STORE holds the tables etc for verification stuff.
20923 A X509_STORE_CTX is used while validating a single certificate.
20924 The X509_STORE has X509_LOOKUPs for looking up certs.
20925 The X509_STORE then calls a function to actually verify the
20926 certificate chain.
20927 */
20928 
20929 
20930 
20931 
20932 
20933 
20934 
20935 typedef struct x509_object_st {
20936     /* one of the above types */
20937     int type;
20938     union {
20939         char *ptr;
20940         X509 *x509;
20941         X509_CRL *crl;
20942         EVP_PKEY *pkey;
20943     } data;
20944 } X509_OBJECT;
20945 
20946 typedef struct x509_lookup_st X509_LOOKUP;
20947 
20948 struct stack_st_X509_LOOKUP { _STACK stack; };
20949 struct stack_st_X509_OBJECT { _STACK stack; };
20950 
20951 /* This is a static that defines the function interface */
20952 typedef struct x509_lookup_method_st {
20953     const char *name;
20954     int (*new_item) (X509_LOOKUP *ctx);
20955     void (*free) (X509_LOOKUP *ctx);
20956     int (*init) (X509_LOOKUP *ctx);
20957     int (*shutdown) (X509_LOOKUP *ctx);
20958     int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl,
20959                  char **ret);
20960     int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name,
20961                            X509_OBJECT *ret);
20962     int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name,
20963                                  ASN1_INTEGER *serial, X509_OBJECT *ret);
20964     int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type,
20965                                unsigned char *bytes, int len,
20966                                X509_OBJECT *ret);
20967     int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len,
20968                          X509_OBJECT *ret);
20969 } X509_LOOKUP_METHOD;
20970 
20971 typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID;
20972 
20973 /*
20974  * This structure hold all parameters associated with a verify operation by
20975  * including an X509_VERIFY_PARAM structure in related structures the
20976  * parameters used can be customized
20977  */
20978 
20979 typedef struct X509_VERIFY_PARAM_st {
20980     char *name;
20981     time_t check_time; /* Time to use */
20982     unsigned long inh_flags; /* Inheritance flags */
20983     unsigned long flags; /* Various verify flags */
20984     int purpose; /* purpose to check untrusted certificates */
20985     int trust; /* trust setting to check */
20986     int depth; /* Verify depth */
20987     struct stack_st_ASN1_OBJECT *policies; /* Permissible policies */
20988     X509_VERIFY_PARAM_ID *id; /* opaque ID data */
20989 } X509_VERIFY_PARAM;
20990 
20991 struct stack_st_X509_VERIFY_PARAM { _STACK stack; };
20992 
20993 /*
20994  * This is used to hold everything.  It is used for all certificate
20995  * validation.  Once we have a certificate chain, the 'verify' function is
20996  * then called to actually check the cert chain.
20997  */
20998 struct x509_store_st {
20999     /* The following is a cache of trusted certs */
21000     int cache; /* if true, stash any hits */
21001     struct stack_st_X509_OBJECT *objs; /* Cache of all objects */
21002     /* These are external lookup methods */
21003     struct stack_st_X509_LOOKUP *get_cert_methods;
21004     X509_VERIFY_PARAM *param;
21005     /* Callbacks for various operations */
21006     /* called to verify a certificate */
21007     int (*verify) (X509_STORE_CTX *ctx);
21008     /* error callback */
21009     int (*verify_cb) (int ok, X509_STORE_CTX *ctx);
21010     /* get issuers cert from ctx */
21011     int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x);
21012     /* check issued */
21013     int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer);
21014     /* Check revocation status of chain */
21015     int (*check_revocation) (X509_STORE_CTX *ctx);
21016     /* retrieve CRL */
21017     int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x);
21018     /* Check CRL validity */
21019     int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl);
21020     /* Check certificate against CRL */
21021     int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x);
21022     struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm);
21023     struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm);
21024     int (*cleanup) (X509_STORE_CTX *ctx);
21025     CRYPTO_EX_DATA ex_data;
21026     int references;
21027 } /* X509_STORE */ ;
21028 
21029 int X509_STORE_set_depth(X509_STORE *store, int depth);
21030 
21031 
21032 
21033 
21034 /* This is the functions plus an instance of the local variables. */
21035 struct x509_lookup_st {
21036     int init; /* have we been started */
21037     int skip; /* don't use us. */
21038     X509_LOOKUP_METHOD *method; /* the functions */
21039     char *method_data; /* method data */
21040     X509_STORE *store_ctx; /* who owns us */
21041 } /* X509_LOOKUP */ ;
21042 
21043 /*
21044  * This is a used when verifying cert chains.  Since the gathering of the
21045  * cert chain can take some time (and have to be 'retried', this needs to be
21046  * kept and passed around.
21047  */
21048 struct x509_store_ctx_st { /* X509_STORE_CTX */
21049     X509_STORE *ctx;
21050     /* used when looking up certs */
21051     int current_method;
21052     /* The following are set by the caller */
21053     /* The cert to check */
21054     X509 *cert;
21055     /* chain of X509s - untrusted - passed in */
21056     struct stack_st_X509 *untrusted;
21057     /* set of CRLs passed in */
21058     struct stack_st_X509_CRL *crls;
21059     X509_VERIFY_PARAM *param;
21060     /* Other info for use with get_issuer() */
21061     void *other_ctx;
21062     /* Callbacks for various operations */
21063     /* called to verify a certificate */
21064     int (*verify) (X509_STORE_CTX *ctx);
21065     /* error callback */
21066     int (*verify_cb) (int ok, X509_STORE_CTX *ctx);
21067     /* get issuers cert from ctx */
21068     int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x);
21069     /* check issued */
21070     int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer);
21071     /* Check revocation status of chain */
21072     int (*check_revocation) (X509_STORE_CTX *ctx);
21073     /* retrieve CRL */
21074     int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x);
21075     /* Check CRL validity */
21076     int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl);
21077     /* Check certificate against CRL */
21078     int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x);
21079     int (*check_policy) (X509_STORE_CTX *ctx);
21080     struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm);
21081     struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm);
21082     int (*cleanup) (X509_STORE_CTX *ctx);
21083     /* The following is built up */
21084     /* if 0, rebuild chain */
21085     int valid;
21086     /* index of last untrusted cert */
21087     int last_untrusted;
21088     /* chain of X509s - built up and trusted */
21089     struct stack_st_X509 *chain;
21090     /* Valid policy tree */
21091     X509_POLICY_TREE *tree;
21092     /* Require explicit policy value */
21093     int explicit_policy;
21094     /* When something goes wrong, this is why */
21095     int error_depth;
21096     int error;
21097     X509 *current_cert;
21098     /* cert currently being tested as valid issuer */
21099     X509 *current_issuer;
21100     /* current CRL */
21101     X509_CRL *current_crl;
21102     /* score of current CRL */
21103     int current_crl_score;
21104     /* Reason mask */
21105     unsigned int current_reasons;
21106     /* For CRL path validation: parent context */
21107     X509_STORE_CTX *parent;
21108     CRYPTO_EX_DATA ex_data;
21109 } /* X509_STORE_CTX */ ;
21110 
21111 void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
21112 # 345 "/usr/include/openssl/x509_vfy.h" 3 4
21113 /* These are 'informational' when looking for issuer cert */
21114 # 377 "/usr/include/openssl/x509_vfy.h" 3 4
21115 /* Suite B mode algorithm violation */
21116 
21117 
21118 
21119 
21120 
21121 
21122 
21123 /* Host, email and IP check errors */
21124 
21125 
21126 
21127 
21128 /* Caller error */
21129 
21130 /* Issuer lookup error */
21131 
21132 
21133 
21134 
21135 /* Certificate verify flags */
21136 
21137 /* Send issuer+subject checks to verify_cb */
21138 
21139 /* Use check time instead of current time */
21140 
21141 /* Lookup CRLs */
21142 
21143 /* Lookup CRLs for whole chain */
21144 
21145 /* Ignore unhandled critical extensions */
21146 
21147 /* Disable workarounds for broken certificates */
21148 
21149 /* Enable proxy certificate validation */
21150 
21151 /* Enable policy checking */
21152 
21153 /* Policy variable require-explicit-policy */
21154 
21155 /* Policy variable inhibit-any-policy */
21156 
21157 /* Policy variable inhibit-policy-mapping */
21158 
21159 /* Notify callback that policy is OK */
21160 
21161 /* Extended CRL features such as indirect CRLs, alternate CRL signing keys */
21162 
21163 /* Delta CRL support */
21164 
21165 /* Check selfsigned CA signature */
21166 
21167 /* Use trusted store first */
21168 
21169 /* Suite B 128 bit only mode: not normally used */
21170 
21171 /* Suite B 192 bit only mode */
21172 
21173 /* Suite B 128 bit mode allowing 192 bit algorithms */
21174 
21175 
21176 /* Allow partial chains if at least one certificate is in trusted store */
21177 
21178 /*
21179  * If the initial chain is not trusted, do not attempt to build an alternative
21180  * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
21181  * will force the behaviour to match that of previous versions.
21182  */
21183 # 453 "/usr/include/openssl/x509_vfy.h" 3 4
21184 /* Internal use: mask of policy related options */
21185 
21186 
21187 
21188 
21189 
21190 int X509_OBJECT_idx_by_subject(struct stack_st_X509_OBJECT *h, int type,
21191                                X509_NAME *name);
21192 X509_OBJECT *X509_OBJECT_retrieve_by_subject(struct stack_st_X509_OBJECT *h,
21193                                              int type, X509_NAME *name);
21194 X509_OBJECT *X509_OBJECT_retrieve_match(struct stack_st_X509_OBJECT *h,
21195                                         X509_OBJECT *x);
21196 void X509_OBJECT_up_ref_count(X509_OBJECT *a);
21197 void X509_OBJECT_free_contents(X509_OBJECT *a);
21198 X509_STORE *X509_STORE_new(void);
21199 void X509_STORE_free(X509_STORE *v);
21200 
21201 struct stack_st_X509 *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm);
21202 struct stack_st_X509_CRL *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm);
21203 int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
21204 int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
21205 int X509_STORE_set_trust(X509_STORE *ctx, int trust);
21206 int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm);
21207 
21208 void X509_STORE_set_verify_cb(X509_STORE *ctx,
21209                               int (*verify_cb) (int, X509_STORE_CTX *));
21210 
21211 void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx,
21212                                    struct stack_st_X509_CRL *(*cb) (X509_STORE_CTX
21213                                                               *ctx,
21214                                                               X509_NAME *nm));
21215 
21216 X509_STORE_CTX *X509_STORE_CTX_new(void);
21217 
21218 int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);
21219 
21220 void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
21221 int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
21222                         X509 *x509, struct stack_st_X509 *chain);
21223 void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, struct stack_st_X509 *sk);
21224 void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
21225 
21226 X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
21227 
21228 X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);
21229 
21230 X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
21231 X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
21232 
21233 int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
21234 int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);
21235 
21236 int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name,
21237                               X509_OBJECT *ret);
21238 
21239 int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
21240                      long argl, char **ret);
21241 
21242 
21243 int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type);
21244 int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type);
21245 int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type);
21246 
21247 
21248 X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method);
21249 void X509_LOOKUP_free(X509_LOOKUP *ctx);
21250 int X509_LOOKUP_init(X509_LOOKUP *ctx);
21251 int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name,
21252                            X509_OBJECT *ret);
21253 int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name,
21254                                  ASN1_INTEGER *serial, X509_OBJECT *ret);
21255 int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type,
21256                                unsigned char *bytes, int len,
21257                                X509_OBJECT *ret);
21258 int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len,
21259                          X509_OBJECT *ret);
21260 int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);
21261 
21262 
21263 int X509_STORE_load_locations(X509_STORE *ctx,
21264                               const char *file, const char *dir);
21265 int X509_STORE_set_default_paths(X509_STORE *ctx);
21266 
21267 
21268 int X509_STORE_CTX_get_ex_new_index(long argl, void *argp,
21269                                     CRYPTO_EX_new *new_func,
21270                                     CRYPTO_EX_dup *dup_func,
21271                                     CRYPTO_EX_free *free_func);
21272 int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data);
21273 void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
21274 int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
21275 void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s);
21276 int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
21277 X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
21278 X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx);
21279 X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx);
21280 X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx);
21281 struct stack_st_X509 *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
21282 struct stack_st_X509 *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx);
21283 void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x);
21284 void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, struct stack_st_X509 *sk);
21285 void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, struct stack_st_X509_CRL *sk);
21286 int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
21287 int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
21288 int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
21289                                    int purpose, int trust);
21290 void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags);
21291 void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
21292                              time_t t);
21293 void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
21294                                   int (*verify_cb) (int, X509_STORE_CTX *));
21295 
21296 X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx);
21297 int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);
21298 
21299 X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx);
21300 void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param);
21301 int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name);
21302 
21303 /* X509_VERIFY_PARAM functions */
21304 
21305 X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
21306 void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
21307 int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
21308                               const X509_VERIFY_PARAM *from);
21309 int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
21310                            const X509_VERIFY_PARAM *from);
21311 int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name);
21312 int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param,
21313                                 unsigned long flags);
21314 int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
21315                                   unsigned long flags);
21316 unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param);
21317 int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose);
21318 int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust);
21319 void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth);
21320 void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t);
21321 int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
21322                                   ASN1_OBJECT *policy);
21323 int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param,
21324                                     struct stack_st_ASN1_OBJECT *policies);
21325 
21326 int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,
21327                                 const char *name, size_t namelen);
21328 int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,
21329                                 const char *name, size_t namelen);
21330 void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
21331                                      unsigned int flags);
21332 char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *);
21333 int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,
21334                                  const char *email, size_t emaillen);
21335 int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,
21336                               const unsigned char *ip, size_t iplen);
21337 int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param,
21338                                   const char *ipasc);
21339 
21340 int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
21341 const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param);
21342 
21343 int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
21344 int X509_VERIFY_PARAM_get_count(void);
21345 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
21346 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name);
21347 void X509_VERIFY_PARAM_table_cleanup(void);
21348 
21349 int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
21350                       struct stack_st_X509 *certs,
21351                       struct stack_st_ASN1_OBJECT *policy_oids, unsigned int flags);
21352 
21353 void X509_policy_tree_free(X509_POLICY_TREE *tree);
21354 
21355 int X509_policy_tree_level_count(const X509_POLICY_TREE *tree);
21356 X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree,
21357                                                int i);
21358 
21359 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_policies(const
21360                                                            X509_POLICY_TREE
21361                                                            *tree);
21362 
21363 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_user_policies(const
21364                                                                 X509_POLICY_TREE
21365                                                                 *tree);
21366 
21367 int X509_policy_level_node_count(X509_POLICY_LEVEL *level);
21368 
21369 X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level,
21370                                               int i);
21371 
21372 const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node);
21373 
21374 struct stack_st_POLICYQUALINFO *X509_policy_node_get0_qualifiers(const
21375                                                            X509_POLICY_NODE
21376                                                            *node);
21377 const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE
21378                                                      *node);
21379 # 582 "/usr/include/openssl/x509.h" 2 3 4
21380 # 1 "/usr/include/openssl/pkcs7.h" 1 3 4
21381 /* crypto/pkcs7/pkcs7.h */
21382 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
21383  * All rights reserved.
21384  *
21385  * This package is an SSL implementation written
21386  * by Eric Young (eay@cryptsoft.com).
21387  * The implementation was written so as to conform with Netscapes SSL.
21388  *
21389  * This library is free for commercial and non-commercial use as long as
21390  * the following conditions are aheared to.  The following conditions
21391  * apply to all code found in this distribution, be it the RC4, RSA,
21392  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
21393  * included with this distribution is covered by the same copyright terms
21394  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
21395  *
21396  * Copyright remains Eric Young's, and as such any Copyright notices in
21397  * the code are not to be removed.
21398  * If this package is used in a product, Eric Young should be given attribution
21399  * as the author of the parts of the library used.
21400  * This can be in the form of a textual message at program startup or
21401  * in documentation (online or textual) provided with the package.
21402  *
21403  * Redistribution and use in source and binary forms, with or without
21404  * modification, are permitted provided that the following conditions
21405  * are met:
21406  * 1. Redistributions of source code must retain the copyright
21407  *    notice, this list of conditions and the following disclaimer.
21408  * 2. Redistributions in binary form must reproduce the above copyright
21409  *    notice, this list of conditions and the following disclaimer in the
21410  *    documentation and/or other materials provided with the distribution.
21411  * 3. All advertising materials mentioning features or use of this software
21412  *    must display the following acknowledgement:
21413  *    "This product includes cryptographic software written by
21414  *     Eric Young (eay@cryptsoft.com)"
21415  *    The word 'cryptographic' can be left out if the rouines from the library
21416  *    being used are not cryptographic related :-).
21417  * 4. If you include any Windows specific code (or a derivative thereof) from
21418  *    the apps directory (application code) you must include an acknowledgement:
21419  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
21420  *
21421  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
21422  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21423  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21424  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21425  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21426  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21427  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21428  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21429  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21430  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21431  * SUCH DAMAGE.
21432  *
21433  * The licence and distribution terms for any publically available version or
21434  * derivative of this code cannot be changed.  i.e. this code cannot simply be
21435  * copied and put under another distribution licence
21436  * [including the GNU Public Licence.]
21437  */
21438 
21439 
21440 
21441 
21442 # 1 "/usr/include/openssl/asn1.h" 1 3 4
21443 /* crypto/asn1/asn1.h */
21444 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
21445  * All rights reserved.
21446  *
21447  * This package is an SSL implementation written
21448  * by Eric Young (eay@cryptsoft.com).
21449  * The implementation was written so as to conform with Netscapes SSL.
21450  *
21451  * This library is free for commercial and non-commercial use as long as
21452  * the following conditions are aheared to.  The following conditions
21453  * apply to all code found in this distribution, be it the RC4, RSA,
21454  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
21455  * included with this distribution is covered by the same copyright terms
21456  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
21457  *
21458  * Copyright remains Eric Young's, and as such any Copyright notices in
21459  * the code are not to be removed.
21460  * If this package is used in a product, Eric Young should be given attribution
21461  * as the author of the parts of the library used.
21462  * This can be in the form of a textual message at program startup or
21463  * in documentation (online or textual) provided with the package.
21464  *
21465  * Redistribution and use in source and binary forms, with or without
21466  * modification, are permitted provided that the following conditions
21467  * are met:
21468  * 1. Redistributions of source code must retain the copyright
21469  *    notice, this list of conditions and the following disclaimer.
21470  * 2. Redistributions in binary form must reproduce the above copyright
21471  *    notice, this list of conditions and the following disclaimer in the
21472  *    documentation and/or other materials provided with the distribution.
21473  * 3. All advertising materials mentioning features or use of this software
21474  *    must display the following acknowledgement:
21475  *    "This product includes cryptographic software written by
21476  *     Eric Young (eay@cryptsoft.com)"
21477  *    The word 'cryptographic' can be left out if the rouines from the library
21478  *    being used are not cryptographic related :-).
21479  * 4. If you include any Windows specific code (or a derivative thereof) from
21480  *    the apps directory (application code) you must include an acknowledgement:
21481  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
21482  *
21483  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
21484  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21485  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21486  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21487  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21488  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21489  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21490  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21491  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21492  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21493  * SUCH DAMAGE.
21494  *
21495  * The licence and distribution terms for any publically available version or
21496  * derivative of this code cannot be changed.  i.e. this code cannot simply be
21497  * copied and put under another distribution licence
21498  * [including the GNU Public Licence.]
21499  */
21500 # 63 "/usr/include/openssl/pkcs7.h" 2 3 4
21501 # 1 "/usr/include/openssl/bio.h" 1 3 4
21502 /* crypto/bio/bio.h */
21503 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
21504  * All rights reserved.
21505  *
21506  * This package is an SSL implementation written
21507  * by Eric Young (eay@cryptsoft.com).
21508  * The implementation was written so as to conform with Netscapes SSL.
21509  *
21510  * This library is free for commercial and non-commercial use as long as
21511  * the following conditions are aheared to.  The following conditions
21512  * apply to all code found in this distribution, be it the RC4, RSA,
21513  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
21514  * included with this distribution is covered by the same copyright terms
21515  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
21516  *
21517  * Copyright remains Eric Young's, and as such any Copyright notices in
21518  * the code are not to be removed.
21519  * If this package is used in a product, Eric Young should be given attribution
21520  * as the author of the parts of the library used.
21521  * This can be in the form of a textual message at program startup or
21522  * in documentation (online or textual) provided with the package.
21523  *
21524  * Redistribution and use in source and binary forms, with or without
21525  * modification, are permitted provided that the following conditions
21526  * are met:
21527  * 1. Redistributions of source code must retain the copyright
21528  *    notice, this list of conditions and the following disclaimer.
21529  * 2. Redistributions in binary form must reproduce the above copyright
21530  *    notice, this list of conditions and the following disclaimer in the
21531  *    documentation and/or other materials provided with the distribution.
21532  * 3. All advertising materials mentioning features or use of this software
21533  *    must display the following acknowledgement:
21534  *    "This product includes cryptographic software written by
21535  *     Eric Young (eay@cryptsoft.com)"
21536  *    The word 'cryptographic' can be left out if the rouines from the library
21537  *    being used are not cryptographic related :-).
21538  * 4. If you include any Windows specific code (or a derivative thereof) from
21539  *    the apps directory (application code) you must include an acknowledgement:
21540  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
21541  *
21542  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
21543  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21544  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21545  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21546  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21547  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21548  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21549  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21550  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21551  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21552  * SUCH DAMAGE.
21553  *
21554  * The licence and distribution terms for any publically available version or
21555  * derivative of this code cannot be changed.  i.e. this code cannot simply be
21556  * copied and put under another distribution licence
21557  * [including the GNU Public Licence.]
21558  */
21559 # 64 "/usr/include/openssl/pkcs7.h" 2 3 4
21560 # 1 "/usr/include/openssl/e_os2.h" 1 3 4
21561 /* e_os2.h */
21562 /* ====================================================================
21563  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
21564  *
21565  * Redistribution and use in source and binary forms, with or without
21566  * modification, are permitted provided that the following conditions
21567  * are met:
21568  *
21569  * 1. Redistributions of source code must retain the above copyright
21570  *    notice, this list of conditions and the following disclaimer.
21571  *
21572  * 2. Redistributions in binary form must reproduce the above copyright
21573  *    notice, this list of conditions and the following disclaimer in
21574  *    the documentation and/or other materials provided with the
21575  *    distribution.
21576  *
21577  * 3. All advertising materials mentioning features or use of this
21578  *    software must display the following acknowledgment:
21579  *    "This product includes software developed by the OpenSSL Project
21580  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21581  *
21582  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
21583  *    endorse or promote products derived from this software without
21584  *    prior written permission. For written permission, please contact
21585  *    openssl-core@openssl.org.
21586  *
21587  * 5. Products derived from this software may not be called "OpenSSL"
21588  *    nor may "OpenSSL" appear in their names without prior written
21589  *    permission of the OpenSSL Project.
21590  *
21591  * 6. Redistributions of any form whatsoever must retain the following
21592  *    acknowledgment:
21593  *    "This product includes software developed by the OpenSSL Project
21594  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
21595  *
21596  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
21597  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21598  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21599  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
21600  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21601  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21602  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21603  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21604  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21605  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21606  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
21607  * OF THE POSSIBILITY OF SUCH DAMAGE.
21608  * ====================================================================
21609  *
21610  * This product includes cryptographic software written by Eric Young
21611  * (eay@cryptsoft.com).  This product includes software written by Tim
21612  * Hudson (tjh@cryptsoft.com).
21613  *
21614  */
21615 
21616 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4
21617 /* opensslconf.h */
21618 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */
21619 
21620 
21621 
21622 
21623 /* OpenSSL was configured with the following options: */
21624 # 108 "/usr/include/openssl/opensslconf.h" 3 4
21625 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
21626    asks for it.  This is a transient feature that is provided for those
21627    who haven't had the time to do the appropriate changes in their
21628    applications.  */
21629 # 204 "/usr/include/openssl/opensslconf.h" 3 4
21630 /* crypto/opensslconf.h.in */
21631 
21632 /* Generate 80386 code? */
21633 # 57 "/usr/include/openssl/e_os2.h" 2 3 4
21634 # 65 "/usr/include/openssl/pkcs7.h" 2 3 4
21635 
21636 # 1 "/usr/include/openssl/symhacks.h" 1 3 4
21637 /* ====================================================================
21638  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
21639  *
21640  * Redistribution and use in source and binary forms, with or without
21641  * modification, are permitted provided that the following conditions
21642  * are met:
21643  *
21644  * 1. Redistributions of source code must retain the above copyright
21645  *    notice, this list of conditions and the following disclaimer.
21646  *
21647  * 2. Redistributions in binary form must reproduce the above copyright
21648  *    notice, this list of conditions and the following disclaimer in
21649  *    the documentation and/or other materials provided with the
21650  *    distribution.
21651  *
21652  * 3. All advertising materials mentioning features or use of this
21653  *    software must display the following acknowledgment:
21654  *    "This product includes software developed by the OpenSSL Project
21655  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21656  *
21657  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
21658  *    endorse or promote products derived from this software without
21659  *    prior written permission. For written permission, please contact
21660  *    openssl-core@openssl.org.
21661  *
21662  * 5. Products derived from this software may not be called "OpenSSL"
21663  *    nor may "OpenSSL" appear in their names without prior written
21664  *    permission of the OpenSSL Project.
21665  *
21666  * 6. Redistributions of any form whatsoever must retain the following
21667  *    acknowledgment:
21668  *    "This product includes software developed by the OpenSSL Project
21669  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
21670  *
21671  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
21672  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21673  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21674  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
21675  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21676  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21677  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21678  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21679  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21680  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21681  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
21682  * OF THE POSSIBILITY OF SUCH DAMAGE.
21683  * ====================================================================
21684  *
21685  * This product includes cryptographic software written by Eric Young
21686  * (eay@cryptsoft.com).  This product includes software written by Tim
21687  * Hudson (tjh@cryptsoft.com).
21688  *
21689  */
21690 # 67 "/usr/include/openssl/pkcs7.h" 2 3 4
21691 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4
21692 /* ====================================================================
21693  * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
21694  *
21695  * Redistribution and use in source and binary forms, with or without
21696  * modification, are permitted provided that the following conditions
21697  * are met:
21698  *
21699  * 1. Redistributions of source code must retain the above copyright
21700  *    notice, this list of conditions and the following disclaimer.
21701  *
21702  * 2. Redistributions in binary form must reproduce the above copyright
21703  *    notice, this list of conditions and the following disclaimer in
21704  *    the documentation and/or other materials provided with the
21705  *    distribution.
21706  *
21707  * 3. All advertising materials mentioning features or use of this
21708  *    software must display the following acknowledgment:
21709  *    "This product includes software developed by the OpenSSL Project
21710  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21711  *
21712  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
21713  *    endorse or promote products derived from this software without
21714  *    prior written permission. For written permission, please contact
21715  *    openssl-core@openssl.org.
21716  *
21717  * 5. Products derived from this software may not be called "OpenSSL"
21718  *    nor may "OpenSSL" appear in their names without prior written
21719  *    permission of the OpenSSL Project.
21720  *
21721  * 6. Redistributions of any form whatsoever must retain the following
21722  *    acknowledgment:
21723  *    "This product includes software developed by the OpenSSL Project
21724  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
21725  *
21726  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
21727  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21728  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21729  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
21730  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21731  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21732  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21733  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21734  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21735  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21736  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
21737  * OF THE POSSIBILITY OF SUCH DAMAGE.
21738  * ====================================================================
21739  *
21740  * This product includes cryptographic software written by Eric Young
21741  * (eay@cryptsoft.com).  This product includes software written by Tim
21742  * Hudson (tjh@cryptsoft.com).
21743  *
21744  */
21745 # 68 "/usr/include/openssl/pkcs7.h" 2 3 4
21746 # 79 "/usr/include/openssl/pkcs7.h" 3 4
21747 /*-
21748 Encryption_ID           DES-CBC
21749 Digest_ID               MD5
21750 Digest_Encryption_ID    rsaEncryption
21751 Key_Encryption_ID       rsaEncryption
21752 */
21753 
21754 typedef struct pkcs7_issuer_and_serial_st {
21755     X509_NAME *issuer;
21756     ASN1_INTEGER *serial;
21757 } PKCS7_ISSUER_AND_SERIAL;
21758 
21759 typedef struct pkcs7_signer_info_st {
21760     ASN1_INTEGER *version; /* version 1 */
21761     PKCS7_ISSUER_AND_SERIAL *issuer_and_serial;
21762     X509_ALGOR *digest_alg;
21763     struct stack_st_X509_ATTRIBUTE *auth_attr; /* [ 0 ] */
21764     X509_ALGOR *digest_enc_alg;
21765     ASN1_OCTET_STRING *enc_digest;
21766     struct stack_st_X509_ATTRIBUTE *unauth_attr; /* [ 1 ] */
21767     /* The private key to sign with */
21768     EVP_PKEY *pkey;
21769 } PKCS7_SIGNER_INFO;
21770 
21771 struct stack_st_PKCS7_SIGNER_INFO { _STACK stack; };
21772 
21773 
21774 typedef struct pkcs7_recip_info_st {
21775     ASN1_INTEGER *version; /* version 0 */
21776     PKCS7_ISSUER_AND_SERIAL *issuer_and_serial;
21777     X509_ALGOR *key_enc_algor;
21778     ASN1_OCTET_STRING *enc_key;
21779     X509 *cert; /* get the pub-key from this */
21780 } PKCS7_RECIP_INFO;
21781 
21782 struct stack_st_PKCS7_RECIP_INFO { _STACK stack; };
21783 
21784 
21785 typedef struct pkcs7_signed_st {
21786     ASN1_INTEGER *version; /* version 1 */
21787     struct stack_st_X509_ALGOR *md_algs; /* md used */
21788     struct stack_st_X509 *cert; /* [ 0 ] */
21789     struct stack_st_X509_CRL *crl; /* [ 1 ] */
21790     struct stack_st_PKCS7_SIGNER_INFO *signer_info;
21791     struct pkcs7_st *contents;
21792 } PKCS7_SIGNED;
21793 /*
21794  * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about
21795  * merging the two
21796  */
21797 
21798 typedef struct pkcs7_enc_content_st {
21799     ASN1_OBJECT *content_type;
21800     X509_ALGOR *algorithm;
21801     ASN1_OCTET_STRING *enc_data; /* [ 0 ] */
21802     const EVP_CIPHER *cipher;
21803 } PKCS7_ENC_CONTENT;
21804 
21805 typedef struct pkcs7_enveloped_st {
21806     ASN1_INTEGER *version; /* version 0 */
21807     struct stack_st_PKCS7_RECIP_INFO *recipientinfo;
21808     PKCS7_ENC_CONTENT *enc_data;
21809 } PKCS7_ENVELOPE;
21810 
21811 typedef struct pkcs7_signedandenveloped_st {
21812     ASN1_INTEGER *version; /* version 1 */
21813     struct stack_st_X509_ALGOR *md_algs; /* md used */
21814     struct stack_st_X509 *cert; /* [ 0 ] */
21815     struct stack_st_X509_CRL *crl; /* [ 1 ] */
21816     struct stack_st_PKCS7_SIGNER_INFO *signer_info;
21817     PKCS7_ENC_CONTENT *enc_data;
21818     struct stack_st_PKCS7_RECIP_INFO *recipientinfo;
21819 } PKCS7_SIGN_ENVELOPE;
21820 
21821 typedef struct pkcs7_digest_st {
21822     ASN1_INTEGER *version; /* version 0 */
21823     X509_ALGOR *md; /* md used */
21824     struct pkcs7_st *contents;
21825     ASN1_OCTET_STRING *digest;
21826 } PKCS7_DIGEST;
21827 
21828 typedef struct pkcs7_encrypted_st {
21829     ASN1_INTEGER *version; /* version 0 */
21830     PKCS7_ENC_CONTENT *enc_data;
21831 } PKCS7_ENCRYPT;
21832 
21833 typedef struct pkcs7_st {
21834     /*
21835      * The following is non NULL if it contains ASN1 encoding of this
21836      * structure
21837      */
21838     unsigned char *asn1;
21839     long length;
21840 
21841 
21842 
21843     int state; /* used during processing */
21844     int detached;
21845     ASN1_OBJECT *type;
21846     /* content as defined by the type */
21847     /*
21848      * all encryption/message digests are applied to the 'contents', leaving
21849      * out the 'type' field.
21850      */
21851     union {
21852         char *ptr;
21853         /* NID_pkcs7_data */
21854         ASN1_OCTET_STRING *data;
21855         /* NID_pkcs7_signed */
21856         PKCS7_SIGNED *sign;
21857         /* NID_pkcs7_enveloped */
21858         PKCS7_ENVELOPE *enveloped;
21859         /* NID_pkcs7_signedAndEnveloped */
21860         PKCS7_SIGN_ENVELOPE *signed_and_enveloped;
21861         /* NID_pkcs7_digest */
21862         PKCS7_DIGEST *digest;
21863         /* NID_pkcs7_encrypted */
21864         PKCS7_ENCRYPT *encrypted;
21865         /* Anything else */
21866         ASN1_TYPE *other;
21867     } d;
21868 } PKCS7;
21869 
21870 struct stack_st_PKCS7 { _STACK stack; };
21871 
21872 
21873 # 227 "/usr/include/openssl/pkcs7.h" 3 4
21874 /* S/MIME related flags */
21875 # 246 "/usr/include/openssl/pkcs7.h" 3 4
21876 /* Flags: for compatibility with older code */
21877 # 258 "/usr/include/openssl/pkcs7.h" 3 4
21878 PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void); void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a); PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len); int i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ISSUER_AND_SERIAL_it;
21879 
21880 int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,
21881                                    const EVP_MD *type, unsigned char *md,
21882                                    unsigned int *len);
21883 
21884 PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7);
21885 int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7);
21886 
21887 PKCS7 *PKCS7_dup(PKCS7 *p7);
21888 PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7);
21889 int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7);
21890 int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
21891 int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
21892 
21893 PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void); void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a); PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGNER_INFO_it;
21894 PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void); void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a); PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS7_RECIP_INFO_it;
21895 PKCS7_SIGNED *PKCS7_SIGNED_new(void); void PKCS7_SIGNED_free(PKCS7_SIGNED *a); PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGNED_it;
21896 PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void); void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a); PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len); int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENC_CONTENT_it;
21897 PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void); void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a); PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENVELOPE_it;
21898 PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void); void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a); PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGN_ENVELOPE_it;
21899 PKCS7_DIGEST *PKCS7_DIGEST_new(void); void PKCS7_DIGEST_free(PKCS7_DIGEST *a); PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len); int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out); extern const ASN1_ITEM PKCS7_DIGEST_it;
21900 PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void); void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a); PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len); int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENCRYPT_it;
21901 PKCS7 *PKCS7_new(void); void PKCS7_free(PKCS7 *a); PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len); int i2d_PKCS7(PKCS7 *a, unsigned char **out); extern const ASN1_ITEM PKCS7_it;
21902 
21903 extern const ASN1_ITEM PKCS7_ATTR_SIGN_it;
21904 extern const ASN1_ITEM PKCS7_ATTR_VERIFY_it;
21905 
21906 int i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out);
21907 int PKCS7_print_ctx(BIO *out, PKCS7 *x, int indent, const ASN1_PCTX *pctx);
21908 
21909 long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg);
21910 
21911 int PKCS7_set_type(PKCS7 *p7, int type);
21912 int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other);
21913 int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data);
21914 int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
21915                           const EVP_MD *dgst);
21916 int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si);
21917 int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i);
21918 int PKCS7_add_certificate(PKCS7 *p7, X509 *x509);
21919 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509);
21920 int PKCS7_content_new(PKCS7 *p7, int nid);
21921 int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx,
21922                      BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si);
21923 int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,
21924                           X509 *x509);
21925 
21926 BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio);
21927 int PKCS7_dataFinal(PKCS7 *p7, BIO *bio);
21928 BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert);
21929 
21930 PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509,
21931                                        EVP_PKEY *pkey, const EVP_MD *dgst);
21932 X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si);
21933 int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md);
21934 struct stack_st_PKCS7_SIGNER_INFO *PKCS7_get_signer_info(PKCS7 *p7);
21935 
21936 PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509);
21937 void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk,
21938                                  X509_ALGOR **pdig, X509_ALGOR **psig);
21939 void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc);
21940 int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri);
21941 int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509);
21942 int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher);
21943 int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7);
21944 
21945 PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx);
21946 ASN1_OCTET_STRING *PKCS7_digest_from_attributes(struct stack_st_X509_ATTRIBUTE *sk);
21947 int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type,
21948                                void *data);
21949 int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,
21950                         void *value);
21951 ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid);
21952 ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid);
21953 int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si,
21954                                 struct stack_st_X509_ATTRIBUTE *sk);
21955 int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,
21956                          struct stack_st_X509_ATTRIBUTE *sk);
21957 
21958 PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs,
21959                   BIO *data, int flags);
21960 
21961 PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7,
21962                                          X509 *signcert, EVP_PKEY *pkey,
21963                                          const EVP_MD *md, int flags);
21964 
21965 int PKCS7_final(PKCS7 *p7, BIO *data, int flags);
21966 int PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store,
21967                  BIO *indata, BIO *out, int flags);
21968 struct stack_st_X509 *PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs,
21969                                    int flags);
21970 PKCS7 *PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher,
21971                      int flags);
21972 int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data,
21973                   int flags);
21974 
21975 int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si,
21976                               struct stack_st_X509_ALGOR *cap);
21977 struct stack_st_X509_ALGOR *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si);
21978 int PKCS7_simple_smimecap(struct stack_st_X509_ALGOR *sk, int nid, int arg);
21979 
21980 int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid);
21981 int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t);
21982 int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si,
21983                              const unsigned char *md, int mdlen);
21984 
21985 int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags);
21986 PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont);
21987 
21988 BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7);
21989 
21990 /* BEGIN ERROR CODES */
21991 /*
21992  * The following lines are auto generated by the script mkerr.pl. Any changes
21993  * made after this point may be overwritten when the script is next run.
21994  */
21995 void ERR_load_PKCS7_strings(void);
21996 
21997 /* Error codes for the PKCS7 functions. */
21998 
21999 /* Function codes. */
22000 # 421 "/usr/include/openssl/pkcs7.h" 3 4
22001 /* Reason codes. */
22002 # 583 "/usr/include/openssl/x509.h" 2 3 4
22003 # 592 "/usr/include/openssl/x509.h" 3 4
22004 /* #define      X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */
22005 # 608 "/usr/include/openssl/x509.h" 3 4
22006 void X509_CRL_set_default_method(const X509_CRL_METHOD *meth);
22007 X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl),
22008                                      int (*crl_free) (X509_CRL *crl),
22009                                      int (*crl_lookup) (X509_CRL *crl,
22010                                                         X509_REVOKED **ret,
22011                                                         ASN1_INTEGER *ser,
22012                                                         X509_NAME *issuer),
22013                                      int (*crl_verify) (X509_CRL *crl,
22014                                                         EVP_PKEY *pk));
22015 void X509_CRL_METHOD_free(X509_CRL_METHOD *m);
22016 
22017 void X509_CRL_set_meth_data(X509_CRL *crl, void *dat);
22018 void *X509_CRL_get_meth_data(X509_CRL *crl);
22019 
22020 /*
22021  * This one is only used so that a binary form can output, as in
22022  * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf)
22023  */
22024 
22025 
22026 const char *X509_verify_cert_error_string(long n);
22027 
22028 
22029 int X509_verify(X509 *a, EVP_PKEY *r);
22030 
22031 int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r);
22032 int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r);
22033 int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r);
22034 
22035 NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len);
22036 char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x);
22037 EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x);
22038 int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey);
22039 
22040 int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki);
22041 
22042 int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent);
22043 int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig);
22044 
22045 int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md);
22046 int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx);
22047 int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert);
22048 int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md);
22049 int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx);
22050 int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md);
22051 int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx);
22052 int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl);
22053 int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md);
22054 
22055 int X509_pubkey_digest(const X509 *data, const EVP_MD *type,
22056                        unsigned char *md, unsigned int *len);
22057 int X509_digest(const X509 *data, const EVP_MD *type,
22058                 unsigned char *md, unsigned int *len);
22059 int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type,
22060                     unsigned char *md, unsigned int *len);
22061 int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type,
22062                     unsigned char *md, unsigned int *len);
22063 int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,
22064                      unsigned char *md, unsigned int *len);
22065 
22066 
22067 
22068 X509 *d2i_X509_fp(FILE *fp, X509 **x509);
22069 int i2d_X509_fp(FILE *fp, X509 *x509);
22070 X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl);
22071 int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl);
22072 X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req);
22073 int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req);
22074 
22075 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa);
22076 int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa);
22077 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa);
22078 int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa);
22079 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa);
22080 int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa);
22081 
22082 
22083 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
22084 int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
22085 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa);
22086 int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa);
22087 
22088 
22089 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey);
22090 int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey);
22091 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey);
22092 int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey);
22093 
22094 X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8);
22095 int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8);
22096 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,
22097                                                 PKCS8_PRIV_KEY_INFO **p8inf);
22098 int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf);
22099 int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key);
22100 int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey);
22101 EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a);
22102 int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey);
22103 EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a);
22104 
22105 
22106 
22107 X509 *d2i_X509_bio(BIO *bp, X509 **x509);
22108 int i2d_X509_bio(BIO *bp, X509 *x509);
22109 X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl);
22110 int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl);
22111 X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req);
22112 int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req);
22113 
22114 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa);
22115 int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa);
22116 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa);
22117 int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa);
22118 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa);
22119 int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa);
22120 
22121 
22122 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa);
22123 int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
22124 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa);
22125 int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa);
22126 
22127 
22128 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey);
22129 int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey);
22130 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey);
22131 int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey);
22132 
22133 X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8);
22134 int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8);
22135 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,
22136                                                  PKCS8_PRIV_KEY_INFO **p8inf);
22137 int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf);
22138 int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key);
22139 int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey);
22140 EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a);
22141 int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey);
22142 EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a);
22143 
22144 
22145 X509 *X509_dup(X509 *x509);
22146 X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa);
22147 X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex);
22148 X509_CRL *X509_CRL_dup(X509_CRL *crl);
22149 X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev);
22150 X509_REQ *X509_REQ_dup(X509_REQ *req);
22151 X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn);
22152 int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype,
22153                     void *pval);
22154 void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval,
22155                      X509_ALGOR *algor);
22156 void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
22157 int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);
22158 
22159 X509_NAME *X509_NAME_dup(X509_NAME *xn);
22160 X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne);
22161 
22162 int X509_cmp_time(const ASN1_TIME *s, time_t *t);
22163 int X509_cmp_current_time(const ASN1_TIME *s);
22164 ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t);
22165 ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s,
22166                             int offset_day, long offset_sec, time_t *t);
22167 ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj);
22168 
22169 const char *X509_get_default_cert_area(void);
22170 const char *X509_get_default_cert_dir(void);
22171 const char *X509_get_default_cert_file(void);
22172 const char *X509_get_default_cert_dir_env(void);
22173 const char *X509_get_default_cert_file_env(void);
22174 const char *X509_get_default_private_dir(void);
22175 
22176 X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md);
22177 X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey);
22178 
22179 X509_ALGOR *X509_ALGOR_new(void); void X509_ALGOR_free(X509_ALGOR *a); X509_ALGOR *d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len); int i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **out); extern const ASN1_ITEM X509_ALGOR_it;
22180 X509_ALGORS *d2i_X509_ALGORS(X509_ALGORS **a, const unsigned char **in, long len); int i2d_X509_ALGORS(X509_ALGORS *a, unsigned char **out); extern const ASN1_ITEM X509_ALGORS_it;
22181 X509_VAL *X509_VAL_new(void); void X509_VAL_free(X509_VAL *a); X509_VAL *d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len); int i2d_X509_VAL(X509_VAL *a, unsigned char **out); extern const ASN1_ITEM X509_VAL_it;
22182 
22183 X509_PUBKEY *X509_PUBKEY_new(void); void X509_PUBKEY_free(X509_PUBKEY *a); X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len); int i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out); extern const ASN1_ITEM X509_PUBKEY_it;
22184 
22185 int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
22186 EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key);
22187 int X509_get_pubkey_parameters(EVP_PKEY *pkey, struct stack_st_X509 *chain);
22188 int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp);
22189 EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length);
22190 
22191 int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp);
22192 RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length);
22193 
22194 
22195 int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp);
22196 DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length);
22197 
22198 
22199 int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp);
22200 EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length);
22201 
22202 
22203 X509_SIG *X509_SIG_new(void); void X509_SIG_free(X509_SIG *a); X509_SIG *d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len); int i2d_X509_SIG(X509_SIG *a, unsigned char **out); extern const ASN1_ITEM X509_SIG_it;
22204 X509_REQ_INFO *X509_REQ_INFO_new(void); void X509_REQ_INFO_free(X509_REQ_INFO *a); X509_REQ_INFO *d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len); int i2d_X509_REQ_INFO(X509_REQ_INFO *a, unsigned char **out); extern const ASN1_ITEM X509_REQ_INFO_it;
22205 X509_REQ *X509_REQ_new(void); void X509_REQ_free(X509_REQ *a); X509_REQ *d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len); int i2d_X509_REQ(X509_REQ *a, unsigned char **out); extern const ASN1_ITEM X509_REQ_it;
22206 
22207 X509_ATTRIBUTE *X509_ATTRIBUTE_new(void); void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len); int i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a, unsigned char **out); extern const ASN1_ITEM X509_ATTRIBUTE_it;
22208 X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value);
22209 
22210 X509_EXTENSION *X509_EXTENSION_new(void); void X509_EXTENSION_free(X509_EXTENSION *a); X509_EXTENSION *d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len); int i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **out); extern const ASN1_ITEM X509_EXTENSION_it;
22211 X509_EXTENSIONS *d2i_X509_EXTENSIONS(X509_EXTENSIONS **a, const unsigned char **in, long len); int i2d_X509_EXTENSIONS(X509_EXTENSIONS *a, unsigned char **out); extern const ASN1_ITEM X509_EXTENSIONS_it;
22212 
22213 X509_NAME_ENTRY *X509_NAME_ENTRY_new(void); void X509_NAME_ENTRY_free(X509_NAME_ENTRY *a); X509_NAME_ENTRY *d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len); int i2d_X509_NAME_ENTRY(X509_NAME_ENTRY *a, unsigned char **out); extern const ASN1_ITEM X509_NAME_ENTRY_it;
22214 
22215 X509_NAME *X509_NAME_new(void); void X509_NAME_free(X509_NAME *a); X509_NAME *d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len); int i2d_X509_NAME(X509_NAME *a, unsigned char **out); extern const ASN1_ITEM X509_NAME_it;
22216 
22217 int X509_NAME_set(X509_NAME **xn, X509_NAME *name);
22218 
22219 X509_CINF *X509_CINF_new(void); void X509_CINF_free(X509_CINF *a); X509_CINF *d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len); int i2d_X509_CINF(X509_CINF *a, unsigned char **out); extern const ASN1_ITEM X509_CINF_it;
22220 
22221 X509 *X509_new(void); void X509_free(X509 *a); X509 *d2i_X509(X509 **a, const unsigned char **in, long len); int i2d_X509(X509 *a, unsigned char **out); extern const ASN1_ITEM X509_it;
22222 X509_CERT_AUX *X509_CERT_AUX_new(void); void X509_CERT_AUX_free(X509_CERT_AUX *a); X509_CERT_AUX *d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len); int i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **out); extern const ASN1_ITEM X509_CERT_AUX_it;
22223 
22224 X509_CERT_PAIR *X509_CERT_PAIR_new(void); void X509_CERT_PAIR_free(X509_CERT_PAIR *a); X509_CERT_PAIR *d2i_X509_CERT_PAIR(X509_CERT_PAIR **a, const unsigned char **in, long len); int i2d_X509_CERT_PAIR(X509_CERT_PAIR *a, unsigned char **out); extern const ASN1_ITEM X509_CERT_PAIR_it;
22225 
22226 int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
22227                           CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
22228 int X509_set_ex_data(X509 *r, int idx, void *arg);
22229 void *X509_get_ex_data(X509 *r, int idx);
22230 int i2d_X509_AUX(X509 *a, unsigned char **pp);
22231 X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length);
22232 
22233 int i2d_re_X509_tbs(X509 *x, unsigned char **pp);
22234 
22235 void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg,
22236                          const X509 *x);
22237 int X509_get_signature_nid(const X509 *x);
22238 
22239 int X509_alias_set1(X509 *x, unsigned char *name, int len);
22240 int X509_keyid_set1(X509 *x, unsigned char *id, int len);
22241 unsigned char *X509_alias_get0(X509 *x, int *len);
22242 unsigned char *X509_keyid_get0(X509 *x, int *len);
22243 int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *,
22244                                                                 int);
22245 int X509_TRUST_set(int *t, int trust);
22246 int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
22247 int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj);
22248 void X509_trust_clear(X509 *x);
22249 void X509_reject_clear(X509 *x);
22250 
22251 X509_REVOKED *X509_REVOKED_new(void); void X509_REVOKED_free(X509_REVOKED *a); X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len); int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out); extern const ASN1_ITEM X509_REVOKED_it;
22252 X509_CRL_INFO *X509_CRL_INFO_new(void); void X509_CRL_INFO_free(X509_CRL_INFO *a); X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len); int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out); extern const ASN1_ITEM X509_CRL_INFO_it;
22253 X509_CRL *X509_CRL_new(void); void X509_CRL_free(X509_CRL *a); X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len); int i2d_X509_CRL(X509_CRL *a, unsigned char **out); extern const ASN1_ITEM X509_CRL_it;
22254 
22255 int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
22256 int X509_CRL_get0_by_serial(X509_CRL *crl,
22257                             X509_REVOKED **ret, ASN1_INTEGER *serial);
22258 int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x);
22259 
22260 X509_PKEY *X509_PKEY_new(void);
22261 void X509_PKEY_free(X509_PKEY *a);
22262 int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp);
22263 X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp,
22264                          long length);
22265 
22266 NETSCAPE_SPKI *NETSCAPE_SPKI_new(void); void NETSCAPE_SPKI_free(NETSCAPE_SPKI *a); NETSCAPE_SPKI *d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKI(NETSCAPE_SPKI *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_SPKI_it;
22267 NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void); void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a); NETSCAPE_SPKAC *d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKAC(NETSCAPE_SPKAC *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_SPKAC_it;
22268 NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new(void); void NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a); NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len); int i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_CERT_SEQUENCE_it;
22269 
22270 
22271 X509_INFO *X509_INFO_new(void);
22272 void X509_INFO_free(X509_INFO *a);
22273 char *X509_NAME_oneline(X509_NAME *a, char *buf, int size);
22274 
22275 int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1,
22276                 ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey);
22277 
22278 int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
22279                 unsigned char *md, unsigned int *len);
22280 
22281 int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1,
22282               X509_ALGOR *algor2, ASN1_BIT_STRING *signature,
22283               char *data, EVP_PKEY *pkey, const EVP_MD *type);
22284 
22285 int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data,
22286                      unsigned char *md, unsigned int *len);
22287 
22288 int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1,
22289                      ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey);
22290 
22291 int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1,
22292                    X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data,
22293                    EVP_PKEY *pkey, const EVP_MD *type);
22294 int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1,
22295                        X509_ALGOR *algor2, ASN1_BIT_STRING *signature,
22296                        void *asn, EVP_MD_CTX *ctx);
22297 
22298 
22299 int X509_set_version(X509 *x, long version);
22300 int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial);
22301 ASN1_INTEGER *X509_get_serialNumber(X509 *x);
22302 int X509_set_issuer_name(X509 *x, X509_NAME *name);
22303 X509_NAME *X509_get_issuer_name(X509 *a);
22304 int X509_set_subject_name(X509 *x, X509_NAME *name);
22305 X509_NAME *X509_get_subject_name(X509 *a);
22306 int X509_set_notBefore(X509 *x, const ASN1_TIME *tm);
22307 int X509_set_notAfter(X509 *x, const ASN1_TIME *tm);
22308 int X509_set_pubkey(X509 *x, EVP_PKEY *pkey);
22309 EVP_PKEY *X509_get_pubkey(X509 *x);
22310 ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x);
22311 int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ );
22312 
22313 int X509_REQ_set_version(X509_REQ *x, long version);
22314 int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);
22315 int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey);
22316 EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
22317 int X509_REQ_extension_nid(int nid);
22318 int *X509_REQ_get_extension_nids(void);
22319 void X509_REQ_set_extension_nids(int *nids);
22320 struct stack_st_X509_EXTENSION *X509_REQ_get_extensions(X509_REQ *req);
22321 int X509_REQ_add_extensions_nid(X509_REQ *req, struct stack_st_X509_EXTENSION *exts,
22322                                 int nid);
22323 int X509_REQ_add_extensions(X509_REQ *req, struct stack_st_X509_EXTENSION *exts);
22324 int X509_REQ_get_attr_count(const X509_REQ *req);
22325 int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos);
22326 int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj,
22327                              int lastpos);
22328 X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc);
22329 X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc);
22330 int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr);
22331 int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,
22332                               const ASN1_OBJECT *obj, int type,
22333                               const unsigned char *bytes, int len);
22334 int X509_REQ_add1_attr_by_NID(X509_REQ *req,
22335                               int nid, int type,
22336                               const unsigned char *bytes, int len);
22337 int X509_REQ_add1_attr_by_txt(X509_REQ *req,
22338                               const char *attrname, int type,
22339                               const unsigned char *bytes, int len);
22340 
22341 int X509_CRL_set_version(X509_CRL *x, long version);
22342 int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);
22343 int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm);
22344 int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);
22345 int X509_CRL_sort(X509_CRL *crl);
22346 
22347 int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial);
22348 int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm);
22349 
22350 X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer,
22351                         EVP_PKEY *skey, const EVP_MD *md, unsigned int flags);
22352 
22353 int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey);
22354 
22355 int X509_check_private_key(X509 *x509, EVP_PKEY *pkey);
22356 int X509_chain_check_suiteb(int *perror_depth,
22357                             X509 *x, struct stack_st_X509 *chain,
22358                             unsigned long flags);
22359 int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags);
22360 struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain);
22361 
22362 int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b);
22363 unsigned long X509_issuer_and_serial_hash(X509 *a);
22364 
22365 int X509_issuer_name_cmp(const X509 *a, const X509 *b);
22366 unsigned long X509_issuer_name_hash(X509 *a);
22367 
22368 int X509_subject_name_cmp(const X509 *a, const X509 *b);
22369 unsigned long X509_subject_name_hash(X509 *x);
22370 
22371 
22372 unsigned long X509_issuer_name_hash_old(X509 *a);
22373 unsigned long X509_subject_name_hash_old(X509 *x);
22374 
22375 
22376 int X509_cmp(const X509 *a, const X509 *b);
22377 int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b);
22378 unsigned long X509_NAME_hash(X509_NAME *x);
22379 unsigned long X509_NAME_hash_old(X509_NAME *x);
22380 
22381 int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
22382 int X509_CRL_match(const X509_CRL *a, const X509_CRL *b);
22383 
22384 int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
22385                      unsigned long cflag);
22386 int X509_print_fp(FILE *bp, X509 *x);
22387 int X509_CRL_print_fp(FILE *bp, X509_CRL *x);
22388 int X509_REQ_print_fp(FILE *bp, X509_REQ *req);
22389 int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent,
22390                           unsigned long flags);
22391 
22392 
22393 
22394 int X509_NAME_print(BIO *bp, X509_NAME *name, int obase);
22395 int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent,
22396                        unsigned long flags);
22397 int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag,
22398                   unsigned long cflag);
22399 int X509_print(BIO *bp, X509 *x);
22400 int X509_ocspid_print(BIO *bp, X509 *x);
22401 int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent);
22402 int X509_CRL_print(BIO *bp, X509_CRL *x);
22403 int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag,
22404                       unsigned long cflag);
22405 int X509_REQ_print(BIO *bp, X509_REQ *req);
22406 
22407 
22408 int X509_NAME_entry_count(X509_NAME *name);
22409 int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len);
22410 int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj,
22411                               char *buf, int len);
22412 
22413 /*
22414  * NOTE: you should be passsing -1, not 0 as lastpos.  The functions that use
22415  * lastpos, search after that position on.
22416  */
22417 int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos);
22418 int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj,
22419                                int lastpos);
22420 X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc);
22421 X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc);
22422 int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne,
22423                         int loc, int set);
22424 int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type,
22425                                unsigned char *bytes, int len, int loc,
22426                                int set);
22427 int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,
22428                                unsigned char *bytes, int len, int loc,
22429                                int set);
22430 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,
22431                                                const char *field, int type,
22432                                                const unsigned char *bytes,
22433                                                int len);
22434 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid,
22435                                                int type, unsigned char *bytes,
22436                                                int len);
22437 int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type,
22438                                const unsigned char *bytes, int len, int loc,
22439                                int set);
22440 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne,
22441                                                ASN1_OBJECT *obj, int type,
22442                                                const unsigned char *bytes,
22443                                                int len);
22444 int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj);
22445 int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
22446                              const unsigned char *bytes, int len);
22447 ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
22448 ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
22449 
22450 int X509v3_get_ext_count(const struct stack_st_X509_EXTENSION *x);
22451 int X509v3_get_ext_by_NID(const struct stack_st_X509_EXTENSION *x,
22452                           int nid, int lastpos);
22453 int X509v3_get_ext_by_OBJ(const struct stack_st_X509_EXTENSION *x,
22454                           ASN1_OBJECT *obj, int lastpos);
22455 int X509v3_get_ext_by_critical(const struct stack_st_X509_EXTENSION *x,
22456                                int crit, int lastpos);
22457 X509_EXTENSION *X509v3_get_ext(const struct stack_st_X509_EXTENSION *x, int loc);
22458 X509_EXTENSION *X509v3_delete_ext(struct stack_st_X509_EXTENSION *x, int loc);
22459 struct stack_st_X509_EXTENSION *X509v3_add_ext(struct stack_st_X509_EXTENSION **x,
22460                                          X509_EXTENSION *ex, int loc);
22461 
22462 int X509_get_ext_count(X509 *x);
22463 int X509_get_ext_by_NID(X509 *x, int nid, int lastpos);
22464 int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos);
22465 int X509_get_ext_by_critical(X509 *x, int crit, int lastpos);
22466 X509_EXTENSION *X509_get_ext(X509 *x, int loc);
22467 X509_EXTENSION *X509_delete_ext(X509 *x, int loc);
22468 int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
22469 void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx);
22470 int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,
22471                       unsigned long flags);
22472 
22473 int X509_CRL_get_ext_count(X509_CRL *x);
22474 int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos);
22475 int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos);
22476 int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos);
22477 X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc);
22478 X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc);
22479 int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc);
22480 void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx);
22481 int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit,
22482                           unsigned long flags);
22483 
22484 int X509_REVOKED_get_ext_count(X509_REVOKED *x);
22485 int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos);
22486 int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj,
22487                                 int lastpos);
22488 int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos);
22489 X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc);
22490 X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc);
22491 int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc);
22492 void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx);
22493 int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit,
22494                               unsigned long flags);
22495 
22496 X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex,
22497                                              int nid, int crit,
22498                                              ASN1_OCTET_STRING *data);
22499 X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex,
22500                                              ASN1_OBJECT *obj, int crit,
22501                                              ASN1_OCTET_STRING *data);
22502 int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj);
22503 int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit);
22504 int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data);
22505 ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex);
22506 ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne);
22507 int X509_EXTENSION_get_critical(X509_EXTENSION *ex);
22508 
22509 int X509at_get_attr_count(const struct stack_st_X509_ATTRIBUTE *x);
22510 int X509at_get_attr_by_NID(const struct stack_st_X509_ATTRIBUTE *x, int nid,
22511                            int lastpos);
22512 int X509at_get_attr_by_OBJ(const struct stack_st_X509_ATTRIBUTE *sk,
22513                            ASN1_OBJECT *obj, int lastpos);
22514 X509_ATTRIBUTE *X509at_get_attr(const struct stack_st_X509_ATTRIBUTE *x, int loc);
22515 X509_ATTRIBUTE *X509at_delete_attr(struct stack_st_X509_ATTRIBUTE *x, int loc);
22516 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr(struct stack_st_X509_ATTRIBUTE **x,
22517                                            X509_ATTRIBUTE *attr);
22518 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_OBJ(struct stack_st_X509_ATTRIBUTE
22519                                                   **x, const ASN1_OBJECT *obj,
22520                                                   int type,
22521                                                   const unsigned char *bytes,
22522                                                   int len);
22523 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_NID(struct stack_st_X509_ATTRIBUTE
22524                                                   **x, int nid, int type,
22525                                                   const unsigned char *bytes,
22526                                                   int len);
22527 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_txt(struct stack_st_X509_ATTRIBUTE
22528                                                   **x, const char *attrname,
22529                                                   int type,
22530                                                   const unsigned char *bytes,
22531                                                   int len);
22532 void *X509at_get0_data_by_OBJ(struct stack_st_X509_ATTRIBUTE *x, ASN1_OBJECT *obj,
22533                               int lastpos, int type);
22534 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid,
22535                                              int atrtype, const void *data,
22536                                              int len);
22537 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr,
22538                                              const ASN1_OBJECT *obj,
22539                                              int atrtype, const void *data,
22540                                              int len);
22541 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr,
22542                                              const char *atrname, int type,
22543                                              const unsigned char *bytes,
22544                                              int len);
22545 int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj);
22546 int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,
22547                              const void *data, int len);
22548 void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype,
22549                                void *data);
22550 int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr);
22551 ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr);
22552 ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx);
22553 
22554 int EVP_PKEY_get_attr_count(const EVP_PKEY *key);
22555 int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos);
22556 int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj,
22557                              int lastpos);
22558 X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc);
22559 X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc);
22560 int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr);
22561 int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key,
22562                               const ASN1_OBJECT *obj, int type,
22563                               const unsigned char *bytes, int len);
22564 int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key,
22565                               int nid, int type,
22566                               const unsigned char *bytes, int len);
22567 int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key,
22568                               const char *attrname, int type,
22569                               const unsigned char *bytes, int len);
22570 
22571 int X509_verify_cert(X509_STORE_CTX *ctx);
22572 
22573 /* lookup a cert from a X509 STACK */
22574 X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, X509_NAME *name,
22575                                      ASN1_INTEGER *serial);
22576 X509 *X509_find_by_subject(struct stack_st_X509 *sk, X509_NAME *name);
22577 
22578 PBEPARAM *PBEPARAM_new(void); void PBEPARAM_free(PBEPARAM *a); PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len); int i2d_PBEPARAM(PBEPARAM *a, unsigned char **out); extern const ASN1_ITEM PBEPARAM_it;
22579 PBE2PARAM *PBE2PARAM_new(void); void PBE2PARAM_free(PBE2PARAM *a); PBE2PARAM *d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len); int i2d_PBE2PARAM(PBE2PARAM *a, unsigned char **out); extern const ASN1_ITEM PBE2PARAM_it;
22580 PBKDF2PARAM *PBKDF2PARAM_new(void); void PBKDF2PARAM_free(PBKDF2PARAM *a); PBKDF2PARAM *d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len); int i2d_PBKDF2PARAM(PBKDF2PARAM *a, unsigned char **out); extern const ASN1_ITEM PBKDF2PARAM_it;
22581 
22582 int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter,
22583                          const unsigned char *salt, int saltlen);
22584 
22585 X509_ALGOR *PKCS5_pbe_set(int alg, int iter,
22586                           const unsigned char *salt, int saltlen);
22587 X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
22588                            unsigned char *salt, int saltlen);
22589 X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,
22590                               unsigned char *salt, int saltlen,
22591                               unsigned char *aiv, int prf_nid);
22592 
22593 X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,
22594                              int prf_nid, int keylen);
22595 
22596 /* PKCS#8 utilities */
22597 
22598 PKCS8_PRIV_KEY_INFO *PKCS8_PRIV_KEY_INFO_new(void); void PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a); PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len); int i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS8_PRIV_KEY_INFO_it;
22599 
22600 EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8);
22601 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey);
22602 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken);
22603 PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken);
22604 
22605 int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,
22606                     int version, int ptype, void *pval,
22607                     unsigned char *penc, int penclen);
22608 int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg,
22609                     const unsigned char **pk, int *ppklen,
22610                     X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8);
22611 
22612 int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj,
22613                            int ptype, void *pval,
22614                            unsigned char *penc, int penclen);
22615 int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg,
22616                            const unsigned char **pk, int *ppklen,
22617                            X509_ALGOR **pa, X509_PUBKEY *pub);
22618 
22619 int X509_check_trust(X509 *x, int id, int flags);
22620 int X509_TRUST_get_count(void);
22621 X509_TRUST *X509_TRUST_get0(int idx);
22622 int X509_TRUST_get_by_id(int id);
22623 int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int),
22624                    char *name, int arg1, void *arg2);
22625 void X509_TRUST_cleanup(void);
22626 int X509_TRUST_get_flags(X509_TRUST *xp);
22627 char *X509_TRUST_get0_name(X509_TRUST *xp);
22628 int X509_TRUST_get_trust(X509_TRUST *xp);
22629 
22630 /* BEGIN ERROR CODES */
22631 /*
22632  * The following lines are auto generated by the script mkerr.pl. Any changes
22633  * made after this point may be overwritten when the script is next run.
22634  */
22635 
22636 void ERR_load_X509_strings(void);
22637 
22638 /* Error codes for the X509 functions. */
22639 
22640 /* Function codes. */
22641 # 1291 "/usr/include/openssl/x509.h" 3 4
22642 /* Reason codes. */
22643 # 45 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
22644 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 1
22645 /*
22646  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
22647  *
22648  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22649  * Use is subject to license terms.
22650  */
22651 
22652 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
22653 /*	  All Rights Reserved  	*/
22654 
22655 /*
22656  * BIND 4.9.3:
22657  *
22658  * Copyright (c) 1980, 1983, 1988, 1993
22659  *	The Regents of the University of California.  All rights reserved.
22660  *
22661  * Redistribution and use in source and binary forms, with or without
22662  * modification, are permitted provided that the following conditions
22663  * are met:
22664  * 1. Redistributions of source code must retain the above copyright
22665  *    notice, this list of conditions and the following disclaimer.
22666  * 2. Redistributions in binary form must reproduce the above copyright
22667  *    notice, this list of conditions and the following disclaimer in the
22668  *    documentation and/or other materials provided with the distribution.
22669  * 3. All advertising materials mentioning features or use of this software
22670  *    must display the following acknowledgement:
22671  *	This product includes software developed by the University of
22672  *	California, Berkeley and its contributors.
22673  * 4. Neither the name of the University nor the names of its contributors
22674  *    may be used to endorse or promote products derived from this software
22675  *    without specific prior written permission.
22676  *
22677  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22678  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22679  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22680  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22681  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22682  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22683  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22684  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22685  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22686  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22687  * SUCH DAMAGE.
22688  * -
22689  * Portions Copyright (c) 1993 by Digital Equipment Corporation.
22690  *
22691  * Permission to use, copy, modify, and distribute this software for any
22692  * purpose with or without fee is hereby granted, provided that the above
22693  * copyright notice and this permission notice appear in all copies, and that
22694  * the name of Digital Equipment Corporation not be used in advertising or
22695  * publicity pertaining to distribution of the document or software without
22696  * specific, written prior permission.
22697  *
22698  * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
22699  * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
22700  * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
22701  * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
22702  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
22703  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
22704  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
22705  * SOFTWARE.
22706  * --Copyright--
22707  *
22708  * End BIND 4.9.3
22709  */
22710 
22711 /*
22712  * Structures returned by network data base library.
22713  * All addresses are supplied in host order, and
22714  * returned in network order (suitable for use in system calls).
22715  */
22716 
22717 
22718 
22719 
22720 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
22721 /*
22722  * CDDL HEADER START
22723  *
22724  * The contents of this file are subject to the terms of the
22725  * Common Development and Distribution License (the "License").
22726  * You may not use this file except in compliance with the License.
22727  *
22728  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22729  * or http://www.opensolaris.org/os/licensing.
22730  * See the License for the specific language governing permissions
22731  * and limitations under the License.
22732  *
22733  * When distributing Covered Code, include this CDDL HEADER in each
22734  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22735  * If applicable, add the following below this CDDL HEADER, with the
22736  * fields enclosed by brackets "[]" replaced with your own identifying
22737  * information: Portions Copyright [yyyy] [name of copyright owner]
22738  *
22739  * CDDL HEADER END
22740  */
22741 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22742 /*	  All Rights Reserved  	*/
22743 
22744 
22745 /*
22746  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22747  * Use is subject to license terms.
22748  *
22749  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
22750  * Copyright 2016 Joyent, Inc.
22751  */
22752 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2
22753 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
22754 /*
22755  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22756  * Use is subject to license terms.
22757  *
22758  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
22759  */
22760 /*
22761  * Copyright (c) 1982, 1986 Regents of the University of California.
22762  * All rights reserved.
22763  *
22764  * Redistribution and use in source and binary forms are permitted
22765  * provided that this notice is preserved and that due credit is given
22766  * to the University of California at Berkeley. The name of the University
22767  * may not be used to endorse or promote products derived from this
22768  * software without specific prior written permission. This software
22769  * is provided ``as is'' without express or implied warranty.
22770  */
22771 
22772 /*
22773  * Constants and structures defined by the internet system,
22774  * according to following documents
22775  *
22776  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
22777  *	http://www.iana.org/assignments/protocol-numbers
22778  *	http://www.iana.org/assignments/port-numbers
22779  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
22780  *
22781  */
22782 
22783 
22784 
22785 
22786 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
22787 /*
22788  * CDDL HEADER START
22789  *
22790  * The contents of this file are subject to the terms of the
22791  * Common Development and Distribution License (the "License").
22792  * You may not use this file except in compliance with the License.
22793  *
22794  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22795  * or http://www.opensolaris.org/os/licensing.
22796  * See the License for the specific language governing permissions
22797  * and limitations under the License.
22798  *
22799  * When distributing Covered Code, include this CDDL HEADER in each
22800  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22801  * If applicable, add the following below this CDDL HEADER, with the
22802  * fields enclosed by brackets "[]" replaced with your own identifying
22803  * information: Portions Copyright [yyyy] [name of copyright owner]
22804  *
22805  * CDDL HEADER END
22806  */
22807 
22808 /*
22809  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
22810  * Copyright 2016 Joyent, Inc.
22811  *
22812  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
22813  * Use is subject to license terms.
22814  */
22815 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
22816 
22817 
22818 
22819 
22820 
22821 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
22822 /*
22823  * CDDL HEADER START
22824  *
22825  * The contents of this file are subject to the terms of the
22826  * Common Development and Distribution License (the "License").
22827  * You may not use this file except in compliance with the License.
22828  *
22829  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22830  * or http://www.opensolaris.org/os/licensing.
22831  * See the License for the specific language governing permissions
22832  * and limitations under the License.
22833  *
22834  * When distributing Covered Code, include this CDDL HEADER in each
22835  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22836  * If applicable, add the following below this CDDL HEADER, with the
22837  * fields enclosed by brackets "[]" replaced with your own identifying
22838  * information: Portions Copyright [yyyy] [name of copyright owner]
22839  *
22840  * CDDL HEADER END
22841  */
22842 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22843 /*	  All Rights Reserved  	*/
22844 
22845 
22846 /*
22847  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22848  * Use is subject to license terms.
22849  *
22850  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
22851  * Copyright 2016 Joyent, Inc.
22852  */
22853 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
22854 
22855 
22856 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
22857 /*
22858  * CDDL HEADER START
22859  *
22860  * The contents of this file are subject to the terms of the
22861  * Common Development and Distribution License (the "License").
22862  * You may not use this file except in compliance with the License.
22863  *
22864  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22865  * or http://www.opensolaris.org/os/licensing.
22866  * See the License for the specific language governing permissions
22867  * and limitations under the License.
22868  *
22869  * When distributing Covered Code, include this CDDL HEADER in each
22870  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22871  * If applicable, add the following below this CDDL HEADER, with the
22872  * fields enclosed by brackets "[]" replaced with your own identifying
22873  * information: Portions Copyright [yyyy] [name of copyright owner]
22874  *
22875  * CDDL HEADER END
22876  */
22877 /*
22878  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
22879  * Use is subject to license terms.
22880  */
22881 
22882 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
22883 /*	  All Rights Reserved	*/
22884 
22885 /*
22886  * Portions of this source code were derived from Berkeley 4.3 BSD
22887  * under license from the Regents of the University of California.
22888  */
22889 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h"
22890 typedef uint16_t sa_family_t;
22891 
22892 
22893 /*
22894  * Structure used by kernel to store most
22895  * addresses.
22896  */
22897 struct sockaddr {
22898  sa_family_t sa_family; /* address family */
22899  char sa_data[14]; /* up to 14 bytes of direct address */
22900 };
22901 
22902 
22903 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1
22904 /*
22905  * CDDL HEADER START
22906  *
22907  * The contents of this file are subject to the terms of the
22908  * Common Development and Distribution License (the "License").
22909  * You may not use this file except in compliance with the License.
22910  *
22911  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22912  * or http://www.opensolaris.org/os/licensing.
22913  * See the License for the specific language governing permissions
22914  * and limitations under the License.
22915  *
22916  * When distributing Covered Code, include this CDDL HEADER in each
22917  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22918  * If applicable, add the following below this CDDL HEADER, with the
22919  * fields enclosed by brackets "[]" replaced with your own identifying
22920  * information: Portions Copyright [yyyy] [name of copyright owner]
22921  *
22922  * CDDL HEADER END
22923  */
22924 /*
22925  * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
22926  */
22927 
22928 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
22929 /*	  All Rights Reserved  	*/
22930 
22931 /*
22932  * University Copyright- Copyright (c) 1982, 1986, 1988
22933  * The Regents of the University of California
22934  * All Rights Reserved
22935  *
22936  * University Acknowledgment- Portions of this document are derived from
22937  * software developed by the University of California, Berkeley, and its
22938  * contributors.
22939  */
22940 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
22941 /*
22942  * Definitions for UNIX IPC domain.
22943  */
22944 struct sockaddr_un {
22945  sa_family_t sun_family; /* AF_UNIX */
22946  char sun_path[108]; /* path name (gag) */
22947 };
22948 
22949 
22950 
22951 /*
22952  * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to
22953  * change.
22954  *
22955  * Also, include a strlen() prototype, and we have to protect it w.r.t.
22956  * UNIX{98,03}.  And because there's strlen, we need size_t as well.
22957  */
22958 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h"
22959 extern size_t strlen(const char *);
22960 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
22961 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1
22962 /*
22963  * Copyright 1993-2003 Sun Microsystems, Inc.  All rights reserved.
22964  * Use is subject to license terms.
22965  */
22966 /*
22967  * Copyright (c) 1990, 1993
22968  *	The Regents of the University of California.  All rights reserved.
22969  *
22970  * Redistribution and use in source and binary forms, with or without
22971  * modification, are permitted provided that the following conditions
22972  * are met:
22973  * 1. Redistributions of source code must retain the above copyright
22974  *    notice, this list of conditions and the following disclaimer.
22975  * 2. Redistributions in binary form must reproduce the above copyright
22976  *    notice, this list of conditions and the following disclaimer in the
22977  *    documentation and/or other materials provided with the distribution.
22978  * 3. All advertising materials mentioning features or use of this software
22979  *    must display the following acknowledgement:
22980  *	This product includes software developed by the University of
22981  *	California, Berkeley and its contributors.
22982  * 4. Neither the name of the University nor the names of its contributors
22983  *    may be used to endorse or promote products derived from this software
22984  *    without specific prior written permission.
22985  *
22986  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22987  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22988  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22989  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22990  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22991  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22992  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22993  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22994  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22995  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22996  * SUCH DAMAGE.
22997  */
22998 
22999 
23000 
23001 
23002 #pragma ident "%Z%%M%	%I%	%E% SMI"
23003 /* from UCB 8.1 (Berkeley) 6/10/93 */
23004 
23005 
23006 
23007 
23008 
23009 /*
23010  * A Link-Level Sockaddr may specify the interface in one of two
23011  * ways: either by means of a system-provided index number (computed
23012  * anew and possibly differently on every reboot), or by a human-readable
23013  * string such as "il0" (for managerial convenience).
23014  *
23015  * Census taking actions, such as something akin to SIOCGCONF would return
23016  * both the index and the human name.
23017  *
23018  * High volume transactions (such as giving a link-level ``from'' address
23019  * in a recvfrom or recvmsg call) may be likely only to provide the indexed
23020  * form, (which requires fewer copy operations and less space).
23021  *
23022  * The form and interpretation  of the link-level address is purely a matter
23023  * of convention between the device driver and its consumers; however, it is
23024  * expected that all drivers for an interface of a given if_type will agree.
23025  */
23026 
23027 /*
23028  * Structure of a Link-Level sockaddr:
23029  */
23030 struct sockaddr_dl {
23031  ushort_t sdl_family; /* AF_LINK */
23032  ushort_t sdl_index; /* if != 0, system given index for interface */
23033  uchar_t sdl_type; /* interface type */
23034  uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */
23035  uchar_t sdl_alen; /* link level address length */
23036  uchar_t sdl_slen; /* link layer selector length */
23037  char sdl_data[244]; /* contains both if name and ll address */
23038 };
23039 
23040 
23041 
23042 
23043 extern char *_link_ntoa(const unsigned char *, char *, int, int);
23044 extern unsigned char *_link_aton(const char *, int *);
23045 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2
23046 
23047 
23048 
23049 /*
23050  * sockaddr_storage:
23051  * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr
23052  * structures. Has sufficient size and alignment for those sockaddrs.
23053  */
23054 
23055 /*
23056  * Desired maximum size, alignment size and related types.
23057  */
23058 
23059 
23060 /*
23061  * To represent desired sockaddr max alignment for platform, a
23062  * type is chosen which may depend on implementation platform architecture.
23063  * Type chosen based on alignment size restrictions from <sys/isa_defs.h>.
23064  * We desire to force up to (but no more than) 64-bit (8 byte) alignment,
23065  * on platforms where it is possible to do so. (e.g not possible on ia32).
23066  * For all currently supported platforms by our implementation
23067  * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64)
23068  * type "double" is suitable for that intent.
23069  *
23070  * Note: Type "double" is chosen over the more obvious integer type int64_t.
23071  *   int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32.
23072  */
23073 typedef double sockaddr_maxalign_t;
23074 
23075 
23076 
23077 /*
23078  * Definitions used for sockaddr_storage structure paddings design.
23079  */
23080 
23081 
23082 
23083 
23084 struct sockaddr_storage {
23085  sa_family_t ss_family; /* Address family */
23086  /* Following fields are implementation specific */
23087  char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))];
23088  sockaddr_maxalign_t _ss_align;
23089  char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))];
23090 };
23091 
23092 
23093 /*
23094  * To be compatible with the Linux interfaces used, this structure is
23095  * placed in socket_impl.h so that an include for <sys/socket.h> will
23096  * pickup this structure. This structure is for use with PF_PACKET
23097  * sockets.
23098  */
23099 struct sockaddr_ll {
23100  uint16_t sll_family;
23101  uint16_t sll_protocol;
23102  int32_t sll_ifindex;
23103  uint16_t sll_hatype;
23104  uint8_t sll_pkttype;
23105  uint8_t sll_halen;
23106  uint8_t sll_addr[8];
23107 };
23108 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
23109 
23110 
23111 
23112 
23113 
23114 /*
23115  * The socklen definitions are reproduced here from sys/socket.h so as to
23116  * not introduce that namespace into existing users of netinet/in.h.
23117  */
23118 
23119 
23120 
23121 typedef uint32_t socklen_t;
23122 
23123 
23124 
23125 
23126 
23127 typedef void *Psocklen_t;
23128 
23129 
23130 
23131 
23132 
23133 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1
23134 /*
23135  * CDDL HEADER START
23136  *
23137  * The contents of this file are subject to the terms of the
23138  * Common Development and Distribution License (the "License").
23139  * You may not use this file except in compliance with the License.
23140  *
23141  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23142  * or http://www.opensolaris.org/os/licensing.
23143  * See the License for the specific language governing permissions
23144  * and limitations under the License.
23145  *
23146  * When distributing Covered Code, include this CDDL HEADER in each
23147  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23148  * If applicable, add the following below this CDDL HEADER, with the
23149  * fields enclosed by brackets "[]" replaced with your own identifying
23150  * information: Portions Copyright [yyyy] [name of copyright owner]
23151  *
23152  * CDDL HEADER END
23153  */
23154 /*
23155  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23156  * Use is subject to license terms.
23157  */
23158 
23159 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23160 /*	  All Rights Reserved  	*/
23161 
23162 
23163 
23164 
23165 
23166 /*
23167  * For source compatibility
23168  */
23169 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
23170 /*
23171  * CDDL HEADER START
23172  *
23173  * The contents of this file are subject to the terms of the
23174  * Common Development and Distribution License (the "License").
23175  * You may not use this file except in compliance with the License.
23176  *
23177  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23178  * or http://www.opensolaris.org/os/licensing.
23179  * See the License for the specific language governing permissions
23180  * and limitations under the License.
23181  *
23182  *
23183  * When distributing Covered Code, include this CDDL HEADER in each
23184  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23185  * If applicable, add the following below this CDDL HEADER, with the
23186  * fields enclosed by brackets "[]" replaced with your own identifying
23187  * information: Portions Copyright [yyyy] [name of copyright owner]
23188  *
23189  * CDDL HEADER END
23190  */
23191 
23192 /*
23193  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23194  * Use is subject to license terms.
23195  * Copyright 2016 Joyent, Inc.
23196  */
23197 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23198 
23199 
23200 
23201 
23202 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1
23203 /*
23204  * CDDL HEADER START
23205  *
23206  * The contents of this file are subject to the terms of the
23207  * Common Development and Distribution License, Version 1.0 only
23208  * (the "License").  You may not use this file except in compliance
23209  * with the License.
23210  *
23211  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23212  * or http://www.opensolaris.org/os/licensing.
23213  * See the License for the specific language governing permissions
23214  * and limitations under the License.
23215  *
23216  * When distributing Covered Code, include this CDDL HEADER in each
23217  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23218  * If applicable, add the following below this CDDL HEADER, with the
23219  * fields enclosed by brackets "[]" replaced with your own identifying
23220  * information: Portions Copyright [yyyy] [name of copyright owner]
23221  *
23222  * CDDL HEADER END
23223  */
23224 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23225 /*	  All Rights Reserved  	*/
23226 
23227 
23228 /*
23229  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
23230  *
23231  * Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
23232  * All rights reserved.
23233  */
23234 
23235 /*
23236  * Copyright 2015, Joyent, Inc.
23237  */
23238 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
23239 /*
23240  * Structure of file descriptor/event pairs supplied in
23241  * the poll arrays.
23242  */
23243 typedef struct pollfd {
23244  int fd; /* file desc to poll */
23245  short events; /* events of interest on fd */
23246  short revents; /* events that occurred on fd */
23247 } pollfd_t;
23248 
23249 typedef unsigned long nfds_t;
23250 
23251 /*
23252  * Testable select events
23253  */
23254 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
23255 /*
23256  * Non-testable poll events (may not be specified in events field,
23257  * but may be returned in revents field).
23258  */
23259 
23260 
23261 
23262 
23263 /*
23264  * These events will never be specified in revents, but may be specified in
23265  * events to control /dev/poll behavior.
23266  */
23267 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h"
23268 int poll(struct pollfd *, nfds_t, int);
23269 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23270 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1
23271 /*
23272  * CDDL HEADER START
23273  *
23274  * The contents of this file are subject to the terms of the
23275  * Common Development and Distribution License, Version 1.0 only
23276  * (the "License").  You may not use this file except in compliance
23277  * with the License.
23278  *
23279  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23280  * or http://www.opensolaris.org/os/licensing.
23281  * See the License for the specific language governing permissions
23282  * and limitations under the License.
23283  *
23284  * When distributing Covered Code, include this CDDL HEADER in each
23285  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23286  * If applicable, add the following below this CDDL HEADER, with the
23287  * fields enclosed by brackets "[]" replaced with your own identifying
23288  * information: Portions Copyright [yyyy] [name of copyright owner]
23289  *
23290  * CDDL HEADER END
23291  */
23292 /*
23293  * Copyright (c) 1997-1998 by Sun Microsystems, Inc.
23294  * All rights reserved.
23295  */
23296 
23297 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23298 /*	  All Rights Reserved  	*/
23299 
23300 
23301 
23302 
23303 
23304 #pragma ident "%Z%%M%	%I%	%E% SMI"
23305 
23306 
23307 
23308 
23309 
23310 /*
23311  * This file contains all machine-dependent declarations
23312  * in STREAMS.
23313  */
23314 
23315 /*
23316  * Copy data from one data buffer to another.
23317  * The addresses must be word aligned - if not, use bcopy!
23318  */
23319 
23320 
23321 /*
23322  * save the address of the calling function on the 3b2 to
23323  * enable tracking of who is allocating message blocks
23324  */
23325 
23326 
23327 /*
23328  * macro to check pointer alignment
23329  * (true if alignment is sufficient for worst case)
23330  */
23331 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23332 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1
23333 /*
23334  * CDDL HEADER START
23335  *
23336  * The contents of this file are subject to the terms of the
23337  * Common Development and Distribution License (the "License").
23338  * You may not use this file except in compliance with the License.
23339  *
23340  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23341  * or http://www.opensolaris.org/os/licensing.
23342  * See the License for the specific language governing permissions
23343  * and limitations under the License.
23344  *
23345  * When distributing Covered Code, include this CDDL HEADER in each
23346  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23347  * If applicable, add the following below this CDDL HEADER, with the
23348  * fields enclosed by brackets "[]" replaced with your own identifying
23349  * information: Portions Copyright [yyyy] [name of copyright owner]
23350  *
23351  * CDDL HEADER END
23352  */
23353 /*
23354  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23355  * Use is subject to license terms.
23356  */
23357 
23358 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
23359 /*	  All Rights Reserved  	*/
23360 
23361 /*
23362  * Portions of this source code were derived from Berkeley 4.3 BSD
23363  * under license from the Regents of the University of California.
23364  */
23365 
23366 
23367 
23368 
23369 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23370 /*
23371  * CDDL HEADER START
23372  *
23373  * The contents of this file are subject to the terms of the
23374  * Common Development and Distribution License (the "License").
23375  * You may not use this file except in compliance with the License.
23376  *
23377  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23378  * or http://www.opensolaris.org/os/licensing.
23379  * See the License for the specific language governing permissions
23380  * and limitations under the License.
23381  *
23382  * When distributing Covered Code, include this CDDL HEADER in each
23383  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23384  * If applicable, add the following below this CDDL HEADER, with the
23385  * fields enclosed by brackets "[]" replaced with your own identifying
23386  * information: Portions Copyright [yyyy] [name of copyright owner]
23387  *
23388  * CDDL HEADER END
23389  */
23390 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23391 /*	  All Rights Reserved  	*/
23392 
23393 
23394 /*
23395  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23396  * Use is subject to license terms.
23397  *
23398  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23399  * Copyright 2016 Joyent, Inc.
23400  */
23401 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2
23402 
23403 
23404 
23405 
23406 
23407 /*
23408  * The credential is an opaque kernel private data structure defined in
23409  * <sys/cred_impl.h>.
23410  */
23411 
23412 typedef struct cred cred_t;
23413 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
23414 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1
23415 /*
23416  * CDDL HEADER START
23417  *
23418  * The contents of this file are subject to the terms of the
23419  * Common Development and Distribution License, Version 1.0 only
23420  * (the "License").  You may not use this file except in compliance
23421  * with the License.
23422  *
23423  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23424  * or http://www.opensolaris.org/os/licensing.
23425  * See the License for the specific language governing permissions
23426  * and limitations under the License.
23427  *
23428  * When distributing Covered Code, include this CDDL HEADER in each
23429  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23430  * If applicable, add the following below this CDDL HEADER, with the
23431  * fields enclosed by brackets "[]" replaced with your own identifying
23432  * information: Portions Copyright [yyyy] [name of copyright owner]
23433  *
23434  * CDDL HEADER END
23435  */
23436 /*
23437  * Copyright (c) 1991-1998 by Sun Microsystems, Inc.
23438  * All rights reserved.
23439  */
23440 
23441 /*
23442  * t_lock.h:	Prototypes for disp_locks, plus include files
23443  *		that describe the interfaces to kernel synch.
23444  *		objects.
23445  */
23446 
23447 
23448 
23449 
23450 #pragma ident "%Z%%M%	%I%	%E% SMI"
23451 
23452 
23453 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1
23454 /*
23455  * CDDL HEADER START
23456  *
23457  * The contents of this file are subject to the terms of the
23458  * Common Development and Distribution License (the "License").
23459  * You may not use this file except in compliance with the License.
23460  *
23461  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23462  * or http://www.opensolaris.org/os/licensing.
23463  * See the License for the specific language governing permissions
23464  * and limitations under the License.
23465  *
23466  * When distributing Covered Code, include this CDDL HEADER in each
23467  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23468  * If applicable, add the following below this CDDL HEADER, with the
23469  * fields enclosed by brackets "[]" replaced with your own identifying
23470  * information: Portions Copyright [yyyy] [name of copyright owner]
23471  *
23472  * CDDL HEADER END
23473  */
23474 /*
23475  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23476  * Use is subject to license terms.
23477  * Copyright 2016 Joyent, Inc.
23478  */
23479 
23480 
23481 
23482 
23483 #pragma ident "%Z%%M%	%I%	%E% SMI"
23484 
23485 
23486 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23487 /*
23488  * CDDL HEADER START
23489  *
23490  * The contents of this file are subject to the terms of the
23491  * Common Development and Distribution License (the "License").
23492  * You may not use this file except in compliance with the License.
23493  *
23494  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23495  * or http://www.opensolaris.org/os/licensing.
23496  * See the License for the specific language governing permissions
23497  * and limitations under the License.
23498  *
23499  * When distributing Covered Code, include this CDDL HEADER in each
23500  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23501  * If applicable, add the following below this CDDL HEADER, with the
23502  * fields enclosed by brackets "[]" replaced with your own identifying
23503  * information: Portions Copyright [yyyy] [name of copyright owner]
23504  *
23505  * CDDL HEADER END
23506  */
23507 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23508 /*	  All Rights Reserved  	*/
23509 
23510 
23511 /*
23512  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23513  * Use is subject to license terms.
23514  *
23515  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23516  * Copyright 2016 Joyent, Inc.
23517  */
23518 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
23519 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
23520 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23521 /*	  All Rights Reserved  	*/
23522 
23523 
23524 /*
23525  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
23526  * All rights reserved.  The Berkeley software License Agreement
23527  * specifies the terms and conditions for redistribution.
23528  */
23529 
23530 /*
23531  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
23532  *
23533  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23534  * Use is subject to license terms.
23535  *
23536  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23537  */
23538 
23539 /*
23540  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
23541  */
23542 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2
23543 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
23544 typedef lock_t disp_lock_t; /* dispatcher lock type */
23545 
23546 /*
23547  * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or
23548  * an adaptive mutex, depending on what interrupt levels use it.
23549  */
23550 
23551 
23552 /*
23553  * Macro to control loops which spin on a lock and then check state
23554  * periodically.  Its passed an integer, and returns a boolean value
23555  * that if true indicates its a good time to get the scheduler lock and
23556  * check the state of the current owner of the lock.
23557  */
23558 
23559 
23560 /*
23561  * Externs for CLOCK_LOCK and clock resolution
23562  */
23563 extern volatile uint32_t hres_lock;
23564 extern hrtime_t hrtime_base;
23565 extern int clock_res;
23566 
23567 
23568 
23569 /*
23570  * The definitions of the symbolic interrupt levels:
23571  *
23572  *   CLOCK_LEVEL =>  The level at which one must be to block the clock.
23573  *
23574  *   LOCK_LEVEL  =>  The highest level at which one may block (and thus the
23575  *                   highest level at which one may acquire adaptive locks)
23576  *                   Also the highest level at which one may be preempted.
23577  *
23578  *   DISP_LEVEL  =>  The level at which one must be to perform dispatcher
23579  *                   operations.
23580  *
23581  * The constraints on the platform:
23582  *
23583  *  - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL
23584  *  - LOCK_LEVEL must be less than DISP_LEVEL
23585  *  - DISP_LEVEL should be as close to LOCK_LEVEL as possible
23586  *
23587  * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal;
23588  * changing this relationship is probably possible but not advised.
23589  *
23590  */
23591 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h"
23592 /*
23593  * The following mask is for the cpu_intr_actv bits corresponding to
23594  * high-level PILs. It should equal:
23595  * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1)
23596  */
23597 
23598 
23599 /*
23600  * The semaphore code depends on being able to represent a lock plus
23601  * owner in a single 32-bit word.  (Mutexes used to have a similar
23602  * dependency, but no longer.)  Thus the owner must contain at most
23603  * 24 significant bits.  At present only threads and semaphores
23604  * must be aware of this vile constraint.  Different ISAs may handle this
23605  * differently depending on their capabilities (e.g. compare-and-swap)
23606  * and limitations (e.g. constraints on alignment and/or KERNELBASE).
23607  */
23608 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23609 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
23610 /*
23611  * CDDL HEADER START
23612  *
23613  * The contents of this file are subject to the terms of the
23614  * Common Development and Distribution License (the "License").
23615  * You may not use this file except in compliance with the License.
23616  *
23617  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23618  * or http://www.opensolaris.org/os/licensing.
23619  * See the License for the specific language governing permissions
23620  * and limitations under the License.
23621  *
23622  * When distributing Covered Code, include this CDDL HEADER in each
23623  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23624  * If applicable, add the following below this CDDL HEADER, with the
23625  * fields enclosed by brackets "[]" replaced with your own identifying
23626  * information: Portions Copyright [yyyy] [name of copyright owner]
23627  *
23628  * CDDL HEADER END
23629  */
23630 
23631 /*
23632  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
23633  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
23634  */
23635 
23636 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
23637 /*	  All Rights Reserved  	*/
23638 
23639 /*
23640  * University Copyright- Copyright (c) 1982, 1986, 1988
23641  * The Regents of the University of California
23642  * All Rights Reserved
23643  *
23644  * University Acknowledgment- Portions of this document are derived from
23645  * software developed by the University of California, Berkeley, and its
23646  * contributors.
23647  */
23648 
23649 
23650 
23651 
23652 
23653 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23654 /*
23655  * CDDL HEADER START
23656  *
23657  * The contents of this file are subject to the terms of the
23658  * Common Development and Distribution License (the "License").
23659  * You may not use this file except in compliance with the License.
23660  *
23661  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23662  * or http://www.opensolaris.org/os/licensing.
23663  * See the License for the specific language governing permissions
23664  * and limitations under the License.
23665  *
23666  * When distributing Covered Code, include this CDDL HEADER in each
23667  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23668  * If applicable, add the following below this CDDL HEADER, with the
23669  * fields enclosed by brackets "[]" replaced with your own identifying
23670  * information: Portions Copyright [yyyy] [name of copyright owner]
23671  *
23672  * CDDL HEADER END
23673  */
23674 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23675 /*	  All Rights Reserved  	*/
23676 
23677 
23678 /*
23679  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23680  * Use is subject to license terms.
23681  *
23682  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23683  * Copyright 2016 Joyent, Inc.
23684  */
23685 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
23686 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
23687 /*
23688  * CDDL HEADER START
23689  *
23690  * The contents of this file are subject to the terms of the
23691  * Common Development and Distribution License (the "License").
23692  * You may not use this file except in compliance with the License.
23693  *
23694  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23695  * or http://www.opensolaris.org/os/licensing.
23696  * See the License for the specific language governing permissions
23697  * and limitations under the License.
23698  *
23699  *
23700  * When distributing Covered Code, include this CDDL HEADER in each
23701  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23702  * If applicable, add the following below this CDDL HEADER, with the
23703  * fields enclosed by brackets "[]" replaced with your own identifying
23704  * information: Portions Copyright [yyyy] [name of copyright owner]
23705  *
23706  * CDDL HEADER END
23707  */
23708 
23709 /*
23710  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23711  * Use is subject to license terms.
23712  * Copyright 2016 Joyent, Inc.
23713  */
23714 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
23715 
23716 
23717 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1
23718 /*
23719  * This file and its contents are supplied under the terms of the
23720  * Common Development and Distribution License ("CDDL"), version 1.0.
23721  * You may only use this file in accordance with the terms of version
23722  * 1.0 of the CDDL.
23723  *
23724  * A full copy of the text of the CDDL should have accompanied this
23725  * source.  A copy of the CDDL is also available via the Internet at
23726  * http://www.illumos.org/license/CDDL.
23727  */
23728 
23729 /*
23730  * Copyright 2014-2016 PALO, Richard.
23731  */
23732 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
23733 
23734 
23735 
23736 
23737 
23738 /*
23739  * Fundamental variables; don't change too often.
23740  */
23741 
23742 /*
23743  * _POSIX_VDISABLE has historically been defined in <sys/param.h> since
23744  * an early merge with AT&T source.  It has also historically been defined
23745  * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially
23746  * required the existence of _POSIX_VDISABLE in <sys/termios.h>.
23747  * Subsequent versions of the IEEE Standard as well as the X/Open
23748  * specifications required that _POSIX_VDISABLE be defined in <unistd.h>
23749  * while still allowing for it's existence in other headers.  With the
23750  * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>.
23751  */
23752 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23753     /* compatibility purposes only	*/
23754     /* and will be removed in a	*/
23755     /* later release		*/
23756 
23757 /*
23758  * These define the maximum and minimum allowable values of the
23759  * configurable parameter NGROUPS_MAX.
23760  */
23761 
23762 
23763 
23764 
23765 /*
23766  * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h.
23767  */
23768 
23769 
23770 /*
23771  * Default process priority.  Keep it in sync with limits.h.
23772  */
23773 
23774 
23775 /*
23776  * Fundamental constants of the implementation--cannot be changed easily.
23777  */
23778 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23779 /* REMOTE -- whether machine is primary, secondary, or regular */
23780 
23781 
23782 
23783 /*
23784  * MAXPATHLEN defines the longest permissible path length,
23785  * including the terminating null, after expanding symbolic links.
23786  * TYPICALMAXPATHLEN is used in a few places as an optimization
23787  * with a local buffer on the stack to avoid kmem_alloc().
23788  * MAXSYMLINKS defines the maximum number of symbolic links
23789  * that may be expanded in a path name. It should be set high
23790  * enough to allow all legitimate uses, but halt infinite loops
23791  * reasonably quickly.
23792  * MAXNAMELEN is the length (including the terminating null) of
23793  * the longest permissible file (component) name.
23794  */
23795 
23796 
23797 
23798 
23799 
23800 /*
23801  * MAXLINKNAMELEN defines the longest possible permitted datalink name,
23802  * including the terminating NUL.  Note that this must not be larger
23803  * than related networking constants such as LIFNAMSIZ.
23804  */
23805 
23806 
23807 
23808 
23809 
23810 
23811 /*
23812  * The following are defined to be the same as
23813  * defined in /usr/include/limits.h.  They are
23814  * needed for pipe and FIFO compatibility.
23815  */
23816 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23817 /* macros replacing interleaving functions */
23818 
23819 
23820 
23821 /*
23822  * File system parameters and macros.
23823  *
23824  * The file system is made out of blocks of at most MAXBSIZE units,
23825  * with smaller units (fragments) only in the last direct block.
23826  * MAXBSIZE primarily determines the size of buffers in the buffer
23827  * pool. It may be made larger without any effect on existing
23828  * file systems; however making it smaller make make some file
23829  * systems unmountable.
23830  *
23831  * Note that the blocked devices are assumed to have DEV_BSIZE
23832  * "sectors" and that fragments must be some multiple of this size.
23833  */
23834 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23835 /*	64 bit versions of btodb and dbtob */
23836 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23837 /*
23838  * Size of arg list passed in by user.
23839  */
23840 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23841 /*
23842  * Scale factor for scaled integers used to count
23843  * %cpu time and load averages.
23844  */
23845 
23846 
23847 
23848 /*
23849  * Delay units are in microseconds.
23850  *
23851  * XXX	These macros are not part of the DDI!
23852  */
23853 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23854 /*
23855  * The following is to free utilities from machine dependencies within
23856  * an architecture. Must be included after definition of DEV_BSIZE.
23857  */
23858 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h"
23859 /*
23860  * The following are assorted machine dependent values which can be
23861  * obtained in a machine independent manner through sysconf(2) or
23862  * sysinfo(2). In order to guarantee that these provide the expected
23863  * value at all times, the System Private interface (leading underscore)
23864  * is used.
23865  */
23866 
23867 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1
23868 /*
23869  * CDDL HEADER START
23870  *
23871  * The contents of this file are subject to the terms of the
23872  * Common Development and Distribution License (the "License").
23873  * You may not use this file except in compliance with the License.
23874  *
23875  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23876  * or http://www.opensolaris.org/os/licensing.
23877  * See the License for the specific language governing permissions
23878  * and limitations under the License.
23879  *
23880  * When distributing Covered Code, include this CDDL HEADER in each
23881  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23882  * If applicable, add the following below this CDDL HEADER, with the
23883  * fields enclosed by brackets "[]" replaced with your own identifying
23884  * information: Portions Copyright [yyyy] [name of copyright owner]
23885  *
23886  * CDDL HEADER END
23887  */
23888 
23889 /*
23890  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
23891  *	  All Rights Reserved
23892  *
23893  */
23894 
23895 /*
23896  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23897  * Use is subject to license terms.
23898  */
23899 
23900 /*
23901  * WARNING: This is an implementation-specific header,
23902  * its contents are not guaranteed. Applications
23903  * should include <unistd.h> and not this header.
23904  */
23905 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2
23906 
23907 
23908 
23909 
23910 
23911 
23912 extern long _sysconf(int); /* System Private interface to sysconf() */
23913 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
23914 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1
23915 /*
23916  * CDDL HEADER START
23917  *
23918  * The contents of this file are subject to the terms of the
23919  * Common Development and Distribution License (the "License").
23920  * You may not use this file except in compliance with the License.
23921  *
23922  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23923  * or http://www.opensolaris.org/os/licensing.
23924  * See the License for the specific language governing permissions
23925  * and limitations under the License.
23926  *
23927  * When distributing Covered Code, include this CDDL HEADER in each
23928  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23929  * If applicable, add the following below this CDDL HEADER, with the
23930  * fields enclosed by brackets "[]" replaced with your own identifying
23931  * information: Portions Copyright [yyyy] [name of copyright owner]
23932  *
23933  * CDDL HEADER END
23934  */
23935 /*
23936  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
23937  */
23938 
23939 
23940 
23941 
23942 
23943 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
23944 /*
23945  * CDDL HEADER START
23946  *
23947  * The contents of this file are subject to the terms of the
23948  * Common Development and Distribution License (the "License").
23949  * You may not use this file except in compliance with the License.
23950  *
23951  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
23952  * or http://www.opensolaris.org/os/licensing.
23953  * See the License for the specific language governing permissions
23954  * and limitations under the License.
23955  *
23956  * When distributing Covered Code, include this CDDL HEADER in each
23957  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
23958  * If applicable, add the following below this CDDL HEADER, with the
23959  * fields enclosed by brackets "[]" replaced with your own identifying
23960  * information: Portions Copyright [yyyy] [name of copyright owner]
23961  *
23962  * CDDL HEADER END
23963  */
23964 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23965 /*	  All Rights Reserved  	*/
23966 
23967 
23968 /*
23969  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23970  * Use is subject to license terms.
23971  *
23972  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
23973  * Copyright 2016 Joyent, Inc.
23974  */
23975 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2
23976 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h"
23977 /*
23978  * Public interface to mutual exclusion locks.  See mutex(9F) for details.
23979  *
23980  * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used
23981  * in almost all of the kernel.  MUTEX_SPIN provides interrupt blocking
23982  * and must be used in interrupt handlers above LOCK_LEVEL.  The iblock
23983  * cookie argument to mutex_init() encodes the interrupt level to block.
23984  * The iblock cookie must be NULL for adaptive locks.
23985  *
23986  * MUTEX_DEFAULT is the type usually specified (except in drivers) to
23987  * mutex_init().  It is identical to MUTEX_ADAPTIVE.
23988  *
23989  * MUTEX_DRIVER is always used by drivers.  mutex_init() converts this to
23990  * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie.
23991  *
23992  * Mutex statistics can be gathered on the fly, without rebooting or
23993  * recompiling the kernel, via the lockstat driver (lockstat(7D)).
23994  */
23995 typedef enum {
23996  MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */
23997  MUTEX_SPIN = 1, /* block interrupts and spin */
23998  MUTEX_DRIVER = 4, /* driver (DDI) mutex */
23999  MUTEX_DEFAULT = 6 /* kernel default mutex */
24000 } kmutex_type_t;
24001 
24002 typedef struct mutex {
24003 
24004 
24005 
24006  void *_opaque[2];
24007 
24008 } kmutex_t;
24009 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
24010 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1
24011 /*
24012  * CDDL HEADER START
24013  *
24014  * The contents of this file are subject to the terms of the
24015  * Common Development and Distribution License (the "License").
24016  * You may not use this file except in compliance with the License.
24017  *
24018  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24019  * or http://www.opensolaris.org/os/licensing.
24020  * See the License for the specific language governing permissions
24021  * and limitations under the License.
24022  *
24023  * When distributing Covered Code, include this CDDL HEADER in each
24024  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24025  * If applicable, add the following below this CDDL HEADER, with the
24026  * fields enclosed by brackets "[]" replaced with your own identifying
24027  * information: Portions Copyright [yyyy] [name of copyright owner]
24028  *
24029  * CDDL HEADER END
24030  */
24031 /*
24032  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24033  * Use is subject to license terms.
24034  */
24035 
24036 /*
24037  * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
24038  */
24039 
24040 
24041 
24042 
24043 /*
24044  * Public interface to readers/writer locks.  See rwlock(9F) for details.
24045  */
24046 
24047 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
24048 /*
24049  * CDDL HEADER START
24050  *
24051  * The contents of this file are subject to the terms of the
24052  * Common Development and Distribution License (the "License").
24053  * You may not use this file except in compliance with the License.
24054  *
24055  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24056  * or http://www.opensolaris.org/os/licensing.
24057  * See the License for the specific language governing permissions
24058  * and limitations under the License.
24059  *
24060  * When distributing Covered Code, include this CDDL HEADER in each
24061  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24062  * If applicable, add the following below this CDDL HEADER, with the
24063  * fields enclosed by brackets "[]" replaced with your own identifying
24064  * information: Portions Copyright [yyyy] [name of copyright owner]
24065  *
24066  * CDDL HEADER END
24067  */
24068 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
24069 /*	  All Rights Reserved  	*/
24070 
24071 
24072 /*
24073  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24074  * Use is subject to license terms.
24075  *
24076  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
24077  * Copyright 2016 Joyent, Inc.
24078  */
24079 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2
24080 
24081 
24082 
24083 
24084 
24085 
24086 
24087 typedef enum {
24088  RW_DRIVER = 2, /* driver (DDI) rwlock */
24089  RW_DEFAULT = 4 /* kernel default rwlock */
24090 } krw_type_t;
24091 
24092 typedef enum {
24093  RW_WRITER,
24094  RW_READER,
24095  RW_READER_STARVEWRITER
24096 } krw_t;
24097 
24098 typedef struct _krwlock {
24099  void *_opaque[1];
24100 } krwlock_t;
24101 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
24102 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1
24103 /*
24104  * CDDL HEADER START
24105  *
24106  * The contents of this file are subject to the terms of the
24107  * Common Development and Distribution License, Version 1.0 only
24108  * (the "License").  You may not use this file except in compliance
24109  * with the License.
24110  *
24111  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24112  * or http://www.opensolaris.org/os/licensing.
24113  * See the License for the specific language governing permissions
24114  * and limitations under the License.
24115  *
24116  * When distributing Covered Code, include this CDDL HEADER in each
24117  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24118  * If applicable, add the following below this CDDL HEADER, with the
24119  * fields enclosed by brackets "[]" replaced with your own identifying
24120  * information: Portions Copyright [yyyy] [name of copyright owner]
24121  *
24122  * CDDL HEADER END
24123  */
24124 /*
24125  * Copyright (c) 1993-1998 by Sun Microsystems, Inc.
24126  * All rights reserved.
24127  */
24128 
24129 
24130 
24131 
24132 #pragma ident "%Z%%M%	%I%	%E% SMI"
24133 
24134 /*
24135  * Public interface to semaphores.  See semaphore(9F) for details.
24136  */
24137 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h"
24138 typedef enum {
24139  SEMA_DEFAULT,
24140  SEMA_DRIVER
24141 } ksema_type_t;
24142 
24143 typedef struct _ksema {
24144  void * _opaque[2]; /* 2 words on 4 byte alignment */
24145 } ksema_t;
24146 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
24147 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1
24148 /*
24149  * CDDL HEADER START
24150  *
24151  * The contents of this file are subject to the terms of the
24152  * Common Development and Distribution License (the "License").
24153  * You may not use this file except in compliance with the License.
24154  *
24155  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24156  * or http://www.opensolaris.org/os/licensing.
24157  * See the License for the specific language governing permissions
24158  * and limitations under the License.
24159  *
24160  * When distributing Covered Code, include this CDDL HEADER in each
24161  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24162  * If applicable, add the following below this CDDL HEADER, with the
24163  * fields enclosed by brackets "[]" replaced with your own identifying
24164  * information: Portions Copyright [yyyy] [name of copyright owner]
24165  *
24166  * CDDL HEADER END
24167  */
24168 /*
24169  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24170  * Use is subject to license terms.
24171  */
24172 
24173 /*
24174  * Copyright (c) 2012 by Delphix. All rights reserved.
24175  */
24176 
24177 /*
24178  * condvar.h:
24179  *
24180  * definitions for thread synchronization primitives: condition variables
24181  * This is the public part of the interface to condition variables. The
24182  * private (implementation-specific) part is in <arch>/sys/condvar_impl.h.
24183  */
24184 
24185 
24186 
24187 
24188 
24189 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
24190 /*
24191  * CDDL HEADER START
24192  *
24193  * The contents of this file are subject to the terms of the
24194  * Common Development and Distribution License (the "License").
24195  * You may not use this file except in compliance with the License.
24196  *
24197  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24198  * or http://www.opensolaris.org/os/licensing.
24199  * See the License for the specific language governing permissions
24200  * and limitations under the License.
24201  *
24202  * When distributing Covered Code, include this CDDL HEADER in each
24203  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24204  * If applicable, add the following below this CDDL HEADER, with the
24205  * fields enclosed by brackets "[]" replaced with your own identifying
24206  * information: Portions Copyright [yyyy] [name of copyright owner]
24207  *
24208  * CDDL HEADER END
24209  */
24210 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
24211 /*	  All Rights Reserved  	*/
24212 
24213 
24214 /*
24215  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24216  * Use is subject to license terms.
24217  *
24218  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
24219  * Copyright 2016 Joyent, Inc.
24220  */
24221 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
24222 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1
24223 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
24224 /*	  All Rights Reserved  	*/
24225 
24226 
24227 /*
24228  * Copyright (c) 1982, 1986, 1993 Regents of the University of California.
24229  * All rights reserved.  The Berkeley software License Agreement
24230  * specifies the terms and conditions for redistribution.
24231  */
24232 
24233 /*
24234  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24235  *
24236  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24237  * Use is subject to license terms.
24238  *
24239  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
24240  */
24241 
24242 /*
24243  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
24244  */
24245 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2
24246 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h"
24247 /*
24248  * Condtion variables.
24249  */
24250 
24251 typedef struct _kcondvar {
24252  ushort_t _opaque;
24253 } kcondvar_t;
24254 
24255 typedef enum {
24256  CV_DEFAULT,
24257  CV_DRIVER
24258 } kcv_type_t;
24259 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2
24260 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h"
24261 /*
24262  * Mutual exclusion locks described in common/sys/mutex.h.
24263  *
24264  * Semaphores described in common/sys/semaphore.h.
24265  *
24266  * Readers/Writer locks described in common/sys/rwlock.h.
24267  *
24268  * Condition variables described in common/sys/condvar.h
24269  */
24270 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
24271 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1
24272 /*
24273  * CDDL HEADER START
24274  *
24275  * The contents of this file are subject to the terms of the
24276  * Common Development and Distribution License, Version 1.0 only
24277  * (the "License").  You may not use this file except in compliance
24278  * with the License.
24279  *
24280  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24281  * or http://www.opensolaris.org/os/licensing.
24282  * See the License for the specific language governing permissions
24283  * and limitations under the License.
24284  *
24285  * When distributing Covered Code, include this CDDL HEADER in each
24286  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24287  * If applicable, add the following below this CDDL HEADER, with the
24288  * fields enclosed by brackets "[]" replaced with your own identifying
24289  * information: Portions Copyright [yyyy] [name of copyright owner]
24290  *
24291  * CDDL HEADER END
24292  */
24293 /*
24294  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24295  * Use is subject to license terms.
24296  */
24297 
24298 
24299 
24300 
24301 #pragma ident "%Z%%M%	%I%	%E% SMI"
24302 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
24303 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
24304 /*
24305  * CDDL HEADER START
24306  *
24307  * The contents of this file are subject to the terms of the
24308  * Common Development and Distribution License (the "License").
24309  * You may not use this file except in compliance with the License.
24310  *
24311  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24312  * or http://www.opensolaris.org/os/licensing.
24313  * See the License for the specific language governing permissions
24314  * and limitations under the License.
24315  *
24316  *
24317  * When distributing Covered Code, include this CDDL HEADER in each
24318  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24319  * If applicable, add the following below this CDDL HEADER, with the
24320  * fields enclosed by brackets "[]" replaced with your own identifying
24321  * information: Portions Copyright [yyyy] [name of copyright owner]
24322  *
24323  * CDDL HEADER END
24324  */
24325 
24326 /*
24327  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24328  * Use is subject to license terms.
24329  * Copyright 2016 Joyent, Inc.
24330  */
24331 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2
24332 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h"
24333 /*
24334  * XXX	Ick.  This type needs to be visible outside the above guard because
24335  * the proc structure is visible outside the _KERNEL | _KMEMUSER guard.
24336  * If we can make proc internals less visible, (which we obviously should)
24337  * then this can be invisible too.
24338  */
24339 typedef unsigned int model_t;
24340 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2
24341 
24342 
24343 
24344 
24345 
24346 /*
24347  * Data queue.
24348  *
24349  * NOTE: The *only* public fields are documented in queue(9S).
24350  *       Everything else is implementation-private.
24351  *
24352  * The locking rules for the queue_t structure are extremely subtle and vary
24353  * widely depending on the field in question.  As such, each field is
24354  * annotated according to the following legend:
24355  *
24356  *   Q9S: The field is documented in queue(9S) and may be accessed without
24357  *        locks by a STREAMS module when inside an entry point (e.g., put(9E)).
24358  *        However, no fields can be directly modified unless q_lock is held
24359  *        (which is not possible in a DDI compliant STREAMS module), with the
24360  *        following exceptions:
24361  *
24362  *	   - q_ptr: can be modified as per the rules of the STREAMS module.
24363  *		    The STREAMS framework ignores q_ptr and thus imposes *no*
24364  *		    locking rules on it.
24365  *         - q_qinfo: can be modified before qprocson().
24366  *
24367  *	   - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the
24368  *		    rules of the STREAMS module.  The STREAMS framework never
24369  *		    modifies these fields, and is tolerant of temporarily
24370  *		    stale field values.
24371  *
24372  *	  In general, the STREAMS framework employs one of the following
24373  *	  techniques to ensure STREAMS modules can safely access Q9S fields:
24374  *
24375  *	   - The field is only modified by the framework when the stream is
24376  *	     locked with strlock() (q_next).
24377  *
24378  *	   - The field is modified by the framework, but the modifies are
24379  *	     atomic, and temporarily stale values are harmless (q_count,
24380  *	     q_first, q_last).
24381  *
24382  *	   - The field is modified by the framework, but the field's visible
24383  *	     values are either constant or directly under the control
24384  *	     of the STREAMS module itself (q_flag).
24385  *
24386  *   QLK: The field must be accessed or modified under q_lock, except when
24387  *        the stream has been locked with strlock().  If multiple q_locks must
24388  *        be acquired, q_locks at higher addresses must be taken first.
24389  *
24390  *   STR: The field can be accessed without a lock, but must be modified under
24391  *	  strlock().
24392  *
24393  *   SQLK: The field must be accessed or modified under SQLOCK().
24394  *
24395  *   NOLK: The field can be accessed without a lock, but can only be modified
24396  *	   when the queue_t is not known to any other threads.
24397  *
24398  *   SVLK: The field must be accessed or modified under the service_queue lock.
24399  *         Note that service_lock must be taken after any needed q_locks,
24400  *	   and that no other lock should be taken while service_lock is held.
24401  *
24402  * In addition, it is always acceptable to modify a field that is not yet
24403  * known to any other threads -- and other special case exceptions exist in
24404  * the code.  Also, q_lock is used with q_wait to implement a stream head
24405  * monitor for reads and writes.
24406  */
24407 typedef struct queue {
24408  struct qinit *q_qinfo; /* Q9S: Q processing procedure  */
24409  struct msgb *q_first; /* Q9S: first message in Q	*/
24410  struct msgb *q_last; /* Q9S: last message in Q	*/
24411  struct queue *q_next; /* Q9S: next Q in stream	*/
24412  struct queue *q_link; /* SVLK: next Q for scheduling	*/
24413  void *q_ptr; /* Q9S: module-specific data	*/
24414  size_t q_count; /* Q9S: number of bytes on Q	*/
24415  uint_t q_flag; /* Q9S: Q state			*/
24416  ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */
24417  ssize_t q_maxpsz; /* Q9S: largest packet OK on Q	*/
24418  size_t q_hiwat; /* Q9S: Q high water mark	*/
24419  size_t q_lowat; /* Q9S: Q low water mark	*/
24420  struct qband *q_bandp; /* QLK: band flow information	*/
24421  kmutex_t q_lock; /* NOLK: structure lock		*/
24422  struct stdata *q_stream; /* NOLK: stream backpointer	*/
24423  struct syncq *q_syncq; /* NOLK: associated syncq 	*/
24424  unsigned char q_nband; /* QLK: number of bands		*/
24425  kcondvar_t q_wait; /* NOLK: read/write sleep CV	*/
24426  struct queue *q_nfsrv; /* STR: next Q with svc routine */
24427  ushort_t q_draining; /* QLK: Q is draining		*/
24428  short q_struiot; /* QLK: sync streams Q UIO mode	*/
24429  clock_t q_qtstamp; /* QLK: when Q was enabled	*/
24430  size_t q_mblkcnt; /* QLK: mblk count		*/
24431  uint_t q_syncqmsgs; /* QLK: syncq message count	*/
24432  size_t q_rwcnt; /* QLK: # threads in rwnext()	*/
24433  pri_t q_spri; /* QLK: Q scheduling priority	*/
24434 
24435  /*
24436 	 * Syncq scheduling
24437 	 */
24438  struct msgb *q_sqhead; /* QLK: first syncq message	*/
24439  struct msgb *q_sqtail; /* QLK: last syncq message 	*/
24440  struct queue *q_sqnext; /* SQLK: next Q on syncq list	*/
24441  struct queue *q_sqprev; /* SQLK: prev Q on syncq list 	*/
24442  uint_t q_sqflags; /* SQLK: syncq flags		*/
24443  clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */
24444 
24445  /*
24446 	 * NOLK: Reference to the queue's module's implementation
24447 	 * structure. This will be NULL for queues associated with drivers.
24448 	 */
24449  struct fmodsw_impl *q_fp;
24450 } queue_t;
24451 
24452 /*
24453  * Queue flags; unused flags not documented in queue(9S) can be recycled.
24454  */
24455 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24456 /*	UNUSED		0x00000200	   was QHLIST			*/
24457 /* 	UNUSED 		0x00000400	   was QUNSAFE			*/
24458 
24459 
24460 
24461 
24462 
24463 
24464      /* all MT type flags		*/
24465 
24466 
24467 
24468 
24469 
24470 
24471 /*	UNUSED		0x00400000	   was QHOT			*/
24472 /*	UNUSED		0x00800000	   was QNEXTHOT			*/
24473 /* 	UNUSED		0x01000000	   was _QNEXTLESS		*/
24474 
24475 
24476 
24477 
24478      /* direct interface to/from sockfs */
24479 
24480 /* queue sqflags (protected by SQLOCK). */
24481 
24482 
24483      /* This is also noted by the	*/
24484      /* q_draining field, but this one is */
24485      /* protected by SQLOCK */
24486 
24487 /*
24488  * Structure that describes the separate information
24489  * for each priority band in the queue.
24490  */
24491 typedef struct qband {
24492  struct qband *qb_next; /* next band's info */
24493  size_t qb_count; /* number of bytes in band */
24494  struct msgb *qb_first; /* beginning of band's data */
24495  struct msgb *qb_last; /* end of band's data */
24496  size_t qb_hiwat; /* high water mark for band */
24497  size_t qb_lowat; /* low water mark for band */
24498  uint_t qb_flag; /* see below */
24499  size_t qb_mblkcnt; /* mblk counter for runaway msgs */
24500 } qband_t;
24501 
24502 /*
24503  * qband flags
24504  */
24505 
24506 
24507 
24508 
24509 /*
24510  * Maximum number of bands.
24511  */
24512 
24513 
24514 /*
24515  * Fields that can be manipulated through strqset() and strqget().
24516  */
24517 typedef enum qfields {
24518  QHIWAT = 0, /* q_hiwat or qb_hiwat */
24519  QLOWAT = 1, /* q_lowat or qb_lowat */
24520  QMAXPSZ = 2, /* q_maxpsz */
24521  QMINPSZ = 3, /* q_minpsz */
24522  QCOUNT = 4, /* q_count or qb_count */
24523  QFIRST = 5, /* q_first or qb_first */
24524  QLAST = 6, /* q_last or qb_last */
24525  QFLAG = 7, /* q_flag or qb_flag */
24526  QSTRUIOT = 8, /* q_struiot */
24527  QBAD = 9
24528 } qfields_t;
24529 
24530 /*
24531  * Module information structure
24532  */
24533 struct module_info {
24534  ushort_t mi_idnum; /* module id number */
24535  char *mi_idname; /* module name */
24536  ssize_t mi_minpsz; /* min packet size accepted */
24537  ssize_t mi_maxpsz; /* max packet size accepted */
24538  size_t mi_hiwat; /* hi-water mark */
24539  size_t mi_lowat; /* lo-water mark */
24540 };
24541 
24542 /*
24543  * queue information structure (with Synchronous STREAMS extensions)
24544  */
24545 struct qinit {
24546  int (*qi_putp)(); /* put procedure */
24547  int (*qi_srvp)(); /* service procedure */
24548  int (*qi_qopen)(); /* called on startup */
24549  int (*qi_qclose)(); /* called on finish */
24550  int (*qi_qadmin)(); /* for future use */
24551  struct module_info *qi_minfo; /* module information structure */
24552  struct module_stat *qi_mstat; /* module statistics structure */
24553  int (*qi_rwp)(); /* r/w procedure */
24554  int (*qi_infop)(); /* information procedure */
24555  int qi_struiot; /* stream uio type for struio() */
24556 };
24557 
24558 /*
24559  * Values for qi_struiot and q_struiot:
24560  */
24561 
24562 
24563 
24564 
24565 /*
24566  * Streamtab (used in cdevsw and fmodsw to point to module or driver)
24567  */
24568 struct streamtab {
24569  struct qinit *st_rdinit;
24570  struct qinit *st_wrinit;
24571  struct qinit *st_muxrinit;
24572  struct qinit *st_muxwinit;
24573 };
24574 
24575 /*
24576  * Structure sent to mux drivers to indicate a link.
24577  */
24578 struct linkblk {
24579  queue_t *l_qtop; /* lowest level write queue of upper stream */
24580     /* (set to NULL for persistent links) */
24581  queue_t *l_qbot; /* highest level write queue of lower stream */
24582  int l_index; /* index for lower stream. */
24583 };
24584 
24585 /*
24586  * Esballoc data buffer freeing routine
24587  */
24588 typedef struct free_rtn {
24589  void (*free_func)();
24590  caddr_t free_arg;
24591 } frtn_t;
24592 
24593 /*
24594  * Data block descriptor
24595  *
24596  * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields,
24597  * as described in datab(9S).  Everything else is implementation-private.
24598  */
24599 
24600 
24601 
24602 typedef struct datab {
24603  frtn_t *db_frtnp;
24604  unsigned char *db_base;
24605  unsigned char *db_lim;
24606  unsigned char db_ref;
24607  unsigned char db_type;
24608  unsigned char db_flags;
24609  unsigned char db_struioflag;
24610  pid_t db_cpid; /* cached pid, needs verification */
24611  void *db_cache; /* kmem cache descriptor */
24612  struct msgb *db_mblk;
24613  void (*db_free)(struct msgb *, struct datab *);
24614  void (*db_lastfree)(struct msgb *, struct datab *);
24615  intptr_t db_cksumstart;
24616  intptr_t db_cksumend;
24617  intptr_t db_cksumstuff;
24618  union {
24619   double enforce_alignment;
24620   unsigned char data[8];
24621   struct {
24622    union {
24623     uint32_t u32;
24624     uint16_t u16;
24625    } cksum_val; /* used to store calculated cksum */
24626    uint16_t flags;
24627    uint16_t pad;
24628   } cksum;
24629   /*
24630 		 * Union used for future extensions (pointer to data ?).
24631 		 */
24632  } db_struioun;
24633  struct fthdr *db_fthdr;
24634  cred_t *db_credp; /* credential */
24635 } dblk_t;
24636 
24637 
24638 
24639 
24640 /*
24641  * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>).
24642  */
24643 
24644 
24645 
24646 /*
24647  * Used by GLDv2 to store the TCI information.
24648  */
24649 
24650 
24651 /*
24652  * Message block descriptor
24653  */
24654 typedef struct msgb {
24655  struct msgb *b_next;
24656  struct msgb *b_prev;
24657  struct msgb *b_cont;
24658  unsigned char *b_rptr;
24659  unsigned char *b_wptr;
24660  struct datab *b_datap;
24661  unsigned char b_band;
24662  unsigned char b_tag;
24663  unsigned short b_flag;
24664  queue_t *b_queue; /* for sync queues */
24665 } mblk_t;
24666 
24667 /*
24668  * bcache descriptor
24669  */
24670 typedef struct bcache {
24671  kmutex_t mutex;
24672  struct kmem_cache *buffer_cache;
24673  struct kmem_cache *dblk_cache;
24674  int alloc;
24675  int destroy;
24676  size_t size;
24677  uint_t align;
24678 } bcache_t;
24679 
24680 /*
24681  * db_flags values (all implementation private!)
24682  */
24683 
24684 
24685 
24686 
24687 /*
24688  * db_struioflag values:
24689  */
24690 
24691 
24692 
24693 
24694 
24695 
24696 /*
24697  * Message flags.  These are interpreted by the stream head.
24698  */
24699 
24700 
24701     /* write side of stream */
24702 
24703 /*	UNUSED		0x08	   was MSGNOGET (can be recycled) */
24704 
24705 
24706 
24707 
24708 /*
24709  * Streams message types.
24710  */
24711 
24712 /*
24713  * Data and protocol messages (regular and priority)
24714  */
24715 
24716 
24717 
24718 
24719 /*
24720  * Control messages (regular and priority)
24721  */
24722 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24723 /*
24724  * Control messages (high priority; go to head of queue)
24725  */
24726 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24727 /*
24728  * Queue message class definitions.
24729  */
24730 
24731 
24732 
24733 /*
24734  *  IOCTL structure - this structure is the format of the M_IOCTL message type.
24735  */
24736 # 488 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24737 struct iocblk {
24738  int ioc_cmd; /* ioctl command type */
24739  cred_t *ioc_cr; /* full credentials */
24740  uint_t ioc_id; /* ioctl id */
24741  size_t ioc_count; /* count of bytes in data field */
24742  int ioc_error; /* error code */
24743  int ioc_rval; /* return value  */
24744  int ioc_fill1;
24745  uint_t ioc_flag; /* see below */
24746  int ioc_filler[2]; /* reserved for future use */
24747 };
24748 
24749 
24750 typedef struct iocblk *IOCP;
24751 
24752 /* {ioc,cp}_flags values */
24753 
24754 
24755 
24756 
24757 
24758 
24759 
24760 /*
24761  *	Is the ioctl data formatted for our native model?
24762  */
24763 
24764 
24765 
24766 /*
24767  * structure for the M_COPYIN and M_COPYOUT message types.
24768  */
24769 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24770 struct copyreq {
24771  int cq_cmd; /* ioctl command (from ioc_cmd) */
24772  cred_t *cq_cr; /* full credentials */
24773  uint_t cq_id; /* ioctl id (from ioc_id) */
24774  caddr_t cq_addr; /* address to copy data to/from */
24775  size_t cq_size; /* number of bytes to copy */
24776  uint_t cq_flag; /* must be zero */
24777  mblk_t *cq_private; /* private state information */
24778  int cq_filler[4]; /* reserved for future use */
24779 };
24780 
24781 
24782 /*
24783  * structure for the M_IOCDATA message type.
24784  */
24785 # 557 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24786 struct copyresp {
24787  int cp_cmd; /* ioctl command (from ioc_cmd) */
24788  cred_t *cp_cr; /* full credentials */
24789  uint_t cp_id; /* ioctl id (from ioc_id) */
24790  caddr_t cp_rval; /* status of request: 0 -> success */
24791      /* 		non-zero -> failure */
24792  size_t cp_pad1;
24793  uint_t cp_pad2;
24794  mblk_t *cp_private; /* private state information */
24795  uint_t cp_flag; /* datamodel IOC_ flags; see above */
24796  int cp_filler[3];
24797 };
24798 
24799 
24800 /*
24801  * Since these structures are all intended to travel in the same message
24802  * at different stages of a STREAMS ioctl, this union is used to determine
24803  * the message size in strdoioctl().
24804  */
24805 union ioctypes {
24806  struct iocblk iocblk;
24807  struct copyreq copyreq;
24808  struct copyresp copyresp;
24809 };
24810 
24811 /*
24812  * Options structure for M_SETOPTS message.  This is sent upstream
24813  * by a module or driver to set stream head options.
24814  */
24815 struct stroptions {
24816  uint_t so_flags; /* options to set */
24817  short so_readopt; /* read option */
24818  ushort_t so_wroff; /* write offset */
24819  ssize_t so_minpsz; /* minimum read packet size */
24820  ssize_t so_maxpsz; /* maximum read packet size */
24821  size_t so_hiwat; /* read queue high water mark */
24822  size_t so_lowat; /* read queue low water mark */
24823  unsigned char so_band; /* band for water marks */
24824  ushort_t so_erropt; /* error option */
24825  ssize_t so_maxblk; /* maximum message block size */
24826  ushort_t so_copyopt; /* copy options (see stropts.h) */
24827  ushort_t so_tail; /* space available at the end */
24828 };
24829 
24830 /* flags for stream options set message */
24831 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h"
24832 /*
24833  * Miscellaneous parameters and flags.
24834  */
24835 
24836 /*
24837  * Values for stream flag in open to indicate module open, clone open,
24838  * and the return value for failure.
24839  */
24840 
24841 
24842 
24843 
24844 /*
24845  * Priority definitions for block allocation.
24846  */
24847 
24848 
24849 
24850 
24851 /*
24852  * Value for packet size that denotes infinity
24853  */
24854 
24855 
24856 /*
24857  * Flags for flushq()
24858  */
24859 
24860 
24861 
24862 /*
24863  * Flag for transparent ioctls
24864  */
24865 
24866 
24867 /*
24868  * Stream head default high/low water marks
24869  */
24870 
24871 
24872 
24873 /*
24874  * qwriter perimeter types
24875  */
24876 
24877 
24878 
24879 /*
24880  * Definitions of Streams macros and function interfaces.
24881  */
24882 
24883 /*
24884  * canenable - check if queue can be enabled by putq().
24885  */
24886 
24887 
24888 /*
24889  * Test if data block type is one of the data messages (i.e. not a control
24890  * message).
24891  */
24892 
24893 
24894 
24895 
24896 
24897 
24898 
24899 /*
24900  * Extract queue class of message block.
24901  */
24902 
24903 
24904 /*
24905  * Align address on next lower word boundary.
24906  */
24907 
24908 
24909 /*
24910  * Find the max size of data block.
24911  */
24912 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
24913 
24914 /*
24915  * Symbols such as htonl() are required to be exposed through this file,
24916  * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h>
24917  */
24918 
24919 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1
24920 /*
24921  * CDDL HEADER START
24922  *
24923  * The contents of this file are subject to the terms of the
24924  * Common Development and Distribution License (the "License").
24925  * You may not use this file except in compliance with the License.
24926  *
24927  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24928  * or http://www.opensolaris.org/os/licensing.
24929  * See the License for the specific language governing permissions
24930  * and limitations under the License.
24931  *
24932  * When distributing Covered Code, include this CDDL HEADER in each
24933  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24934  * If applicable, add the following below this CDDL HEADER, with the
24935  * fields enclosed by brackets "[]" replaced with your own identifying
24936  * information: Portions Copyright [yyyy] [name of copyright owner]
24937  *
24938  * CDDL HEADER END
24939  */
24940 
24941 /*
24942  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24943  * Use is subject to license terms.
24944  */
24945 
24946 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
24947 /*	  All Rights Reserved  	*/
24948 
24949 /*
24950  * University Copyright- Copyright (c) 1982, 1986, 1988
24951  * The Regents of the University of California
24952  * All Rights Reserved
24953  *
24954  * University Acknowledgment- Portions of this document are derived from
24955  * software developed by the University of California, Berkeley, and its
24956  * contributors.
24957  */
24958 
24959 
24960 
24961 
24962 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
24963 /*
24964  * CDDL HEADER START
24965  *
24966  * The contents of this file are subject to the terms of the
24967  * Common Development and Distribution License (the "License").
24968  * You may not use this file except in compliance with the License.
24969  *
24970  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
24971  * or http://www.opensolaris.org/os/licensing.
24972  * See the License for the specific language governing permissions
24973  * and limitations under the License.
24974  *
24975  *
24976  * When distributing Covered Code, include this CDDL HEADER in each
24977  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
24978  * If applicable, add the following below this CDDL HEADER, with the
24979  * fields enclosed by brackets "[]" replaced with your own identifying
24980  * information: Portions Copyright [yyyy] [name of copyright owner]
24981  *
24982  * CDDL HEADER END
24983  */
24984 
24985 /*
24986  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24987  * Use is subject to license terms.
24988  * Copyright 2016 Joyent, Inc.
24989  */
24990 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
24991 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
24992 /*
24993  * CDDL HEADER START
24994  *
24995  * The contents of this file are subject to the terms of the
24996  * Common Development and Distribution License, Version 1.0 only
24997  * (the "License").  You may not use this file except in compliance
24998  * with the License.
24999  *
25000  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25001  * or http://www.opensolaris.org/os/licensing.
25002  * See the License for the specific language governing permissions
25003  * and limitations under the License.
25004  *
25005  * When distributing Covered Code, include this CDDL HEADER in each
25006  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25007  * If applicable, add the following below this CDDL HEADER, with the
25008  * fields enclosed by brackets "[]" replaced with your own identifying
25009  * information: Portions Copyright [yyyy] [name of copyright owner]
25010  *
25011  * CDDL HEADER END
25012  */
25013 /*
25014  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
25015  *
25016  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
25017  * Use is subject to license terms.
25018  */
25019 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2
25020 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
25021 /*
25022  * macros for conversion between host and (internet) network byte order
25023  */
25024 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
25025 typedef uint16_t in_port_t;
25026 
25027 
25028 
25029 
25030 typedef uint32_t in_addr_t;
25031 
25032 
25033 
25034 extern uint32_t htonl(uint32_t);
25035 extern uint16_t htons(uint16_t);
25036 extern uint32_t ntohl(uint32_t);
25037 extern uint16_t ntohs(uint16_t);
25038 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
25039 extern uint64_t htonll(uint64_t);
25040 extern uint64_t ntohll(uint64_t);
25041 
25042 
25043 
25044 
25045 
25046 
25047 /*
25048  * Macros to reverse byte order
25049  */
25050 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
25051 /*
25052  * Macros to convert from a specific byte order to/from native byte order
25053  */
25054 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
25055 /*
25056  * Macros to read unaligned values from a specific byte order to
25057  * native byte order
25058  */
25059 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h"
25060 /*
25061  * Macros to write unaligned values from native byte order to a specific byte
25062  * order.
25063  */
25064 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2
25065 
25066 
25067 
25068 
25069 
25070 
25071 
25072 /*
25073  * Note: IPv4 address data structures usage conventions.
25074  * The "in_addr_t" type below (required by Unix standards)
25075  * is NOT a typedef of "struct in_addr" and violates the usual
25076  * conventions where "struct <name>" and <name>_t are corresponding
25077  * typedefs.
25078  * To minimize confusion, kernel data structures/usage prefers use
25079  * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t"
25080  * The user level APIs continue to follow the historic popular
25081  * practice of using "struct in_addr".
25082  */
25083 
25084 
25085 
25086 
25087 
25088 
25089 
25090 typedef uint32_t ipaddr_t;
25091 
25092 
25093 
25094 
25095 struct in6_addr {
25096  union {
25097   /*
25098 		 * Note: Static initalizers of "union" type assume
25099 		 * the constant on the RHS is the type of the first member
25100 		 * of union.
25101 		 * To make static initializers (and efficient usage) work,
25102 		 * the order of members exposed to user and kernel view of
25103 		 * this data structure is different.
25104 		 * User environment sees specified uint8_t type as first
25105 		 * member whereas kernel sees most efficient type as
25106 		 * first member.
25107 		 */
25108 
25109 
25110 
25111 
25112   uint8_t _S6_u8[16]; /* IPv6 address */
25113   uint32_t _S6_u32[4]; /* IPv6 address */
25114 
25115   uint32_t __S6_align; /* Align on 32 bit boundary */
25116  } _S6_un;
25117 };
25118 
25119 
25120 
25121 
25122 
25123 
25124 
25125 typedef struct in6_addr in6_addr_t;
25126 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25127 /*
25128  * Protocols
25129  *
25130  * Some of these constant names are copied for the DTrace IP provider in
25131  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
25132  * in sync.
25133  */
25134 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25135       /* Transmission Protocol */
25136 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25137 /*
25138  * Port/socket numbers: network standard functions
25139  *
25140  * Entries should exist here for each port number compiled into an ON
25141  * component, such as snoop.
25142  */
25143 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25144 /*
25145  * Port/socket numbers: host specific functions
25146  */
25147 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25148 /*
25149  * Internet Key Exchange (IKE) ports
25150  */
25151 
25152 
25153 
25154 /*
25155  * UNIX TCP sockets
25156  */
25157 
25158 
25159 
25160 
25161 
25162 
25163 /*
25164  * UNIX UDP sockets
25165  */
25166 
25167 
25168 
25169 
25170 
25171 
25172 
25173 /*
25174  * DHCPv6 UDP ports
25175  */
25176 
25177 
25178 
25179 
25180 
25181 /*
25182  * Ports < IPPORT_RESERVED are reserved for
25183  * privileged processes (e.g. root).
25184  * Ports > IPPORT_USERRESERVED are reserved
25185  * for servers, not necessarily privileged.
25186  */
25187 
25188 
25189 
25190 /*
25191  * Link numbers
25192  */
25193 
25194 
25195 
25196 
25197 /*
25198  * IPv4 Internet address
25199  *	This definition contains obsolete fields for compatibility
25200  *	with SunOS 3.x and 4.2bsd.  The presence of subnets renders
25201  *	divisions into fixed fields misleading at best.  New code
25202  *	should use only the s_addr field.
25203  */
25204 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25205 struct in_addr {
25206  union {
25207   struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b;
25208   struct { uint16_t s_w1, s_w2; } S_un_w;
25209 
25210   uint32_t S_addr;
25211 
25212 
25213 
25214  } S_un;
25215 
25216 
25217 
25218 
25219 
25220 
25221 };
25222 
25223 /*
25224  * Definitions of bits in internet address integers.
25225  * On subnets, the decomposition of addresses to host and net parts
25226  * is done according to subnet mask, not the masks here.
25227  *
25228  * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB,
25229  * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto
25230  * obsolete". IN_MULTICAST macro should be used to test if a address
25231  * is a multicast address.
25232  */
25233 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25234 /*
25235  * We have removed CLASS E checks from the kernel
25236  * But we preserve these defines for userland in order
25237  * to avoid compile  breakage of some 3rd party piece of software
25238  */
25239 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25240 /* Scoped IPv4 prefixes (in host byte-order) */
25241 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25242 /* RFC 3927 IPv4 link local address (i in host byte-order) */
25243 
25244 
25245 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */
25246 
25247 
25248 
25249 
25250 
25251 
25252 /*
25253  * Define a macro to stuff the loopback address into an Internet address
25254  */
25255 
25256 
25257 
25258 
25259 
25260 
25261 /*
25262  * IPv4 Socket address.
25263  */
25264 struct sockaddr_in {
25265  sa_family_t sin_family;
25266  in_port_t sin_port;
25267  struct in_addr sin_addr;
25268 
25269  char sin_zero[8];
25270 
25271 
25272 
25273 };
25274 
25275 
25276 /*
25277  * IPv6 socket address.
25278  */
25279 struct sockaddr_in6 {
25280  sa_family_t sin6_family;
25281  in_port_t sin6_port;
25282  uint32_t sin6_flowinfo;
25283  struct in6_addr sin6_addr;
25284  uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */
25285  uint32_t __sin6_src_id; /* Impl. specific - UDP replies */
25286 };
25287 
25288 /*
25289  * Macros for accessing the traffic class and flow label fields from
25290  * sin6_flowinfo.
25291  * These are designed to be applied to a 32-bit value.
25292  */
25293 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25294 /* masks */
25295 
25296 
25297 
25298 
25299 
25300 /*
25301  * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for
25302  * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t)
25303  * only. They need to be different for User/Kernel versions because union
25304  * component data structure is defined differently (it is identical at
25305  * binary representation level).
25306  *
25307  * const struct in6_addr IN6ADDR_ANY_INIT;
25308  * const struct in6_addr IN6ADDR_LOOPBACK_INIT;
25309  */
25310 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25311 /*
25312  * RFC 2553 specifies the following macros. Their type is defined
25313  * as "int" in the RFC but they only have boolean significance
25314  * (zero or non-zero). For the purposes of our comment notation,
25315  * we assume a hypothetical type "bool" defined as follows to
25316  * write the prototypes assumed for macros in our comments better.
25317  *
25318  * typedef int bool;
25319  */
25320 
25321 /*
25322  * IN6 macros used to test for special IPv6 addresses
25323  * (Mostly from spec)
25324  *
25325  * bool  IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
25326  * bool  IN6_IS_ADDR_LOOPBACK    (const struct in6_addr *);
25327  * bool  IN6_IS_ADDR_MULTICAST   (const struct in6_addr *);
25328  * bool  IN6_IS_ADDR_LINKLOCAL   (const struct in6_addr *);
25329  * bool  IN6_IS_ADDR_SITELOCAL   (const struct in6_addr *);
25330  * bool  IN6_IS_ADDR_V4MAPPED    (const struct in6_addr *);
25331  * bool  IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553
25332  * bool  IN6_IS_ADDR_V4COMPAT    (const struct in6_addr *);
25333  * bool  IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553
25334  * bool  IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
25335  * bool  IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
25336  * bool  IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
25337  * bool  IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
25338  * bool  IN6_IS_ADDR_MC_GLOBAL   (const struct in6_addr *);
25339  * bool  IN6_IS_ADDR_6TO4	 (const struct in6_addr *); -- Not from RFC2553
25340  * bool  IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *,
25341  *	     const struct in6_addr *);			    -- Not from RFC2553
25342  * bool  IN6_IS_ADDR_LINKSCOPE	 (const struct in6addr  *); -- Not from RFC2553
25343  */
25344 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25345 /*
25346  * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY
25347  * Note: This macro is currently NOT defined in RFC2553 specification
25348  * and not a standard macro that portable applications should use.
25349  */
25350 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25351 /* Exclude loopback and unspecified address */
25352 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25353 /*
25354  * Note:
25355  * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553
25356  * specification and not a standard macro that portable applications
25357  * should use.
25358  */
25359 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25360 /*
25361  * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or
25362  * RFC, and shouldn't be used by portable applications.  It is used to see
25363  * if an address is a solicited-node multicast address, which is prefixed
25364  * with ff02:0:0:0:0:1:ff00::/104.
25365  */
25366 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25367 /*
25368  * Macros to a) test for 6to4 IPv6 address, and b) to test if two
25369  * 6to4 addresses have the same /48 prefix, and, hence, are from the
25370  * same 6to4 site.
25371  */
25372 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25373 /*
25374  * IN6_IS_ADDR_LINKSCOPE
25375  * Identifies an address as being either link-local, link-local multicast or
25376  * node-local multicast.  All types of addresses are considered to be unique
25377  * within the scope of a given link.
25378  */
25379 
25380 
25381 
25382 
25383 /*
25384  * Useful utility macros for operations with IPv6 addresses
25385  * Note: These macros are NOT defined in the RFC2553 or any other
25386  * standard specification and are not standard macros that portable
25387  * applications should use.
25388  */
25389 
25390 /*
25391  * IN6_V4MAPPED_TO_INADDR
25392  * IN6_V4MAPPED_TO_IPADDR
25393  *	Assign a IPv4-Mapped IPv6 address to an IPv4 address.
25394  *	Note: These macros are NOT defined in RFC2553 or any other standard
25395  *	specification and are not macros that portable applications should
25396  *	use.
25397  *
25398  * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4);
25399  * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4);
25400  *
25401  */
25402 
25403 
25404 
25405 
25406 
25407 /*
25408  * IN6_INADDR_TO_V4MAPPED
25409  * IN6_IPADDR_TO_V4MAPPED
25410  *	Assign a IPv4 address address to an IPv6 address as a IPv4-mapped
25411  *	address.
25412  *	Note: These macros are NOT defined in RFC2553 or any other standard
25413  *	specification and are not macros that portable applications should
25414  *	use.
25415  *
25416  * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6);
25417  * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6);
25418  *
25419  */
25420 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25421 /*
25422  * IN6_6TO4_TO_V4ADDR
25423  *	Extract the embedded IPv4 address from the prefix to a 6to4 IPv6
25424  *      address.
25425  *	Note: This macro is NOT defined in RFC2553 or any other standard
25426  *	specification and is not a macro that portable applications should
25427  *	use.
25428  *	Note: we don't use the IPADDR form of the macro because we need
25429  *	to do a bytewise copy; the V4ADDR in the 6to4 address is not
25430  *	32-bit aligned.
25431  *
25432  * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4);
25433  *
25434  */
25435 
25436 
25437 
25438 
25439 
25440 
25441 /*
25442  * IN6_V4ADDR_TO_6TO4
25443  *	Given an IPv4 address and an IPv6 address for output, a 6to4 address
25444  *	will be created from the IPv4 Address.
25445  *	Note:  This method for creating 6to4 addresses is not standardized
25446  *	outside of Solaris.  The newly created 6to4 address will be of the form
25447  *	2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and
25448  *	HOSTID will equal 1.
25449  *
25450  * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6)
25451  *
25452  */
25453 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25454 /*
25455  * IN6_ARE_ADDR_EQUAL (defined in RFC2292)
25456  *	 Compares if IPv6 addresses are equal.
25457  * Note: Compares in order of high likelyhood of a miss so we minimize
25458  * compares. (Current heuristic order, compare in reverse order of
25459  * uint32_t units)
25460  *
25461  * bool  IN6_ARE_ADDR_EQUAL(const struct in6_addr *,
25462  *			    const struct in6_addr *);
25463  */
25464 
25465 
25466 
25467 
25468 
25469 
25470 /*
25471  * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs)
25472  *	Compares if prefixed parts of IPv6 addresses are equal.
25473  *
25474  * uint32_t IN6_MASK_FROM_PREFIX(int, int);
25475  * bool     IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *,
25476  *				       const struct in6_addr *,
25477  *				       int);
25478  */
25479 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25480 /*
25481  * Options for use with [gs]etsockopt at the IP level.
25482  *
25483  * Note: Some of the IP_ namespace has conflict with and
25484  * and is exposed through <xti.h>. (It also requires exposing
25485  * options not implemented). The options with potential
25486  * for conflicts use #ifndef guards.
25487  */
25488 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25489 /*
25490  * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in
25491  * is used to differentiate b/w the two.
25492  */
25493 
25494 
25495 
25496 
25497 
25498 /*
25499  * Different preferences that can be requested from IPSEC protocols.
25500  */
25501 
25502 
25503 
25504 
25505 /*
25506  * This can be used with the setsockopt() call to set per socket security
25507  * options. When the application uses per-socket API, we will reflect
25508  * the request on both outbound and inbound packets.
25509  */
25510 
25511 typedef struct ipsec_req {
25512  uint_t ipsr_ah_req; /* AH request */
25513  uint_t ipsr_esp_req; /* ESP request */
25514  uint_t ipsr_self_encap_req; /* Self-Encap request */
25515  uint8_t ipsr_auth_alg; /* Auth algs for AH */
25516  uint8_t ipsr_esp_alg; /* Encr algs for ESP */
25517  uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */
25518 } ipsec_req_t;
25519 
25520 /*
25521  * MCAST_* options are protocol-independent.  The actual definitions
25522  * are with the v6 options below; this comment is here to note the
25523  * namespace usage.
25524  *
25525  * #define	MCAST_JOIN_GROUP	0x29
25526  * #define	MCAST_LEAVE_GROUP	0x2a
25527  * #define	MCAST_BLOCK_SOURCE	0x2b
25528  * #define	MCAST_UNBLOCK_SOURCE	0x2c
25529  * #define	MCAST_JOIN_SOURCE_GROUP	0x2d
25530  * #define	MCAST_LEAVE_SOURCE_GROUP 0x2e
25531  */
25532 
25533 
25534 /*
25535  * SunOS private (potentially not portable) IP_ option names
25536  */
25537 
25538 
25539 
25540 /* can be reused		0x44 */
25541 
25542 
25543 /*
25544  * Option values and names (when !_XPG5) shared with <xti_inet.h>
25545  */
25546 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25547 /*
25548  * The following option values are reserved by <xti_inet.h>
25549  *
25550  * T_IP_OPTIONS	0x107	 -  IP per-packet options
25551  * T_IP_TOS	0x108	 -  IP per packet type of service
25552  */
25553 
25554 /*
25555  * Default value constants for multicast attributes controlled by
25556  * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options.
25557  */
25558 
25559 
25560 
25561 
25562 /*
25563  * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
25564  */
25565 struct ip_mreq {
25566  struct in_addr imr_multiaddr; /* IP multicast address of group */
25567  struct in_addr imr_interface; /* local IP address of interface */
25568 };
25569 
25570 /*
25571  * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE,
25572  * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP.
25573  */
25574 struct ip_mreq_source {
25575  struct in_addr imr_multiaddr; /* IP address of group */
25576  struct in_addr imr_sourceaddr; /* IP address of source */
25577  struct in_addr imr_interface; /* IP address of interface */
25578 };
25579 
25580 /*
25581  * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on
25582  * IPv6 addresses.
25583  */
25584 struct ipv6_mreq {
25585  struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */
25586  unsigned int ipv6mr_interface; /* interface index */
25587 };
25588 
25589 /*
25590  * Use #pragma pack() construct to force 32-bit alignment on amd64.
25591  * This is needed to keep the structure size and offsets consistent
25592  * between a 32-bit app and the 64-bit amd64 kernel in structures
25593  * where 64-bit alignment would create gaps (in this case, structures
25594  * which have a uint32_t followed by a struct sockaddr_storage).
25595  */
25596 
25597 
25598 
25599 
25600 /*
25601  * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP.
25602  */
25603 struct group_req {
25604  uint32_t gr_interface; /* interface index */
25605  struct sockaddr_storage gr_group; /* group address */
25606 };
25607 
25608 /*
25609  * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE,
25610  * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP.
25611  */
25612 struct group_source_req {
25613  uint32_t gsr_interface; /* interface index */
25614  struct sockaddr_storage gsr_group; /* group address */
25615  struct sockaddr_storage gsr_source; /* source address */
25616 };
25617 
25618 /*
25619  * Argument for SIOC[GS]MSFILTER ioctls
25620  */
25621 struct group_filter {
25622  uint32_t gf_interface; /* interface index */
25623  struct sockaddr_storage gf_group; /* multicast address */
25624  uint32_t gf_fmode; /* filter mode */
25625  uint32_t gf_numsrc; /* number of sources */
25626  struct sockaddr_storage gf_slist[1]; /* source address */
25627 };
25628 # 1078 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25629 /*
25630  * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific)
25631  */
25632 struct ip_msfilter {
25633  struct in_addr imsf_multiaddr; /* IP multicast address of group */
25634  struct in_addr imsf_interface; /* local IP address of interface */
25635  uint32_t imsf_fmode; /* filter mode */
25636  uint32_t imsf_numsrc; /* number of sources in src_list */
25637  struct in_addr imsf_slist[1]; /* start of source list */
25638 };
25639 
25640 
25641 
25642 
25643 
25644 /*
25645  * Multicast source filter manipulation functions in libsocket;
25646  * defined in RFC 3678.
25647  */
25648 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t,
25649    uint_t, struct sockaddr_storage *);
25650 
25651 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *,
25652    uint_t *, struct sockaddr_storage *);
25653 
25654 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
25655    uint32_t, struct in_addr *);
25656 
25657 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
25658    uint32_t *, struct in_addr *);
25659 
25660 /*
25661  * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter()
25662  */
25663 
25664 
25665 
25666 /*
25667  * Argument struct for IP_PKTINFO option
25668  */
25669 typedef struct in_pktinfo {
25670  unsigned int ipi_ifindex; /* send/recv interface index */
25671  struct in_addr ipi_spec_dst; /* matched source address */
25672  struct in_addr ipi_addr; /* src/dst address in IP hdr */
25673 } in_pktinfo_t;
25674 
25675 /*
25676  * Argument struct for IPV6_PKTINFO option
25677  */
25678 struct in6_pktinfo {
25679  struct in6_addr ipi6_addr; /* src/dst IPv6 address */
25680  unsigned int ipi6_ifindex; /* send/recv interface index */
25681 };
25682 
25683 /*
25684  * Argument struct for IPV6_MTUINFO option
25685  */
25686 struct ip6_mtuinfo {
25687  struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
25688  uint32_t ip6m_mtu; /* path MTU in host byte order */
25689 };
25690 
25691 /*
25692  * IPv6 routing header types
25693  */
25694 
25695 
25696 extern socklen_t inet6_rth_space(int type, int segments);
25697 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments);
25698 extern int inet6_rth_add(void *bp, const struct in6_addr *addr);
25699 extern int inet6_rth_reverse(const void *in, void *out);
25700 extern int inet6_rth_segments(const void *bp);
25701 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index);
25702 
25703 extern int inet6_opt_init(void *extbuf, socklen_t extlen);
25704 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset,
25705  uint8_t type, socklen_t len, uint_t align, void **databufp);
25706 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset);
25707 extern int inet6_opt_set_val(void *databuf, int offset, void *val,
25708  socklen_t vallen);
25709 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset,
25710  uint8_t *typep, socklen_t *lenp, void **databufp);
25711 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset,
25712  uint8_t type, socklen_t *lenp, void **databufp);
25713 extern int inet6_opt_get_val(void *databuf, int offset, void *val,
25714  socklen_t vallen);
25715 
25716 
25717 /*
25718  * Argument structure for IP_ADD_PROXY_ADDR.
25719  * Note that this is an unstable, experimental interface. It may change
25720  * later. Don't use it unless you know what it is.
25721  */
25722 typedef struct {
25723  struct in_addr in_prefix_addr;
25724  unsigned int in_prefix_len;
25725 } in_prefix_t;
25726 
25727 
25728 
25729 /*
25730  * IPv6 options
25731  */
25732 
25733      /* packets. */
25734      /* argument type: uint_t */
25735 
25736      /* multicast packets. */
25737      /* argument type: struct in6_addr */
25738 
25739      /* multicast packets. */
25740      /* argument type: uint_t */
25741 
25742      /* multicast packets on same socket. */
25743      /* argument type: uint_t */
25744 
25745      /* argument type: struct ipv6_mreq */
25746 
25747      /* argument type: struct ipv6_mreq */
25748 
25749 /*
25750  * Other XPG6 constants.
25751  */
25752 
25753      /* decimal notation. */
25754 
25755      /* standard colon-hex notation. */
25756 
25757 
25758 
25759 
25760 
25761 /*
25762  * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept
25763  * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP
25764  * and IPV6_LEAVE_GROUP respectively.
25765  */
25766 
25767      /* argument type: struct ipv6_mreq */
25768 
25769      /* argument type: struct ipv6_mreq */
25770 
25771 
25772      /* arg type: "struct in6_pktingo" - */
25773 
25774 
25775 
25776 
25777      /* the routing header */
25778 
25779 
25780      /* the routing header */
25781 
25782 
25783 
25784 
25785 /*
25786  * This options exists for backwards compatability and should no longer be
25787  * used.  Use IPV6_RECVDSTOPTS instead.
25788  */
25789 
25790 
25791 
25792 
25793 /*
25794  * enable/disable IPV6_RTHDRDSTOPTS.  Now obsolete.  IPV6_RECVDSTOPTS enables
25795  * the receipt of both headers.
25796  */
25797 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25798 /*
25799  * enable/disable receipt of both both IPV6_DSTOPTS headers.
25800  */
25801 
25802 
25803 /*
25804  * protocol-independent multicast membership options.
25805  */
25806 
25807 
25808 
25809 
25810 
25811 
25812 
25813 /* 32Bit field for IPV6_SRC_PREFERENCES */
25814 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h"
25815 /*
25816  * SunOS private (potentially not portable) IPV6_ option names
25817  */
25818 
25819 
25820      /* unspecified (all zeros) */
25821 
25822 /*
25823  * Miscellaneous IPv6 constants.
25824  */
25825 
25826 
25827 
25828 
25829 /*
25830  * Extern declarations for pre-defined global const variables
25831  */
25832 
25833 
25834 
25835 extern const struct in6_addr in6addr_any;
25836 extern const struct in6_addr in6addr_loopback;
25837 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2
25838 
25839 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1
25840 /*
25841  * CDDL HEADER START
25842  *
25843  * The contents of this file are subject to the terms of the
25844  * Common Development and Distribution License (the "License").
25845  * You may not use this file except in compliance with the License.
25846  *
25847  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25848  * or http://www.opensolaris.org/os/licensing.
25849  * See the License for the specific language governing permissions
25850  * and limitations under the License.
25851  *
25852  * When distributing Covered Code, include this CDDL HEADER in each
25853  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25854  * If applicable, add the following below this CDDL HEADER, with the
25855  * fields enclosed by brackets "[]" replaced with your own identifying
25856  * information: Portions Copyright [yyyy] [name of copyright owner]
25857  *
25858  * CDDL HEADER END
25859  */
25860 /*
25861  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
25862  *
25863  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
25864  */
25865 
25866 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
25867 /*	  All Rights Reserved	*/
25868 
25869 /*
25870  * University Copyright- Copyright (c) 1982, 1986, 1988
25871  * The Regents of the University of California
25872  * All Rights Reserved
25873  *
25874  * University Acknowledgment- Portions of this document are derived from
25875  * software developed by the University of California, Berkeley, and its
25876  * contributors.
25877  */
25878 
25879 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */
25880 
25881 
25882 
25883 
25884 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
25885 /*
25886  * CDDL HEADER START
25887  *
25888  * The contents of this file are subject to the terms of the
25889  * Common Development and Distribution License (the "License").
25890  * You may not use this file except in compliance with the License.
25891  *
25892  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25893  * or http://www.opensolaris.org/os/licensing.
25894  * See the License for the specific language governing permissions
25895  * and limitations under the License.
25896  *
25897  * When distributing Covered Code, include this CDDL HEADER in each
25898  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25899  * If applicable, add the following below this CDDL HEADER, with the
25900  * fields enclosed by brackets "[]" replaced with your own identifying
25901  * information: Portions Copyright [yyyy] [name of copyright owner]
25902  *
25903  * CDDL HEADER END
25904  */
25905 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
25906 /*	  All Rights Reserved  	*/
25907 
25908 
25909 /*
25910  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
25911  * Use is subject to license terms.
25912  *
25913  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
25914  * Copyright 2016 Joyent, Inc.
25915  */
25916 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
25917 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1
25918 /*
25919  * CDDL HEADER START
25920  *
25921  * The contents of this file are subject to the terms of the
25922  * Common Development and Distribution License (the "License").
25923  * You may not use this file except in compliance with the License.
25924  *
25925  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25926  * or http://www.opensolaris.org/os/licensing.
25927  * See the License for the specific language governing permissions
25928  * and limitations under the License.
25929  *
25930  * When distributing Covered Code, include this CDDL HEADER in each
25931  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25932  * If applicable, add the following below this CDDL HEADER, with the
25933  * fields enclosed by brackets "[]" replaced with your own identifying
25934  * information: Portions Copyright [yyyy] [name of copyright owner]
25935  *
25936  * CDDL HEADER END
25937  */
25938 /*
25939  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
25940  *
25941  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
25942  * Use is subject to license terms.
25943  *
25944  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
25945  * Copyright (c) 2015, Joyent, Inc.  All rights reserved.
25946  */
25947 
25948 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
25949 /*	  All Rights Reserved  	*/
25950 
25951 /*
25952  * University Copyright- Copyright (c) 1982, 1986, 1988
25953  * The Regents of the University of California
25954  * All Rights Reserved
25955  *
25956  * University Acknowledgment- Portions of this document are derived from
25957  * software developed by the University of California, Berkeley, and its
25958  * contributors.
25959  */
25960 
25961 
25962 
25963 
25964 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
25965 /*
25966  * CDDL HEADER START
25967  *
25968  * The contents of this file are subject to the terms of the
25969  * Common Development and Distribution License (the "License").
25970  * You may not use this file except in compliance with the License.
25971  *
25972  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25973  * or http://www.opensolaris.org/os/licensing.
25974  * See the License for the specific language governing permissions
25975  * and limitations under the License.
25976  *
25977  * When distributing Covered Code, include this CDDL HEADER in each
25978  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25979  * If applicable, add the following below this CDDL HEADER, with the
25980  * fields enclosed by brackets "[]" replaced with your own identifying
25981  * information: Portions Copyright [yyyy] [name of copyright owner]
25982  *
25983  * CDDL HEADER END
25984  */
25985 
25986 /*
25987  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
25988  * Copyright 2016 Joyent, Inc.
25989  *
25990  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
25991  * Use is subject to license terms.
25992  */
25993 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
25994 
25995 
25996 
25997 
25998 
25999 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
26000 /*
26001  * CDDL HEADER START
26002  *
26003  * The contents of this file are subject to the terms of the
26004  * Common Development and Distribution License (the "License").
26005  * You may not use this file except in compliance with the License.
26006  *
26007  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26008  * or http://www.opensolaris.org/os/licensing.
26009  * See the License for the specific language governing permissions
26010  * and limitations under the License.
26011  *
26012  * When distributing Covered Code, include this CDDL HEADER in each
26013  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26014  * If applicable, add the following below this CDDL HEADER, with the
26015  * fields enclosed by brackets "[]" replaced with your own identifying
26016  * information: Portions Copyright [yyyy] [name of copyright owner]
26017  *
26018  * CDDL HEADER END
26019  */
26020 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
26021 /*	  All Rights Reserved  	*/
26022 
26023 
26024 /*
26025  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26026  * Use is subject to license terms.
26027  *
26028  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26029  * Copyright 2016 Joyent, Inc.
26030  */
26031 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2
26032 
26033 /*
26034  * I/O parameter information.  A uio structure describes the I/O which
26035  * is to be performed by an operation.  Typically the data movement will
26036  * be performed by a routine such as uiomove(), which updates the uio
26037  * structure to reflect what was done.
26038  */
26039 
26040 
26041 
26042 
26043 
26044 
26045 
26046 typedef struct iovec {
26047  caddr_t iov_base;
26048 
26049 
26050 
26051  long iov_len;
26052 
26053 } iovec_t;
26054 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26055 /*
26056  * Segment flag values.
26057  */
26058 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t;
26059 
26060 typedef struct uio {
26061  iovec_t *uio_iov; /* pointer to array of iovecs */
26062  int uio_iovcnt; /* number of iovecs */
26063  lloff_t _uio_offset; /* file offset */
26064  uio_seg_t uio_segflg; /* address space (kernel or user) */
26065  uint16_t uio_fmode; /* file mode flags */
26066  uint16_t uio_extflg; /* extended flags */
26067  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
26068  ssize_t uio_resid; /* residual count */
26069 } uio_t;
26070 
26071 /*
26072  * Extended uio_t uioa_t used for asynchronous uio.
26073  *
26074  * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c"
26075  *	 as there isn't a formal definition of IOV_MAX for the kernel.
26076  */
26077 
26078 
26079 typedef struct uioa_page_s { /* locked uio_iov state */
26080  int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */
26081  void **uioa_ppp; /* page_t or pfn_t arrary */
26082  caddr_t uioa_base; /* address base */
26083  size_t uioa_len; /* span length */
26084 } uioa_page_t;
26085 
26086 typedef struct uioa_s {
26087  iovec_t *uio_iov; /* pointer to array of iovecs */
26088  int uio_iovcnt; /* number of iovecs */
26089  lloff_t _uio_offset; /* file offset */
26090  uio_seg_t uio_segflg; /* address space (kernel or user) */
26091  uint16_t uio_fmode; /* file mode flags */
26092  uint16_t uio_extflg; /* extended flags */
26093  lloff_t _uio_limit; /* u-limit (maximum byte offset) */
26094  ssize_t uio_resid; /* residual count */
26095  /*
26096 	 * uioa extended members.
26097 	 */
26098  uint32_t uioa_state; /* state of asynch i/o */
26099  ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */
26100  uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */
26101  void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */
26102  void *uioa_hwst[4]; /* opaque hardware state */
26103  uioa_page_t uioa_locked[16]; /* Per iov locked pages */
26104 } uioa_t;
26105 
26106 /*
26107  * uio extensions
26108  *
26109  * PSARC 2009/478: Copy Reduction Interfaces
26110  */
26111 typedef enum xuio_type {
26112  UIOTYPE_ASYNCIO,
26113  UIOTYPE_ZEROCOPY
26114 } xuio_type_t;
26115 
26116 typedef struct xuio {
26117  uio_t xu_uio; /* Embedded UIO structure */
26118 
26119  /* Extended uio fields */
26120  enum xuio_type xu_type; /* What kind of uio structure? */
26121  union {
26122   /* Async I/O Support, intend to replace uioa_t. */
26123   struct {
26124    uint32_t xu_a_state; /* state of async i/o */
26125    /* bytes that have been uioamove()ed */
26126    ssize_t xu_a_mbytes;
26127    uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */
26128    /* pointer into lcur->uioa_ppp[] */
26129    void **xu_a_lppp;
26130    void *xu_a_hwst[4]; /* opaque hardware state */
26131    /* Per iov locked pages */
26132    uioa_page_t xu_a_locked[16];
26133   } xu_aio;
26134 
26135   /*
26136 		 * Copy Reduction Support -- facilate loaning / returning of
26137 		 * filesystem cache buffers.
26138 		 */
26139   struct {
26140    int xu_zc_rw; /* read or write buffer */
26141    void *xu_zc_priv; /* fs specific */
26142   } xu_zc;
26143  } xu_ext;
26144 } xuio_t;
26145 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26146 /*
26147  * I/O direction.
26148  */
26149 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t;
26150 
26151 /*
26152  * uio_extflg: extended flags
26153  *
26154  * NOTE: This flag will be used in uiomove to determine if non-temporal
26155  * access, ie, access bypassing caches, should be used.  Filesystems that
26156  * don't initialize this field could experience suboptimal performance due to
26157  * the random data the field contains.
26158  *
26159  * NOTE: This flag is also used by uioasync callers to pass an extended
26160  * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all
26161  * consumers of a uioa_t require the uio_extflg to be initialized.
26162  */
26163 
26164 
26165 
26166 
26167 
26168 
26169 /*
26170  * Global uioasync capability shadow state.
26171  */
26172 typedef struct uioasync_s {
26173  boolean_t enabled; /* Is uioasync enabled? */
26174  size_t mincnt; /* Minimum byte count for use of */
26175 } uioasync_t;
26176 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26177 extern ssize_t readv(int, const struct iovec *, int);
26178 extern ssize_t writev(int, const struct iovec *, int);
26179 
26180 /*
26181  * When in the large file compilation environment,
26182  * map preadv/pwritev to their 64 bit offset versions
26183  */
26184 
26185 
26186 
26187 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26188 #pragma redefine_extname preadv preadv64
26189 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26190 
26191 
26192 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26193 #pragma redefine_extname pwritev pwritev64
26194 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26195 
26196 
26197 
26198 
26199 
26200 
26201 
26202 /* In the LP64 compilation environment, the APIs are already large file */
26203 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h"
26204 extern ssize_t preadv(int, const struct iovec *, int, off_t);
26205 extern ssize_t pwritev(int, const struct iovec *, int, off_t);
26206 
26207 /*
26208  * preadv64 and pwritev64 should be defined when:
26209  * - Using the transitional compilation environment, and not
26210  *     the large file compilation environment.
26211  */
26212 
26213 
26214 extern ssize_t preadv64(int, const struct iovec *, int, off64_t);
26215 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t);
26216 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
26217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
26218 /*
26219  * CDDL HEADER START
26220  *
26221  * The contents of this file are subject to the terms of the
26222  * Common Development and Distribution License (the "License").
26223  * You may not use this file except in compliance with the License.
26224  *
26225  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26226  * or http://www.opensolaris.org/os/licensing.
26227  * See the License for the specific language governing permissions
26228  * and limitations under the License.
26229  *
26230  * When distributing Covered Code, include this CDDL HEADER in each
26231  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26232  * If applicable, add the following below this CDDL HEADER, with the
26233  * fields enclosed by brackets "[]" replaced with your own identifying
26234  * information: Portions Copyright [yyyy] [name of copyright owner]
26235  *
26236  * CDDL HEADER END
26237  */
26238 
26239 /*
26240  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
26241  * Copyright 2016 Joyent, Inc.
26242  *
26243  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26244  * Use is subject to license terms.
26245  */
26246 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
26247 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1
26248 /*
26249  * CDDL HEADER START
26250  *
26251  * The contents of this file are subject to the terms of the
26252  * Common Development and Distribution License (the "License").
26253  * You may not use this file except in compliance with the License.
26254  *
26255  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26256  * or http://www.opensolaris.org/os/licensing.
26257  * See the License for the specific language governing permissions
26258  * and limitations under the License.
26259  *
26260  * When distributing Covered Code, include this CDDL HEADER in each
26261  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26262  * If applicable, add the following below this CDDL HEADER, with the
26263  * fields enclosed by brackets "[]" replaced with your own identifying
26264  * information: Portions Copyright [yyyy] [name of copyright owner]
26265  *
26266  * CDDL HEADER END
26267  */
26268 /*
26269  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26270  * Use is subject to license terms.
26271  */
26272 
26273 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
26274 /*	  All Rights Reserved	*/
26275 
26276 /*
26277  * Portions of this source code were derived from Berkeley 4.3 BSD
26278  * under license from the Regents of the University of California.
26279  */
26280 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
26281 
26282 
26283 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1
26284 /*
26285  * CDDL HEADER START
26286  *
26287  * The contents of this file are subject to the terms of the
26288  * Common Development and Distribution License, Version 1.0 only
26289  * (the "License").  You may not use this file except in compliance
26290  * with the License.
26291  *
26292  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26293  * or http://www.opensolaris.org/os/licensing.
26294  * See the License for the specific language governing permissions
26295  * and limitations under the License.
26296  *
26297  * When distributing Covered Code, include this CDDL HEADER in each
26298  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26299  * If applicable, add the following below this CDDL HEADER, with the
26300  * fields enclosed by brackets "[]" replaced with your own identifying
26301  * information: Portions Copyright [yyyy] [name of copyright owner]
26302  *
26303  * CDDL HEADER END
26304  */
26305 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
26306 /*	  All Rights Reserved  	*/
26307 
26308 
26309 /*
26310  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
26311  *
26312  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
26313  * Use is subject to license terms.
26314  */
26315 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
26316 struct netconfig {
26317  char *nc_netid; /* network identifier		*/
26318  unsigned int nc_semantics; /* defined below		*/
26319  unsigned int nc_flag; /* defined below		*/
26320  char *nc_protofmly; /* protocol family name		*/
26321  char *nc_proto; /* protocol name		*/
26322  char *nc_device; /* device name for network id	*/
26323  unsigned int nc_nlookups; /* # of entries in nc_lookups	*/
26324  char **nc_lookups; /* list of lookup directories	*/
26325  unsigned int nc_unused[8]; /* borrowed for lockd etc.	*/
26326 };
26327 
26328 typedef struct {
26329  struct netconfig **nc_head;
26330  struct netconfig **nc_curr;
26331 } NCONF_HANDLE;
26332 
26333 /*
26334  *	Values of nc_semantics
26335  */
26336 
26337 
26338 
26339 
26340 
26341 /*
26342  * NOT FOR PUBLIC USE, Solaris internal only.
26343  * This value of nc_semantics is strictly for use of Remote Direct
26344  * Memory Access provider interfaces in Solaris only and not for
26345  * general use. Do not use this value for general purpose user or
26346  * kernel programming. If used the behavior is undefined.
26347  * This is a PRIVATE interface to be used by Solaris kRPC only.
26348  */
26349 
26350 
26351 /*
26352  *	Values of nc_flag
26353  */
26354 
26355 
26356 
26357 
26358 
26359 /*
26360  *	Values of nc_protofmly
26361  */
26362 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h"
26363 /*
26364  * NOT FOR PUBLIC USE, Solaris internal only.
26365  * This value of nc_semantics is strictly for use of Remote Direct
26366  * Memory Access provider interfaces in Solaris only and not for
26367  * general use. Do not use this value for general purpose user or
26368  * kernel programming. If used the behavior is undefined.
26369  * This is a PRIVATE interface to be used by Solaris kRPC only.
26370  */
26371 
26372 
26373 /*
26374  *	Values for nc_proto
26375  */
26376 
26377 
26378 
26379 
26380 
26381 
26382 /*
26383  * 	Values for nc_proto for "rdma" protofmly
26384  */
26385 
26386 
26387 
26388 
26389 extern void *setnetconfig(void);
26390 extern int endnetconfig(void *);
26391 extern struct netconfig *getnetconfig(void *);
26392 extern struct netconfig *getnetconfigent(const char *);
26393 extern void freenetconfigent(struct netconfig *);
26394 extern void *setnetpath(void);
26395 extern int endnetpath(void *);
26396 extern struct netconfig *getnetpath(void *);
26397 extern void nc_perror(const char *);
26398 extern char *nc_sperror(void);
26399 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
26400 
26401 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1
26402 /*
26403  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26404  * Use is subject to license terms.
26405  *
26406  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
26407  */
26408 /*
26409  * Copyright (c) 1982, 1986 Regents of the University of California.
26410  * All rights reserved.
26411  *
26412  * Redistribution and use in source and binary forms are permitted
26413  * provided that this notice is preserved and that due credit is given
26414  * to the University of California at Berkeley. The name of the University
26415  * may not be used to endorse or promote products derived from this
26416  * software without specific prior written permission. This software
26417  * is provided ``as is'' without express or implied warranty.
26418  */
26419 
26420 /*
26421  * Constants and structures defined by the internet system,
26422  * according to following documents
26423  *
26424  * Internet ASSIGNED NUMBERS (RFC1700) and its successors:
26425  *	http://www.iana.org/assignments/protocol-numbers
26426  *	http://www.iana.org/assignments/port-numbers
26427  * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
26428  *
26429  */
26430 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2
26431 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26432 /*
26433  * Definitions related to sockets: types, address families, options.
26434  */
26435 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26436 /*
26437  * Types
26438  */
26439 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26440 /*
26441  * Flags for socket() and accept4()
26442  */
26443 
26444 
26445 
26446 
26447 /*
26448  * Option flags per-socket.
26449  */
26450 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26451 /*
26452  * Socket options are passed using a signed integer, but it is also rare
26453  * for more than one to ever be passed at the same time with setsockopt
26454  * and only one at a time can be retrieved with getsockopt.
26455  *
26456  * Since the lower numbers cannot be renumbered for compatibility reasons,
26457  * it would seem that we need to start a new number space (0x40000000 -
26458  * 0x7fffffff) for those that don't need to be stored as a bit flag
26459  * somewhere. This limits the flag options to 30 but that seems to be
26460  * plenty, anyway. 0x40000000 is reserved for future use.
26461  */
26462 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26463 /*
26464  * N.B.: The following definition is present only for compatibility
26465  * with release 3.0.  It will disappear in later releases.
26466  */
26467 
26468 
26469 /*
26470  * Additional options, not kept in so_options.
26471  */
26472 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26473 /* "Socket"-level control message types: */
26474 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26475 /*
26476  * Socket filter options
26477  */
26478 
26479 
26480 
26481 
26482 
26483 /*
26484  * Structure returned by FIL_LIST
26485  */
26486 struct fil_info {
26487  int fi_flags; /* see below (FILF_*) */
26488  int fi_pos; /* position (0 is bottom) */
26489  char fi_name[32]; /* filter name */
26490 };
26491 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26492 /*
26493  * Structure used for manipulating linger option.
26494  */
26495 struct linger {
26496  int l_onoff; /* option on/off */
26497  int l_linger; /* linger time */
26498 };
26499 
26500 /*
26501  * Levels for (get/set)sockopt() that don't apply to a specific protocol.
26502  */
26503 
26504 
26505 
26506 
26507 
26508 
26509 
26510 /*
26511  * Address families.
26512  *
26513  * Some of these constant names are copied for the DTrace IP provider in
26514  * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
26515  * in sync.
26516  */
26517 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26518 /*
26519  * Protocol families, same as address families for now.
26520  */
26521 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26522 /*
26523  * Maximum queue length specifiable by listen.
26524  */
26525 
26526 
26527 /*
26528  * Message header for recvmsg and sendmsg calls.
26529  */
26530 struct msghdr {
26531  void *msg_name; /* optional address */
26532  socklen_t msg_namelen; /* size of address */
26533  struct iovec *msg_iov; /* scatter/gather array */
26534  int msg_iovlen; /* # elements in msg_iov */
26535 
26536 
26537 
26538 
26539 
26540 
26541  caddr_t msg_accrights; /* access rights sent/received */
26542  int msg_accrightslen;
26543 
26544 };
26545 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26546 /* Added for XPGv2 compliance */
26547 
26548 
26549 
26550 
26551 
26552      /* with left over data */
26553 /* End of XPGv2 compliance */
26554 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26555 /* Added for XPGv2 compliance */
26556 
26557 
26558 
26559 
26560 struct cmsghdr {
26561  socklen_t cmsg_len; /* data byte count, including hdr */
26562  int cmsg_level; /* originating protocol */
26563  int cmsg_type; /* protocol-specific type */
26564 };
26565 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h"
26566 extern int accept(int, struct sockaddr *, Psocklen_t);
26567 extern int accept4(int, struct sockaddr *, Psocklen_t, int);
26568 extern int bind(int, const struct sockaddr *, socklen_t);
26569 extern int connect(int, const struct sockaddr *, socklen_t);
26570 extern int getpeername(int, struct sockaddr *, Psocklen_t);
26571 extern int getsockname(int, struct sockaddr *, Psocklen_t);
26572 extern int getsockopt(int, int, int, void *, Psocklen_t);
26573 extern int listen(int, int); /* XXX - fixme???  where do I go */
26574 extern int socketpair(int, int, int, int *);
26575 extern ssize_t recv(int, void *, size_t, int);
26576 extern ssize_t recvfrom(int, void *, size_t, int,
26577  struct sockaddr *, Psocklen_t);
26578 extern ssize_t recvmsg(int, struct msghdr *, int);
26579 extern ssize_t send(int, const void *, size_t, int);
26580 extern ssize_t sendmsg(int, const struct msghdr *, int);
26581 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *,
26582  socklen_t);
26583 extern int setsockopt(int, int, int, const void *, socklen_t);
26584 extern int shutdown(int, int);
26585 extern int socket(int, int, int);
26586 
26587 
26588 extern int sockatmark(int);
26589 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2
26590 
26591 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1
26592 /*
26593  * CDDL HEADER START
26594  *
26595  * The contents of this file are subject to the terms of the
26596  * Common Development and Distribution License (the "License").
26597  * You may not use this file except in compliance with the License.
26598  *
26599  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26600  * or http://www.opensolaris.org/os/licensing.
26601  * See the License for the specific language governing permissions
26602  * and limitations under the License.
26603  *
26604  * When distributing Covered Code, include this CDDL HEADER in each
26605  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26606  * If applicable, add the following below this CDDL HEADER, with the
26607  * fields enclosed by brackets "[]" replaced with your own identifying
26608  * information: Portions Copyright [yyyy] [name of copyright owner]
26609  *
26610  * CDDL HEADER END
26611  */
26612 
26613 /*
26614  * Copyright 2013 Garrett D'Amore <garrett@damore.org>
26615  * Copyright 2016 Joyent, Inc.
26616  *
26617  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26618  * Use is subject to license terms.
26619  */
26620 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2
26621 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h"
26622 struct hostent {
26623  char *h_name; /* official name of host */
26624  char **h_aliases; /* alias list */
26625  int h_addrtype; /* host address type */
26626  int h_length; /* length of address */
26627  char **h_addr_list; /* list of addresses from name server */
26628 
26629 };
26630 
26631 
26632 /*
26633  * addrinfo introduced with IPv6 for Protocol-Independent Hostname
26634  * and Service Name Translation.
26635  */
26636 
26637 
26638 struct addrinfo {
26639  int ai_flags; /* AI_PASSIVE, AI_CANONNAME, ... */
26640  int ai_family; /* PF_xxx */
26641  int ai_socktype; /* SOCK_xxx */
26642  int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
26643 
26644 
26645 
26646  socklen_t ai_addrlen;
26647  char *ai_canonname; /* canonical name for hostname */
26648  struct sockaddr *ai_addr; /* binary address */
26649  struct addrinfo *ai_next; /* next structure in linked list */
26650 };
26651 
26652 /*
26653  * The flag 0x8000 is currently reserved for private use between libnsl and
26654  * libsocket. See lib/libsocket/inet/getaddrinfo.c for more information.
26655  */
26656 /* addrinfo flags */
26657 
26658 
26659 
26660 
26661 
26662 /* getipnodebyname() flags */
26663 
26664 
26665 
26666 
26667 
26668 /*
26669  * These were defined in RFC 2553 but not SUSv3
26670  * or RFC 3493 which obsoleted 2553.
26671  */
26672 
26673 
26674 
26675 /* addrinfo errors */
26676 # 166 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h"
26677 /* getnameinfo flags */
26678 
26679 
26680 
26681 
26682 
26683 
26684 
26685 /* Not listed in any standards document */
26686 
26687 
26688 
26689 /* getnameinfo max sizes as defined in RFC 2553 obsoleted in RFC 3493 */
26690 
26691 
26692 
26693 
26694 
26695 /*
26696  * Scope delimit character
26697  */
26698 
26699 
26700 
26701 /*
26702  * Algorithm entry for /etc/inet/ipsecalgs which defines IPsec protocols
26703  * and algorithms.
26704  */
26705 
26706 typedef struct ipsecalgent {
26707  char **a_names; /* algorithm names */
26708  int a_proto_num; /* protocol number */
26709  int a_alg_num; /* algorithm number */
26710  char *a_mech_name; /* encryption framework mechanism name */
26711  int *a_block_sizes; /* supported block sizes */
26712  int *a_key_sizes; /* supported key sizes */
26713  int a_key_increment; /* key size increment */
26714  int *a_mech_params; /* mechanism specific parameters */
26715  int a_alg_flags; /* algorithm flags */
26716 } ipsecalgent_t;
26717 
26718 /* well-known IPsec protocol numbers */
26719 
26720 
26721 
26722 
26723 
26724 /*
26725  * Assumption here is that a network number
26726  * fits in 32 bits -- probably a poor one.
26727  */
26728 struct netent {
26729  char *n_name; /* official name of net */
26730  char **n_aliases; /* alias list */
26731  int n_addrtype; /* net address type */
26732  in_addr_t n_net; /* network # */
26733 };
26734 
26735 struct protoent {
26736  char *p_name; /* official protocol name */
26737  char **p_aliases; /* alias list */
26738  int p_proto; /* protocol # */
26739 };
26740 
26741 struct servent {
26742  char *s_name; /* official service name */
26743  char **s_aliases; /* alias list */
26744  int s_port; /* port # */
26745  char *s_proto; /* protocol to use */
26746 };
26747 
26748 
26749 struct hostent *gethostbyname_r
26750  (const char *, struct hostent *, char *, int, int *h_errnop);
26751 struct hostent *gethostbyaddr_r
26752  (const char *, int, int, struct hostent *, char *, int, int *h_errnop);
26753 struct hostent *getipnodebyname(const char *, int, int, int *);
26754 struct hostent *getipnodebyaddr(const void *, size_t, int, int *);
26755 void freehostent(struct hostent *);
26756 struct hostent *gethostent_r(struct hostent *, char *, int, int *h_errnop);
26757 
26758 struct servent *getservbyname_r
26759  (const char *name, const char *, struct servent *, char *, int);
26760 struct servent *getservbyport_r
26761  (int port, const char *, struct servent *, char *, int);
26762 struct servent *getservent_r(struct servent *, char *, int);
26763 
26764 struct netent *getnetbyname_r
26765  (const char *, struct netent *, char *, int);
26766 struct netent *getnetbyaddr_r(long, int, struct netent *, char *, int);
26767 struct netent *getnetent_r(struct netent *, char *, int);
26768 
26769 struct protoent *getprotobyname_r
26770  (const char *, struct protoent *, char *, int);
26771 struct protoent *getprotobynumber_r
26772  (int, struct protoent *, char *, int);
26773 struct protoent *getprotoent_r(struct protoent *, char *, int);
26774 
26775 int getnetgrent_r(char **, char **, char **, char *, int);
26776 int innetgr(const char *, const char *, const char *, const char *);
26777 
26778 
26779 /* Old interfaces that return a pointer to a static area;  MT-unsafe */
26780 struct hostent *gethostbyname(const char *);
26781 struct hostent *gethostent(void);
26782 struct netent *getnetbyaddr(in_addr_t, int);
26783 struct netent *getnetbyname(const char *);
26784 struct netent *getnetent(void);
26785 struct protoent *getprotobyname(const char *);
26786 struct protoent *getprotobynumber(int);
26787 struct protoent *getprotoent(void);
26788 struct servent *getservbyname(const char *, const char *);
26789 struct servent *getservbyport(int, const char *);
26790 struct servent *getservent(void);
26791 
26792 /* gethostbyaddr() second argument is a size_t only in unix95/unix98 */
26793 
26794 struct hostent *gethostbyaddr(const void *, socklen_t, int);
26795 
26796 
26797 
26798 
26799 
26800 int endhostent(void);
26801 int endnetent(void);
26802 int endprotoent(void);
26803 int endservent(void);
26804 int sethostent(int);
26805 int setnetent(int);
26806 int setprotoent(int);
26807 int setservent(int);
26808 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h"
26809 int getaddrinfo(const char *,
26810    const char *,
26811    const struct addrinfo *,
26812    struct addrinfo **);
26813 void freeaddrinfo(struct addrinfo *);
26814 const char *gai_strerror(int);
26815 int getnameinfo(const struct sockaddr *,
26816    socklen_t, char *, socklen_t,
26817    char *, socklen_t, int);
26818 
26819 
26820 
26821 int getnetgrent(char **, char **, char **);
26822 int setnetgrent(const char *);
26823 int endnetgrent(void);
26824 int rcmd(char **, unsigned short,
26825  const char *, const char *, const char *, int *);
26826 int rcmd_af(char **, unsigned short,
26827  const char *, const char *, const char *, int *, int);
26828 int rresvport_af(int *, int);
26829 int rresvport_addr(int *, struct sockaddr_storage *);
26830 int rexec(char **, unsigned short,
26831  const char *, const char *, const char *, int *);
26832 int rexec_af(char **, unsigned short,
26833  const char *, const char *, const char *, int *, int);
26834 int rresvport(int *);
26835 int ruserok(const char *, int, const char *, const char *);
26836 /* BIND */
26837 struct hostent *gethostbyname2(const char *, int);
26838 void herror(const char *);
26839 const char *hstrerror(int);
26840 /* End BIND */
26841 
26842 /* IPsec algorithm prototype definitions */
26843 struct ipsecalgent *getipsecalgbyname(const char *, int, int *);
26844 struct ipsecalgent *getipsecalgbynum(int, int, int *);
26845 int getipsecprotobyname(const char *doi_name);
26846 char *getipsecprotobynum(int doi_domain);
26847 void freeipsecalgent(struct ipsecalgent *ptr);
26848 /* END IPsec algorithm prototype definitions */
26849 
26850 
26851 
26852 /*
26853  * Error return codes from gethostbyname() and gethostbyaddr()
26854  * (when using the resolver)
26855  */
26856 
26857 extern int h_errno;
26858 # 377 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h"
26859 /*
26860  * Error return codes from gethostbyname() and gethostbyaddr()
26861  * (left in extern int h_errno).
26862  */
26863 # 389 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h"
26864 /* BIND */
26865 
26866 
26867 /* End BIND */
26868 # 46 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
26869 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 1
26870 /*
26871  * CDDL HEADER START
26872  *
26873  * The contents of this file are subject to the terms of the
26874  * Common Development and Distribution License, Version 1.0 only
26875  * (the "License").  You may not use this file except in compliance
26876  * with the License.
26877  *
26878  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26879  * or http://www.opensolaris.org/os/licensing.
26880  * See the License for the specific language governing permissions
26881  * and limitations under the License.
26882  *
26883  * When distributing Covered Code, include this CDDL HEADER in each
26884  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26885  * If applicable, add the following below this CDDL HEADER, with the
26886  * fields enclosed by brackets "[]" replaced with your own identifying
26887  * information: Portions Copyright [yyyy] [name of copyright owner]
26888  *
26889  * CDDL HEADER END
26890  */
26891 /*
26892  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26893  * Use is subject to license terms.
26894  */
26895 
26896 
26897 
26898 
26899 #pragma ident "%Z%%M%	%I%	%E% SMI"
26900 
26901 
26902 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
26903 /*
26904  * CDDL HEADER START
26905  *
26906  * The contents of this file are subject to the terms of the
26907  * Common Development and Distribution License (the "License").
26908  * You may not use this file except in compliance with the License.
26909  *
26910  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26911  * or http://www.opensolaris.org/os/licensing.
26912  * See the License for the specific language governing permissions
26913  * and limitations under the License.
26914  *
26915  * When distributing Covered Code, include this CDDL HEADER in each
26916  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26917  * If applicable, add the following below this CDDL HEADER, with the
26918  * fields enclosed by brackets "[]" replaced with your own identifying
26919  * information: Portions Copyright [yyyy] [name of copyright owner]
26920  *
26921  * CDDL HEADER END
26922  */
26923 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
26924 /*	  All Rights Reserved  	*/
26925 
26926 
26927 /*
26928  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
26929  * Use is subject to license terms.
26930  *
26931  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26932  * Copyright 2016 Joyent, Inc.
26933  */
26934 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2
26935 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1
26936 /*
26937  * CDDL HEADER START
26938  *
26939  * The contents of this file are subject to the terms of the
26940  * Common Development and Distribution License, Version 1.0 only
26941  * (the "License").  You may not use this file except in compliance
26942  * with the License.
26943  *
26944  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26945  * or http://www.opensolaris.org/os/licensing.
26946  * See the License for the specific language governing permissions
26947  * and limitations under the License.
26948  *
26949  * When distributing Covered Code, include this CDDL HEADER in each
26950  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26951  * If applicable, add the following below this CDDL HEADER, with the
26952  * fields enclosed by brackets "[]" replaced with your own identifying
26953  * information: Portions Copyright [yyyy] [name of copyright owner]
26954  *
26955  * CDDL HEADER END
26956  */
26957 /*
26958  * Copyright 2000 Sun Microsystems, Inc.  All rights reserved.
26959  * Use is subject to license terms.
26960  */
26961 
26962 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
26963 /*	  All Rights Reserved  	*/
26964 
26965 /*
26966  * University Copyright- Copyright (c) 1982, 1986, 1988
26967  * The Regents of the University of California
26968  * All Rights Reserved
26969  *
26970  * University Acknowledgment- Portions of this document are derived from
26971  * software developed by the University of California, Berkeley, and its
26972  * contributors.
26973  */
26974 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2
26975 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 1
26976 /*
26977  * CDDL HEADER START
26978  *
26979  * The contents of this file are subject to the terms of the
26980  * Common Development and Distribution License, Version 1.0 only
26981  * (the "License").  You may not use this file except in compliance
26982  * with the License.
26983  *
26984  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
26985  * or http://www.opensolaris.org/os/licensing.
26986  * See the License for the specific language governing permissions
26987  * and limitations under the License.
26988  *
26989  * When distributing Covered Code, include this CDDL HEADER in each
26990  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
26991  * If applicable, add the following below this CDDL HEADER, with the
26992  * fields enclosed by brackets "[]" replaced with your own identifying
26993  * information: Portions Copyright [yyyy] [name of copyright owner]
26994  *
26995  * CDDL HEADER END
26996  */
26997 /*
26998  * Copyright 2002-2003 Sun Microsystems, Inc.  All rights reserved.
26999  * Use is subject to license terms.
27000  */
27001 
27002 
27003 
27004 
27005 #pragma ident "%Z%%M%	%I%	%E% SMI"
27006 
27007 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1
27008 /*
27009  * CDDL HEADER START
27010  *
27011  * The contents of this file are subject to the terms of the
27012  * Common Development and Distribution License (the "License").
27013  * You may not use this file except in compliance with the License.
27014  *
27015  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27016  * or http://www.opensolaris.org/os/licensing.
27017  * See the License for the specific language governing permissions
27018  * and limitations under the License.
27019  *
27020  * When distributing Covered Code, include this CDDL HEADER in each
27021  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27022  * If applicable, add the following below this CDDL HEADER, with the
27023  * fields enclosed by brackets "[]" replaced with your own identifying
27024  * information: Portions Copyright [yyyy] [name of copyright owner]
27025  *
27026  * CDDL HEADER END
27027  */
27028 
27029 /*
27030  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
27031  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
27032  */
27033 
27034 /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
27035 /*	  All Rights Reserved  	*/
27036 
27037 /*
27038  * University Copyright- Copyright (c) 1982, 1986, 1988
27039  * The Regents of the University of California
27040  * All Rights Reserved
27041  *
27042  * University Acknowledgment- Portions of this document are derived from
27043  * software developed by the University of California, Berkeley, and its
27044  * contributors.
27045  */
27046 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 2
27047 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h"
27048 typedef struct {
27049  char hostname[256];
27050  ushort_t port;
27051 } url_hport_t;
27052 
27053 typedef struct {
27054  boolean_t https;
27055  url_hport_t hport;
27056  char abspath[1024];
27057 } url_t;
27058 
27059 extern int url_parse_hostport(const char *, url_hport_t *, ushort_t);
27060 extern int url_parse(const char *, url_t *);
27061 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2
27062 
27063 
27064 
27065 
27066 
27067 /* State information returned by http_conn_info() */
27068 typedef struct {
27069  url_t uri; /* URI last loaded */
27070  url_hport_t proxy; /* proxy, if any being used */
27071  boolean_t keepalive; /* Keepalive setting being used */
27072  uint_t read_timeout; /* Timeout to use for socket reads */
27073 } http_conninfo_t;
27074 
27075 
27076 /* Structure for version of the http file */
27077 typedef struct {
27078  uint_t maj_ver; /* Major version */
27079  uint_t min_ver; /* Minor version */
27080  uint_t micro_ver; /* Micro version */
27081 } boot_http_ver_t;
27082 
27083 /* Internal Libhttp errors */
27084 
27085 
27086 
27087     /* necessarily the underlying transport */
27088     /* connection). */
27089 
27090     /* error. */
27091 
27092 
27093 
27094     /* No matching entry */
27095 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h"
27096 /* Sources of errors */
27097 
27098 
27099 
27100 
27101 
27102 
27103 
27104 typedef struct {
27105  uint_t code; /* status code */
27106  char *statusmsg; /* status message */
27107  uint_t nresphdrs; /* number of response headers */
27108 } http_respinfo_t;
27109 
27110 
27111 typedef void *http_handle_t;
27112 
27113 boot_http_ver_t const *http_get_version(void);
27114 void http_set_p12_format(int);
27115 void http_set_verbose(boolean_t);
27116 int http_set_cipher_list(const char *);
27117 http_handle_t http_srv_init(const url_t *);
27118 int http_set_proxy(http_handle_t, const url_hport_t *);
27119 int http_set_keepalive(http_handle_t, boolean_t);
27120 int http_set_socket_read_timeout(http_handle_t, uint_t);
27121 int http_set_basic_auth(http_handle_t, const char *, const char *);
27122 int http_set_random_file(http_handle_t, const char *);
27123 int http_set_certificate_authority_file(const char *);
27124 int http_set_client_certificate_file(http_handle_t, const char *);
27125 int http_set_password(http_handle_t, const char *);
27126 int http_set_key_file_password(http_handle_t, const char *);
27127 int http_set_private_key_file(http_handle_t, const char *);
27128 
27129 int http_srv_connect(http_handle_t);
27130 int http_head_request(http_handle_t, const char *);
27131 int http_get_request(http_handle_t, const char *);
27132 int http_get_range_request(http_handle_t, const char *, offset_t, offset_t);
27133 void http_free_respinfo(http_respinfo_t *);
27134 int http_process_headers(http_handle_t, http_respinfo_t **);
27135 int http_process_part_headers(http_handle_t, http_respinfo_t **);
27136 char *http_get_header_value(http_handle_t, const char *);
27137 char *http_get_response_header(http_handle_t, uint_t);
27138 int http_read_body(http_handle_t, char *, size_t);
27139 int http_srv_disconnect(http_handle_t);
27140 int http_srv_close(http_handle_t);
27141 http_conninfo_t *http_get_conn_info(http_handle_t);
27142 int http_conn_is_https(http_handle_t, boolean_t *);
27143 ulong_t http_get_lasterr(http_handle_t, uint_t *);
27144 void http_decode_err(ulong_t, int *, int *, int *);
27145 char const *http_errorstr(uint_t, ulong_t);
27146 # 47 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
27147 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1
27148 /*
27149  * CDDL HEADER START
27150  *
27151  * The contents of this file are subject to the terms of the
27152  * Common Development and Distribution License (the "License").
27153  * You may not use this file except in compliance with the License.
27154  *
27155  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27156  * or http://www.opensolaris.org/os/licensing.
27157  * See the License for the specific language governing permissions
27158  * and limitations under the License.
27159  *
27160  * When distributing Covered Code, include this CDDL HEADER in each
27161  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27162  * If applicable, add the following below this CDDL HEADER, with the
27163  * fields enclosed by brackets "[]" replaced with your own identifying
27164  * information: Portions Copyright [yyyy] [name of copyright owner]
27165  *
27166  * CDDL HEADER END
27167  */
27168 
27169 /*
27170  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
27171  * Use is subject to license terms.
27172  */
27173 
27174 
27175 
27176 
27177 
27178 /*
27179  * Module:	pkgerr.h
27180  * Description:
27181  *
27182  *   Implements error routines to handle the creation,
27183  *   management, and destruction of error objects, which
27184  *   hold error messages and codes returned from libpkg
27185  *   routines that support the objects defined herein.
27186  */
27187 
27188 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
27189 /*
27190  * CDDL HEADER START
27191  *
27192  * The contents of this file are subject to the terms of the
27193  * Common Development and Distribution License (the "License").
27194  * You may not use this file except in compliance with the License.
27195  *
27196  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27197  * or http://www.opensolaris.org/os/licensing.
27198  * See the License for the specific language governing permissions
27199  * and limitations under the License.
27200  *
27201  * When distributing Covered Code, include this CDDL HEADER in each
27202  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27203  * If applicable, add the following below this CDDL HEADER, with the
27204  * fields enclosed by brackets "[]" replaced with your own identifying
27205  * information: Portions Copyright [yyyy] [name of copyright owner]
27206  *
27207  * CDDL HEADER END
27208  */
27209 
27210 /*
27211  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
27212  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
27213  */
27214 
27215 /*	Copyright (c) 1988 AT&T	*/
27216 /*	  All Rights Reserved  	*/
27217 
27218 /*
27219  * User-visible pieces of the ANSI C standard I/O package.
27220  */
27221 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 2
27222 
27223 
27224 
27225 
27226 
27227 /*
27228  * Public Definitions
27229  */
27230 
27231 typedef enum {
27232  PKGERR_OK = 0,
27233  PKGERR_EXIST,
27234  PKGERR_READ,
27235  PKGERR_CORRUPT,
27236  PKGERR_PARSE,
27237  PKGERR_BADPASS,
27238  PKGERR_BADALIAS,
27239  PKGERR_INTERNAL,
27240  PKGERR_UNSUP,
27241  PKGERR_NOALIAS,
27242  PKGERR_NOALIASMATCH,
27243  PKGERR_MULTIPLE,
27244  PKGERR_INCOMPLETE,
27245  PKGERR_NOPRIVKEY,
27246  PKGERR_NOPUBKEY,
27247  PKGERR_NOCACERT,
27248  PKGERR_NOMEM,
27249  PKGERR_CHAIN,
27250  PKGERR_LOCKED,
27251  PKGERR_WRITE,
27252  PKGERR_UNLOCK,
27253  PKGERR_TIME,
27254  PKGERR_DUPLICATE,
27255  PKGERR_WEB,
27256  PKGERR_VERIFY
27257 } PKG_ERR_CODE;
27258 
27259 /*
27260  * Public Structures
27261  */
27262 
27263 /* external reference to PKG_ERR object (contents private) */
27264 typedef PKG_ERR_CODE pkg_err_t;
27265 
27266 typedef struct _pkg_err_struct PKG_ERR;
27267 
27268 /*
27269  * Public Methods
27270  */
27271 
27272 PKG_ERR *pkgerr_new();
27273 void pkgerr_add(PKG_ERR *, PKG_ERR_CODE, char *, ...);
27274 void pkgerr_clear(PKG_ERR *);
27275 int pkgerr_dump(PKG_ERR *, FILE *);
27276 int pkgerr_num(PKG_ERR *);
27277 char *pkgerr_get(PKG_ERR *, int);
27278 void pkgerr_free(PKG_ERR *);
27279 # 48 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
27280 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 1
27281 /*
27282  * CDDL HEADER START
27283  *
27284  * The contents of this file are subject to the terms of the
27285  * Common Development and Distribution License (the "License").
27286  * You may not use this file except in compliance with the License.
27287  *
27288  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27289  * or http://www.opensolaris.org/os/licensing.
27290  * See the License for the specific language governing permissions
27291  * and limitations under the License.
27292  *
27293  * When distributing Covered Code, include this CDDL HEADER in each
27294  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27295  * If applicable, add the following below this CDDL HEADER, with the
27296  * fields enclosed by brackets "[]" replaced with your own identifying
27297  * information: Portions Copyright [yyyy] [name of copyright owner]
27298  *
27299  * CDDL HEADER END
27300  */
27301 
27302 /*
27303  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
27304  * Use is subject to license terms.
27305  */
27306 
27307 
27308 
27309 
27310 
27311 /*
27312  * Module:	keystore.h
27313  * Description:	This module contains the structure definitions for processing
27314  *		package keystore files.
27315  */
27316 
27317 
27318 
27319 
27320 
27321 # 1 "/usr/include/openssl/evp.h" 1 3 4
27322 /* crypto/evp/evp.h */
27323 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
27324  * All rights reserved.
27325  *
27326  * This package is an SSL implementation written
27327  * by Eric Young (eay@cryptsoft.com).
27328  * The implementation was written so as to conform with Netscapes SSL.
27329  *
27330  * This library is free for commercial and non-commercial use as long as
27331  * the following conditions are aheared to.  The following conditions
27332  * apply to all code found in this distribution, be it the RC4, RSA,
27333  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
27334  * included with this distribution is covered by the same copyright terms
27335  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
27336  *
27337  * Copyright remains Eric Young's, and as such any Copyright notices in
27338  * the code are not to be removed.
27339  * If this package is used in a product, Eric Young should be given attribution
27340  * as the author of the parts of the library used.
27341  * This can be in the form of a textual message at program startup or
27342  * in documentation (online or textual) provided with the package.
27343  *
27344  * Redistribution and use in source and binary forms, with or without
27345  * modification, are permitted provided that the following conditions
27346  * are met:
27347  * 1. Redistributions of source code must retain the copyright
27348  *    notice, this list of conditions and the following disclaimer.
27349  * 2. Redistributions in binary form must reproduce the above copyright
27350  *    notice, this list of conditions and the following disclaimer in the
27351  *    documentation and/or other materials provided with the distribution.
27352  * 3. All advertising materials mentioning features or use of this software
27353  *    must display the following acknowledgement:
27354  *    "This product includes cryptographic software written by
27355  *     Eric Young (eay@cryptsoft.com)"
27356  *    The word 'cryptographic' can be left out if the rouines from the library
27357  *    being used are not cryptographic related :-).
27358  * 4. If you include any Windows specific code (or a derivative thereof) from
27359  *    the apps directory (application code) you must include an acknowledgement:
27360  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
27361  *
27362  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
27363  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27364  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27365  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
27366  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27367  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27368  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27369  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27370  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27371  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27372  * SUCH DAMAGE.
27373  *
27374  * The licence and distribution terms for any publically available version or
27375  * derivative of this code cannot be changed.  i.e. this code cannot simply be
27376  * copied and put under another distribution licence
27377  * [including the GNU Public Licence.]
27378  */
27379 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2
27380 # 1 "/usr/include/openssl/x509.h" 1 3 4
27381 /* crypto/x509/x509.h */
27382 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
27383  * All rights reserved.
27384  *
27385  * This package is an SSL implementation written
27386  * by Eric Young (eay@cryptsoft.com).
27387  * The implementation was written so as to conform with Netscapes SSL.
27388  *
27389  * This library is free for commercial and non-commercial use as long as
27390  * the following conditions are aheared to.  The following conditions
27391  * apply to all code found in this distribution, be it the RC4, RSA,
27392  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
27393  * included with this distribution is covered by the same copyright terms
27394  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
27395  *
27396  * Copyright remains Eric Young's, and as such any Copyright notices in
27397  * the code are not to be removed.
27398  * If this package is used in a product, Eric Young should be given attribution
27399  * as the author of the parts of the library used.
27400  * This can be in the form of a textual message at program startup or
27401  * in documentation (online or textual) provided with the package.
27402  *
27403  * Redistribution and use in source and binary forms, with or without
27404  * modification, are permitted provided that the following conditions
27405  * are met:
27406  * 1. Redistributions of source code must retain the copyright
27407  *    notice, this list of conditions and the following disclaimer.
27408  * 2. Redistributions in binary form must reproduce the above copyright
27409  *    notice, this list of conditions and the following disclaimer in the
27410  *    documentation and/or other materials provided with the distribution.
27411  * 3. All advertising materials mentioning features or use of this software
27412  *    must display the following acknowledgement:
27413  *    "This product includes cryptographic software written by
27414  *     Eric Young (eay@cryptsoft.com)"
27415  *    The word 'cryptographic' can be left out if the rouines from the library
27416  *    being used are not cryptographic related :-).
27417  * 4. If you include any Windows specific code (or a derivative thereof) from
27418  *    the apps directory (application code) you must include an acknowledgement:
27419  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
27420  *
27421  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
27422  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27423  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27424  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
27425  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27426  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27427  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27428  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27429  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27430  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27431  * SUCH DAMAGE.
27432  *
27433  * The licence and distribution terms for any publically available version or
27434  * derivative of this code cannot be changed.  i.e. this code cannot simply be
27435  * copied and put under another distribution licence
27436  * [including the GNU Public Licence.]
27437  */
27438 /* ====================================================================
27439  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
27440  * ECDH support in OpenSSL originally developed by
27441  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
27442  */
27443 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2
27444 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1
27445 /*
27446  * CDDL HEADER START
27447  *
27448  * The contents of this file are subject to the terms of the
27449  * Common Development and Distribution License (the "License").
27450  * You may not use this file except in compliance with the License.
27451  *
27452  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27453  * or http://www.opensolaris.org/os/licensing.
27454  * See the License for the specific language governing permissions
27455  * and limitations under the License.
27456  *
27457  * When distributing Covered Code, include this CDDL HEADER in each
27458  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27459  * If applicable, add the following below this CDDL HEADER, with the
27460  * fields enclosed by brackets "[]" replaced with your own identifying
27461  * information: Portions Copyright [yyyy] [name of copyright owner]
27462  *
27463  * CDDL HEADER END
27464  */
27465 
27466 /*
27467  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
27468  * Use is subject to license terms.
27469  */
27470 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2
27471 
27472 /* keystore structures */
27473 
27474 /* this opaque type represents a keystore */
27475 typedef void *keystore_handle_t;
27476 
27477 /* flags passed to open_keystore */
27478 
27479 /* opens keystore read-only.  Attempts to modify results in an error */
27480 
27481 
27482 /* opens keystore read-write */
27483 
27484 
27485 /*
27486  * tells open_keystore to fall back to app-generic paths in the case that
27487  * the app-specific paths do not exist.
27488  */
27489 
27490 
27491 /*
27492  * tells open_keystore to use the app-specific paths no matter what,
27493  * failing if they cannot be used for any reason.
27494  */
27495 
27496 
27497 /* masks off various types of flags */
27498 
27499 
27500 
27501 /* default is read-only, soft */
27502 
27503 
27504 
27505 /*
27506  * possible encoding formats used by the library, used
27507  * by print_cert
27508  */
27509 typedef enum {
27510  KEYSTORE_FORMAT_PEM,
27511  KEYSTORE_FORMAT_DER,
27512  KEYSTORE_FORMAT_TEXT
27513 } keystore_encoding_format_t;
27514 
27515 /*
27516  * structure passed back to password callback for determining how
27517  * to prompt for passphrase, and where to record errors
27518  */
27519 typedef struct {
27520  PKG_ERR *err;
27521 } keystore_passphrase_data;
27522 
27523 
27524 /* max length of a passphrase.  One could use a short story! */
27525 
27526 
27527 /* callback for collecting passphrase when open_keystore() is called */
27528 typedef int keystore_passphrase_cb(char *, int, int, void *);
27529 
27530 /* names of the individual files within the keystore path */
27531 
27532 
27533 
27534 
27535 /* keystore.c */
27536 extern int open_keystore(PKG_ERR *, char *, char *,
27537     keystore_passphrase_cb, long flags, keystore_handle_t *);
27538 
27539 extern int print_certs(PKG_ERR *, keystore_handle_t, char *,
27540     keystore_encoding_format_t, FILE *);
27541 
27542 extern int check_cert(PKG_ERR *, X509 *);
27543 
27544 extern int check_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *);
27545 
27546 extern int print_cert(PKG_ERR *, X509 *,
27547     keystore_encoding_format_t, char *, boolean_t, FILE *);
27548 
27549 extern int close_keystore(PKG_ERR *, keystore_handle_t,
27550     keystore_passphrase_cb);
27551 
27552 extern int merge_ca_cert(PKG_ERR *, X509 *, keystore_handle_t);
27553 extern int merge_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *,
27554     char *, keystore_handle_t);
27555 
27556 extern int delete_cert_and_keys(PKG_ERR *, keystore_handle_t,
27557     char *);
27558 
27559 extern int find_key_cert_pair(PKG_ERR *, keystore_handle_t,
27560     char *, EVP_PKEY **, X509 **);
27561 
27562 extern int find_ca_certs(PKG_ERR *, keystore_handle_t,
27563     struct stack_st_X509 **);
27564 
27565 extern int find_cl_certs(PKG_ERR *, keystore_handle_t,
27566     struct stack_st_X509 **);
27567 # 49 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
27568 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1
27569 /*
27570  * CDDL HEADER START
27571  *
27572  * The contents of this file are subject to the terms of the
27573  * Common Development and Distribution License (the "License").
27574  * You may not use this file except in compliance with the License.
27575  *
27576  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27577  * or http://www.opensolaris.org/os/licensing.
27578  * See the License for the specific language governing permissions
27579  * and limitations under the License.
27580  *
27581  * When distributing Covered Code, include this CDDL HEADER in each
27582  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27583  * If applicable, add the following below this CDDL HEADER, with the
27584  * fields enclosed by brackets "[]" replaced with your own identifying
27585  * information: Portions Copyright [yyyy] [name of copyright owner]
27586  *
27587  * CDDL HEADER END
27588  */
27589 
27590 /*
27591  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
27592  * Use is subject to license terms.
27593  */
27594 # 35 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h"
27595 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1
27596 /*
27597  * CDDL HEADER START
27598  *
27599  * The contents of this file are subject to the terms of the
27600  * Common Development and Distribution License (the "License").
27601  * You may not use this file except in compliance with the License.
27602  *
27603  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
27604  * or http://www.opensolaris.org/os/licensing.
27605  * See the License for the specific language governing permissions
27606  * and limitations under the License.
27607  *
27608  * When distributing Covered Code, include this CDDL HEADER in each
27609  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
27610  * If applicable, add the following below this CDDL HEADER, with the
27611  * fields enclosed by brackets "[]" replaced with your own identifying
27612  * information: Portions Copyright [yyyy] [name of copyright owner]
27613  *
27614  * CDDL HEADER END
27615  */
27616 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
27617 /*	  All Rights Reserved  	*/
27618 
27619 /*
27620  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
27621  * Use is subject to license terms.
27622  */
27623 # 36 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 2
27624 
27625 struct mergstat {
27626  unsigned setuid:1; /* pkgmap entry has setuid */
27627  unsigned setgid:1; /* ... and/or setgid bit set */
27628  unsigned contchg:1; /* contents of the files different */
27629  unsigned attrchg:1; /* attributes are different */
27630  unsigned shared:1; /* > 1 pkg associated with this */
27631  unsigned osetuid:1; /* installed set[ug]id process ... */
27632  unsigned osetgid:1; /* ... being overwritten by pkg. */
27633  unsigned rogue:1; /* conflicting file not owned by a package */
27634  unsigned dir2nondir:1; /* was a directory & now a non-directory */
27635  unsigned replace:1; /* merge makes no sense for this object pair */
27636  unsigned denied:1; /* for some reason this was not allowed in */
27637  unsigned preloaded:1; /* already checked in a prior pkg op */
27638  unsigned processed:1; /* already installed or removed */
27639  unsigned parentsyml2dir:1;
27640  /* parent directory changed from symlink to a directory */
27641 };
27642 
27643 /*
27644  * This is information required by pkgadd for fast operation. A
27645  * cfextra struct is tagged to each cfent structure requiring
27646  * processing. This is how we avoid some unneeded repetition. The
27647  * entries incorporating the word 'local' refer to the path that
27648  * gets us to the delivered package file. In other words, to install
27649  * a file we usually copy from 'local' to 'path' below. In the case
27650  * of a link, where no actual copying takes place, local is the source
27651  * of the link. Note that environment variables are not evaluated in
27652  * the locals unless they are links since the literal path is how
27653  * pkgadd finds the entry under the reloc directory.
27654  */
27655 struct cfextra {
27656  struct cfent cf_ent; /* basic contents file entry */
27657  struct mergstat mstat; /* merge status for installs */
27658  uint32_t fsys_value; /* fstab[] entry index */
27659  uint32_t fsys_base; /* actual base filesystem in fs_tab[] */
27660  char *client_path; /* the client-relative path */
27661  char *server_path; /* the server-relative path */
27662  char *map_path; /* as read from the pkgmap */
27663  char *client_local; /* client_relative local */
27664  char *server_local; /* server relative local */
27665 };
27666 # 50 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2
27667 
27668 /*
27669  * The contents database file interface.
27670  */
27671 
27672 typedef struct pkg_server *PKGserver;
27673 
27674 /* Some commands modify the internal database: add them here */
27675 # 82 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27676 typedef enum {
27677  INVALID, /* Not initialized */
27678  NEVER, /* Don't start, does check if it is running. */
27679  FLUSH_LOG, /* Run it once to incorporate the log. */
27680  RUN_ONCE, /* Run until the current client stops. */
27681  TIMEOUT, /* Run until a timeout occurs. */
27682  PERMANENT, /* Run until it is externally terminated. */
27683  DEFAULTMODE = TIMEOUT /* The default mode, must come last */
27684 } start_mode_t;
27685 
27686 typedef struct pkgcmd {
27687  int cmd;
27688  char buf[1];
27689 } pkgcmd_t;
27690 
27691 typedef struct pkgfilter {
27692  int cmd;
27693  int len;
27694  char buf[1];
27695 } pkgfilter_t;
27696 
27697 /*
27698  * Virtual File Protocol definitions
27699  */
27700 
27701 /*
27702  * flags associated with virtual file protocol operations; note that these flags
27703  * may only occupy the low order 16 bits of the 32-bit unsigned flag.
27704  */
27705 
27706 typedef unsigned long VFPFLAGS_T;
27707 # 121 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27708 /* virtual file protocol object */
27709 
27710 typedef struct _vfp VFP_T;
27711 
27712 /* structure behind the virtual file protocol object */
27713 
27714 struct _vfp {
27715  FILE *_vfpFile; /* -> opened FILE */
27716  char *_vfpCurr; /* -> current byte to read/write */
27717  char *_vfpHighWater; /* -> last byte modified */
27718  char *_vfpEnd; /* -> last data byte */
27719  char *_vfpPath; /* -> path associated with FILE */
27720  char *_vfpStart; /* -> first data byte */
27721  void *_vfpExtra; /* undefined */
27722  size_t _vfpSize; /* size of mapped/allocated area */
27723  size_t _vfpMapSize; /* # mapped bytes */
27724  VFPFLAGS_T _vfpFlags; /* flags associated with vfp/data */
27725  int _vfpOverflow; /* non-zero if buffer write overflow */
27726  blkcnt_t _vfpCkStBlocks; /* checkpoint # blocks */
27727  dev_t _vfpCkDev; /* checkpoint device i.d. */
27728  ino_t _vfpCkIno; /* checkpoint inode # */
27729  off_t _vfpCkSize; /* checkpoint size */
27730  time_t _vfpCkMtime; /* checkpoint modification time */
27731 };
27732 
27733 /*
27734  * get highest modified byte (length) contained in vfp
27735  *
27736  * determine number of bytes to write - it will be the highest of:
27737  *  -- the current pointer into the file - this is updated whenever
27738  *	the location of the file is changed by a single byte
27739  *  -- the last "high water mark" - the last known location that
27740  *	was written to the file - updated only when the location
27741  *	of the file is directly changed - e.g. vfpSetCurrCharPtr,
27742  *	vfpTruncate, vfpRewind.
27743  * this reduces the "bookkeeping" that needs to be done to know
27744  * how many bytes to write out to the file - typically a file is
27745  * written sequentially so the current file pointer is sufficient
27746  * to determine how many bytes to write out.
27747  */
27748 # 169 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27749 /*
27750  * increment current pointer by specified delta
27751  * if the delta exceeds the buffer size, set pointer to buffer end
27752  */
27753 # 185 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27754 /* get the path associated with the vfp */
27755 
27756 
27757 /* get a string from the vfp into a fixed size buffer */
27758 # 207 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27759 /* get number of bytes remaining to read */
27760 
27761 
27762 
27763 
27764 /* get number of bytes remaining to write */
27765 
27766 
27767 
27768 
27769 /* put current character and increment to next */
27770 
27771 
27772 
27773 
27774 
27775 
27776 /* put integer to current character and increment */
27777 
27778 
27779 /* put long to current character and increment */
27780 
27781 
27782 /* get current character and increment to next */
27783 
27784 
27785 /* get current character - do not increment */
27786 
27787 
27788 /* get pointer to current character */
27789 
27790 
27791 /* increment current character pointer */
27792 
27793 
27794 /* decrement current character pointer */
27795 
27796 
27797 /* get pointer to first data byte in buffer */
27798 
27799 
27800 /* get pointer to last data byte in buffer */
27801 
27802 
27803 /* set pointer to current character */
27804 
27805 
27806 
27807 
27808 
27809 
27810 /* set pointer to last data byte in buffer */
27811 # 267 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27812 /* seek to end of file - one past last data byte in file */
27813 
27814 
27815 /* get number of bytes between current char and specified char */
27816 
27817 
27818 
27819 /* put string to current character and increment */
27820 # 284 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27821 /* put fixed number of bytes to current character and increment */
27822 # 298 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27823 /* put format one arg to current character and increment */
27824 
27825 
27826 
27827 
27828 
27829 
27830 
27831 struct dm_buf {
27832  char *text_buffer; /* start of allocated buffer */
27833  int offset; /* number of bytes into the text_buffer */
27834  int allocation; /* size of buffer in bytes */
27835 };
27836 
27837 /* This structure is used to hold a dynamically growing string */
27838 
27839 struct dstr {
27840  char *pc;
27841  int len;
27842  int max;
27843 };
27844 
27845 /* setmapmode() defines */
27846 # 330 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27847 /* max length for printed attributes */
27848 
27849 
27850 /*
27851  * These three defines indicate that the prototype file contains a '?'
27852  * meaning do not specify this data in the pkgmap entry.
27853  */
27854 # 366 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27855 /* Settings for network admin defaults */
27856 # 377 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h"
27857 /* package header magic tokens */
27858 
27859 
27860 
27861 /* name of security files */
27862 
27863 
27864 
27865 
27866 
27867 
27868 /*
27869  * The next three mean that no mode, owner or group was specified or that the
27870  * one specified is invalid for some reason. Sometimes this is an error in
27871  * which case it is generally converted to CUR* with a warning. Other times
27872  * it means "look it up" by stating the existing file system object pointred
27873  * to in the prototype file.
27874  */
27875 
27876 
27877 
27878 
27879 /* string comparitor abbreviators */
27880 
27881 
27882 
27883 
27884 
27885 
27886 extern FILE *epopen(char *cmd, char *mode);
27887 extern char **gpkglist(char *dir, char **pkg, char **catg);
27888 extern int is_not_valid_length(char **category);
27889 extern int is_not_valid_category(char **category, char *progname);
27890 extern int is_same_CATEGORY(char **category, char *installed_category);
27891 extern char **get_categories(char *catg_arg);
27892 
27893 extern void pkglist_cont(char *keyword);
27894 extern char **pkgalias(char *pkg);
27895 extern char *get_prog_name(void);
27896 extern char *set_prog_name(char *name);
27897 extern int averify(int fix, char *ftype, char *path, struct ainfo *ainfo);
27898 extern int ckparam(char *param, char *value);
27899 extern int ckvolseq(char *dir, int part, int nparts);
27900 extern int cverify(int fix, char *ftype, char *path, struct cinfo *cinfo,
27901    int allow_checksum);
27902 extern unsigned long compute_checksum(int *r_cksumerr, char *a_path);
27903 extern int fverify(int fix, char *ftype, char *path, struct ainfo *ainfo,
27904       struct cinfo *cinfo);
27905 extern char *getErrbufAddr(void);
27906 extern int getErrbufSize(void);
27907 extern char *getErrstr(void);
27908 extern void setErrstr(char *errstr);
27909 extern int devtype(char *alias, struct pkgdev *devp);
27910 extern int ds_totread; /* total number of parts read */
27911 extern int ds_close(int pkgendflg);
27912 extern int ds_findpkg(char *device, char *pkg);
27913 extern int ds_getinfo(char *string);
27914 extern int ds_getpkg(char *device, int n, char *dstdir);
27915 extern int ds_ginit(char *device);
27916 extern boolean_t ds_fd_open(void);
27917 extern int ds_init(char *device, char **pkg, char *norewind);
27918 extern int BIO_ds_dump_header(PKG_ERR *, BIO *);
27919 extern int BIO_ds_dump(PKG_ERR *, char *, BIO *);
27920 extern int BIO_dump_cmd(char *cmd, BIO *bio);
27921 extern int ds_next(char *, char *);
27922 extern int ds_readbuf(char *device);
27923 extern int epclose(FILE *pp);
27924 extern int esystem(char *cmd, int ifd, int ofd);
27925 extern int e_ExecCmdArray(int *r_status, char **r_results,
27926    char *a_inputFile, char *a_cmd, char **a_args);
27927 extern int e_ExecCmdList(int *r_status, char **r_results,
27928    char *a_inputFile, char *a_cmd, ...);
27929 extern int gpkgmap(struct cfent *ept, FILE *fp);
27930 extern int gpkgmapvfp(struct cfent *ept, VFP_T *fpv);
27931 extern void setmapmode(int mode_no);
27932 extern int isFdRemote(int a_fd);
27933 extern int isFstypeRemote(char *a_fstype);
27934 extern int isPathRemote(char *a_path);
27935 extern int iscpio(char *path, int *iscomp);
27936 extern int isdir(char *path);
27937 extern int isfile(char *dir, char *file);
27938 extern int fmkdir(char *a_path, int a_mode);
27939 extern int pkgexecl(char *filein, char *fileout, char *uname, char *gname,
27940    ...);
27941 extern int pkgexecv(char *filein, char *fileout, char *uname, char *gname,
27942    char *arg[]);
27943 extern int pkghead(char *device);
27944 extern int pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts,
27945    int getvolflg);
27946 extern int pkgtrans(char *device1, char *device2, char **pkg,
27947    int options, keystore_handle_t, char *);
27948 extern int pkgumount(struct pkgdev *devp);
27949 extern int ppkgmap(struct cfent *ept, FILE *fp);
27950 extern int putcfile(struct cfent *ept, FILE *fp);
27951 extern int putcvfpfile(struct cfent *ept, VFP_T *vfp);
27952 extern int rrmdir(char *path);
27953 extern void set_memalloc_failure_func(void (*)(int));
27954 extern void *xmalloc(size_t size);
27955 extern void *xrealloc(void *ptr, size_t size);
27956 extern char *xstrdup(char *str);
27957 extern void set_passphrase_prompt(char *);
27958 extern void set_passphrase_passarg(char *);
27959 extern int pkg_passphrase_cb(char *, int, int, void *);
27960 
27961 extern int srchcfile(struct cfent *ept, char *path, PKGserver server);
27962 extern struct group *cgrgid(gid_t gid);
27963 extern struct group *cgrnam(char *nam);
27964 extern struct passwd *cpwnam(char *nam);
27965 extern struct passwd *cpwuid(uid_t uid);
27966 extern struct group *clgrgid(gid_t gid);
27967 extern struct group *clgrnam(char *nam);
27968 extern struct passwd *clpwnam(char *nam);
27969 extern struct passwd *clpwuid(uid_t uid);
27970 extern void basepath(char *path, char *basedir, char *ir);
27971 extern void canonize(char *file);
27972 extern void canonize_slashes(char *file);
27973 extern void checksum_off(void);
27974 extern void checksum_on(void);
27975 extern void cvtpath(char *path, char *copy);
27976 extern void ds_order(char *list[]);
27977 extern void ds_putinfo(char *buf, size_t);
27978 extern void ds_skiptoend(char *device);
27979 extern void ecleanup(void);
27980 /*PRINTFLIKE1*/
27981 extern void logerr(char *fmt, ...);
27982 extern int mappath(int flag, char *path);
27983 extern int mapvar(int flag, char *varname);
27984 /*PRINTFLIKE1*/
27985 extern void progerr(char *fmt, ...);
27986 extern void pkgerr(PKG_ERR *);
27987 extern void rpterr(void);
27988 extern void tputcfent(struct cfent *ept, FILE *fp);
27989 extern void set_nonABI_symlinks(void);
27990 extern int nonABI_symlinks(void);
27991 extern void disable_attribute_check(void);
27992 extern int get_disable_attribute_check(void);
27993 
27994 /* security.c */
27995 extern void sec_init(void);
27996 extern char *get_subject_display_name(X509 *);
27997 extern char *get_issuer_display_name(X509 *);
27998 extern char *get_serial_num(X509 *);
27999 extern char *get_fingerprint(X509 *, const EVP_MD *);
28000 extern int get_cert_chain(PKG_ERR *, X509 *, struct stack_st_X509 *,
28001     struct stack_st_X509 *, struct stack_st_X509 **);
28002 
28003 /* pkgstr.c */
28004 void pkgstrConvertUllToTimeString_r(unsigned long long a_time,
28005    char *a_buf, int a_bufLen);
28006 char *pkgstrConvertPathToBasename(char *a_path);
28007 char *pkgstrConvertPathToDirname(char *a_path);
28008 char *pkgstrDup(char *a_str);
28009 char *pkgstrLocatePathBasename(char *a_path);
28010 void pkgstrScaleNumericString(char *a_buf, unsigned long long scale);
28011 void pkgstrAddToken(char **a_old, char *a_new, char a_separator);
28012 boolean_t pkgstrContainsToken(char *a_string, char *a_token,
28013    char *a_separators);
28014 void pkgstrExpandTokens(char **a_old, char *a_string,
28015    char a_separator, char *a_separators);
28016 char *pkgstrGetToken(char *r_sep, char *a_string, int a_index,
28017    char *a_separators);
28018 void pkgstrGetToken_r(char *r_sep, char *a_string, int a_index,
28019    char *a_separators, char *a_buf, int a_bufLen);
28020 unsigned long pkgstrNumTokens(char *a_string, char *a_separators);
28021 char *pkgstrPrintf(char *a_format, ...);
28022 void pkgstrPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...);
28023 void pkgstrRemoveToken(char **r_string, char *a_token,
28024    char *a_separators, int a_index);
28025 void pkgstrRemoveLeadingWhitespace(char **a_str);
28026 /* vfpops.c */
28027 extern int vfpCheckpointFile(VFP_T **r_destVfp, VFP_T **a_vfp,
28028    char *a_path);
28029 extern int vfpCheckpointOpen(VFP_T **a_cvfp, VFP_T **r_vfp, char *a_path,
28030    char *a_mode, VFPFLAGS_T a_flags);
28031 extern int vfpClearModified(VFP_T *a_vfp);
28032 extern int vfpClose(VFP_T **r_vfp);
28033 extern int vfpGetModified(VFP_T *a_vfp);
28034 extern int vfpOpen(VFP_T **r_vfp, char *a_path, char *a_mode,
28035    VFPFLAGS_T a_flags);
28036 extern void vfpRewind(VFP_T *a_vfp);
28037 extern ssize_t vfpSafePwrite(int a_fildes, void *a_buf,
28038    size_t a_nbyte, off_t a_offset);
28039 extern ssize_t vfpSafeWrite(int a_fildes, void *a_buf, size_t a_nbyte);
28040 extern int vfpSetFlags(VFP_T *a_vfp, VFPFLAGS_T a_flags);
28041 extern int vfpSetModified(VFP_T *a_vfp);
28042 extern int vfpSetSize(VFP_T *a_vfp, size_t a_size);
28043 extern void vfpTruncate(VFP_T *a_vfp);
28044 extern int vfpWriteToFile(VFP_T *a_vfp, char *a_path);
28045 
28046 /* handlelocalfs.c */
28047 boolean_t enable_local_fs(void);
28048 boolean_t restore_local_fs(void);
28049 
28050 /* pkgserv.c */
28051 extern PKGserver pkgopenserver(const char *, const char *, boolean_t);
28052 extern void pkgcloseserver(PKGserver);
28053 extern int pkgcmd(PKGserver, void *, size_t, char **, size_t *,
28054     int *);
28055 extern boolean_t pkgsync_needed(const char *, const char *, boolean_t);
28056 extern int pkgsync(const char *, const char *, boolean_t);
28057 extern int pkgservercommitfile(VFP_T *, PKGserver);
28058 extern int pkgopenfilter(PKGserver server, const char *pkginst);
28059 extern void pkgclosefilter(PKGserver);
28060 extern char *pkggetentry(PKGserver, int *, int *);
28061 extern char *pkggetentry_named(PKGserver, const char *, int *,
28062     int *);
28063 extern void pkgserversetmode(start_mode_t);
28064 extern start_mode_t pkgservergetmode(void);
28065 extern start_mode_t pkgparsemode(const char *);
28066 extern char *pkgmodeargument(start_mode_t);
28067 # 46 "setup_temporary_directory.c" 2
28068 
28069 /*
28070  * local pkg command library includes
28071  */
28072 
28073 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1
28074 /*
28075  * CDDL HEADER START
28076  *
28077  * The contents of this file are subject to the terms of the
28078  * Common Development and Distribution License (the "License").
28079  * You may not use this file except in compliance with the License.
28080  *
28081  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28082  * or http://www.opensolaris.org/os/licensing.
28083  * See the License for the specific language governing permissions
28084  * and limitations under the License.
28085  *
28086  * When distributing Covered Code, include this CDDL HEADER in each
28087  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28088  * If applicable, add the following below this CDDL HEADER, with the
28089  * fields enclosed by brackets "[]" replaced with your own identifying
28090  * information: Portions Copyright [yyyy] [name of copyright owner]
28091  *
28092  * CDDL HEADER END
28093  */
28094 
28095 /*
28096  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
28097  * Use is subject to license terms.
28098  */
28099 
28100 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
28101 /* All Rights Reserved */
28102 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h"
28103 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
28104 /*
28105  * CDDL HEADER START
28106  *
28107  * The contents of this file are subject to the terms of the
28108  * Common Development and Distribution License (the "License").
28109  * You may not use this file except in compliance with the License.
28110  *
28111  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28112  * or http://www.opensolaris.org/os/licensing.
28113  * See the License for the specific language governing permissions
28114  * and limitations under the License.
28115  *
28116  * When distributing Covered Code, include this CDDL HEADER in each
28117  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28118  * If applicable, add the following below this CDDL HEADER, with the
28119  * fields enclosed by brackets "[]" replaced with your own identifying
28120  * information: Portions Copyright [yyyy] [name of copyright owner]
28121  *
28122  * CDDL HEADER END
28123  */
28124 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
28125 /*	  All Rights Reserved  	*/
28126 
28127 
28128 /*
28129  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
28130  * Use is subject to license terms.
28131  *
28132  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
28133  * Copyright 2016 Joyent, Inc.
28134  */
28135 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2
28136 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
28137 /*
28138  * CDDL HEADER START
28139  *
28140  * The contents of this file are subject to the terms of the
28141  * Common Development and Distribution License (the "License").
28142  * You may not use this file except in compliance with the License.
28143  *
28144  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28145  * or http://www.opensolaris.org/os/licensing.
28146  * See the License for the specific language governing permissions
28147  * and limitations under the License.
28148  *
28149  * When distributing Covered Code, include this CDDL HEADER in each
28150  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28151  * If applicable, add the following below this CDDL HEADER, with the
28152  * fields enclosed by brackets "[]" replaced with your own identifying
28153  * information: Portions Copyright [yyyy] [name of copyright owner]
28154  *
28155  * CDDL HEADER END
28156  */
28157 
28158 /*
28159  * Copyright (c) 2013 Gary Mills
28160  *
28161  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
28162  * Use is subject to license terms.
28163  */
28164 
28165 /*	Copyright (c) 1988 AT&T	*/
28166 /*	  All Rights Reserved  	*/
28167 # 40 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2
28168 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1
28169 /*
28170  * CDDL HEADER START
28171  *
28172  * The contents of this file are subject to the terms of the
28173  * Common Development and Distribution License (the "License").
28174  * You may not use this file except in compliance with the License.
28175  *
28176  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28177  * or http://www.opensolaris.org/os/licensing.
28178  * See the License for the specific language governing permissions
28179  * and limitations under the License.
28180  *
28181  * When distributing Covered Code, include this CDDL HEADER in each
28182  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28183  * If applicable, add the following below this CDDL HEADER, with the
28184  * fields enclosed by brackets "[]" replaced with your own identifying
28185  * information: Portions Copyright [yyyy] [name of copyright owner]
28186  *
28187  * CDDL HEADER END
28188  */
28189 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
28190 /*	  All Rights Reserved  	*/
28191 
28192 /*
28193  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
28194  * Use is subject to license terms.
28195  */
28196 # 41 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2
28197 
28198 /* Settings for procedure scripts */
28199 
28200 
28201 
28202 
28203 
28204 
28205 /* Settings for class action scripts */
28206 
28207 
28208 
28209 
28210 
28211 /* Settings for non-privileged scripts */
28212 # 64 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h"
28213 /* Settings for admin "rscriptalt" option */
28214 # 80 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h"
28215 /* Additional cfent/cfextra codes. */
28216 
28217 
28218 
28219 /* This holds admin file data. */
28220 struct admin {
28221  char *mail;
28222  char *instance;
28223  char *partial;
28224  char *runlevel;
28225  char *idepend;
28226  char *rdepend;
28227  char *space;
28228  char *setuid;
28229  char *conflict;
28230  char *action;
28231  char *networktimeout;
28232  char *networkretries;
28233  char *authentication;
28234  char *keystore;
28235  char *proxy;
28236  char *basedir;
28237  char *rscriptalt;
28238 };
28239 
28240 /*
28241  * This table details the status of all filesystems available to the target
28242  * host.
28243  */
28244 struct fstable {
28245  char *name; /* name of filesystem, (mount point) */
28246  int namlen; /* The length of the name (mountpoint) */
28247  fsblkcnt_t bsize; /* fundamental file system block size */
28248  fsblkcnt_t frsize; /* file system fragment size */
28249  fsblkcnt_t bfree; /* total # of free blocks */
28250  fsblkcnt_t bused; /* total # of used blocks */
28251  fsblkcnt_t ffree; /* total # of free file nodes */
28252  fsblkcnt_t fused; /* total # of used file nodes */
28253  char *fstype; /* type of filesystem - nfs, lo, ... */
28254  char *remote_name; /* client's mounted filesystem */
28255  unsigned writeable:1; /* access permission */
28256  unsigned write_tested:1; /* access permission fully tested */
28257  unsigned remote:1; /* on a remote filesystem */
28258  unsigned mounted:1; /* actually mounted right now */
28259  unsigned srvr_map:1; /* use server_map() */
28260  unsigned cl_mounted:1; /* mounted in client space */
28261  unsigned mnt_failed:1; /* attempt to loopback mount failed */
28262  unsigned served:1; /* filesystem comes from a server */
28263 };
28264 # 52 "setup_temporary_directory.c" 2
28265 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 1
28266 /*
28267  * CDDL HEADER START
28268  *
28269  * The contents of this file are subject to the terms of the
28270  * Common Development and Distribution License (the "License").
28271  * You may not use this file except in compliance with the License.
28272  *
28273  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28274  * or http://www.opensolaris.org/os/licensing.
28275  * See the License for the specific language governing permissions
28276  * and limitations under the License.
28277  *
28278  * When distributing Covered Code, include this CDDL HEADER in each
28279  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28280  * If applicable, add the following below this CDDL HEADER, with the
28281  * fields enclosed by brackets "[]" replaced with your own identifying
28282  * information: Portions Copyright [yyyy] [name of copyright owner]
28283  *
28284  * CDDL HEADER END
28285  */
28286 
28287 /*
28288  * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved.
28289  */
28290 # 34 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h"
28291 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
28292 /*
28293  * CDDL HEADER START
28294  *
28295  * The contents of this file are subject to the terms of the
28296  * Common Development and Distribution License (the "License").
28297  * You may not use this file except in compliance with the License.
28298  *
28299  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28300  * or http://www.opensolaris.org/os/licensing.
28301  * See the License for the specific language governing permissions
28302  * and limitations under the License.
28303  *
28304  * When distributing Covered Code, include this CDDL HEADER in each
28305  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28306  * If applicable, add the following below this CDDL HEADER, with the
28307  * fields enclosed by brackets "[]" replaced with your own identifying
28308  * information: Portions Copyright [yyyy] [name of copyright owner]
28309  *
28310  * CDDL HEADER END
28311  */
28312 
28313 /*
28314  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
28315  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
28316  */
28317 
28318 /*	Copyright (c) 1988 AT&T	*/
28319 /*	  All Rights Reserved  	*/
28320 
28321 /*
28322  * User-visible pieces of the ANSI C standard I/O package.
28323  */
28324 # 35 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28325 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1
28326 /*
28327  * CDDL HEADER START
28328  *
28329  * The contents of this file are subject to the terms of the
28330  * Common Development and Distribution License (the "License").
28331  * You may not use this file except in compliance with the License.
28332  *
28333  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28334  * or http://www.opensolaris.org/os/licensing.
28335  * See the License for the specific language governing permissions
28336  * and limitations under the License.
28337  *
28338  * When distributing Covered Code, include this CDDL HEADER in each
28339  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28340  * If applicable, add the following below this CDDL HEADER, with the
28341  * fields enclosed by brackets "[]" replaced with your own identifying
28342  * information: Portions Copyright [yyyy] [name of copyright owner]
28343  *
28344  * CDDL HEADER END
28345  */
28346 
28347 /*
28348  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
28349  *
28350  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
28351  * Use is subject to license terms.
28352  */
28353 
28354 /*	Copyright (c) 1988 AT&T	*/
28355 /*	  All Rights Reserved  	*/
28356 # 36 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28357 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
28358 /*
28359  * CDDL HEADER START
28360  *
28361  * The contents of this file are subject to the terms of the
28362  * Common Development and Distribution License (the "License").
28363  * You may not use this file except in compliance with the License.
28364  *
28365  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28366  * or http://www.opensolaris.org/os/licensing.
28367  * See the License for the specific language governing permissions
28368  * and limitations under the License.
28369  *
28370  * When distributing Covered Code, include this CDDL HEADER in each
28371  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28372  * If applicable, add the following below this CDDL HEADER, with the
28373  * fields enclosed by brackets "[]" replaced with your own identifying
28374  * information: Portions Copyright [yyyy] [name of copyright owner]
28375  *
28376  * CDDL HEADER END
28377  */
28378 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
28379 /*	  All Rights Reserved  	*/
28380 
28381 
28382 /*
28383  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
28384  * Use is subject to license terms.
28385  *
28386  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
28387  * Copyright 2016 Joyent, Inc.
28388  */
28389 # 37 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28390 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1
28391 /*
28392  * CDDL HEADER START
28393  *
28394  * The contents of this file are subject to the terms of the
28395  * Common Development and Distribution License (the "License").
28396  * You may not use this file except in compliance with the License.
28397  *
28398  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28399  * or http://www.opensolaris.org/os/licensing.
28400  * See the License for the specific language governing permissions
28401  * and limitations under the License.
28402  *
28403  * When distributing Covered Code, include this CDDL HEADER in each
28404  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28405  * If applicable, add the following below this CDDL HEADER, with the
28406  * fields enclosed by brackets "[]" replaced with your own identifying
28407  * information: Portions Copyright [yyyy] [name of copyright owner]
28408  *
28409  * CDDL HEADER END
28410  */
28411 
28412 /*
28413  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
28414  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
28415  */
28416 
28417 /*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
28418 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
28419 /*	All Rights Reserved	*/
28420 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28421 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1
28422 /*
28423  * CDDL HEADER START
28424  *
28425  * The contents of this file are subject to the terms of the
28426  * Common Development and Distribution License (the "License").
28427  * You may not use this file except in compliance with the License.
28428  *
28429  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28430  * or http://www.opensolaris.org/os/licensing.
28431  * See the License for the specific language governing permissions
28432  * and limitations under the License.
28433  *
28434  * When distributing Covered Code, include this CDDL HEADER in each
28435  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28436  * If applicable, add the following below this CDDL HEADER, with the
28437  * fields enclosed by brackets "[]" replaced with your own identifying
28438  * information: Portions Copyright [yyyy] [name of copyright owner]
28439  *
28440  * CDDL HEADER END
28441  */
28442 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
28443 /*	  All Rights Reserved  	*/
28444 
28445 /*
28446  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
28447  * Use is subject to license terms.
28448  */
28449 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28450 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 1
28451 /*
28452  * CDDL HEADER START
28453  *
28454  * The contents of this file are subject to the terms of the
28455  * Common Development and Distribution License, Version 1.0 only
28456  * (the "License").  You may not use this file except in compliance
28457  * with the License.
28458  *
28459  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28460  * or http://www.opensolaris.org/os/licensing.
28461  * See the License for the specific language governing permissions
28462  * and limitations under the License.
28463  *
28464  * When distributing Covered Code, include this CDDL HEADER in each
28465  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28466  * If applicable, add the following below this CDDL HEADER, with the
28467  * fields enclosed by brackets "[]" replaced with your own identifying
28468  * information: Portions Copyright [yyyy] [name of copyright owner]
28469  *
28470  * CDDL HEADER END
28471  */
28472 /*
28473  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
28474  */
28475 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
28476 /*	  All Rights Reserved  	*/
28477 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h"
28478 struct pkginfo {
28479  char *pkginst;
28480  char *name;
28481  char *arch;
28482  char *version;
28483  char *vendor;
28484  char *basedir;
28485  char *catg;
28486  char status;
28487 };
28488 
28489 extern char *pkgdir;
28490 
28491 extern char *pkgparam(char *, char *);
28492 extern int pkginfo(struct pkginfo *, char *, ...),
28493   pkgnmchk(char *, char *, int);
28494 # 40 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28495 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1
28496 /*
28497  * CDDL HEADER START
28498  *
28499  * The contents of this file are subject to the terms of the
28500  * Common Development and Distribution License (the "License").
28501  * You may not use this file except in compliance with the License.
28502  *
28503  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28504  * or http://www.opensolaris.org/os/licensing.
28505  * See the License for the specific language governing permissions
28506  * and limitations under the License.
28507  *
28508  * When distributing Covered Code, include this CDDL HEADER in each
28509  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28510  * If applicable, add the following below this CDDL HEADER, with the
28511  * fields enclosed by brackets "[]" replaced with your own identifying
28512  * information: Portions Copyright [yyyy] [name of copyright owner]
28513  *
28514  * CDDL HEADER END
28515  */
28516 
28517 /*
28518  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
28519  * Use is subject to license terms.
28520  */
28521 
28522 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
28523 /* All Rights Reserved */
28524 # 41 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28525 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1
28526 /*
28527  * CDDL HEADER START
28528  *
28529  * The contents of this file are subject to the terms of the
28530  * Common Development and Distribution License (the "License").
28531  * You may not use this file except in compliance with the License.
28532  *
28533  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28534  * or http://www.opensolaris.org/os/licensing.
28535  * See the License for the specific language governing permissions
28536  * and limitations under the License.
28537  *
28538  * When distributing Covered Code, include this CDDL HEADER in each
28539  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28540  * If applicable, add the following below this CDDL HEADER, with the
28541  * fields enclosed by brackets "[]" replaced with your own identifying
28542  * information: Portions Copyright [yyyy] [name of copyright owner]
28543  *
28544  * CDDL HEADER END
28545  */
28546 
28547 /*
28548  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
28549  * Use is subject to license terms.
28550  */
28551 # 42 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28552 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1
28553 /*
28554  * CDDL HEADER START
28555  *
28556  * The contents of this file are subject to the terms of the
28557  * Common Development and Distribution License (the "License").
28558  * You may not use this file except in compliance with the License.
28559  *
28560  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
28561  * or http://www.opensolaris.org/os/licensing.
28562  * See the License for the specific language governing permissions
28563  * and limitations under the License.
28564  *
28565  * When distributing Covered Code, include this CDDL HEADER in each
28566  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
28567  * If applicable, add the following below this CDDL HEADER, with the
28568  * fields enclosed by brackets "[]" replaced with your own identifying
28569  * information: Portions Copyright [yyyy] [name of copyright owner]
28570  *
28571  * CDDL HEADER END
28572  */
28573 
28574 /*
28575  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
28576  * Use is subject to license terms.
28577  */
28578 
28579 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
28580 /* All Rights Reserved */
28581 # 43 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2
28582 
28583 
28584 
28585 
28586 
28587 /* signal handler function definition */
28588 
28589 typedef void (sighdlrFunc_t)(int);
28590 
28591 /* maximum parameter length */
28592 
28593 
28594 
28595 /* flag for check_applicability */
28596 
28597 typedef unsigned long CAF_T;
28598 
28599 /* flags for check_applicability */
28600 
28601 
28602 
28603 
28604 
28605 /* path to the request file in the package directory */
28606 
28607 
28608 
28609 /* path to the copyright file in the package directory */
28610 
28611 
28612 
28613 /* path to the depend file in the package directory */
28614 
28615 
28616 
28617 /*
28618  * name of environment variable set to non-global zone name being installed:
28619  * pkgadd/pkginstall expects this name and passes it on to any scripts that
28620  * are run if it is set.
28621  */
28622 
28623 
28624 
28625 /*
28626  * name of environment variable set to indicate this package should be installed
28627  * in the current zone only - see PSARC/2004/789 - New Pkginfo(4) attributes
28628  * for zones
28629  */
28630 
28631 
28632 
28633 /*
28634  * name of environment variable set to indicate this package should be installed
28635  * in all zones, and only from the global zone - see PSARC/2003/460
28636  */
28637 
28638 
28639 
28640 /*
28641  * name of environment variable set to indicate this package should be installed
28642  * hollow (db update only) when installed in nonglobal zone - see PSARC/2003/460
28643  */
28644 
28645 
28646 
28647 /*
28648  * General purpose return codes used for functions which don't return a basic
28649  * success or failure. For those functions wherein a yes/no result is
28650  * possible, then 1 means OK and 0 means FAIL.
28651  */
28652 
28653 
28654 
28655 
28656 /* These are the file status indicators for the contents file */
28657 # 128 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h"
28658 /* control bits for pkgdbmerg() */
28659 
28660 
28661 
28662 /* control bits for file verification by class */
28663 
28664 
28665 
28666 
28667 /* control bit for path type to pass to CAS */
28668 
28669 
28670 
28671 /* findscripts() argument */
28672 
28673 
28674 
28675 struct cl_attr {
28676  char name[64 +1]; /* name of class */
28677  char *inst_script; /* install class action script */
28678  char *rem_script; /* remove class action script */
28679  unsigned src_verify:3; /* source verification level */
28680  unsigned dst_verify:4; /* destination verification level */
28681  unsigned relpath_2_CAS:1; /* CAS gets relative paths */
28682 };
28683 
28684 
28685 
28686 
28687 
28688 
28689 
28690 /* Common quit declaration used across many package commands */
28691 extern void quit(int) __attribute__((__noreturn__));
28692 
28693 
28694 /* listmgr.c */
28695 extern int bl_create (int count_per_block, int struct_size, char *desc);
28696 
28697 extern char *bl_next_avail (int list_handle);
28698 extern char *bl_get_record (int list_handle, int recno);
28699 extern void bl_free (int list_handle);
28700 extern int ar_create (int count_per_block, int struct_size, char *desc);
28701 
28702 extern char **ar_next_avail (int list_handle);
28703 extern char **ar_get_head (int list_handle);
28704 extern int ar_delete (int list_handle, int index);
28705 extern void ar_free (int list_handle);
28706 
28707 /* doulimit.c */
28708 extern int set_ulimit (char *script, char *err_msg);
28709 extern int clr_ulimit (void);
28710 extern int assign_ulimit (char *fslimit);
28711 
28712 /* dryrun.c */
28713 extern void set_continue_not_ok (void);
28714 extern int continue_is_ok (void);
28715 extern int in_dryrun_mode (void);
28716 extern int in_continue_mode (void);
28717 extern void init_dryrunfile (char *dr_dir);
28718 extern void init_contfile (char *cn_dir);
28719 extern void set_dr_exitmsg (char *value);
28720 extern void set_dr_info (int type, int value);
28721 extern void write_dryrun_file (struct cfextra **extlist);
28722 
28723 /* instvol.c */
28724 extern void regfiles_free (void);
28725 
28726 /* lockinst.c */
28727 extern int lockinst (char *util_name, char *pkg_name, char *place);
28728 extern void lockupd (char *place);
28729 extern void unlockinst (void);
28730 
28731 extern char *pathdup (char *s);
28732 extern char *pathalloc (int n);
28733 extern char *fixpath (char *path);
28734 extern char *get_info_basedir (void);
28735 extern char *get_basedir (void);
28736 extern char *get_client_basedir (void);
28737 extern int set_basedirs (int reloc, char *adm_basedir, char *pkginst, int nointeract);
28738 
28739 extern int eval_path (char **server_ptr, char **client_ptr, char **map_ptr, char *path);
28740 
28741 extern int get_orig_offset (void);
28742 extern char *get_inst_root (void);
28743 extern char *get_mount_point (uint32_t n);
28744 extern char *get_remote_path (uint32_t n);
28745 extern void set_env_cbdir (void);
28746 extern int set_inst_root (char *path);
28747 extern void put_path_params (void);
28748 extern int mkpath (char *p);
28749 extern void mkbasedir (int flag, char *path);
28750 extern int is_an_inst_root (void);
28751 extern int is_a_basedir (void);
28752 extern int is_a_cl_basedir (void);
28753 extern int is_relocatable (void);
28754 extern char *orig_path (char *path);
28755 extern char *orig_path_ptr (char *path);
28756 extern char *qreason (int caller, int retcode, int started, int includeZonename);
28757 
28758 extern char *qstrdup (char *s);
28759 extern char *srcpath (char *d, char *p, int part, int nparts);
28760 extern char *trans_srcp_pi (char *local_path);
28761 extern int copyf (char *from, char *to, time_t mytime);
28762 extern int copyFile (int, int, char *, char *, struct stat *, long);
28763 extern int openLocal (char *a_path, int a_oflag, char *a_tmpdir);
28764 extern int dockdeps (char *depfile, int removeFlag, boolean_t a_preinstallCheck);
28765 
28766 extern int finalck (struct cfent *ept, int attrchg, int contchg, boolean_t a_warning);
28767 
28768 
28769 /* dockdeps.c */
28770 extern void setUpdate (void);
28771 extern int isUpdate (void);
28772 
28773 /* mntinfo.c */
28774 extern int get_mntinfo (int map_client, char *vfstab_file);
28775 extern uint32_t fsys (char *path);
28776 extern struct fstable *get_fs_entry (uint32_t n);
28777 extern int mount_client (void);
28778 extern int unmount_client (void);
28779 extern uint32_t resolved_fsys (char *path);
28780 extern char *get_server_host (uint32_t n);
28781 extern char *server_map (char *path, uint32_t fsys_value);
28782 extern int use_srvr_map (char *path, uint32_t *fsys_value);
28783 extern int use_srvr_map_n (uint32_t n);
28784 extern int is_fs_writeable (char *path, uint32_t *fsys_value);
28785 extern int is_remote_fs (char *path, uint32_t *fsys_value);
28786 extern int is_served (char *path, uint32_t *fsys_value);
28787 extern int is_mounted (char *path, uint32_t *fsys_value);
28788 extern int is_fs_writeable_n (uint32_t n);
28789 extern int is_remote_fs_n (uint32_t n);
28790 extern int is_served_n (uint32_t n);
28791 extern int is_mounted_n (uint32_t n);
28792 extern fsblkcnt_t get_blk_size_n (uint32_t n);
28793 extern fsblkcnt_t get_frag_size_n (uint32_t n);
28794 extern fsblkcnt_t get_blk_used_n (uint32_t n);
28795 extern fsblkcnt_t get_blk_free_n (uint32_t n);
28796 extern fsblkcnt_t get_inode_used_n (uint32_t n);
28797 extern fsblkcnt_t get_inode_free_n (uint32_t n);
28798 extern void set_blk_used_n (uint32_t n, fsblkcnt_t value);
28799 extern char *get_source_name_n (uint32_t n);
28800 extern char *get_fs_name_n (uint32_t n);
28801 extern int load_fsentry (struct fstable *fs_entry, char *name, char *fstype, char *remote_name);
28802 
28803 extern int isreloc (char *pkginstdir);
28804 extern int is_local_host (char *hostname);
28805 extern void fs_tab_free (void);
28806 
28807 /* pkgdbmerg.c */
28808 extern int pkgdbmerg (PKGserver server, VFP_T *tmpvfp, struct cfextra **extlist);
28809 
28810 extern int files_installed (void);
28811 
28812 /* ocfile.c */
28813 extern int trunc_tcfile (int fd);
28814 extern int ocfile (PKGserver *serverp, VFP_T **tmpvfp, fsblkcnt_t map_blks);
28815 
28816 extern int swapcfile (PKGserver server, VFP_T **a_tmpvfp, char *pkginst, int dbchg);
28817 
28818 extern int set_cfdir (char *cfdir);
28819 extern int socfile (PKGserver *server, boolean_t quiet);
28820 extern int relslock (void);
28821 extern int pkgWlock (int verbose);
28822 extern int iscfile (void);
28823 extern int vcfile (void);
28824 
28825 extern fsblkcnt_t nblk (fsblkcnt_t size, ulong_t bsize, ulong_t frsize);
28826 
28827 extern struct cfent **procmap (VFP_T *vfp, int mapflag, char *ir);
28828 extern void repl_cfent (struct cfent *new, struct cfent *old);
28829 extern struct cfextra **pkgobjmap (VFP_T *vfp, int mapflag, char *ir);
28830 extern void pkgobjinit (void);
28831 extern int seed_pkgobjmap (struct cfextra *ext_entry, char *path, char *local);
28832 
28833 extern int init_pkgobjspace (void);
28834 
28835 /* eptstat.c */
28836 extern void pinfo_free (void);
28837 extern struct pinfo *eptstat (struct cfent *entry, char *pkg, char c);
28838 
28839 /* echo.c */
28840 /*PRINTFLIKE1*/
28841 extern void echo (char *a_fmt, ...);
28842 /*PRINTFLIKE1*/
28843 extern void echoDebug (char *a_fmt, ...);
28844 extern boolean_t echoGetFlag (void);
28845 extern boolean_t echoDebugGetFlag (void);
28846 extern boolean_t echoSetFlag (boolean_t a_debugFlag);
28847 extern boolean_t echoDebugSetFlag (boolean_t a_debugFlag);
28848 
28849 /* ptext.c */
28850 /*PRINTFLIKE2*/
28851 extern void ptext (FILE *fp, char *fmt, ...);
28852 
28853 /* putparam.c */
28854 extern void putparam (char *param, char *value);
28855 extern void getuserlocale (void);
28856 extern void putuserlocale (void);
28857 extern void putConditionInfo (char *, char *);
28858 
28859 /* setadmin.c */
28860 extern void setadminFile (char *file);
28861 extern char *setadminSetting (char *a_paramName, char *a_paramValue);
28862 
28863 extern char *set_keystore_admin (void);
28864 extern boolean_t get_proxy_port_admin (char **, ushort_t *);
28865 extern boolean_t check_keystore_admin (char **);
28866 extern int web_ck_retries (void);
28867 extern int web_ck_timeout (void);
28868 extern int web_ck_authentication (void);
28869 
28870 /* setlist.c */
28871 extern char *cl_iscript (int idx);
28872 extern char *cl_rscript (int idx);
28873 extern void find_CAS (int CAS_type, char *bin_ptr, char *inst_ptr);
28874 extern int setlist (struct cl_attr ***plist, char *slist);
28875 extern void addlist (struct cl_attr ***plist, char *item);
28876 extern char *cl_nam (int cl_idx);
28877 extern char *flex_device(char *device_name, int dev_ok);
28878 extern int cl_getn (void);
28879 extern int cl_idx (char *cl_nam);
28880 extern void cl_sets (char *slist);
28881 extern void cl_setl (struct cl_attr **cl_lst);
28882 extern void cl_putl (char *parm_name, struct cl_attr **list);
28883 extern int cl_deliscript (int i);
28884 extern unsigned cl_svfy (int i);
28885 extern unsigned cl_dvfy (int i);
28886 extern unsigned cl_pthrel (int i);
28887 
28888 /* passwd.c */
28889 extern int pkg_passphrase_cb (char *, int, int, void *);
28890 extern void set_passarg (char *);
28891 extern void set_prompt (char *);
28892 
28893 /* fixpath.c */
28894 extern void export_client_env(char *);
28895 extern void set_partial_inst(void);
28896 extern int is_partial_inst(void);
28897 extern void set_depend_pkginfo_DB(boolean_t a_setting);
28898 extern boolean_t is_depend_pkginfo_DB(void);
28899 extern void disable_spool_create(void);
28900 extern int is_spool_create(void);
28901 
28902 /* open_package_datastream.c */
28903 extern boolean_t open_package_datastream(int a_argc, char **a_argv,
28904     char *a_spoolto, char *a_device,
28905     int *r_repeat, char **r_idsName,
28906     char *a_tmpdir, struct pkgdev *a_pkgdev,
28907     int a_optind);
28908 
28909 /* setup_temporary_directory.c */
28910 extern boolean_t setup_temporary_directory(char **r_dirname,
28911     char *a_tmpdir, char *a_suffix);
28912 
28913 /* unpack_package_from_stream.c */
28914 extern boolean_t unpack_package_from_stream(char *a_idsName,
28915     char *a_pkginst, char *a_tempDir);
28916 
28917 /* pkgops.c */
28918 
28919 extern boolean_t pkgAddPackageToGzonlyList(char *a_pkgInst,
28920     char *a_rootPath);
28921 extern void pkgAddThisZonePackage(char *a_pkgInst);
28922 extern boolean_t pkgRemovePackageFromGzonlyList(char *a_rootPath,
28923     char *a_pkgInst);
28924 extern FILE *pkgOpenInGzOnlyFile(char *a_rootPath);
28925 extern void pkginfoFree(struct pkginfo **r_info);
28926 extern boolean_t pkginfoIsPkgInstalled(struct pkginfo **r_pinfo,
28927     char *a_pkgInst);
28928 extern boolean_t pkgIsPkgInGzOnly(char *a_rootPath, char *a_pkgInst);
28929 extern boolean_t pkgIsPkgInGzOnlyFP(FILE *a_fp, char *a_pkgInst);
28930 extern boolean_t pkginfoParamTruth(FILE *a_fp, char *a_param,
28931     char *a_value, boolean_t a_default);
28932 extern int pkgGetPackageList(char ***r_pkgList, char **a_argv,
28933     int a_optind, char *a_categories,
28934     char **a_categoryList, struct pkgdev *a_pkgdev);
28935 extern void pkgLocateHighestInst(char *r_path, int r_pathLen,
28936     char *r_pkgInst, int r_pkgInstLen,
28937     char *a_rootPath, char *a_pkgInst);
28938 extern boolean_t pkgPackageIsThisZone(char *a_pkgInst);
28939 extern char *pkgGetGzOnlyPath(void);
28940 extern boolean_t pkgTestInstalled(char *a_packageName, char *a_rootPath);
28941 
28942 /* depchk.c */
28943 
28944 struct depckErrorRecord {
28945  int ier_numZones;
28946  char *ier_packageName;
28947  char **ier_zones;
28948  char **ier_values;
28949 };
28950 
28951 typedef struct depckErrorRecord depckErrorRecord_t;
28952 
28953 struct depckError {
28954  int er_numEntries;
28955  depckErrorRecord_t *er_theEntries;
28956 };
28957 
28958 typedef struct depckError depckError_t;
28959 
28960 typedef int (depcklFunc_t)(char *a_msg, char *a_pkg);
28961 
28962 /*
28963  * ignore_values:
28964  *	== NULL - record one message for each instance of "name" found
28965  *	== "" - record multiple instances
28966  *	!= "" - record multiple instances if value not in ignore_values
28967  */
28968 
28969 struct depckl_struct {
28970  char *name;
28971  char *ignore_values;
28972  char **err_msg;
28973  depcklFunc_t *depcklFunc;
28974  depckError_t *record;
28975 };
28976 
28977 typedef struct depckl_struct depckl_t;
28978 
28979 extern int depchkReportErrors(depckl_t *depckl);
28980 extern void depchkRecordError(depckError_t *a_erc,
28981     char *a_pkginst, char *a_zoneName,
28982     char *a_value);
28983 
28984 /* log.c */
28985 
28986 /* types of log messages we recognize */
28987 typedef enum {
28988  LOG_MSG_ERR,
28989  LOG_MSG_WRN,
28990  LOG_MSG_INFO,
28991  LOG_MSG_DEBUG
28992 } LogMsgType;
28993 
28994 /*PRINTFLIKE2*/
28995 extern void log_msg(LogMsgType, const char *, ...);
28996 extern void log_set_verbose(boolean_t);
28997 extern boolean_t log_get_verbose(void);
28998 
28999 /*
29000  * typedef for the 'ckreturn' function
29001  */
29002 typedef void (ckreturnFunc_t)(int a_retcode);
29003 
29004 /* sml.c */
29005 
29006 /* null reference to SML_TAG object */
29007 
29008 
29009 
29010 /* null reference to SML_TAG * object */
29011 
29012 
29013 
29014 /* is reference to SML_TAG object valid? */
29015 
29016 
29017 
29018 /* is indirect reference to SML_TAG object valid? */
29019 
29020 
29021 
29022 
29023 /* definitions for sml passed from pkginstall to pkgcond */
29024 # 505 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h"
29025 typedef struct _sml_tag_struct SML_TAG;
29026 typedef struct _sml_parameter_struct SML_PARAM;
29027 
29028 struct _sml_tag_struct {
29029  char *name; /* tag name */
29030  int params_num; /* # params in *params */
29031  SML_PARAM *params; /* tag parameters */
29032  int tags_num; /* # subtags in *tags */
29033  SML_TAG *tags; /* tag subtags */
29034 };
29035 
29036 struct _sml_parameter_struct {
29037  char *name; /* tag name */
29038  char *value; /* parameters */
29039 };
29040 
29041 SML_TAG *smlAddTag(SML_TAG **r_tag, int a_index,
29042    SML_TAG *a_subTag);
29043 boolean_t smlFstatCompareEq(struct stat *statbuf,
29044     SML_TAG *tag, char *path);
29045 char *smlConvertTagToString(SML_TAG *tag);
29046 /*PRINTFLIKE2*/
29047 void smlDbgPrintTag(SML_TAG *a_tag, char *a_format, ...);
29048 void smlDelTag(SML_TAG *tag, SML_TAG *sub_tag);
29049 void smlDelParam(SML_TAG *tag, char *name);
29050 SML_TAG *smlDup(SML_TAG *tag);
29051 boolean_t smlFindAndDelTag(SML_TAG *tag, char *findTag);
29052 void smlFreeTag(SML_TAG *tag);
29053 char *smlGetElementName(SML_TAG *a_tag);
29054 int smlGetNumParams(SML_TAG *a_tag);
29055 char *smlGetParam(SML_TAG *tag, char *name);
29056 /*PRINTFLIKE2*/
29057 char *smlGetParamF(SML_TAG *tag, char *format, ...);
29058 void smlGetParam_r(SML_TAG *tag, char *name, char *buf,
29059    int bufLen);
29060 char *smlGetParamByTag(SML_TAG *tag, int index,
29061    char *tagName, char *parmName);
29062 char *smlGetParamByTagParam(SML_TAG *tag, int index,
29063    char *tagName, char *parmName, char *parmValue,
29064    char *parmReturn);
29065 char *smlGetParamName(SML_TAG *tag, int index);
29066 SML_TAG *smlGetTag(SML_TAG *tag, int index);
29067 SML_TAG *smlGetTagByName(SML_TAG *tag, int index, char *name);
29068 SML_TAG *smlGetTagByTagParam(SML_TAG *tag, int index,
29069    char *tagName, char *paramName, char *paramValue);
29070 boolean_t smlGetVerbose(void);
29071 int smlLoadTagFromFile(SML_TAG **r_tag, char *a_fileName);
29072 SML_TAG *smlNewTag(char *name);
29073 boolean_t smlParamEq(SML_TAG *tag, char *findTag,
29074    char *findParam, char *str);
29075 /*PRINTFLIKE4*/
29076 boolean_t smlParamEqF(SML_TAG *tag, char *findTag, char *findParam,
29077    char *format, ...);
29078 void smlPrintTag(SML_TAG *tag);
29079 int smlReadOneTag(SML_TAG **r_tag, char *a_str);
29080 int smlConvertStringToTag(SML_TAG **r_tag, char *str);
29081 void smlSetFileStatInfo(SML_TAG **tag,
29082     struct stat *statbuf, char *path);
29083 void smlSetParam(SML_TAG *tag, char *name, char *value);
29084 /*PRINTFLIKE3*/
29085 void smlSetParamF(SML_TAG *tag, char *name, char *format, ...);
29086 void smlSetVerbose(boolean_t a_setting);
29087 int smlWriteTagToFd(SML_TAG *tag, int fd);
29088 int smlWriteTagToFile(SML_TAG *tag, char *filename);
29089 /*PRINTFLIKE3*/
29090 void sml_strPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...);
29091 /*PRINTFLIKE1*/
29092 char *sml_strPrintf(char *a_format, ...);
29093 char *sml_XmlEncodeString(char *a_plainTextString);
29094 char *sml_XmlDecodeString(char *a_xmlEncodedString);
29095 # 53 "setup_temporary_directory.c" 2
29096 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 1
29097 /*
29098  * CDDL HEADER START
29099  *
29100  * The contents of this file are subject to the terms of the
29101  * Common Development and Distribution License (the "License").
29102  * You may not use this file except in compliance with the License.
29103  *
29104  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29105  * or http://www.opensolaris.org/os/licensing.
29106  * See the License for the specific language governing permissions
29107  * and limitations under the License.
29108  *
29109  * When distributing Covered Code, include this CDDL HEADER in each
29110  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29111  * If applicable, add the following below this CDDL HEADER, with the
29112  * fields enclosed by brackets "[]" replaced with your own identifying
29113  * information: Portions Copyright [yyyy] [name of copyright owner]
29114  *
29115  * CDDL HEADER END
29116  */
29117 
29118 /*
29119  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
29120  * Use is subject to license terms.
29121  */
29122 
29123 
29124 
29125 
29126 
29127 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1
29128 /*
29129  * CDDL HEADER START
29130  *
29131  * The contents of this file are subject to the terms of the
29132  * Common Development and Distribution License (the "License").
29133  * You may not use this file except in compliance with the License.
29134  *
29135  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29136  * or http://www.opensolaris.org/os/licensing.
29137  * See the License for the specific language governing permissions
29138  * and limitations under the License.
29139  *
29140  * When distributing Covered Code, include this CDDL HEADER in each
29141  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29142  * If applicable, add the following below this CDDL HEADER, with the
29143  * fields enclosed by brackets "[]" replaced with your own identifying
29144  * information: Portions Copyright [yyyy] [name of copyright owner]
29145  *
29146  * CDDL HEADER END
29147  */
29148 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
29149 /*	  All Rights Reserved  	*/
29150 
29151 
29152 /*
29153  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
29154  * Use is subject to license terms.
29155  *
29156  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
29157  * Copyright 2016 Joyent, Inc.
29158  */
29159 # 32 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29160 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 1
29161 /*
29162  * CDDL HEADER START
29163  *
29164  * The contents of this file are subject to the terms of the
29165  * Common Development and Distribution License (the "License").
29166  * You may not use this file except in compliance with the License.
29167  *
29168  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29169  * or http://www.opensolaris.org/os/licensing.
29170  * See the License for the specific language governing permissions
29171  * and limitations under the License.
29172  *
29173  * When distributing Covered Code, include this CDDL HEADER in each
29174  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29175  * If applicable, add the following below this CDDL HEADER, with the
29176  * fields enclosed by brackets "[]" replaced with your own identifying
29177  * information: Portions Copyright [yyyy] [name of copyright owner]
29178  *
29179  * CDDL HEADER END
29180  */
29181 
29182 /*
29183  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
29184  *
29185  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
29186  * Use is subject to license terms.
29187  * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
29188  * Copyright 2016 Toomas Soome <tsoome@me.com>
29189  */
29190 
29191 
29192 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
29193 /*	  All Rights Reserved  	*/
29194 
29195 
29196 
29197 
29198 
29199 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 1
29200 /*
29201  * CDDL HEADER START
29202  *
29203  * The contents of this file are subject to the terms of the
29204  * Common Development and Distribution License (the "License").
29205  * You may not use this file except in compliance with the License.
29206  *
29207  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29208  * or http://www.opensolaris.org/os/licensing.
29209  * See the License for the specific language governing permissions
29210  * and limitations under the License.
29211  *
29212  * When distributing Covered Code, include this CDDL HEADER in each
29213  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29214  * If applicable, add the following below this CDDL HEADER, with the
29215  * fields enclosed by brackets "[]" replaced with your own identifying
29216  * information: Portions Copyright [yyyy] [name of copyright owner]
29217  *
29218  * CDDL HEADER END
29219  */
29220 
29221 /*
29222  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
29223  * Use is subject to license terms.
29224  */
29225 
29226 
29227 
29228 
29229 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
29230 /*
29231  * CDDL HEADER START
29232  *
29233  * The contents of this file are subject to the terms of the
29234  * Common Development and Distribution License (the "License").
29235  * You may not use this file except in compliance with the License.
29236  *
29237  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29238  * or http://www.opensolaris.org/os/licensing.
29239  * See the License for the specific language governing permissions
29240  * and limitations under the License.
29241  *
29242  *
29243  * When distributing Covered Code, include this CDDL HEADER in each
29244  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29245  * If applicable, add the following below this CDDL HEADER, with the
29246  * fields enclosed by brackets "[]" replaced with your own identifying
29247  * information: Portions Copyright [yyyy] [name of copyright owner]
29248  *
29249  * CDDL HEADER END
29250  */
29251 
29252 /*
29253  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
29254  * Use is subject to license terms.
29255  * Copyright 2016 Joyent, Inc.
29256  */
29257 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2
29258 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1
29259 /*
29260  * CDDL HEADER START
29261  *
29262  * The contents of this file are subject to the terms of the
29263  * Common Development and Distribution License (the "License").
29264  * You may not use this file except in compliance with the License.
29265  *
29266  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29267  * or http://www.opensolaris.org/os/licensing.
29268  * See the License for the specific language governing permissions
29269  * and limitations under the License.
29270  *
29271  * When distributing Covered Code, include this CDDL HEADER in each
29272  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29273  * If applicable, add the following below this CDDL HEADER, with the
29274  * fields enclosed by brackets "[]" replaced with your own identifying
29275  * information: Portions Copyright [yyyy] [name of copyright owner]
29276  *
29277  * CDDL HEADER END
29278  */
29279 /*
29280  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
29281  * Use is subject to license terms.
29282  * Copyright 2015 Nexenta Systems, Inc.
29283  */
29284 
29285 
29286 
29287 
29288 #pragma ident "%Z%%M%	%I%	%E% SMI"
29289 
29290 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1
29291 /*
29292  * CDDL HEADER START
29293  *
29294  * The contents of this file are subject to the terms of the
29295  * Common Development and Distribution License, Version 1.0 only
29296  * (the "License").  You may not use this file except in compliance
29297  * with the License.
29298  *
29299  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29300  * or http://www.opensolaris.org/os/licensing.
29301  * See the License for the specific language governing permissions
29302  * and limitations under the License.
29303  *
29304  * When distributing Covered Code, include this CDDL HEADER in each
29305  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29306  * If applicable, add the following below this CDDL HEADER, with the
29307  * fields enclosed by brackets "[]" replaced with your own identifying
29308  * information: Portions Copyright [yyyy] [name of copyright owner]
29309  *
29310  * CDDL HEADER END
29311  */
29312 /*
29313  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
29314  *
29315  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
29316  * Use is subject to license terms.
29317  */
29318 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 2
29319 
29320 
29321 
29322 
29323 
29324 /*
29325  * Interoperability types for programs. Used for:
29326  *
29327  * Crossing between 32-bit and 64-bit domains.
29328  *
29329  * On disk data formats such as filesystem meta data
29330  * and disk label.
29331  *
29332  * Note: Applications should never include this
29333  *       header file.
29334  */
29335 typedef uint32_t caddr32_t;
29336 typedef int32_t daddr32_t;
29337 typedef int32_t off32_t;
29338 typedef uint32_t ino32_t;
29339 typedef int32_t blkcnt32_t;
29340 typedef uint32_t fsblkcnt32_t;
29341 typedef uint32_t fsfilcnt32_t;
29342 typedef int32_t id32_t;
29343 typedef uint32_t major32_t;
29344 typedef uint32_t minor32_t;
29345 typedef int32_t key32_t;
29346 typedef uint32_t mode32_t;
29347 typedef uint32_t uid32_t;
29348 typedef uint32_t gid32_t;
29349 typedef uint32_t nlink32_t;
29350 typedef uint32_t dev32_t;
29351 typedef int32_t pid32_t;
29352 typedef uint32_t size32_t;
29353 typedef int32_t ssize32_t;
29354 typedef int32_t time32_t;
29355 typedef int32_t clock32_t;
29356 typedef uint32_t uintptr32_t;
29357 typedef int32_t intptr32_t;
29358 
29359 struct timeval32 {
29360  time32_t tv_sec; /* seconds */
29361  int32_t tv_usec; /* and microseconds */
29362 };
29363 
29364 typedef struct timespec32 {
29365  time32_t tv_sec; /* seconds */
29366  int32_t tv_nsec; /* and nanoseconds */
29367 } timespec32_t;
29368 
29369 typedef struct timespec32 timestruc32_t;
29370 
29371 typedef struct itimerspec32 {
29372  struct timespec32 it_interval;
29373  struct timespec32 it_value;
29374 } itimerspec32_t;
29375 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2
29376 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1
29377 /*
29378  * CDDL HEADER START
29379  *
29380  * The contents of this file are subject to the terms of the
29381  * Common Development and Distribution License (the "License").
29382  * You may not use this file except in compliance with the License.
29383  *
29384  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29385  * or http://www.opensolaris.org/os/licensing.
29386  * See the License for the specific language governing permissions
29387  * and limitations under the License.
29388  *
29389  *
29390  * When distributing Covered Code, include this CDDL HEADER in each
29391  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29392  * If applicable, add the following below this CDDL HEADER, with the
29393  * fields enclosed by brackets "[]" replaced with your own identifying
29394  * information: Portions Copyright [yyyy] [name of copyright owner]
29395  *
29396  * CDDL HEADER END
29397  */
29398 
29399 /*
29400  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
29401  * Use is subject to license terms.
29402  * Copyright 2016 Joyent, Inc.
29403  */
29404 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2
29405 
29406 
29407 
29408 
29409 
29410 /*
29411  * Miscellaneous defines
29412  */
29413 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h"
29414 /*
29415  * Reserve two cylinders on SCSI disks.
29416  * One is for the backup disk label and the other is for the deviceid.
29417  *
29418  * IPI disks only reserve one cylinder, but they will go away soon.
29419  * CDROMs do not reserve any cylinders.
29420  */
29421 
29422 
29423 /*
29424  * Format of a Sun disk label.
29425  * Resides in cylinder 0, head 0, sector 0.
29426  *
29427  * sizeof (struct dk_label) should be 512 (the current sector size),
29428  * but should the sector size increase, this structure should remain
29429  * at the beginning of the sector.
29430  */
29431 
29432 
29433 
29434 
29435 
29436 
29437 
29438 typedef daddr_t blkaddr_t;
29439 typedef daddr32_t blkaddr32_t;
29440 
29441 
29442 
29443 /*
29444  * partition headers:  section 1
29445  * Returned in struct dk_allmap by ioctl DKIOC[SG]APART (dkio(7I))
29446  */
29447 struct dk_map {
29448  blkaddr_t dkl_cylno; /* starting cylinder */
29449  blkaddr_t dkl_nblk; /* number of blocks;  if == 0, */
29450      /* partition is undefined */
29451 };
29452 
29453 /*
29454  * partition headers:  section 1
29455  * Fixed size for on-disk dk_label
29456  */
29457 struct dk_map32 {
29458  blkaddr32_t dkl_cylno; /* starting cylinder */
29459  blkaddr32_t dkl_nblk; /* number of blocks;  if == 0, */
29460      /* partition is undefined */
29461 };
29462 
29463 /*
29464  * partition headers:  section 2,
29465  * brought over from AT&T SVr4 vtoc structure.
29466  */
29467 struct dk_map2 {
29468  uint16_t p_tag; /* ID tag of partition */
29469  uint16_t p_flag; /* permission flag */
29470 };
29471 
29472 struct dkl_partition {
29473  uint16_t p_tag; /* ID tag of partition */
29474  uint16_t p_flag; /* permision flags */
29475  blkaddr32_t p_start; /* start sector no of partition */
29476  blkaddr32_t p_size; /* # of blocks in partition */
29477 };
29478 
29479 
29480 /*
29481  * VTOC inclusions from AT&T SVr4
29482  * Fixed sized types for on-disk VTOC
29483  */
29484 
29485 struct dk_vtoc {
29486 
29487  uint32_t v_bootinfo[3]; /* info for mboot (unsupported) */
29488  uint32_t v_sanity; /* to verify vtoc sanity */
29489  uint32_t v_version; /* layout version */
29490  char v_volume[8]; /* volume name */
29491  uint16_t v_sectorsz; /* sector size in bytes */
29492  uint16_t v_nparts; /* number of partitions */
29493  uint32_t v_reserved[10]; /* free space */
29494  struct dkl_partition v_part[16]; /* partition headers */
29495  time32_t timestamp[16]; /* partition timestamp (unsupported) */
29496  char v_asciilabel[128]; /* for compatibility    */
29497 # 154 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h"
29498 };
29499 
29500 /*
29501  * define the amount of disk label padding needed to make
29502  * the entire structure occupy 512 bytes.
29503  */
29504 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h"
29505 struct dk_label {
29506 
29507  struct dk_vtoc dkl_vtoc; /* vtoc inclusions from AT&T SVr4 */
29508  uint32_t dkl_pcyl; /* # of physical cylinders */
29509  uint32_t dkl_ncyl; /* # of data cylinders */
29510  uint16_t dkl_acyl; /* # of alternate cylinders */
29511  uint16_t dkl_bcyl; /* cyl offset (for fixed head area) */
29512  uint32_t dkl_nhead; /* # of heads */
29513  uint32_t dkl_nsect; /* # of data sectors per track */
29514  uint16_t dkl_intrlv; /* interleave factor */
29515  uint16_t dkl_skew; /* skew factor */
29516  uint16_t dkl_apc; /* alternates per cyl (SCSI only)   */
29517  uint16_t dkl_rpm; /* revolutions per minute */
29518  uint16_t dkl_write_reinstruct; /* # sectors to skip, writes */
29519  uint16_t dkl_read_reinstruct; /* # sectors to skip, reads  */
29520  uint16_t dkl_extra[4]; /* for compatible expansion */
29521  char dkl_pad[(512 - ((sizeof (struct dk_vtoc) + (4 * sizeof (uint32_t)) + (12 * sizeof (uint16_t)) + (2 * (sizeof (uint16_t))))))]; /* unused part of 512 bytes */
29522 # 217 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h"
29523  uint16_t dkl_magic; /* identifies this label format */
29524  uint16_t dkl_cksum; /* xor checksum of sector */
29525 };
29526 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h"
29527 struct fk_label { /* DOS floppy label */
29528  uchar_t fkl_type;
29529  uchar_t fkl_magich;
29530  uchar_t fkl_magicl;
29531  uchar_t filler;
29532 };
29533 
29534 /*
29535  * Layout of stored fabricated device id  (on-disk)
29536  */
29537 
29538 
29539 
29540 
29541 
29542 struct dk_devid {
29543  uchar_t dkd_rev_hi; /* revision (MSB) */
29544  uchar_t dkd_rev_lo; /* revision (LSB) */
29545  uchar_t dkd_flags; /* flags (not used yet) */
29546  uchar_t dkd_devid[((512) - ((sizeof (uchar_t) * 7)))]; /* devid stored here */
29547  uchar_t dkd_checksum3; /* checksum (MSB) */
29548  uchar_t dkd_checksum2;
29549  uchar_t dkd_checksum1;
29550  uchar_t dkd_checksum0; /* checksum (LSB) */
29551 };
29552 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 2
29553 
29554 
29555 
29556 
29557 
29558 /*
29559  *	Note:  the VTOC is not implemented fully, nor in the manner
29560  *	that AT&T implements it.  AT&T puts the vtoc structure
29561  *	into a sector, usually the second sector (pdsector is first).
29562  *
29563  *	Sun incorporates the tag, flag, version, and volume vtoc fields into
29564  *	its Disk Label, which already has some vtoc-equivalent fields.
29565  *	Upon reading the vtoc with read_vtoc(), the following exceptions
29566  *	occur:
29567  *		v_bootinfo [all]	returned as zero
29568  *		v_sanity		returned as VTOC_SANE
29569  *						if Disk Label was sane
29570  *		v_sectorsz		returned as 512
29571  *		v_reserved [all]	retunred as zero
29572  *		timestamp [all]		returned as zero
29573  *
29574  *	See  dklabel.h, read_vtoc(), and write_vtoc().
29575  */
29576 
29577 
29578      /* (from dkio.h) */
29579 
29580 
29581 
29582 
29583 
29584 /*
29585  * Partition identification tags
29586  */
29587 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h"
29588 /* Tags for EFI/GPT labels */
29589 
29590 
29591 
29592 
29593 
29594 
29595 /*
29596  * Partition permission flags
29597  */
29598 
29599 
29600 
29601 /*
29602  * error codes for reading & writing vtoc
29603  */
29604 
29605 
29606 
29607 
29608 
29609 
29610 
29611 struct partition {
29612  ushort_t p_tag; /* ID tag of partition */
29613  ushort_t p_flag; /* permission flags */
29614  daddr_t p_start; /* start sector no of partition */
29615  long p_size; /* # of blocks in partition */
29616 };
29617 
29618 struct vtoc {
29619  unsigned long v_bootinfo[3]; /* info needed by mboot (unsupported) */
29620  unsigned long v_sanity; /* to verify vtoc sanity */
29621  unsigned long v_version; /* layout version */
29622  char v_volume[8]; /* volume name */
29623  ushort_t v_sectorsz; /* sector size in bytes */
29624  ushort_t v_nparts; /* number of partitions */
29625  unsigned long v_reserved[10]; /* free space */
29626  struct partition v_part[16]; /* partition headers */
29627  time_t timestamp[16]; /* partition timestamp (unsupported) */
29628  char v_asciilabel[128]; /* for compatibility */
29629 };
29630 
29631 struct extpartition {
29632  ushort_t p_tag; /* ID tag of partition */
29633  ushort_t p_flag; /* permission flags */
29634  ushort_t p_pad[2];
29635  diskaddr_t p_start; /* start sector no of partition */
29636  diskaddr_t p_size; /* # of blocks in partition */
29637 };
29638 
29639 
29640 struct extvtoc {
29641  uint64_t v_bootinfo[3]; /* info needed by mboot (unsupported) */
29642  uint64_t v_sanity; /* to verify vtoc sanity */
29643  uint64_t v_version; /* layout version */
29644  char v_volume[8]; /* volume name */
29645  ushort_t v_sectorsz; /* sector size in bytes */
29646  ushort_t v_nparts; /* number of partitions */
29647  ushort_t pad[2];
29648  uint64_t v_reserved[10];
29649  struct extpartition v_part[16]; /* partition headers */
29650  uint64_t timestamp[16]; /* partition timestamp (unsupported) */
29651  char v_asciilabel[128]; /* for compatibility */
29652 };
29653 # 334 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h"
29654 /*
29655  * These defines are the mode parameter for the checksum routines.
29656  */
29657 
29658 
29659 
29660 extern int read_vtoc(int, struct vtoc *);
29661 extern int write_vtoc(int, struct vtoc *);
29662 extern int read_extvtoc(int, struct extvtoc *);
29663 extern int write_extvtoc(int, struct extvtoc *);
29664 # 33 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29665 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1
29666 /*
29667  * CDDL HEADER START
29668  *
29669  * The contents of this file are subject to the terms of the
29670  * Common Development and Distribution License (the "License").
29671  * You may not use this file except in compliance with the License.
29672  *
29673  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29674  * or http://www.opensolaris.org/os/licensing.
29675  * See the License for the specific language governing permissions
29676  * and limitations under the License.
29677  *
29678  * When distributing Covered Code, include this CDDL HEADER in each
29679  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29680  * If applicable, add the following below this CDDL HEADER, with the
29681  * fields enclosed by brackets "[]" replaced with your own identifying
29682  * information: Portions Copyright [yyyy] [name of copyright owner]
29683  *
29684  * CDDL HEADER END
29685  */
29686 
29687 /*
29688  * Copyright (c) 2013 Gary Mills
29689  *
29690  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
29691  * Use is subject to license terms.
29692  */
29693 
29694 /*	Copyright (c) 1988 AT&T	*/
29695 /*	  All Rights Reserved  	*/
29696 # 34 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29697 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1
29698 /*
29699  * CDDL HEADER START
29700  *
29701  * The contents of this file are subject to the terms of the
29702  * Common Development and Distribution License (the "License").
29703  * You may not use this file except in compliance with the License.
29704  *
29705  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29706  * or http://www.opensolaris.org/os/licensing.
29707  * See the License for the specific language governing permissions
29708  * and limitations under the License.
29709  *
29710  * When distributing Covered Code, include this CDDL HEADER in each
29711  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29712  * If applicable, add the following below this CDDL HEADER, with the
29713  * fields enclosed by brackets "[]" replaced with your own identifying
29714  * information: Portions Copyright [yyyy] [name of copyright owner]
29715  *
29716  * CDDL HEADER END
29717  */
29718 
29719 /*
29720  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
29721  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
29722  */
29723 
29724 /*	Copyright (c) 1988 AT&T	*/
29725 /*	  All Rights Reserved  	*/
29726 
29727 /*
29728  * User-visible pieces of the ANSI C standard I/O package.
29729  */
29730 # 35 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29731 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1
29732 /*
29733  * CDDL HEADER START
29734  *
29735  * The contents of this file are subject to the terms of the
29736  * Common Development and Distribution License (the "License").
29737  * You may not use this file except in compliance with the License.
29738  *
29739  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29740  * or http://www.opensolaris.org/os/licensing.
29741  * See the License for the specific language governing permissions
29742  * and limitations under the License.
29743  *
29744  * When distributing Covered Code, include this CDDL HEADER in each
29745  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29746  * If applicable, add the following below this CDDL HEADER, with the
29747  * fields enclosed by brackets "[]" replaced with your own identifying
29748  * information: Portions Copyright [yyyy] [name of copyright owner]
29749  *
29750  * CDDL HEADER END
29751  */
29752 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
29753 /*	  All Rights Reserved  	*/
29754 
29755 /*
29756  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
29757  * Use is subject to license terms.
29758  */
29759 # 36 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29760 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 1
29761 /*
29762  * CDDL HEADER START
29763  *
29764  * The contents of this file are subject to the terms of the
29765  * Common Development and Distribution License, Version 1.0 only
29766  * (the "License").  You may not use this file except in compliance
29767  * with the License.
29768  *
29769  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29770  * or http://www.opensolaris.org/os/licensing.
29771  * See the License for the specific language governing permissions
29772  * and limitations under the License.
29773  *
29774  * When distributing Covered Code, include this CDDL HEADER in each
29775  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29776  * If applicable, add the following below this CDDL HEADER, with the
29777  * fields enclosed by brackets "[]" replaced with your own identifying
29778  * information: Portions Copyright [yyyy] [name of copyright owner]
29779  *
29780  * CDDL HEADER END
29781  */
29782 /*
29783  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
29784  */
29785 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
29786 /*	  All Rights Reserved  	*/
29787 # 37 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29788 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/valtools.h" 1
29789 /*
29790  * CDDL HEADER START
29791  *
29792  * The contents of this file are subject to the terms of the
29793  * Common Development and Distribution License, Version 1.0 only
29794  * (the "License").  You may not use this file except in compliance
29795  * with the License.
29796  *
29797  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29798  * or http://www.opensolaris.org/os/licensing.
29799  * See the License for the specific language governing permissions
29800  * and limitations under the License.
29801  *
29802  * When distributing Covered Code, include this CDDL HEADER in each
29803  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29804  * If applicable, add the following below this CDDL HEADER, with the
29805  * fields enclosed by brackets "[]" replaced with your own identifying
29806  * information: Portions Copyright [yyyy] [name of copyright owner]
29807  *
29808  * CDDL HEADER END
29809  */
29810 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
29811 /*	  All Rights Reserved  	*/
29812 
29813 
29814 
29815 
29816 
29817 #pragma ident "%Z%%M%	%I%	%E% SMI"
29818 
29819 
29820 
29821 
29822 
29823 struct _choice_ {
29824  char *token;
29825  char *text;
29826  struct _choice_ *next;
29827 };
29828 
29829 struct _menu_ {
29830  char *label;
29831  int attr;
29832  short longest;
29833  short nchoices;
29834  struct _choice_
29835   *choice;
29836  char **invis;
29837 };
29838 
29839 typedef struct _menu_ CKMENU;
29840 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29841 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1
29842 /*
29843  * CDDL HEADER START
29844  *
29845  * The contents of this file are subject to the terms of the
29846  * Common Development and Distribution License (the "License").
29847  * You may not use this file except in compliance with the License.
29848  *
29849  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
29850  * or http://www.opensolaris.org/os/licensing.
29851  * See the License for the specific language governing permissions
29852  * and limitations under the License.
29853  *
29854  * When distributing Covered Code, include this CDDL HEADER in each
29855  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
29856  * If applicable, add the following below this CDDL HEADER, with the
29857  * fields enclosed by brackets "[]" replaced with your own identifying
29858  * information: Portions Copyright [yyyy] [name of copyright owner]
29859  *
29860  * CDDL HEADER END
29861  */
29862 
29863 /*
29864  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
29865  * Use is subject to license terms.
29866  */
29867 
29868 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
29869 /* All Rights Reserved */
29870 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2
29871 # 47 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h"
29872 /*
29873  * ckdate.c
29874  */
29875 extern int ckdate_err (char *fmt, char *error);
29876 extern int ckdate_hlp (char *fmt, char *help);
29877 extern int ckdate_val (char *fmt, char *input);
29878 extern int ckdate (char *date, char *fmt, char *defstr, char *error, char *help, char *prompt);
29879 
29880 
29881 /*
29882  * ckgid.c
29883  */
29884 extern int ckgid_dsp (void);
29885 extern int ckgid_val (char *grpnm);
29886 extern int ckgrpfile (void);
29887 extern void ckgid_err (int disp, char *error);
29888 extern void ckgid_hlp (int disp, char *help);
29889 extern int ckgid (char *gid, short disp, char *defstr, char *error, char *help, char *prompt);
29890 
29891 
29892 /*
29893  * ckint.c
29894  */
29895 extern int ckint_val (char *value, short base);
29896 extern void ckint_err (short base, char *error);
29897 extern void ckint_hlp (short base, char *help);
29898 extern int ckint (long *intval, short base, char *defstr, char *error, char *help, char *prompt);
29899 
29900 
29901 /*
29902  * ckitem.c
29903  */
29904 extern CKMENU *allocmenu (char *label, int attr);
29905 extern void ckitem_err (CKMENU *menup, char *error);
29906 extern void ckitem_hlp (CKMENU *menup, char *help);
29907 extern int ckitem (CKMENU *menup, char *item[], short max, char *defstr, char *error, char *help, char *prompt);
29908 
29909 
29910 extern int setitem (CKMENU *menup, char *choice);
29911 extern int setinvis (CKMENU *menup, char *choice);
29912 extern void printmenu (CKMENU *menup);
29913 
29914 /*
29915  * ckkeywd.c
29916  */
29917 extern int ckkeywd (char *strval, char *keyword[], char *defstr, char *error, char *help, char *prompt);
29918 
29919 
29920 /*
29921  * ckpath.c
29922  */
29923 extern int ckpath_stx (int pflags);
29924 extern int ckpath_val (char *path, int pflags);
29925 extern void ckpath_err (int pflags, char *error, char *input);
29926 extern void ckpath_hlp (int pflags, char *help);
29927 extern int ckpath (char *pathval, int pflags, char *defstr, char *error, char *help, char *prompt);
29928 
29929 
29930 /*
29931  * ckrange.c
29932  */
29933 extern void ckrange_err (long lower, long upper, int base, char *error);
29934 
29935 extern void ckrange_hlp (long lower, long upper, int base, char *help);
29936 extern int ckrange_val (long lower, long upper, int base, char *input);
29937 
29938 extern int ckrange (long *rngval, long lower, long upper, short base, char *defstr, char *error, char *help, char *prompt);
29939 
29940 
29941 
29942 /*
29943  * ckstr.c
29944  */
29945 extern int ckstr_val (char *regexp[], int length, char *input);
29946 extern void ckstr_err (char *regexp[], int length, char *error, char *input);
29947 
29948 extern void ckstr_hlp (char *regexp[], int length, char *help);
29949 extern int ckstr (char *strval, char *regexp[], int length, char *defstr, char *error, char *help, char *prompt);
29950 
29951 
29952 
29953 /*
29954  * cktime.c
29955  */
29956 extern int cktime_val (char *fmt, char *input);
29957 extern int cktime_err (char *fmt, char *error);
29958 extern int cktime_hlp (char *fmt, char *help);
29959 extern int fmtcheck (char *fmt);
29960 extern int cktime (char *tod, char *fmt, char *defstr, char *error, char *help, char *prompt);
29961 
29962 
29963 /*
29964  * ckuid.c
29965  */
29966 extern int ckuid_dsp (void);
29967 extern int ckuid_val (char *usrnm);
29968 extern int ckpwdfile (void);
29969 extern void ckuid_err (short disp, char *error);
29970 extern void ckuid_hlp (int disp, char *help);
29971 extern int ckuid (char *uid, short disp, char *defstr, char *error, char *help, char *prompt);
29972 
29973 
29974 /*
29975  * ckyorn.c
29976  */
29977 extern int ckyorn_val (char *str);
29978 extern void ckyorn_err (char *error);
29979 extern void ckyorn_hlp (char *help);
29980 extern int ckyorn (char *yorn, char *defstr, char *error, char *help, char *prompt);
29981 
29982 
29983 /*
29984  * devattr.c
29985  */
29986 extern char *devattr (char *device, char *attribute);
29987 
29988 /*
29989  * devreserv.c
29990  */
29991 extern char *_rsvtabpath (void);
29992 extern int _openlkfile (void);
29993 extern int _closelkfile (void);
29994 extern int unreserv (long key, char *device);
29995 extern char **devreserv (long key, char **rsvlst[]);
29996 extern int devfree (long key, char *device);
29997 extern struct reservdev **reservdev (void);
29998 
29999 /*
30000  * devtab.c
30001  */
30002 extern void _setdevtab (void);
30003 extern void _enddevtab (void);
30004 extern char *_devtabpath (void);
30005 extern int _opendevtab (char *mode);
30006 extern int _validalias (char *alias);
30007 extern struct devtabent *_getdevtabent (void);
30008 extern void _freedevtabent (struct devtabent *ent);
30009 extern struct devtabent *_getdevrec (char *device);
30010 
30011 /*
30012  * dgrpent.c
30013  */
30014 extern void _setdgrptab (void);
30015 extern void _enddgrptab (void);
30016 extern char *_dgrptabpath (void);
30017 extern int _opendgrptab (char *mode);
30018 extern struct dgrptabent *_getdgrptabent (void);
30019 extern void _freedgrptabent (struct dgrptabent *ent);
30020 extern struct dgrptabent *_getdgrprec (char *dgroup);
30021 
30022 /*
30023  * fulldevnm.c
30024  */
30025 extern char *getfullblkname (char *cp);
30026 extern char *getfullrawname (char *cp);
30027 
30028 /*
30029  * getdev.c
30030  */
30031 extern char **getdev (char **devices, char **criteria, int options);
30032 
30033 /*
30034  * getdgrp.c
30035  */
30036 extern char **getdgrp (char **dgroups, char **criteria, int options);
30037 
30038 /*
30039  * getinput.c
30040  */
30041 extern int getinput (char *s);
30042 
30043 /*
30044  * getvol.c
30045  */
30046 extern int getvol (char *device, char *label, int options, char *prompt);
30047 
30048 extern int _getvol (char *device, char *label, int options, char *prompt, char *norewind);
30049 
30050 extern void doremovecmd (char *device, int echo);
30051 
30052 /*
30053  * listdev.c
30054  */
30055 extern char **listdev (char *device);
30056 
30057 /*
30058  * listdgrp.c
30059  */
30060 extern char **listdgrp (char *dgroup);
30061 
30062 /*
30063  * memory.c
30064  */
30065 extern long sysmem (void);
30066 extern long asysmem (void);
30067 
30068 /*
30069  * pkginfo.c
30070  */
30071 extern int pkginfo (struct pkginfo *info, char *pkginst, ...);
30072 extern int fpkginfo (struct pkginfo *info, char *pkginst);
30073 extern char *fpkginst (char *pkg, ...);
30074 
30075 /*
30076  * pkgnmchk.c
30077  */
30078 extern int pkgnmchk (register char *pkg, register char *spec, int presvr4flg);
30079 
30080 extern void set_ABI_namelngth (void);
30081 extern int get_ABI_namelngth (void);
30082 
30083 /*
30084  * pkgparam.c
30085  */
30086 extern char *fpkgparam (FILE *fp, char *param);
30087 extern char *pkgparam (char *pkg, char *param);
30088 extern void set_PKGpaths (char *path);
30089 extern char *get_PKGLOC (void);
30090 extern char *get_PKGADM (void);
30091 extern void set_PKGADM(char *newpath);
30092 extern void set_PKGLOC(char *newpath);
30093 
30094 /*
30095  * putdev.c
30096  */
30097 extern int _putdevtabrec (FILE *stream, struct devtabent *rec);
30098 extern int _adddevtabrec (char *alias, char **attrval);
30099 extern int _moddevtabrec (char *device, char **attrval);
30100 extern int _rmdevtabrec (char *device);
30101 extern int _rmdevtabattrs (char *device, char **attributes, char ***notfounds);
30102 
30103 
30104 /*
30105  * putdgrp.c
30106  */
30107 extern int _putdgrptabrec (FILE *stream, struct dgrptabent *rec);
30108 extern int _adddgrptabrec (char *dgrp, char **members);
30109 extern int _rmdgrptabrec (char *dgrp);
30110 extern int _rmdgrpmems (char *dgrp, char **mems, char ***notfounds);
30111 
30112 /*
30113  * puterror.c
30114  */
30115 extern void puterror (FILE *fp, char *defmesg, char *error);
30116 
30117 /*
30118  * puthelp.c
30119  */
30120 extern void puthelp (FILE *fp, char *defmesg, char *help);
30121 
30122 /*
30123  * putprmpt.c
30124  */
30125 extern void putprmpt (FILE *fp, char *prompt, char *choices[], char *defstr);
30126 
30127 
30128 /*
30129  * puttext.c
30130  */
30131 extern int puttext (FILE *fp, char *str, int lmarg, int rmarg);
30132 
30133 /*
30134  * rdwr_vtoc.c
30135  */
30136 extern int read_vtoc (int fd, struct vtoc *vtoc);
30137 extern int write_vtoc (int fd, struct vtoc *vtoc);
30138 # 54 "setup_temporary_directory.c" 2
30139 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 1
30140 /*
30141  * CDDL HEADER START
30142  *
30143  * The contents of this file are subject to the terms of the
30144  * Common Development and Distribution License (the "License").
30145  * You may not use this file except in compliance with the License.
30146  *
30147  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
30148  * or http://www.opensolaris.org/os/licensing.
30149  * See the License for the specific language governing permissions
30150  * and limitations under the License.
30151  *
30152  * When distributing Covered Code, include this CDDL HEADER in each
30153  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
30154  * If applicable, add the following below this CDDL HEADER, with the
30155  * fields enclosed by brackets "[]" replaced with your own identifying
30156  * information: Portions Copyright [yyyy] [name of copyright owner]
30157  *
30158  * CDDL HEADER END
30159  */
30160 
30161 /*
30162  * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
30163  */
30164 
30165 
30166 
30167 
30168 
30169 /*
30170  * Module:	messages
30171  * Group:	pkg commands
30172  * Description: l10n strings for all pkg commands
30173  */
30174 # 44 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30175 /* BEGIN CSTYLED */
30176 
30177 /*
30178  * I18N: these messages are questions asked of the user
30179  */
30180 # 57 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30181 /*
30182  * I18N: these messages are debugging message and are only displayed
30183  * when special debugging output has been enabled - these messages
30184  * will never be displayed during normal product usage
30185  */
30186 # 401 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30187 /*
30188  * I18N: these messages are error messages that can be displayed
30189  * during the normal usage of the products
30190  */
30191 # 675 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30192 /*
30193  * I18N: these messages are help messages that are displayed when the
30194  * user answers a question with "?" - asking for help to be displayed
30195  */
30196 # 852 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30197 /*
30198  * These messages are output by qreason() - they are the "reason"
30199  * for the success/fail of the operation
30200  */
30201 # 980 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30202 /* WITH ZONE NAME */
30203 # 1175 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30204 /*
30205  * I18N: MSG_GZONLY_FILE_HEADER must NOT be translated!
30206  * ----- This message is placed at the beginning of an internal (private)
30207  * ----- database file. The contents of the message is a warning telling
30208  * ----- anyone who examines the contents of the database to not modify the
30209  * ----- database manually (by hand).
30210  * ----- Do NOT change or translate this text!
30211  */
30212 # 1191 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h"
30213 /* END CSTYLED */
30214 # 55 "setup_temporary_directory.c" 2
30215 
30216 /*
30217  * Name:	setup_temporary_directory
30218  * Description:	create a temporary directory from specified components
30219  *		and return full path to the directory created
30220  * Arguments:	r_dirname - pointer to handle to string - on success,
30221  *			the full path to the temporary directory created
30222  *			is returned in this handle
30223  *		a_tmpdir - pointer to string representing the directory into
30224  *			which the new temporary directory should be created
30225  *		a_suffix - pointer to string representing the 5-character
30226  *			suffix to be used as the first part of the temporary
30227  *			directory name invented
30228  * Returns:	boolean_t
30229  *			== B_TRUE - temporary directory created, path returned
30230  *			== B_FALSE - failed to create temporary directory
30231  *				'errno' is set to the failure reason
30232  * NOTE:    	Any path returned is placed in new storage for the
30233  *		calling function. The caller must use 'free' to dispose
30234  *		of the storage once the path is no longer needed.
30235  */
30236 
30237 boolean_t
30238 setup_temporary_directory(char **r_dirname, char *a_tmpdir, char *a_suffix)
30239 {
30240  char *dirname;
30241 
30242  /* entry assertions */
30243 
30244  (void)((a_tmpdir != (char *)0) || (__assert("a_tmpdir != (char *)NULL", "setup_temporary_directory.c", 84), 0));
30245 
30246  /* error if no pointer provided to return temporary name in */
30247 
30248  if (r_dirname == (char **)0) {
30249   (*(___errno())) = 14; /* bad address */
30250   return (B_FALSE);
30251  }
30252 
30253  /* generate temporary directory name */
30254 
30255  dirname = tempnam(a_tmpdir, a_suffix);
30256  if (dirname == (char *)0) {
30257   return (B_FALSE);
30258  }
30259 
30260  /* create the temporary directory */
30261 
30262  if (mkdir(dirname, 0755) != 0) {
30263   return (B_FALSE);
30264  }
30265 
30266  echoDebug(gettext("created temporary directory <%s>"), dirname);
30267 
30268  *r_dirname = dirname;
30269 
30270  return (B_TRUE);
30271 }
30272